名称:新冠疫情情况显示器Verilog代码Quartus 开发板(文末获取)
软件:Quartus
语言:Verilog
代码功能:
新冠疫情情况显示器
二、题目要求:
(1)拨动开关K1,红灯闪烁(闪烁频率为2-4Hz),七段数码管开始从14倒计时(每秒计数减1);当减到7时,红灯停止闪烁,同时黄灯亮,倒计时继续;当减到0时,保持0显示,黄灯熄灭,同时绿灯亮。整个过程中任意时刻拨动开关K1,则从头(显示14,红灯闪)开始。
(2)外部输入脉冲信号频率为50mhz;
三、设计原理:
(1)计数:输入脉冲信号为50mhz,七段数码管显示改变为1Hz,红灯闪烁频率为2-4Hz,需要计数脉冲信号或者设计分频器。
(2)七段数码管显示:七段数码管是电子开发过程中常用的输出显示设备。在实验系统中使用的是两个四位一体、共阴极型七段数码管。其单个静态数码管如下图4-1所示。
由于七段数码管公共端连接到GND(共阴极型),当数码管的中的那一个段被输入高电平,则相应的这一段被点亮。反之则不亮。共阳极性的数码管与之相么。四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。
本代码已在开发板验证,开发板如下,其他开发板可以修改管脚适配:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. 仿真图
整体仿真图
分频模块
控制模块
显示模块
部分代码展示:
module downcount( input clk,//时钟50MHz input K1,//按键 output led_red,//红灯 output led_green,//绿灯 output led_yellow,//黄灯 output [2:0] SEL,//数码管位选 output [7:0] SEG //数码管段选 ); wire clk_1KHz;//1KHz wire clk_4Hz;//4Hz wire clk_1Hz; //1Hz wire [3:0] data_one;//个位 wire [3:0] data_ten;//十位 //分频模块 div_clk i_div_clk( . clk(clk),//50MHz . clk_1KHz(clk_1KHz),//1KHz . clk_4Hz(clk_4Hz),//4Hz . clk_1Hz(clk_1Hz) //1Hz ); //控制模块 control i_control( . clk_1KHz (clk_1KHz ),//时钟1KHz . clk_4Hz (clk_4Hz ),//4Hz(绿灯闪烁频率) . clk_1Hz (clk_1Hz ), //1Hz . K1 (K1 ),//按键 . led_red (led_red ),//红灯 . led_green (led_green),//绿灯 . led_yellow (led_yellow),黄灯 . data_one (data_one ),//个位 . data_ten (data_ten ) //十位 ); //显示模块 display i_display( . clk_1KHz (clk_1KHz ),//时钟1KHz . data_one (data_one ),//个位 . data_ten (data_ten ), //十位 . SEL(SEL),//数码管位选 . SEG(SEG) //数码管段选 ); endmodule
源代码
扫描文章末尾的公众号二维码