My title page contents

呼叫铃设计Verilog代码Quartus  开发板

名称:呼叫铃设计Verilog代码Quartus  开发板

软件:Quartus

语言:Verilog

代码功能:

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

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

3、凡有呼叫发出5秒的呼叫声(蜂鸣器频率1Hz,持续5秒,LED1频率1Hz一直闪烁); 

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



本代码已在开发板验证,开发板如下,其他开发板可以修改管脚适配:


开发板.jpg


image.png


image.png


image.png



image.png


部分代码展示:



module sickroom_ctrl(
input clk,//时钟50MHz
input rst_p,//低电平复位
//4个呼叫按键
input key_1,
input key_2,
input key_3,
input key_4,
input deal_key,//处理按键,按下表示处理当前最高优先级
output [5:0] led,//呼叫指示灯
output [7:0] dig,
output reg [7:0] dataout
);
assign dig=8'b1111_1110;
reg [3:0] number;//数码管显示呼叫信号的号码
reg [5:0] call_data=6'd0;
always@(posedge clk or negedge rst_p)
if(rst_p==0)
call_data<=6'd0;
else
if(key_1==0)//呼叫按键1
call_data<=call_data | 6'b100000;
else if(key_2==0)//呼叫按键2
call_data<=call_data | 6'b010000;
else if(key_3==0)//呼叫按键3
call_data<=call_data | 6'b001000;
else if(key_4==0)//呼叫按键4
call_data<=call_data | 6'b000100;
else if(call_data[5]==1)
if(deal_key==0)//处理按键
call_data<=call_data & 6'b011111;
else
call_data<=call_data;
else if(call_data[4]==1) 
if(deal_key==0)//处理按键
call_data<=call_data & 6'b101111;
else
call_data<=call_data;
else if(call_data[3]==1) 
if(deal_key==0)//处理按键
call_data<=call_data & 6'b110111;
else
call_data<=call_data;
else if(call_data[2]==1) 
if(deal_key==0)//处理按键
call_data<=call_data & 6'b111011;
else
call_data<=call_data;
else if(call_data[1]==1) 
if(deal_key==0)//处理按键
call_data<=call_data & 6'b111101;
else
call_data<=call_data;
else if(call_data[0]==1) 
if(deal_key==0)//处理按键
call_data<=call_data & 6'b111110;
else
call_data<=call_data;



代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 呼叫铃设计Verilog代码Quartus  开发板

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员