FPGA实现数码管显示分秒时间

news2025/4/26 7:30:40

目录

一. verilog实现

二. 烧录验证

三. 结果验证


使用开发板:DE2-115开发板

一. verilog实现

        要实现分和秒,需要知道定时器的频率,通过查手册可知,我使用的开发板时钟为50hz,也就是时钟一个周期是2微秒。

        50000000\cdot 2\mu s=1s

        50000000需要用一个26位的寄存器保存

        我们要依次实现秒和分

        所以我们可以写出以下代码实现

module time_show1(
    input  clk,
	 input  Rst,
	 input  Pause,
    output reg [7:0] seg1,
	 output reg [6:0] seg2,
	 output reg [6:0] seg3,
	 output reg [6:0] seg4
);
reg [25:0] count1;
reg [5:0] count2;
reg [5:0] count3;
reg [5:0] count4;
reg [5:0] count5;
always@(posedge clk or posedge Rst)begin
    if(Rst) begin  
        // 复位所有计数器
        count1 <= 26'd0;
        count2 <= 6'd0;
        count3 <= 6'd0;
        count4 <= 6'd0;
        count5 <= 6'd0;
    end
	 else begin
	 if(!Pause)begin
		count1<=count1+1;
	 end
	 count1 <= count1+1;
    if(count1>50_000_000-2)begin
        count1<=0; 
        count2<=count2+1;   
    end
	 if(count2==10)begin
		count2<=0;
		count3<=count3+1;
	 end
	 if(count3==6&&count2==0)begin
		count3<=0;
		count4<=count4+1;
	 end
	 if(count4==10)begin
		count4<=0;
		count5<=count5+1;
	 end
	 if(count5==6&&count4==0)begin
		count5<=0;
	 end
	 end
end

always@(*)begin
	case(count2)
		0:seg1 <= 8'b0100_0000;
		1:seg1 <= 8'b0111_1001;
		2:seg1 <= 8'b0010_0100;
		3:seg1 <= 8'b0011_0000;
		4:seg1 <= 8'b0001_1001;
			
		5:seg1 <= 8'b0001_0010;
		6:seg1 <= 8'b0000_0010;
		7:seg1 <= 8'b0111_1000;
		8:seg1 <= 8'b0000_0000;
		9:seg1 <= 8'b0001_1000;
	default:seg1<=8'b0111_1111;//输入有误时默认值
	endcase
	case(count3)
		0:seg2 <= 8'b100_0000;
		1:seg2 <= 8'b111_1001;
		2:seg2 <= 8'b010_0100;
		3:seg2 <= 8'b011_0000;
		4:seg2 <= 8'b001_1001;
			
		5:seg2 <= 8'b001_0010;
		6:seg2 <= 8'b000_0010;
		7:seg2 <= 8'b111_1000;
		8:seg2 <= 8'b000_0000;
		9:seg2 <= 8'b001_1000;
	default:seg2<=8'b111_1111;//输入有误时默认值
	endcase
	case(count4)
		0:seg3 <= 8'b100_0000;
		1:seg3 <= 8'b111_1001;
		2:seg3 <= 8'b010_0100;
		3:seg3 <= 8'b011_0000;
		4:seg3 <= 8'b001_1001;
			
		5:seg3 <= 8'b001_0010;
		6:seg3 <= 8'b000_0010;
		7:seg3 <= 8'b111_1000;
		8:seg3 <= 8'b000_0000;
		9:seg3 <= 8'b001_1000;
	default:seg3<=8'b111_1111;//输入有误时默认值
	endcase
	case(count5)
		0:seg4 <= 8'b100_0000;
		1:seg4 <= 8'b111_1001;
		2:seg4 <= 8'b010_0100;
		3:seg4 <= 8'b011_0000;
		4:seg4 <= 8'b001_1001;
			
		5:seg4 <= 8'b001_0010;
		6:seg4 <= 8'b000_0010;
		7:seg4 <= 8'b111_1000;
		8:seg4 <= 8'b000_0000;
		9:seg4 <= 8'b001_1000;
	default:seg4<=8'b111_1111;//输入有误时默认值
	endcase
