一种简单的LED显示器驱动电路的设计

🏠 首页 《无线电》杂志 2005年 🔗 第6期 🔗 第42页 分类:电脑·单片机·通信 🔗 何青连 🔗

在单片机应用系统中,如果采用单片机的并行口设计一个动态显示的7段LED显示器驱动电路,则电路复杂,所用芯片较多,成本较高。如果LED显示器与单片机不在同一电路板上,不仅需要较多的连线,而且由于连线较多很可能引起干扰。

利用单片机的串行口结合74HC164串入并出移位寄存器来静态地驱动LED显示器虽然是一种简便省事的方法,但笔者发现,线路设计及程序编制是简单了,但是显示板面积却大了不少,因为5位LED显示器需要5个74HC164芯片,而且每位显示器又需要8个段限流电阻。

笔者最近总结出一种把动态显示器驱动与静态显示器驱动结合的设计方法。

图1是该电路的原理图。笔者仍然采用单片机的串行口通过74HC164串入并出移位寄存器来输出LED的段驱动信号,每个LED显示器的段信号都连在一起,并与74HC164输出的段驱动信号连接。每个LED显示器的位驱动信号由单片机的P10~P14口通过ULN2004驱动集成块分别驱动,注意LED需用共阴数码管。ULN2004驱动集成块是达林顿反相缓冲器阵列,每个输出端可吸收500mA的电流,且价格便宜。图2是该集成块的引出端功能图。

图2
图2 🔍原图 (567×370)
图3
图3 🔍原图 (567×333)

读者可能已经看出,本电路的段驱动信号是按静态的显示驱动电路来设计的,而位驱动信号是按动态的显示驱动电路来设计的。所以编制显示程序时一定要按动态的显示驱动程序来编。程序编制逻辑如下:

1.串行口每输出8位段驱动信号后,相应的位信号要有效,而且位驱动信号要停留一定的时间,如5ms;

2.输出全部无效位信号;

3.输出另一位的8位段驱动信号,然后输出相应的位有效信号。

如此反复循环即可正确地显示各位信号。注意,位信号停留的时间不可太长,设计时应以数据循环输出的频率不小于40Hz不大于60Hz为好。小于40Hz信号可能会闪烁。

笔者利用定时器T0定时5ms作为每位显示的时间信号,根据图1用C语言编制的显示驱动程序见本期配刊光盘。

文/何青连