原创 FPGA学习之基于74HC164的静态数码管显示

2017-5-12 22:44 3457 12 12 分类: FPGA/CPLD

今天我们通过两个静态数码管实现0-99的计数,且每500ms计一个数。

我们首先来看看基于74HC164的静态数码管显示的电路原理图~

640.webp

这就是两个静态数码管的原理图。大家从图中可以看出,两个数码管的公共端3,8引脚全部接的是GND,所以说这是两个共阴数码管;从图中还可以看出这两个数码管由两个74HC164芯片驱动,并且第二个74HC164芯片的AB引脚接的是第一个芯片的QH。那么下面我们通过数据手册来看看这两个芯片是如何驱动两个共阴数码管的,并且在硬件电路中为什么这么接呢?

640.webp (1)

这是在数据手册中找到的真值表和逻辑结构图。

下面我就带着大家一起看看这个真值表和逻辑结构框图。

首先从真值表中可以看出,无论clock及AB引脚为什么电平,只要clear为低电平,则QA,QB,...,QH的输出均为低电平,我们从硬件电路图中可以看出,在电路图中clear引脚已连接至VCC,所以对于clear为低电平的情况就不用考虑;其次在clock的下降沿,无论AB输入什么电平,QA,QB,...,QH的输出均不改变;再者,在clock的上升沿,只要AB输入有一个为低电平,QA的输出为低电平,且QB的输出为QA的上一个状态,QC的输出为QB的上一个状态....;最后,在clock的上升沿,AB同时输入为高电平时,QA的输出为高电平,且QB的输出为QA的上一个状态,QC的输出为QB的上一个状态....。

大家从上面的描述中可以发现,在时钟的上升沿,QA的输出值为AB相与之后的结果,而QB的输出值为QA的上一个状态,QC的输出值为QB的上一个状态,依次下去...。这是为什么呢?从逻辑结构框图中可以看出,这是一个8位的移位寄存器,所谓移位寄存器的工作原理,类似于实际中东西的传递,如果依次来8个时钟的上升沿呢,这个时候最开始AB相与的结果传到QH上,第二次AB相与的结果传到QG上,一直到第八个AB相与的结果才到QA上,这就是移位寄存器的工作过程。原理图中第二个芯片的AB输入接在第一个芯片的QH输出,其实就是将8个串联的D触发器合并成16个D触发器的串联,这个时候需要16个时钟的上升沿,第一次的输出才会传到第二个芯片的QH上,依次传递...。

明白了原理之后,下面我们开始FPGA程序的编写,让这两个数码管实现0-99的计数,计到99之后回0继续计数。

640

这就是FPGA综合编译之后的硬件结构框图,由计数模块“count”,数码管编码模块“display_decode”及74HC164的驱动模块“driver_74hc164”这三部分组成。其中计数模块实现0-99的计数,编码模块实现0-9数字对应到数码管显示的编码值,驱动模块则实现74HC164移位寄存器的功能。各部分代码太长,下面把顶层文件的元器件例化代码贴出来供参考。

640 (1)

这就是Verilog语言顶层元器件例化的代码格式。

我们将编写后的代码下载到FPGA板子中,看看实际的效果怎么样。这里因为0-99计数是每500ms计一次数,如果用Modelsim进行仿真的话,估计得等一个世纪才能仿真结束,到时候电脑非得卡死不可,所以这里就不仿真了。

最后实际的效果和我们之前预想的完全一样哦,说明设计通过了,哈哈哈哈~~~~


文章评论0条评论)

登录后参与讨论
相关推荐阅读
小马哥电子 2021-06-22 14:12
基于Xilinx FPGA的PCIE接口硬件设计
最近一个项目中,需要在xilinx v7690t的FPGA高速接口上挂载PCIEx8接口,基于此项目,和大家分享一下在xiinx FPGA上如何挂载PCIE接口。 首先,要在FPGA上挂载PCIE接...
小马哥电子 2017-08-17 17:17
数字收音机制作(1)
之前一直想做一款数字收音机来着,但是由于各种原因,刚画完原理图就放弃了。这次抽出时间,重新设计方案,制作一款小巧mini型的数字收音机。    本次重新设计方案之后,该收音机目前可具备的功能有:   ...
小马哥电子 2017-06-06 12:11
项目实战之MOS管啸叫
最近做一个点火器项目时要使用单片机的IO口控制一个36V的P沟道MOS管的开关,但是在电路的设计验真阶段,出现了MOS管的啸叫。MOS管竟然啸叫,我的天,这还是第一次碰到。下面我来还原一下场景。 首先...
小马哥电子 2017-05-23 22:21
FPGA学习之基于TLC549的直流电压采集及显示
最近由于毕业论文的事,小编是忙的不可开交,今天抽出点时间写篇文章,冒个泡,以防大家把我给遗忘了,哈哈哈哈~ 言归正传,今天我们的任务是通过FPGA控制TLC549模数转换芯片(ADC)采集直流电压值,...
小马哥电子 2017-05-18 18:55
FPGA学习之高速ADC采集
ADC(Analog-to-Digital Converter,模拟-数字转换器)在硬件电路中是经常见到的器件,音频信号的采集、温度的采集等等,凡是涉及到模拟信号转数字信号的电路,都会用到ADC。 A...
小马哥电子 2017-05-15 11:19
FPGA学习之基于动态数码管的时钟显示
动态数码管的原理之前已经说过,但是之前说的只是它的工作原理,今天我们来说说动态数码管的应用。今天通过FPGA编程,驱动8个动态数码管显示“时-分-秒”。 下图是4位共阳动态数码管的工作时序。某一时刻控...
我要评论
0
12
1
2
3
4
5
6
7
8
9
0
关闭 站长推荐上一条 /4 下一条