赞
踩
名称:数字秒表/定时器(倒计时)功能verilog代码ego1开发板vivado
软件:VIVADO
语言:Verilog
代码功能:
数字秒表、定时器
1、具有定时功能、秒表功能,两个功能通过开关切换
2、秒表功能时,具体有启动、暂停、复位功能
3、秒表功能 :计时精度10ms (0.01秒)
4、秒表功能 :数码管显示分、秒、毫秒(10ms)
5、定时功能:可以通过按键设置时、分、秒
6、定时功能:设置完时间后,按下开始按键,开始倒计时,直到倒计时为0,输出led提示结束
本代码已在ego1开发板验证,开发板如下,其他开发板可以修改管脚适配:
1. 工程文件
2. 程序文件
3. 程序编译
4. 管脚分配
5. RTL图
6. modelsim仿真
整体仿真图
分频模块
按键消抖模块
秒表控制模块
显示译码模块
部分代码展示:
module Digital_clock( input clk_in, input mode_SW,//模式控制开关 input key_1,//跑表启动,暂停 input key_2,//跑表复位 input set_time_key_in,//设置时间 input confirm_key_in,//确认 input change_time_key_in,//设置时分秒 output LED, output [7:0] dig_led_1, output [3:0] wei_led_1, output [7:0] dig_led_2, output [3:0] wei_led_2 ); wire [7:0] stopwatch_Millisecond;//10毫秒 wire [7:0] stopwatch_second;//秒 wire [7:0] stopwatch_minute;//分 wire key_1_negedge; wire key_2_negedge; wire clk_1Hz; wire clk_100Hz; wire set_time_key;//设置时间 wire confirm_key;//确认 wire change_time_key;//设置时分秒 wire [7:0] countdown_hour_time;//时 wire [7:0] countdown_minute_time;//分 wire [7:0] countdown_second_time;//秒 //分频模块 fenping fenping_Hz( . clk_in(clk_in), . clk_1Hz(clk_1Hz), . clk_100Hz(clk_100Hz)//分频到100Hz ); //按键1消抖模块 key_jitter key_1_jitter( . clkin(clk_in), . key_in(key_1), . key_posedge(key_1_negedge) ); //按键2消抖模块 key_jitter key_2_jitter( . clkin(clk_in), . key_in(key_2), . key_posedge(key_2_negedge) ); //按键消抖模块 key_jitter key_3_jitter( . clkin(clk_in), . key_in(set_time_key_in), . key_posedge(set_time_key) ); //按键消抖模块 key_jitter key_4_jitter( . clkin(clk_in), . key_in(confirm_key_in), . key_posedge(confirm_key) ); //按键消抖模块 key_jitter key_5_jitter( . clkin(clk_in), . key_in(change_time_key_in), . key_posedge(change_time_key) ); //秒表控制模块 stopwatch i_stopwatch( . clk_in(clk_in), . clk_100Hz(clk_100Hz),//100Hz--对应10ms . start_key(key_1_negedge),//启动//暂停 . reset_key(key_2_negedge),//复位 . stopwatch_Millisecond(stopwatch_Millisecond),//10毫秒 . stopwatch_second(stopwatch_second),//秒 . stopwatch_minute(stopwatch_minute)//分 ); //定时模块 timing i_timing( . clk_in(clk_in), . clk_1Hz(clk_1Hz),//1Hz . mode_SW(mode_SW),//模式控制开关 . set_time_key(set_time_key),//设置时间 . confirm_key(confirm_key),//确认 . change_time_key(change_time_key),//设置时分秒 . LED(LED), . countdown_hour_time(countdown_hour_time),//时 . countdown_minute_time(countdown_minute_time),//分 . countdown_second_time(countdown_second_time)//秒 ); //显示模块 display i_display( . clk(clk_in), . watch_minute(stopwatch_minute),//分 . watch_second(stopwatch_second),//秒 . watch_milsecond(stopwatch_Millisecond),//10毫秒 . countdown_hour_time(countdown_hour_time),//时 . countdown_minute_time(countdown_minute_time),//分 . countdown_second_time(countdown_second_time),//秒 . dig_led_1(dig_led_1), . wei_led_1(wei_led_1), . dig_led_2(dig_led_2), . wei_led_2(wei_led_2) ); endmodule
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。