名称:火警报警器设计Verilog代码Quartus仿真(文末获取)
软件:Quartus
语言:Verilog
代码功能:
要求
(1)拨动开关K1-K12,则对应的led红灯闪烁(闪烁频率为2-4Hz),七段数码管显示所对应的楼层1-12,例如拨动开关K6,则对应ed6红灯闪烁,七段数码管显示06。当拨回开关k6后,则灯关闭,七段数码管不显示。若同时按下多个开关,则对应的led灯均闪烁,七段数码管显示最高楼层
(2)外部输入脉冲信号频率为50mhz;
(3)扩展要求
(a)16*16点阵显示屏幕,拔动开关K1的时候显示发生火灾的房间号码;
(b)拨回开关后,屏幕显示火警解除
(c)可在倒计时过程中随时键盘输入数字,并显示核心温度为该数字。拨回开关后,键盘输入无效
(d)可利用红黄绿交通灯来显示不同级别警情
设计原理
(1)计数:输入脉冲信号为50mhz,七段数码管显示改变为1Hz,红灯闪烁频率为2-4Hz,需要计数脉冲信号或者设计分频器。
(2)七段数码管显示:七段数码管是电子开发过程中常用的输出显示设备。在实验系统中使用的是两个四位一体、共阴极型七段数码管。
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. 仿真图
整体仿真图
分频模块
按键控制模块
显示模块
部分代码展示:
//分频到1KHz模块 module clk_div1K( input clk ,//50MHz output clk1K//1KHz ); reg CLK_1KHZ=0; reg [31:0] cnt_1KHZ='d0; always@(posedge clk) if(cnt_1KHZ>=31'd25)begin//计数25000--仿真减小为50 cnt_1KHZ<=31'd0; CLK_1KHZ<=~CLK_1KHZ;//翻转得到1KHZ end else cnt_1KHZ<=cnt_1KHZ+1;//计数 //输出 assign clk1K =CLK_1KHZ;//1KHz endmodule
源代码
点击下方的公众号卡片获取