名称:医院病房呼叫系统病床呼叫
软件:Quartus
语言:Verilog
要求:
1、用1~6个开关模拟6个病房的呼叫输入信号,1号优先级最高;1~6优先级依次降低;
2、 用一个数码管显示呼叫信号的号码;没信号呼叫时显示0;有多个信号呼叫时,显示优先级最高的呼叫号(其它呼叫号用指示灯显示);
3、凡有呼叫发出5秒的呼叫声;
4、对低优先级的呼叫进行存储,处理完高优先级的呼叫,再进行低优先级呼叫的处理。
代码下载:医院病房呼叫系统数码管显示verilog,quartus_Verilog/VHDL资源下载
代码网:hdlcode.com
本代码已在实验箱验证,实验箱资料如下:
演示视频:医院病房呼叫系统数码管显示verilog,quartus_Verilog/VHDL资源下载
部分代码展示
//用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;
设计文档(文档可下载):
- 工程文件
- 程序文件
- 程序编译
- RTL图
- 管脚分配
- 仿真图
整体仿真图
按键模块
病房控制模块
呼叫铃控制模块