名称:火警报警器设计Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
火警报警器
要求:
(1)拨动开关K1-K12,则对应的led红灯闪烁(闪烁频率为2-4Hz),七段数码管显示所对应的楼层1-12,例如拨动开关K6,则对应led6红灯闪烁,七段欻码管显示06。当拨回开关k6后,则灯关闭,七段数码管不显示。若同时按下多个开关,则对应的led灯均闪烁,七段数码管显示最高楼层
(2)外部输入脉冲信号频率为50mhz;
(3)扩展要求:
(a)16*16点阵显示屏幕,拔动开关K1的时候显示发生火灾的房间
(b)拨回开关后,屏幕显示火警解除
(c)可在倒计时过程中随时键盘输入数字,并显示核心温度为该数字。拨回开关后,键盘输入无效。(d)可利用红黄绿交通灯来显示不同级别警情
设计原理
(1)计数:输入脉冲信号为50mhz,七段数码管显示改变为1Hz,红灯闪烁频率为2-4Hz,需要计数脉冲信号或者设计分频器
(2)七段数码管显示:七段数码管是电子开发过程中常用的输出显示设备。在实验系统中使用的是两个四位一体、共阴极型七段数码管。其单个静态数码管如下图4-1所示
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. 仿真图
整体仿真图
分频模块
控制模块
显示模块
部分代码展示:
//按键控制模块 module?control( input?clk,//时钟50MHz input?clk_2Hz,//2Hz input?K1,K2,K3,K4,K5,K6,K7,K8,K9,K10,K11,K12,//开关K1~K12 output?reg?LD1,LD2,LD3,LD4,LD5,LD6,LD7,LD8,LD9?,LD10,LD11,LD12,//LED1~12 output?reg?[3:0]?F_H,//楼层十位 output?reg?[3:0]?F_L?//楼层个位 ); //高楼层优先,使用if语句 always@(posedge?clk) if(K12) begin F_H<=4'd1;//楼层十位 F_L<=4'd2;//楼层个位 end else?if(K11) begin F_H<=4'd1;//楼层十位 F_L<=4'd1;//楼层个位 end else?if(K10) begin F_H<=4'd1;//楼层十位 F_L<=4'd0;//楼层个位 end else?if(K9) begin F_H<=4'd0;//楼层十位 F_L<=4'd9;//楼层个位 end else?if(K8) begin F_H<=4'd0;//楼层十位 F_L<=4'd8;//楼层个位 end else?if(K7) begin F_H<=4'd0;//楼层十位 F_L<=4'd7;//楼层个位 end else?if(K6) begin F_H<=4'd0;//楼层十位 F_L<=4'd6;//楼层个位 end else?if(K5) begin F_H<=4'd0;//楼层十位 F_L<=4'd5;//楼层个位 end
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1287
347