动态数码管的原理之前已经说过,但是之前说的只是它的工作原理,今天我们来说说动态数码管的应用。今天通过FPGA编程,驱动8个动态数码管显示“时-分-秒”。
下图是4位共阳动态数码管的工作时序。某一时刻控制某一个位选并给一个8位的段选数据,则该数码管会显示相应的数据,通过快速的扫描,就会看到4个数码管同时亮,并且显示不同的数字。
首先来看看我们今天所使用的动态数码管的硬件原理图。
从原理图中我们可以看出,数码管的段选由74HC245芯片驱动,数码管的位选由74HC138驱动。
下面我们来看看这两个芯片的手册及功能,首先看看74HC245的手册
第一幅图是对74HC245芯片功能的描述,第二幅图是74HC245芯片内部的逻辑结构,从这两张图中我们可得知:74HC245是一个带有3态输出的双向驱动缓冲器。也就是说当确定方向之后,输入是什么,输出就是什么,只不过输出的电流稍大一点儿而已。
我们再来看看74HC138芯片手册
第一幅图是74HC138的功能描述,第二幅图是74HC138的真值表,从这两幅图中可以得出,74HC是一个3线(输入)——8线(输出)的译码器,ABC三个输入决定Y0-Y7八个中的哪一个为低电平。所以从这里我们可以得出,硬件原理图中的数码管为共阴数码管。
明白了硬件电路原理图及芯片手册之后,下面我们开始FPGA的编程。本次设计中,FPGA程序总共由三大模块组成,分别是时间计时模块,数码管译码模块、动态数码管驱动这三部分组成,如下图。
本设计中,其他模块的代码太长,无法全部截屏,所以这里只把数码管译码模块和动态数码管驱动这两部分的Verilog代码贴出来供参考,其他的代码请大家关注微信号“xiaomage_group”查看详细内容~~~~
下面我们将写好的代码进行全局综合编译,编译无误之后下载入FPGA电路板中,验证设计的正确性。
这是下载后实际拍出来的效果,从图片中可以看出,该设计的确实现了计时的功能,能够显示“时-分-秒”的功能,说明我们的设计时没有问题的,哈哈哈哈~~~~~
更多详细内容请大家关注微信号“xiaomage_group”查看~~
文章评论(0条评论)
登录后参与讨论