【紫光同创盘古PGX-Lite 7K教程】——(盘古PGX-Lite 7K开发板/PGC7KD-6IMBG256第七章)数字钟实验例程

embedded/2024/9/25 7:36:56/

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


适用于板卡型号:

紫光同创PGC7KD-6IMBG256开发平台(盘古PGX-Lite 7K)

仅需一根TypcC线,插上即用,轻松操作。兼容下载器的一体版,配套资料丰富, 快速掌握国产FPGA!

一:盘古PGX-Lite 7K开发板简介

PGX-Lite 7K 开发板是一套基于紫光同创 compa 系列 PGC7KD-6IMBG256 芯片为核心的开 发套件,支持主自加载双启动功能,集成板载 jtag 调试接口,支持 Type-C 转串口通信,同 时预留非常丰富的扩展 IO、数码管、按键、led 灯等硬件资源,在提供用户基础的硬件环境 基础上,满足用户更加灵活的需求。

 

 

 二:实验目的

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

三:实验要求

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

三个按键用于时钟校准。

K0 用于切换正常计时,校准小时和分钟

K1 用于时钟的“+”

K2 用于时钟的“-” 校准相应的刻度,该数码管闪烁。

四:实验原理

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

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

数码管左侧两位显示时钟计时;

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

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

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

1. 时钟计时与控制。

2. 数码管显示控制。 

五:实验源码(完整源码查看 demo 源文件) 

顶层设计

输入输出信号如下表:

 

 

 

 

 

 

 

 

数字时钟产生与控制模块设计

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

输入输出信号如下表: 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

时钟分频模块 

 

数码管显示模块设计 

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

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

 

六:实验现象 

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

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

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

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


http://www.ppmy.cn/embedded/14125.html

相关文章

静态代理和动态代理的区别

静态代理和动态代理都是代理模式的实现方式,他们的主要区别在于代理类的创建时间和方式: 静态代理: 在编译时就以确定好代理类和被代理类的关系,代理类是在编译期间就确定好的. 静态代理需要为每一个被代理类创建一个代理类,如果系统中有多个类需要代理,就会创建大量代理类,…

如何查看项目中使用的Qt版本

如何查看项目中使用的Qt版本 1.点击左下角电脑按钮查看Qt版本。 2.点击左侧栏项目按钮查看Qt版本。

Java-IDEA-类注释快捷键

1 需求 2 接口 3 示例 File-->Settings-->Editor-->File and Code Templaes中的Class /*** ClassName: ${NAME}* Description: TODO* Author: TODO* Version: TODO* Date: ${DATE} ${TIME}*/ 4 参考资料 IDEA设置类快捷注释_idea add to custom tags-CSDN博客 IDE…

Linux的磁盘分区,格式化,挂载

1.需要提前添加几个磁盘,以做实验 2.把nvme0n2磁盘用来分区实验 3.分了一个主分区,和一个扩展分区(扩展分区是不能使用的,所以又在扩展分区里分了一个逻辑分区)分区的大小自己定义 4.格式化分出来的区,这…

java小作业(10)---编写三角形类(第二遍)

一.代码: public class Sain {private double yibian;private double erbian;private double sanbian;public Sain(double yibian,double erbian,double sanbian){ //初始化用逗号逗号逗号this.yibianyibian;this.erbianerbian;this.sanbiansanbian; …

【已解决简单好用】notepad++怎么设置中文

打开Notepad软件。点击软件界面顶部菜单栏中的“Settings”选项。在下拉菜单中选择“Preferences”进行语言设置。在打开的设置窗口中,找到“General”选项。在“General”选项中,找到“Localization”(界面语言)项。在下拉菜单中…

FLAML框架学习干货整理

一、FLAML介绍 FLAML (Fast and Lightweight AutoML) 是一个用于自动机器学习(AutoML)的 Python 库,旨在快速且资源效率高地找到机器学习任务的最优模型和其超参数。它由微软研究院开发,适用于广泛的机器学习任务,如分…

【声呐仿真】学习记录0-服务器配置docker、ros环境

【声呐仿真】学习记录0-服务器配置docker、ros环境 前言一、~~0.设置mobaXterm~~1.拉取镜像2.服务器开启xhost,可视化(rviz、gazebo)3.创建容器,挂载数据卷4.测试宿主机与容器数据是否同步5.测试5.0测试xclock5.1测试ros小乌龟5.2…