名称:多功能数字钟设计Verilog代码Quartus MFB-5实验箱(文末获取)
软件:Quartus
语言:Verilog
代码功能:
多功能数字钟
功能要求如下:
A. 计时功能:包括时、分、秒的计时,对数字钟来说,可以实现 1 天以内精确至 1 秒的计时,将小时和分钟显示在数码管上。
B. 闹钟功能:使用按键来开启或关闭闹钟功能,可设定闹钟定时的小时和分钟值,并用LED 灯指示是否设置了闹钟功能。在闹钟定时到的时刻,启动闹铃响,响声持续一段时间后自动停止,也可以按键关闭闹铃响声。
C. 校时功能:通过按键对小时、分钟能手动调整以校准时间。
D. 设置整点报时功能:每逢整点给出报时音,例如 1 点时“嘟_”响一声,2 点时“嘟_嘟_”响两声,依此类推。
E. 设置按键防抖动功能
希望能够做成分模块化的代码 需要代码和引脚就好了 请问可以做吗
本代码已在MFB-5实验箱验证,MFB-5实验箱如下,其他开发板可以修改管脚适配:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. 仿真图
Testbench
整体仿真图
分频模块
按键模块
模式设置
计时模块
闹钟模块
响铃模块
显示模块
部分代码展示:
module Digital_clock( input clk_50M, input alarm_en,//闹钟使能 input key_0,//模式设置按键--4'd0:计时,4'd1:闹钟 input key_1,//设置修改 input key_2,//修改确认 input key_3,//修改时分秒,闹钟关闭 output [2:0] led_jishi_time,//设置时间指示灯 output [2:0] led_alarm_time,//设置闹钟指示灯 output alarm_en_led,//闹钟使能指示灯 output bell_out,//闹钟 output [3:0] led_mode,//led显示当前模式--4'd0:计时,4'd1:闹钟 output [5:0] bit_select,//数码管位选 output [7:0] seg_select//数码管段选 ); wire [3:0] state_mode;//当前模式,4'd0:计时,4'd1:闹钟 wire [7:0] hour_time;//时 wire [7:0] minute_time;//分 wire [7:0] second_time;//秒 wire [7:0] alarm_hour_time;//闹钟时 wire [7:0] alarm_minute_time;//闹钟分 wire [7:0] alarm_second_time;//闹钟秒 wire key_0_negedge; wire key_1_negedge; wire key_2_negedge; wire key_3_negedge; wire clk_1Hz; assign alarm_en_led=alarm_en;//闹钟使能指示灯 //分频模块 fenping fenping_Hz( . clk_50M(clk_50M), . clk_1Hz(clk_1Hz) ); //按键下降沿检测模块 key_jitter key_0_jitter( . clkin(clk_50M), . key_in(key_0), . key_negedge(key_0_negedge) );
源代码
点击下方的公众号卡片获取