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

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

2025/08/20
621
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

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

软件:Quartus

语言:Verilog

代码功能:

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

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

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

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

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

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

开发板.jpg

部分代码展示:

//呼叫铃控制模块
module beep_ctrl(
input clk,//时钟50MHz
input rst_p,//复位
//4个呼叫按键
input key_1,
input key_2,
input key_3,
input key_4,
output LED1,//频率1Hz一直闪烁
output beep//呼叫声
);
parameter time_5s=32'd250_000000;//上板用该句
//parameter time_5s=32'd100;      //仿真用该句
wire beep_en_n;
assign beep_en_n=(key_1 & key_2 & key_3 & key_4);//呼叫
//计时
reg [31:0] time_5s_cnt=32'd100000000;
always@(posedge clk or negedge rst_p)
if(rst_p==0)
time_5s_cnt<=time_5s;
else
if(beep_en_n==0)
time_5s_cnt=time_5s)//5秒
time_5s_cnt<=time_5s_cnt;
else
time_5s_cnt32'd1 && time_5s_cnt<time_5s)
beep_buf<=1;//5秒蜂鸣器响
else
beep_buf<=0;
//分频产生1KHz
reg [31:0] div_cnt;
wire div_clk;
always@(posedge clk or negedge rst_p)
if(rst_p==0)
div_cnt=32'd50_000)
div_cnt<=32'd0;
else

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

相关推荐