【紫光同创国产FPGA教程】【PGC1/2KG第四章】数码管动态显示实验例程

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

适用于板卡型号:

紫光同创PGC1/2KG开发平台(盘古1K/2K)

一:盘古1K/2K开发板(紫光同创PGC2KG开发平台)简介

盘古1/2K 开发板是一套基于紫光 FPGA 的开发套件,以紫光 Compa 系列PGC1KG-LPG100 / PGC2KG-LPG100 器件为核心,预留丰富的扩展 IO 及数码管、按键、LED 灯,为用户提供基本的硬件环境。

二:实验目的

动态控制 4 位数码管显示不同的数值;
三:实验要求
四个数码管显示不同的数字,按键 K1 控制第一个数码管,按一下数字加1,从0到9,按键 K2 控制第二个数码管,按一下数字加 1,从 0 到 9,按键 K3 控制第三个数码管,按键 K4 控制第四个数码管。
四:实验原理
数码管是一种半导体发光器件,其基本单元是发光二极管。能显示 4 个数码管叫四位数码管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极 COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM 接到地线 GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。

【紫光同创国产FPGA教程】【PGC1/2KG第四章】数码管动态显示实验例程_第1张图片

4 位共阴数码管内部管脚连接图如下:

【紫光同创国产FPGA教程】【PGC1/2KG第四章】数码管动态显示实验例程_第2张图片

段选:段选由 8 根 led 灯组成,分别为 a,b,c,d,e,f,g,dp;
由段选信号控制某段数码管点亮;
位选:位选由 4 组 8 个段选 LED 组成,分别为 seg1,seg2,seg3,seg4;
由选通信号控制第几块数码管点亮;
例:如果我们只点亮第一位的 A:需要将 11 脚配置高电平,其他段选(1-
5,7,10,11)配置低电平;将 12 脚配置低电平,其他位选脚配置(6,8,9)
高电平;
点亮数码管原理:
输入相应的电平点亮一根根小火柴 a-b-c-d-e-f-g-dp。如果数码管是共阴
极,给高电平 1 即可相应点亮,反之如果是共阳极,给低电平 0 即可相应点
亮。
MES2KG 数码管底板的数码管使用共阳数码管;

【紫光同创国产FPGA教程】【PGC1/2KG第四章】数码管动态显示实验例程_第3张图片

数码管显示出 0~9,代码如下,通过传递要显示的数值给到 key 上,可显示对应数值,sel 选择对应的数码管,如需 4 个如果要显示同样的字符,仅需将 dig 的 4 位全部置 1,需要做好对应编码;

【紫光同创国产FPGA教程】【PGC1/2KG第四章】数码管动态显示实验例程_第4张图片

硬件连接上无法同一个时间点显示出不同的数值,我们可以通过刷新显示的方式造成视觉上同时显示了不同的数值,依据如下:
人眼对于时间频率的响应近似一个滤波器,在一般室内强光下,对 15~20Hz信号最敏感,有很强闪烁感(flick),大于 75Hz 响应为 0,闪烁感消失。刚到达闪烁感消失的频率叫做临界融合频率(CFF)。在较暗的环境下,呈低通特性,且CFF 会降低,这时对 5Hz 信号最敏感,大于 25Hz 闪烁基本消失。电影院环境很暗,放映机的刷新率为 24Hz 也不感到闪烁;这种特性也可以解析为视觉暂留特性,即当影像消失/变化时,大脑的影像不会立刻消失,而是保留一个短暂时间。
在设计数码管闪烁式显示时,对于人眼观测来说,频率越高越好,但是数码管中的 LED 灯珠点亮对于高电平(关注发光响应时间)是有要求的,故而不是越高越好,取一个适当的刷新频率即可,实验中我们取刷新率为 100KHz。
方案设计:
1、按键消抖:参考按键流水灯实验
2、按键计数:参考按键流水灯实验
3、数码管的分时显示;

【紫光同创国产FPGA教程】【PGC1/2KG第四章】数码管动态显示实验例程_第5张图片

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

a. 顶层模块

【紫光同创国产FPGA教程】【PGC1/2KG第四章】数码管动态显示实验例程_第6张图片

【紫光同创国产FPGA教程】【PGC1/2KG第四章】数码管动态显示实验例程_第7张图片

【紫光同创国产FPGA教程】【PGC1/2KG第四章】数码管动态显示实验例程_第8张图片

【紫光同创国产FPGA教程】【PGC1/2KG第四章】数码管动态显示实验例程_第9张图片

【紫光同创国产FPGA教程】【PGC1/2KG第四章】数码管动态显示实验例程_第10张图片

【紫光同创国产FPGA教程】【PGC1/2KG第四章】数码管动态显示实验例程_第11张图片

【紫光同创国产FPGA教程】【PGC1/2KG第四章】数码管动态显示实验例程_第12张图片

 b.按键消抖模块

【紫光同创国产FPGA教程】【PGC1/2KG第四章】数码管动态显示实验例程_第13张图片

  c.按键计数模块 

【紫光同创国产FPGA教程】【PGC1/2KG第四章】数码管动态显示实验例程_第14张图片

【紫光同创国产FPGA教程】【PGC1/2KG第四章】数码管动态显示实验例程_第15张图片

d.时钟分频模块  

【紫光同创国产FPGA教程】【PGC1/2KG第四章】数码管动态显示实验例程_第16张图片

e.数码管显示模块  

【紫光同创国产FPGA教程】【PGC1/2KG第四章】数码管动态显示实验例程_第17张图片

六:实验现象

KEY1~4 分别控制数码管从左到右的数码管显示,按键 K1 控制第一个数码
管,按一下数字加 1,从 0 到 9,按键 K2 控制第二个数码管,按一下数字加
1,从 0 到 9,按键 K3 控制第三个数码管,按键 K4 控制第四个数码管。

【紫光同创国产FPGA教程】【PGC1/2KG第四章】数码管动态显示实验例程_第18张图片

你可能感兴趣的:(fpga开发)