end
endmodule

二. 烧录验证

        烧录前需要先设置引脚和检测波形

        查看开发板手册可知DE115的引脚

        做好后便可连接板子开始烧录

        

三. 结果验证

待视频上传完毕

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2326683.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

可视化开发:用Qt实现Excel级动态柱状图

Qt柱状图 QtChart 首先我们介绍一下 图表建立的基础&#xff1a;Qt Charts QtChart 是Qt框架的一个模块&#xff0c;专注与提供交互式数据可视化功能 俗话就是 用于用户轻松创建各种类型的图表和图形界面 它包含的图表类型有很多&#xff1a;折线图&#xff0c;饼图&#x…

从零实现Json-Rpc框架】- 项目实现 - 基于Dispatcher模块的RPC框架

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…

kubekey -实现懒人一键部署K8S集群

kubekey -实现懒人一键部署K8S集群 操作步骤 官网&#xff1a; https://kubesphere.io/zh/ 一、执行以下命令快速创建一个 Kubernetes 集群。 Master节点 如果您访问 GitHub/Googleapis 受限&#xff0c;请登录 Linux 主机&#xff0c;执行以下命令设置下载区域。 [roottest ~]…

李宏毅机器学习笔记(1)—机器学习基本概念+深度学习基本概念

机器学习基本概念 1、获取模型 步骤 1.1、假定未知函数 带未知参数的函数 1.2、定义损失函数 真实值&#xff1a;label MAE MSE 几率分布&#xff0c;cross-entropy? 1.3、优化 单独考虑一个参数 让损失函数最小&#xff0c;找导数为零的点 单独考虑w&#xff0c;w…

数字IC后端项目常见问题之streamOut layermap和innovus drc violation

Q1&#xff1a;我需要将Innovus设计GDS导出到Virtuoso&#xff0c;但发现写出GDS的过程会报如下所示的警告。这里写出GDS使用的是Virtuoso (DFII) streamOut mapping文件&#xff01; Clock Gen模块Routing DRC&#xff0c;Timing分析及解决 streamOut tease.gds2 -mapFile cd…

短剧系统开发动漫短剧系统源码开发上线小程序app教程

一、市场规模与用户增长&#xff1a;突破677亿&#xff0c;Z世代成主力 整体扩张 2025年短剧市场预计同比增长15%&#xff0c;规模达677.9亿元&#xff0c;用户规模6.62亿&#xff08;占网民59.7%&#xff09;。动漫短剧作为细分领域&#xff0c;增速显著受益于二次元文化渗透&…

太阳能高杆路灯:照亮未来的新光

在全球能源转型进程加速以及可持续发展理念日益深入人心的背景下&#xff0c;太阳能高杆路灯作为融合新能源技术、智能控制技术与多功能集成特性的创新产品&#xff0c;正逐步革新传统路灯的格局。其不仅有效解决了传统路灯对电网供电的依赖问题&#xff0c;更为城市及乡村的照…

《C++Linux编程进阶:从0实现muduo 》-第8讲.C++面试如何高效获取线程ID

章节重点 在C面试时&#xff0c;经常被问到如果高效获取线程ID&#xff0c;但不少同学都不知道如何回答。 重点是通过__thread关键字。 重点内容 视频讲解&#xff1a;《CLinux编程进阶&#xff1a;从0实现muduo C网络框架系列》-第8讲. C面试如何高效获取线程ID 测试获取线…

【Tauri2】011——菜单menu(2)

前言 前面简单地创建了菜单&#xff0c;接下来就来试试菜单中的action Rust中菜单项注册action AppHandle in tauri - Rusthttps://docs.rs/tauri/2.4.0/tauri/struct.AppHandle.html#method.on_menu_event这就需要用到App或者AppHandle中的方法on_menu_event #[must_use] …

架构设计基础系列:面向对象设计的原则

引言 面向对象设计&#xff08;Object-Oriented Design&#xff0c;OOD&#xff09;是软件开发中的重要概念&#xff0c;其核心在于通过对象、类、继承、封装和多态等机制&#xff0c;实现对现实世界问题的抽象和建模。OOD不仅有助于提高代码的可重用性、可维护性和可扩展性&a…

