名称:9999秒以内任意倒计时器,倒计完成有LED提示Verilog代码ISEbasys2开发板 (文末获取)
软件:Quartus(文末获取)
语言:Verilog
代码功能:9999秒以内任意倒计时器,倒计完成有LED提示
本代码已在 basys2开发板 验证, basys2开发板 如下,其他开发板可以修改管脚适配:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. testbench
6. 仿真图
整体仿真图
分频模块
起始时间设置模块
倒计时模块
显示模块
部分代码展示:
//时间设置 module time_set( input clk_1Hz,//1Hz时钟 input s_key,//千位按键 input h_key,//百位按键 input t_key,//十位按键 input o_key,//个位按键 output [3:0]s_set,//千位 output [3:0]h_set,//百位 output [3:0]t_set,//十位 output [3:0]o_set //个位 ); reg [3:0]s_set_time=4'd0;//千位 reg [3:0]h_set_time=4'd0;//百位 reg [3:0]t_set_time=4'd0;//十位 reg [3:0]o_set_time=4'd0;//个位 always@(posedge clk_1Hz) if(s_key==1)//按下按键设置千位 if(s_set_time==4'd9)//计数到9回0 s_set_time<=4'd0; else s_set_time<=s_set_time+4'd1;//计数 always@(posedge clk_1Hz) if(h_key==1)//按下按键设置百位 if(h_set_time==4'd9)//计数到9回0 h_set_time<=4'd0; else h_set_time<=h_set_time+4'd1;//计数 always@(posedge clk_1Hz) if(t_key==1)//按下按键设置十位 if(t_set_time==4'd9)//计数到9回0 t_set_time<=4'd0; else t_set_time<=t_set_time+4'd1;//计数 always@(posedge clk_1Hz) if(o_key==1)//按下按键设置个位 if(o_set_time==4'd9)//计数到9回0 o_set_time<=4'd0; else o_set_time<=o_set_time+4'd1;//计数 //输出 assign s_set=s_set_time;//千位 assign h_set=h_set_time;//百位 assign t_set=t_set_time;//十位 assign o_set=o_set_time;//个位
源代码
扫描文章末尾的公众号二维码