名称:可调倒计时器设计Verilog代码Quartus仿真(文末获取)
软件:Quartus
语言:Verilog
代码功能:
功能:用2个数码管显示倒计时时间,每秒计时减1。初始时间为10秒,可以通过按键1修改初始时间,按键1按一次时间加10秒,加到90秒返回到10秒,按下按键2开始倒计时。计时到0停止计时。
本代码已在开发板验证,开发板如下,其他开发板可以修改管脚适配:
1.工程文件
2、程序文件
3、程序编译
4、RTL图
5、仿真图
整体仿真图
分频模块
按键模块
控制模块
显示模块
部分代码展示:
//控制模块 module?ctrl( input?clk,?//时钟25.175?MHz,83pin input?clk_1Hz,//1秒 input?key_1_p,//消抖后按键控制十位 input?key_2_p,//消抖后按键开始倒计时 output?[3:0]?second_ten,//秒十位 output?[3:0]?second_one//秒个位 ); reg?[3:0]?ten=4'd1;//秒十位 reg?[3:0]?one=4'd0;//秒个位 reg?down_start=1'b0; always@(posedge?clk) if(key_2_p) down_start<=1;//开始倒计时 else?if(ten==4'd0?&&?one==4'd0)//倒计时结束 down_start<=0; //时间控制 always@(posedge?clk) if(down_start==0)//未开始倒计时,设置起始时间 begin if(key_1_p)//按键1按下 if(ten==4'd9) ten<=4'd1; else ten<=ten+4'd1; one<=4'd0; end else?if(clk_1Hz)//开始倒计时 begin if(ten==4'd0?&&?one==4'd0)//结束 begin ten<=4'd0; one<=4'd0; end else?if(one==4'd0)//个位为0 begin ten<=ten-4'd1;//倒计时 one<=4'd9; end else begin ten<=ten; one<=one-4'd1;//倒计时 end end assign?second_ten=ten;//秒十位 assign?second_one=one;//秒个位 endmodule
源代码下载(付费后可见):
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1532
阅读全文