UE5学习笔记 FPS游戏制作35 使用.csv配置文件

文章目录 导入.csv要求首先创建一个结构体导入配置文件读取配置 导入 .csv要求 第一行必须包含标题 第一列的内容必须不能重复&#xff0c;因为第一列会被当成行的名字&#xff0c;在数据处理中发挥类似于字典的key的作用 当前的配置文件内容如下 首先创建一个结构体 结构…

嵌入式单片机ADC数模转换的基本方法

第一:模数转换的概述 1:模数转换的概念 一般在电路中,信号分为两种,一种是模拟信号,一种是数字信号,绝大多数传感器采集的都是模拟信号,如温度、湿度、烟雾浓度、亮度.......,但是对于计算机需要处理的数字信号,那就需要利用电路把模拟信号转换为数字信号,这个转换的…

01-Docker 安装

1、安装环境介绍 安装环境&#xff1a;Linux CentOS 7 本安装教程参考Docker官方文档&#xff0c;地址如下&#xff1a;https://docs.docker.com/engine/install/centos/ 2、卸载旧版docker 首先如果系统中已经存在旧的Docker&#xff0c;则先卸载&#xff1a; yum remove do…

Redis 的缓存雪崩、击穿、穿透及其解决办法

文章目录 Redis 的缓存雪崩、击穿、穿透及其解决办法缓存雪崩解决办法 缓存击穿解决方案 缓存穿透解决方案 Redis 的缓存雪崩、击穿、穿透及其解决办法 本篇文章回顾 Redis 当中缓存崩溃、击穿、穿透现象以及相应的解决办法&#xff0c;主要的参考资料是&#xff1a;https://w…

性能比拼: Pingora vs Nginx (My NEW Favorite Proxy)

本内容是对知名性能评测博主 Anton Putra Pingora vs Nginx Performance Benchmark: My NEW Favorite Proxy! 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准 介绍 在本视频中&#xff0c;我们将对比 Nginx 和 Pingora&#xff08;一个用于构建网络服务的 Rust 框架…

Ranger一分钟

简介 Ranger Admin&#xff1a;Web UIPolicy Admin Tool&#xff1a;定义和管理策略的模块Ranger Plugins&#xff1a;HDFS、Hive、HBase、Kafka、Storm、YARNRanger UserSync&#xff1a; LDAP、Active DirectoryRanger KMS&#xff1a;管理和保护数据加密的密钥 加密密钥管理…

STM32单片机入门学习——第5节: [3-1]GPIO输出

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难&#xff0c;但我还是想去做&#xff01; 本文写于&#xff1a;2025.04.01 STM32开发板学习——第5节&#xff1a; [3-1]GPIO输出 前言开发板说明引用解答和…

pytorch中dataloader自定义数据集

前言 在深度学习中我们需要使用自己的数据集做训练&#xff0c;因此需要将自定义的数据和标签加载到pytorch里面的dataloader里&#xff0c;也就是自实现一个dataloader。 数据集处理 以花卉识别项目为例&#xff0c;我们分别做出图片的训练集和测试集&#xff0c;训练集的标…

SQL Server:触发器

在 SQL Server Management Studio (SSMS) 中查看数据库触发器的方法如下&#xff1a; 方法一&#xff1a;通过对象资源管理器 连接到 SQL Server 打开 SSMS&#xff0c;连接到目标数据库所在的服务器。 定位到数据库 在左侧的 对象资源管理器 中&#xff0c;展开目标数据库&a…

标题:利用 Rork 打造定制旅游计划应用程序:一步到位的指南

引言&#xff1a; 在数字化时代&#xff0c;旅游计划应用程序已经成为旅行者不可或缺的工具。但开发一个定制的旅游应用可能需要耗费大量时间与精力。好消息是&#xff0c;Rork 提供了一种快捷且智能的解决方案&#xff0c;让你能轻松实现创意。以下是使用 Rork 创建一个定制旅…