品牌 | NXP | 型号 | 74HC595 |
批号 | 09 | 封装 | SOP-16 |
营销方式 | 厂家直销 | 产品性质 | 热销 |
处理信号 | 模拟信号 | 制作工艺 | 半导体集成 |
导电类型 | 双极型 | 集成程度 | 小规模 |
规格尺寸 | 100(mm) | 工作温度 | -40~85(℃) |
静态功耗 | 100(mW) | 类型 | 显示IC |
用74HC595芯片驱动LED的电路设计
HC595芯片是74系列芯片的一种,具有速度快,功耗小,操作简单的特点,可以很方便地用于单片机接口进
行驱动LED的操作.本文介绍这种芯片的特点和使用方法,并给出软硬件的设计实例.
关键词:LED显示器;串行接口;单片机
中图分类号: TP36812 文献标识码: B 文章编号: 1001 - 3881(2004)12 - 151 - 2
The Circuit Design of L ED Display Drived by74HC595
ZHAI Zhen1, ZHANG Chun2ling2
(11College of Materials Engineering , Zhengzhou University , Zhengzhou 450002 , China ;
21Zhengzhou VCOM Company , Zhengzhou 450001 , China)
Abstract :The characteristic and the using method of74HC595were introduced , and the examples of hardware and software design were
given.
Keywords :LED display ; Serial interface ; Single chip microcomputer
0 前言七段发光二极管显示器,又叫LED显示器,因
其价格低廉,功耗较小和性能可靠等优点,在各种仪
器仪表中得到了广泛的应用.现在市场上出售的专用
LED驱动器种类有很多,且大多数功能较多,但价格
相应地也较高,如果用在低成本的简单系统中,不仅
是一种资源的浪费,而且增加了产品的成本.用
74HC595芯片驱动LED有以下特点:速度较快,功耗
较小, LED的数目多少随意,既可以控制共阴极的
LED显示器,也可以控制共阳极的LED显示器,可
以软件控制LED的亮度,还可以在必要的时候关断
显示(数据保留),以减小功耗,并可随时唤醒显示.
用它设计的电路,不仅软硬件设计简单,而且功耗
低,驱动能力强,占用的I/ O口线较少,是一种造价
低廉,应用灵活的设计方案.
174HC595的使用说明
74HC595内含8位串入,串/并出移位寄存器和8
位三态输出锁存器.寄存器和锁存器分别有各自的时
钟输入(SCLK和SLCK),都是上升沿有效.当SCLK
从低到高电平跳变时,串行输入数据(SDA)移入寄
存器;当SLCK从低到高电平跳变时,寄存器的数据
置入锁存器.清除端(CLR)的低电平只对寄存器复
位(QS为低电平),而对锁存器无影响.当输出允许
控制(EN)为高电平时,并行输出(Q0~Q7)为高
阻态,而串行输出(QS)不受影响.图174HC595
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的占空比就行了.
2 软硬件设计实例
211 硬件电路
图2是用AT89C2051与74HC595接口设计的显示
面板电路.
图274HC595与AT89C2051单片机的接口
P1口的P115,P116,P117用来控制LED的显示,
分别接到SLCK,SCLK和SDA脚.三个数码管用来显
示电压值的大小.在电路板上, LED3在最左边,
LED1在最右边,送数据时,先送LED3的显示码,最 151 《机床与液压》20041No112
后送LED1的显示码.LED的亮度用PR1~PR3的阻
值来控制.
212 显示驱动程序
用DISP1,DISP2,DISP3三个连续的单元存放显
示数据,在CPU初始化完成后,调用CLRDISP子程
序清除74HC595的寄存器,在以后调用显示子程序
DISPLAY前就不用再调用清除子程序了.现将两个子
程序写出如下:
清除子程序:
CLRDISP :
MOV R2 , # 24 ;三个数码管,一共24位
CLRBIT:
CLR SCLK;寄存器时钟拉低
CLR C;寄存器清零
MOV SDA , C;送入74HC595
SETB SCLK;时钟的上升沿送入寄存器
DJNZ R2 , CLRBIT;送完24位
RET;子程序返回
显示子程序:
DISPLAY:
CLR SLCK;锁存器时钟拉低
MOV R3 , # 3;三个数码管
MOV R0 , # DISP3;从第三个开始送
DISP1 :
MOV A , @R0;送8位数到74HC595
MOV R2 , # 8
DISP2 :
CLR SCLK
RLC A
MOV SDA , C
SETB SCLK
DJNZ R2 , DISP2;送完一个字节
DEC R0;送下一个数码管的显示数据
DJNZ R3 , DISP1;送完三个字节
SETB SLCK;时钟的上升沿寄存器数据送
入锁存器
RET;子程序返回
3 结束语
从以上例子可以看出,用74HC595设计LED驱
动电路,硬件和软件的设计都不存在复杂的技术问
题,特别是软件设计.另外,74HC595不仅可以用来
驱动LED显示器,而且能够用来驱动发光二极管,
每个74HC595可以同时驱动8个发光二极管.在I/ O
口线较为紧张的情况下,这不失为一种解决方案.在
对产品的体积要求不高,并且希望降低成本时,采用
这种方案较为理想.
参考文献