news 2026/1/12 10:52:09

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
高精度秒表倒计时器系统的设计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)

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

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

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);
源代码

点击下方的公众号卡片获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/27 17:53:01

智能温度监测显示系统的设计Verilog代码Quartus Spirit_V4开发板

名称: 智能温度监测显示系统的设计Verilog代码Quartus Spirit_V4开发板(文末获取)软件: Quartus II语言: Verilog代码功能本项目实现了一个基于DS18B20温度传感器的智能温度监测与显示系统,具备多模式显示…

作者头像 李华
网站建设 2025/12/24 11:40:51

5个关键决策依据:YashanDB实施的优势

在当前的数据驱动业务环境中,数据库技术的迅速发展和不断演进带来了许多技术挑战。例如,性能瓶颈、数据一致性问题以及高可用性要求等。面对这些挑战,企业需要选择一种能够满足业务需求的数据库系统。YashanDB作为一种高性能、可扩展的数据库…

作者头像 李华
网站建设 2026/1/8 0:50:44

如何实现跨平台直播聚合?全设备兼容终极指南

如何实现跨平台直播聚合?全设备兼容终极指南 【免费下载链接】dart_simple_live 简简单单的看直播 项目地址: https://gitcode.com/GitHub_Trending/da/dart_simple_live 你是否曾经为了观看不同平台的直播内容,需要在手机里安装多个App&#xff…

作者头像 李华