LED数码管显示方式有动态显示和静态显示两种。
1.静态显示
(1)静态显示原理
所谓静态显示就是数码管的各笔划段都由具有锁存能力的I/O端口引脚驱动,单片机将段码写入锁存器并由其持续驱动每个数码管显示,到下一次段码更新之前数码管的显示不会发生改变。当系统需要用静态显示的方法驱动多个数据管时就需要使用多个具有锁存能力的I/O端口,每个端口驱动一个数码管显示,静态显示电路连接示意图如图5-4所示。
从图5-4中可以看出,4个数码管所有的位选线(公共端)连接在一起,单片机使用4个独立的I/O端口分别连接数码管各段码位,这样就实现了4个数码管的静态显示。
静态显示的优点在于程序设计较为简单,段码由锁存器持续驱动,数码管一直处于显示状态且亮度大、不闪烁,单片机控制输出后即可继续处理其他任务,因此静态显示驱动方式系统开销较小。但由于静态显示要求每个数码管都需要独立驱动,在显示多个数据时占用I/O资源比较多,硬件成本较高,所以一般静态显示多用于显示位数比较少或CPU负载较重,无法再承担扫描任务的应用系统中。
图5-4 静态显示电路连接示意图
(2)静态显示扩展电路
在实际应用中,如遇到必须要采用静态显示又不能太浪费I/O口资源的场合,一般会采用扩展芯片的方式进行显示控制。图5-5所示为8255控制3位共阴型数码管显示的电路示意图。在程序中可将相应的段码(字形码)写入8255的PA、PB、PC口,显示器就能够稳定地显示3位字符。
图5-5 8255控制3位共阴型码管显示电路示意图
还有一种扩展方法是利用串、并转换来设计静态显示电路,74LS164扩展数码管显示电路示意图如图5-6所示。74LS164是8位并行输出串行移位寄存器,可实现串行输入,并行输出,此处的功能是将单片I/O端口输出的串行数据译码并在其并口线上输出,Q0~Q7并行输出端分别接LED显示器的a~dp各段对应的引脚上,从而驱动LED数码管显示。
单片机可通过端口引脚2向74LS164发送脉冲信号,通过端口引脚1串行输出所要显示字形的段码,经过74LS164转换成并行后输出到数码管显示。当需要多位数码管显示时,可使用74LSl64的移位功能,后一个段码会把前一个段码通过前一器件的Q7进位到下一个74LS164中,从而实现多位显示。(www.xing528.com)
图5-6 74LS164扩展数码管显示电路示意图
2.动态显示
(1)动态显示的原理
数码管的动态显示是通过程序轮流驱动每个数码管,控制数码管依次显示,并利用人眼的“视觉暂留”效应来实现的。它特点是在同一时刻只允许一个数码管显示,多个数码管在极短的时间内依次显示一次完成一个显示周期的扫描。在电路上动态显示的接法是把所有数码管的8个笔划段(a~dp段)连在一起,把每个数码管的公共极COM端独立地受控于另外的I/O端口,动态显示电路连接示意图如图5-7所示。在电路中,控制数码管a~dp的字型段数据我们称为“段码”,而控制数码管COM选通的D0~D3称为“位码”。
图5-7 动态显示电路连接示意图
单片机输出段码时,所有数码管都会收到相同的段码,但当前究竟是哪个数码管显示则取决于COM端。因而动态显示的本质就是分时显示,通过轮流控制各个数码管的COM端,使其对应的数码管使能,进而控制当前显示的位置。在扫描过程中,每个数码管的点亮时间是极为短暂,利用人的视觉暂留时间及发光二极管的余辉效应,给人的感觉就是一组稳定的显示数据。所以在动态显示中尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快就不会有闪烁感。
(2)动态显示扩展电路
在使用类似图5-7的电路时,虽然多个数码管的段码连接在一起并共用同一段I/O端口,节省了I/O端口资源,但位码却仍是独立连接的。因而,我们可以通过一些扩展电路来进一步压缩段码和位码所占用的I/O口的数量,节约端口资源。前面内容介绍过使用74LS164扩展电路来压缩段码所占据I/O口的数量,当然这种方法同样也适用于位码,但在此处介绍一种新的方法,通过一些译码芯片(诸如74LS138)等来实现位码的扩展。
74LS138是一款3-8线译码器,可接受3位二进制加权地址输入,当使能时可提供8个互斥的低有效输出Y0~Y7。当使用8个LED数码管,若采用传统的动态显示独立位码选通线的方式则共需要8个I/O引脚来控制位码,但若按图5-8方式增加一个译码器电路,那么仅需要使用3位I/O端口即可完成。可见在一些数码管个数较多而I/O引脚又不充裕的场合,使用译码扩展电路可以有效地节省硬件资源。
图5-8 使用译码芯片扩展位码
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。