• 方案介绍
  • 相关推荐
申请入驻 产业图谱

可调倒计时器设计Verilog代码Quartus仿真

09/08 10:04
301
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

名称:可调倒计时器设计Verilog代码Quartus仿真(文末获取)

软件:Quartus

语言:Verilog

代码功能:

功能:用2个数码管显示倒计时时间,每秒计时减1。初始时间为10秒,可以通过按键1修改初始时间,按键1按一次时间加10秒,加到90秒返回到10秒,按下按键2开始倒计时。计时到0停止计时。

本代码已在开发板验证,开发板如下,其他开发板可以修改管脚适配:

开发板.png

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

相关推荐