My title page contents

高精度秒表倒计时器系统的设计Verilog代码Quartus Spirit_V4开发板

名称: 高精度秒表倒计时器系统的设计Verilog代码Quartus  Spirit_V4开发板

软件: Quartus II

语言: Verilog 

代码功能

本项目实现了一个高精度的秒表和倒计时器系统,具备两种工作模式和精确的时间控制功能。系统主要功能包括:

·高精度秒表功能:实现启动、暂停、复位操作,精度达到10毫秒

·倒计时器功能:可设置倒计时时间,支持分钟、秒钟、毫秒设置

·双模式切换:通过模式按键在秒表和倒计时器之间切换

·实时显示:六位数码管动态显示时间数据,支持小数点显示

·精确计时:基于100Hz时钟实现10毫秒级精度计时

·智能控制:按键消抖处理,确保操作稳定性

·状态指示:LED指示灯显示当前工作模式

代码实现思路

系统架构设计

系统采用模块化设计,主要包含五个核心功能模块:

1.顶层控制模块:集成所有功能模块,实现模式切换和数据路由

2.秒表模块:实现正计时功能,支持启动、暂停、复位操作

3.倒计时模块:实现倒计时功能,支持时间设置和倒计时控制

4.显示模块:六位数码管动态扫描显示,支持小数点显示

5.时钟分频模块:将50MHz时钟分频为100Hz工作时钟

状态机设计

秒表和倒计时模块均采用四状态状态机实现完整的控制流程:

·空闲状态:系统初始化,等待用户操作

·计时状态:正在计时或倒计时

·暂停状态:计时暂停,保持当前时间

·复位状态:时间清零,准备重新开始

代码结构

模块层次结构

Digital_clock (顶层模块)
├── stopwatch (秒表模块)
├── countdown (倒计时模块)
├── display (显示控制模块)
├── set_mode (模式设置模块)
└── fenping (时钟分频模块)

模块功能描述

1.Digital_clock.v:顶层模块,集成所有功能模块

2.stopwatch.v:秒表功能模块,实现正计时

3.countdown.v:倒计时功能模块,支持时间设置

4.display.v:显示控制,支持六位数码管动态扫描

5.set_mode.v:模式切换控制,LED状态指示

6.fenping.v:时钟分频,50MHz→100Hz

显示系统设计

系统采用六位数码管动态扫描显示,显示格式为:

·秒表模式:分 秒.毫秒(如:12 34.56)

·倒计时模式:分 秒.毫秒(如:05 30.00)

其中秒和毫秒之间的小数点通过特殊段选码实现,提高显示可读性。


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

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

Spirit_V4开发板.jpg

演示视频:

设计文档:

设计文档.docx



1.工程文件

 

2.程序文件

 

3.程序编译

 

4.RTL图

 

5.管脚分配

 

6.Testbench

 

7.仿真图

 

分频模块

 

倒计时模块

 

正计时模块

 

显示模块

 

 

按键模块

 

模块控制模块

 

 

 

部分代码展示:

module Digital_clock(
input clk_50M,
input start_stop_key,//跑表启动,暂停
input reset_key,//跑表复位
input mode_key,//模式按键
input set_minute_key,//设置时间
input set_second_key,//确认
input set_msecond_key,//设置时分秒
output [1:0] led_mode,//led显示当前模式
output [5:0] bit_select,//数码管位选
output [7:0] seg_select//数码管段选
);
wire [7:0] stopwatch_Millisecond;//10毫秒
wire [7:0] stopwatch_second;//秒
wire [7:0] stopwatch_minute;//分
wire [7:0] countdown_hour_time;//时
wire [7:0] countdown_minute_time;//分
wire [7:0] countdown_second_time;//秒
wire start_stop_key_negedge;
wire reset_key_negedge;
wire mode_key_negedge;
wire set_minute_key_negedge;
wire set_second_key_negedge;
wire set_msecond_key_negedge;
wire [1:0] state_mode;//当前模式,4'd0:正计时,4'd1:倒计时
wire clk_100Hz;
//分频模块
fenping fenping_Hz(
. clk_50M(clk_50M),
. clk_100Hz(clk_100Hz)//分频到100Hz
);

代码文件(付费下载):




1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 高精度秒表倒计时器系统的设计Verilog代码Quartus Spirit_V4开发板

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员