【紫光同创国产FPGA教程】——(盘古EU22K开发板/PGL22G第四章)数字时钟实验例程

news/2024/11/28 20:43:27/

 本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处(www.meyesemi.com)


适用于板卡型号:

紫光同创PGL22G开发平台(盘古EU 22K)

仅需一根TypcC线,插上即用,轻松操作。兼容下载器的一体版,适用于高校教学,配套资料丰富(以太网/DDR3/HDMI Test/Loop/串口收发/数字时钟实验例程等), 快速掌握国产FPGA!





一:盘古EU 22K开发板简介

盘古EU 22K开发板共有11个翠绿LED灯,其中1个是电源指示灯(POWER);2个是FPGA的运行状态指示灯:INIT和DONE;有8个用户LED灯(LED1~8),FPGA输出高电平时对应的LED灯亮灯(详情请查看“MES22GP开发板硬件使用手册”)。

二:实验目的

设计一个具有计时功能和校时功能的数字时钟。

数码管显示小时和分钟,秒钟用LED闪烁标识。

三个按键用于时钟校准。

KEY1用于切换正常计时,校准小时和分钟KEY2用于时钟的“+”KEY3用于时钟的“-”校准相应的刻度,该数码管闪烁。

三:实验原理

从上述的实验要求分析可得到此数字钟我们实现过程中要注意两个功能点:

1、计时显示功能:LED闪烁显示秒钟读秒,数码管右侧两位显示分钟计时,数码管左侧两位显示时钟计时;

此功能的实现由两个细节功能实现:1S计时控制,与前面的实验中需要计时功能模块实现方式一致,注意此处计时的周期为1S即可;计时过程中进位控制;进位控制有四处需要进位:

2、计时校准功能:通过对应按键控制调整分钟计时与时钟计时,调整的过程中对应位需要闪烁;此项功能中注意两点:调整对应位是,数码管该位进行闪烁;调整时注意进位;

基于上述分析我们将项目分成两个部分:

1.时钟计时与控制。2.数码管显示控制。

四:实验源码设计

文件头设计

输入输出信号如下表:

时钟计时与控制模块设计

计时控制顶层设计

在此模块中我们要实现前面描述的两个主要的功能点:计时与控制;

输入输出信号如下表:

Module设计的关键点如下(完整module查看源文件):

1、时钟校准控制(分钟低位示例,其他为调整类似,进位值需要注意变化)

2、时钟进位控制(分钟低位为例,前一级进位信号触发累加,自身进位信号触发归零)

按键控制模块设计

按键控制模块功能主要是接收按键输入信号触发对时钟计数进行校准调整;通过KEY1调整校准位,KEY2控制加,KEY3控制减;module关键点如下(key_out为按键消抖输出):

数码管显示模块设计

数码管显示模块相比前一个实验需要增加一个功能:当进入校准模式时数码管的校准位需要进行闪烁,故而引入一个1S的周期信号,在1S时间内0.5s正常点亮,0.5s不点亮使得数码管闪烁;闪烁对应位需要引入按键控制输出的dig_ctl信号(前面代码中有描述);

闪烁控制的模块设计如下:

五:实验现象

加载后的显示结果为:数码管显示从00:00开始,LED1闪烁(1次/s);

按轻触按键KEY1,进入校准模式,第一次按下KEY1,进入分钟低位计数校准调节,之后再次按下KEY1,校准位将会往左移动1位,直到校准位为时钟计数高位时,按下KEY1将推出校准模式,进入正常计数模式;

在校准模式中按下轻触按键KEY2一次,对应校准位加1,在可计数的最大值时会归0;

在校准模式中按下轻触按键KEY3一次,对应校准位减1,在减到0时会置位为可计数的最大值;


http://www.ppmy.cn/news/1360295.html

相关文章

解决echerts渲染未清除之前的数据问题

出现原理&#xff1a;默认渲染五条数据&#xff0c;筛选之后接口只返回一条数据&#xff0c;但是显示的还是五条数据&#xff0c;这个问题目前只出现在后渲染数据条数比之前渲染数据条数少的情况下 解决办法&#xff1a;在筛选请求之前清除之前渲染的dom数据 <div id"…

【算法与数据结构】684、685、LeetCode冗余连接I II

文章目录 一、684、冗余连接 I二、685、冗余连接 II三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、684、冗余连接 I 思路分析&#xff1a;题目给出一个无向有环图&#xff0c;要求去掉一个边以后构成一个树&#xf…

Jenkins的使用GIT(4)

Jenkins的使用GIT 20211002 我们使用 Jenkins 集成外部 Git 仓库&#xff0c;实现对真实代码的拉取和构建。在这里&#xff0c;我们选用 Coding/Github/Gitee 等都可以作为我们的代码源 1 生成公钥私钥 首先&#xff0c;我们先来配置公钥和私钥。这是 Jenkins 访问 Git 私有库…

SQL Server——建表时为字段添加注释

在 MySQL 中&#xff0c;新建数据库表为字段添加注释可以使用 comment 属性来实现。SQL Server 没有 comment 属性&#xff0c;但是可以通过执行 sys.sp_addextendedproperty 这个存储过程添加扩展属性来实现相同的功能。 这个存储过程的参数定义如下&#xff1a; exec sys.s…

哈希表在Java中的使用和面试常见问题

当谈到哈希表在Java中的使用和面试常见问题时&#xff0c;以下是一些重要的点和常见问题&#xff1a; 哈希表在Java中的使用 HashMap 和 HashTable 的区别&#xff1a; HashMap 和 HashTable 都实现了 Map 接口&#xff0c;但它们有一些重要的区别&#xff1a; HashMap 是非线…

Java项目:27 基于SSM+JSP实现的大学校园兼职平台

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 系统介绍 基于SSMJSP实现的大学校园兼职平台分为前台与管理员两块 管理端分为8大模块&#xff0c;分别是用户管理、兼职管理、帖子管理、聊天…

探索水下低光照图像检测性能,基于YOLOv3全系列【yolov3tiny/yolov3/yolov3spp】参数模型开发构建海底生物检测识别分析系统

海底这类特殊数据场景下的检测模型开发相对来说比较少&#xff0c;在前面的博文中也有一些涉及&#xff0c;感兴趣的话可以自行移步阅读即可&#xff1a; 《尝试探索水下目标检测&#xff0c;基于yolov5轻量级系列模型n/s/m开发构建海底生物检测系统》 《基于YOLOv5C3CBAMCBA…

PostgreSQL 实体化视图的使用

上周的教程中&#xff0c;通过 DVD Rental Database 示例&#xff0c;让我们了解了在 PostgreSQL 中创建实体化视图的过程。正如我们所了解的&#xff0c;PostgreSQL 实体化视图提供了一种强大的机制&#xff0c;通过预计算和存储查询结果集为物理表来提高查询性能。接下来的内…