基于74HC595芯片的驱动LED电路设计


目录

1.LED显示器2.74HC595介绍

3.电路设计

3.1硬件电路

3.2显示驱动程序

结束语

  74HC595芯片是74系列的一种,具有速度快、功耗小、操作简单的特点,可以方便地用于单片机接口进行驱动LED的操作。本文介绍这种芯片的特点和使用方法,并给出软硬件的设计实例。

  1.LED显示器

  七段发光二极管显示器,又叫LED显示器,因其价格低廉、功耗较小和性能可靠等优点,在各种仪器仪表中得到了广泛的应用。现在市场上出售得到专用LED驱动器种类有很多,且大多数功能较多,但价格相应地也较高,如果用在低成本的简单系统中,不仅是一种资源的浪费,而且增加了产品的成本。用74HC595芯片驱动LED有以下特点:速度快,功耗较小,LED的数目多少随意,既可以控制共阴极的LED显示器,也可以控制共阳极的LED显示器,可以软件控制LED的亮度,还可以在必要的时候关断显示(数据保留),以减少功耗,并可随时唤醒显示。用它设计的电路,不仅软硬件设计简单,而且功耗低,驱动能力强,占用I/O口线较少,是一种造价低廉,应用灵活色设计方案。

  2.74HC595介绍

  74HC595内含8位串入、串/并出移位寄存器和8位三态输出锁存器。寄存器和锁存器分别有各自的时钟输入(SCLK和SCLK),都是上升沿有效。当SCLK从低到高电平跳变时,串行输入数据(SDA)移入寄存器;当SLCK从低到高电平跳变时,寄存器的数据置入锁存器。清除端(CLR)的低电平只对寄存器复位(QS为低电平),而对锁存器无影响。当输出允许控制(EN)为高电平时,并行输出(Q0~Q7)为高阻态,而串行输出(QS)不受影响。

74HC595

  图1 74HC595

  74HC595最多需要5根控制线,即SDA、SCLK、SLCK、CLR和EN。其中CLR可以直接接到高电平,用软件来实现寄存器清零;如果不需要软件改变亮度,EN可以直接接到低电平,二勇硬件来改变亮度。把其余三根线和单片机的I/O口相接,即可实现对LED的控制。

  数据从SDA口送入74HC595,在每个SCLK的上升沿,SDA口上的数据移入寄存器,在SCLK的第9个上升沿,数据开始从QS移出。如果把第一个74HC595的QS和第二个74HC595的SDA相接,数据即移入第二个74HC595中,照此一个一个接下去,可接任意多个。数据全部送完后,给SLCK一个上升沿,寄存器中的数据即置入锁存器,此时如果EN为低电平,数据即从并口Q0~Q7输出,把Q0~Q7与LED的8段相接,LED就可以实现显示了。要想软件改变LED的亮度,只需改变EN的占空比就行了,

  3.电路设计

  3.1硬件电路

  图2是用AT89C2051与74HC595接口设计的显示面板电路。

显示面板电路

  图2 显示面板电路

  P1口的P115、P116、P117用来控制LED的显示,分别接到SLCK、SCLK和SDA脚。三个数码管用来显示电压值的大小。在电路板上,LED3在最左边,LED1在最右边,送数据时,先送LED3的显示码,最后送LED1的显示码。LED的亮度用PR1~PR3的阻值来控制。

  3.2显示驱动程序

  用DISP1、DISP2、DISP3三个连续的单元存放显示数据,在CPU初始化完成后,调用LRDISP子程序清除74HC595的寄存器,在以后调用显示子程序DISPLAY前就不用再调用清除子程序了。现将两个子程序写出如下:

  清除子程序:

  CLRDISP:

  MOVR2,#24; 三个数码管,一共24位

  CLRBIT:

  CLRSCLK;寄存器时钟拉低

  CLRC;寄存器清零

  MOVSDA,C;送入74HC595

  SETBSCLK;时钟的上升沿送入寄存器

  DJNZR2,CLRBIT;送完24位

  RET;子程序返回

  显示子程序:

  DISPLAY:

  CLRSLCK;锁存器时钟拉低

  MOVR3,#3;三个数码管

  MOVR0,#DISP3;从第三个开始送

  DISP1:

  MOVA,@R0;送8位数到74HC595

  MOVR2,#8

  DISP2:

  CLRSCLK

  RLCA

  MOVSDA,C

  SETBSCLK

  DJNZR2,DISP2;送完一个字节

  DECR0;送下一个数码管的显示数据

  DJNZR3,DISP1;送完三个字节

  SETBSLCK;时钟的上升沿寄存器数据送入锁存器

  RET;子程序返回

  结束语

  从以上例子可以看出,用74HC595设计LED驱动电路,硬件和软件的设计都不存在复杂的技术问题,特别是软件设计。另外,74HC595不仅可以用来驱动LED显示器,而且能够用来驱动发光二极管,每个74HC595可以同时驱动8个发光二极管。在I/O口线较为紧张的情况下,这不失为一种解决方案。在对产品的体积要求不高、并且希望降低成本时,采用这种方案较为理想。

热门标签