• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

医院病房呼叫系统病床呼叫verilog,quartus

05/16 15:33
1183
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1-23092H31006127.doc

共1个文件

名称:医院病房呼叫系统病床呼叫(代码在文末付费下载)

软件:Quartus

语言:Verilog

要求:

1、用1~6个开关模拟6个病房的呼叫输入信号,1号优先级最高;1~6优先级依次降低;

2、 用一个数码管显示呼叫信号的号码;没信号呼叫时显示0;有多个信号呼叫时,显示优先级最高的呼叫号(其它呼叫号用指示灯显示);

3、凡有呼叫发出5秒的呼叫声;

4、对低优先级的呼叫进行存储,处理完高优先级的呼叫,再进行低优先级呼叫的处理。

本代码已在实验箱验证,实验箱资料如下:

实验箱.png

FPGA_CDS讲义1711ok.docx

演示视频:

部分代码展示

//用1~6个开关模拟6个病房的呼叫输入信号,1号优先级最高;1~6优先级依次降低;
//2、 用一个数码管显示呼叫信号的号码;没信号呼叫时显示0;有多个信号呼叫时,显示优先级最高的呼叫号(其它呼叫号用指示灯显示);
//3、凡有呼叫发出5秒的呼叫声;
//4、对低优先级的呼叫进行存储,处理完高优先级的呼叫,再进行低优先级呼叫的处理。
module sickroom_ctrl(
input clk,//时钟20MHz
input rst_p,//复位
//6个呼叫按键
input key_1,
input key_2,
input key_3,
input key_4,
input key_5,
input key_6,
input deal_key,//处理按键,按下表示处理当前最高优先级
output [5:0] led,//呼叫指示灯
output reg [3:0] number//数码管显示呼叫信号的号码
);
reg [5:0] call_data=6'd0;
always@(posedge clk or posedge rst_p)
if(rst_p==1)
call_data<=6'd0;
else
if(key_1==1)//呼叫按键1
call_data<=call_data | 6'b100000;
else if(key_2==1)//呼叫按键2
call_data<=call_data | 6'b010000;
else if(key_3==1)//呼叫按键3
call_data<=call_data | 6'b001000;
else if(key_4==1)//呼叫按键4
call_data<=call_data | 6'b000100;
else if(key_5==1)//呼叫按键5
call_data<=call_data | 6'b000010;
else if(key_6==1)//呼叫按键6
call_data<=call_data | 6'b000001;

设计文档(文档点击可下载):

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 管脚分配

6. 仿真图

整体仿真图

按键模块

病房控制模块

呼叫铃控制模块

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=183

  • 1-23092H31006127.doc
    下载

相关推荐