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

数字时钟功能Verilog QuartusII小脚丫开发板

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

数字时钟功能+Verilog+QuartusII

软件 :QuartusII

语言:Verilog

代码功能

本设计实现了一个数字时钟系统,具备计时、显示、闹钟和按键控制等功能。系统能够通过数码管实时显示分钟和秒钟,支持闹钟时间设置,并可通过按键实现模式切换和暂停/启动。设计重点在于时钟信号分频、消抖处理、计时逻辑和闹钟控制,适用于FPGA开发板的数字时钟应用。

代码实现思路

系统采用模块化设计,主要分为时钟分频、消抖、计时、显示和闹钟控制五大模块。时钟分频模块将高频时钟信号分频为1Hz,作为计时基准;消抖模块对按键输入进行稳定处理,防止误触发;计时模块实现分钟和秒钟的递增逻辑,并支持复位和溢出处理;显示模块将计时结果转换为数码管显示格式,支持模式切换显示闹钟时间;闹钟控制模块实现闹钟时间的设置和循环。各模块通过信号线互联,整体结构清晰,便于扩展和维护。

本代码已在小脚丫开发板验证

代码结构

代码结构

- clock.v:顶层模块,负责各功能模块的连接与信号分配。

- clk_div.v:时钟分频模块,将12MHz时钟分频为1Hz。

- key_xiaodou.v:按键消抖模块,稳定按键输入信号。

- clock_ctrl.v:计时控制模块,实现分钟和秒钟的递增及溢出处理。

- display.v:显示模块,将计时和闹钟数据转换为数码管显示格式。

- alarm_ctrl.v:闹钟控制模块,实现闹钟时间的设置与循环。

部分代码展示:

//秒表
module clock(
input clk,//时钟
input reset_n,//复位
input stop_start_n,//暂停继续
input mode_key,//模式切换
input alarm_key,
output [1:0] SEG_DIG,
output [7:0] seg_1,//数码管
output [7:0] seg_2,//数码管
output [7:0] seg_3,//数码管

output beep,//蜂鸣器
output led//led闪烁
);
wire [7:0] minute_out;//计时值
wire [7:0] second_out;//秒钟
wire clk_1Hz;
wire stop_start;//暂停继续
wire mode_change;
wire alarm_add;
wire [3:0] alarm_minute;//闹钟时间
wire mode_select;

//消抖模块
key_xiaodou i0_key_xiaodou(
. clkin(clk),
. key_in(stop_start_n),//输入
. key_negedge(stop_start)//消抖后按键下降沿
);

//消抖模块
key_xiaodou i1_key_xiaodou(
. clkin(clk),
. key_in(mode_key),//输入
. key_negedge(mode_change)//消抖后按键下降沿
);

//消抖模块
key_xiaodou i2_key_xiaodou(
. clkin(clk),
. key_in(alarm_key),//输入
. key_negedge(alarm_add)//消抖后按键下降沿
);

//分频模块
clk_div i_clk_div(
. clk(clk),//12M
. reset_n(reset_n),//复位
. stop_start(stop_start),
. clk_1Hz(clk_1Hz)//1Hz
);

//计时控制模块
clock_ctrl i_clock_ctrl(
. clk_1Hz(clk_1Hz),//1Hz
. reset_n(reset_n),//复位
. minute_out(minute_out),//分钟值
. second_out(second_out),//秒钟
. led(led)//led闪烁
);


//闹钟控制模块
alarm_ctrl i_alarm_ctrl(
. clk(clk),//
. reset_n(reset_n),//复位
. alarm_add(alarm_add),//闹钟加
. alarm_minute(alarm_minute)//闹钟时间
);


//显示模块
display i_display(
. clk(clk),//12MHz
. reset_n(reset_n),//复位
. mode_change(mode_change),//模式控制
. alarm_minute(alarm_minute),//闹钟时间
. second_out(second_out),//秒钟
. minute_out(minute_out),//分钟
. beep(beep),
. SEG_DIG(SEG_DIG),
. seg_1(seg_1),//数码管
. seg_2(seg_2),//数码管
. seg_3(seg_3)
);


endmodule

 

代码下载(付费可见):

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

相关推荐