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

Basys2开发板的数字钟可调时verilog代码电子钟时分秒显示

05/12 10:39
772
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

名称:基于Basys2开发板的数字钟可调时verilog代码电子钟(代码在文末下载)

软件:ISE

语言:Verilog

代码功能:

数码管显示时钟:

1、支持按键调节小时/分钟秒;

2、支持切换显示内容为小时分钟或分钟秒。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

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

basys2.png

工程文件:

98e68884-fdc3-4336-b62e-7c1670a7126c.png

程序文件

49fa6e29-159b-4f38-a513-adbbff9ebd59.png

程序编译:

9449936d-d2c0-4402-8ac3-b5d5e81fe439.png

RTL图

5c7edc2a-2290-4557-a970-c9764b2524af.png

管脚分配

6ce0b2b2-f16f-4740-bc19-862364965650.png

部分代码展示:

//时间计时
module time_set(
input clk_in,//系统时钟
input clk_1Hz,//1Hz时钟
input hour_key,//小时按键
input minute_key,//分钟按键
input second_key,//秒钟按键
output [7:0]hour_set,//小时
output[7:0]minute_set,//分钟
output[7:0]second_set//秒钟
);
reg[7:0]hour=8'd0;//小时
reg[7:0]minute=8'd0;//分钟
reg[7:0]second=8'd0;//分钟
//计时控制
always@(posedge clk_in)
if(clk_1Hz)
if(second_key==1)//按下秒按键设置秒
second<=8'd0;
else if(minute_key==1)//按下分钟按键设置分钟
if(minute==8'd59)//计数到59回0
minute<=8'd0;
else
minute<=minute+8'd1;//计数
else if(hour_key==1)//按下小时按键设置小时
if(hour==8'd23)//计数到23回0
hour<=8'd0;
else
hour<=hour+8'd1;//计数
else
if(hour==8'd23 && minute==8'd59 && second==8'd59)//计时到23:59:59
begin
hour<=8'd0;
minute<=8'd0;
second<=8'd0;
end
else if(minute==8'd59 && second==8'd59)//xx:59:59
begin
hour<=hour+8'd1;
minute<=8'd0;
second<=8'd0;
end
else if(second==8'd59)////xx:xx:59
begin
hour<=hour;
minute<=minute+8'd1;
second<=8'd0;
end
else
begin
hour<=hour;
minute<=minute;
second<=second+8'd1;//秒计时
end
else
begin
hour<=hour;
minute<=minute;
second<=second;//不变
end
//输出
assign hour_set=hour;
assign minute_set=minute;//分钟
assign second_set=second;//秒钟
endmodule

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=281

相关推荐