名称:基于Basys2开发板的数字钟可调时verilog代码电子钟
软件:ISE
语言:Verilog
代码功能:
数码管显示时钟
1、支持按键调节小时/分钟秒;
2、支持切换显示内容为小时分钟或分钟秒
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在Basys2开发板验证,开发板如下,其他开发板可以修改管脚适配:
代码下载:
工程文件:
程序文件
程序编译:
RTL图
管脚分配
部分代码展示:
//时间计时 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