黄勇
摘要:74HC595是一串行输入/串行输出或并行输出的8位芯片,介绍了该芯片在LED点阵显示、双色LED点阵显示及多位LED点阵显示应用中的硬件设计及软件设计,对硬件设计及软件设计的关键环节进行了详细阐述。
关键词:74HC595;LED点阵;显示系统
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2018)36-0256-02
随着单片机技术的不断发展以及高亮度LED发光管的出现,LED点阵显示屏作为一种新型的传播媒体迅速发展起来。LED显示屏主要应用在医院、银行、车站、码头、广告窗等各种公共场所。LED点阵显示屏具有成本低、亮度高、耗电省、使用寿命长、色彩鲜艳、视角广、屏幕尺寸大、可视性好等特点,是目前较为先进的宣传显示媒体。LED点阵显示屏的驱动需要占用多个并行口资源,而用于驱动LED点阵的51单片机只有常用的P0至P2三个并口,在实际应用系统设计中往往采用74HC595进行串行到并行的扩展,这样就节约了大量的并口资源。本文详细介绍了74HC595芯片在LED点阵显示、双色LED点阵显示及多位LED点阵显示应用中的硬件设计及软件设计。
1 74HC595的结构和工作原理
74HC595是8位串行输入/输出或串行输入/并行输出的器件。内部具有8位移位寄存器、一个锁存器、三态输出。其功能结构如图1。
74HC595的工作过程如下:每当SHcp上升沿到来时,Ds引脚当前电平值在移位寄存器中左移一位,在下一个上升沿到来时移位寄存器中的所有位都会向左移一位,同时Q7'也会串行输出移位寄存器中高位的值,这样连续进行8次,就可以将一个数(8位)送到移位寄存器;然后当STcp上升沿到来时,移位寄存器的值将会被锁存到锁存器里,在OE引脚为低电平时,数据从Q0~7引脚输出。
2 LED点阵显示
LED点阵显示屏是由多个发光二极管组成。按点阵可以分为5×7、8×8以及16×16规格的显示屏模块。它是一种通过控制发光二极管的显示方式,即靠灯的亮灭来显示字符。一般用来显示文字、图形、图像等各种信息。在物理连接上分共阴极连接和共阳极连接两种。LED点阵结构原理如图2所示,显示时,先通过单片机的并口输出位选择信息0111111,即选中第一行,然后通过单片机另一个并口输出第一行对应的帧信息,1表示亮,0表示不亮。然后再输出位选择信息10111111,选择第二行,再输出第二行对应的帧信息,如此,一直扫描到第8行。再软件中,按一定的频率依次输出位选择信号及每行的帧信息,利用人的视觉惯性就能看到稳定的字符或图形显示。
3 74HC595在LED点阵显示中的应用
3.1 74HC595在单色LED点阵显示中的应用
从上面的LED点阵显示原理上,可以看出,一个8×8点阵显示就需要占用单片机的2个并口资源,在实际使用中,可以用2片74HC595芯片,一个74HC595芯片只需连接单片机的3位输入输出口即可输出8位信息。具体连接是:74HC595芯片的Ds引脚(串行输入)、SHcp引脚(移位寄存器的移位脉冲输入)、STcp引脚(锁存器的锁存脉冲信号输入)。输出使能端OE接地。相关程序如下:
sbit LATCH =P1^0; 锁存时钟输入
sbit SRCLK=P1^1;移位时钟输入
sbit SER= P1^2;位数据线输入
void Send(unsigned char dat)
{unsigned char i;
for(i=0;i<8;i++) //发送字节
{SRCLK=0;
SER=dat&0x80; //发送dat的最高位
SRCLK_B=1;
dat<<=1;}
LATCH=0; //锁存
_nop_();
LATCH=1;}
3.2 74HC595在双色LED点阵显示中的应用
一个双色8×8LED点阵的驱动需要3个并口,一个并口输出位选择信号,一个并口输出一种颜色的帧信息,另一个并口输出另一个颜色的帧信息。显然占用了单片机太多的并口资源。实际使用中,可以用3片74HC595,一片输出位选择信息,另二片输出颜色的帧信息。二片输出颜色的帧信息的74HC595在连接上要进行级联。即一片74HC595的输入端连接在另一74HC595芯片的串行输出端Q7,特别注意的是,二片芯片的SHcp引脚和STcp引脚需分别连接在一起,使用相同的移位脉冲源及相同的锁存信号。在软件设计中,需考虑级连的情况,先将二种颜色的帧信息发完,再进行锁存。相关程序如下:
void SendByte(unsigned char dat)
{ unsigned char i;
for(i=0;i<8;i++)
{SRCLK=0;
SER=dat&0x80;
SRCLK=1;
dat<<=1; }}
void Send2Byte(unsigned char dat1,unsigned char dat2)//發送2个字节
{ SendByte(dat1);
SendByte(dat2); }
void Out595(void) //锁存帧信息
{ LATCH=0;
_nop_();
LATCH=1;}
3.3 74HC595在多位LED點阵显示中的应用
在多位LED点阵的显示系统中,也可以使用74HC595的级连来驱动每个LED点阵。设有4个8×8的LED点阵,若要在这四个LED上同时显示4个字符的话,则需要5个并口资源。这就占用了单片机太多的并口资源。实际上,51单片机最多可以使用4个并口。现在考虑使用5个74HC595,一个74HC595作为位选择信号输出,另外4个74HC595级连,每个74HC595驱动一个LED点阵。在硬件连接上,将四个LED点阵的位选择端连接再一起,用来输出帧信息的4个74HC595采用级联,芯片的SHcp引脚和STcp引脚需分别连接在一起。再软件设计上需考虑到74HC595的级连,先发出4个LED的帧信息,然后再发出锁存信号。相关程序如下:
void Send4Byte(unsigned char dat1,…,unsigned char dat4)//发送4个字节
{ SendByte(dat1);
SendByte(dat2);
SendByte(dat3);
SendByte(dat4);}
void Out595(void) //锁存帧信息
{ LATCH=0;
_nop_();
LATCH=1;}
4 结束语
本文详细地阐述了74HC595在LED点阵显示系统、双色LED点阵显示系统及多位LED点阵显示系统中的硬件设计及软件设计的关键环节。并给出了硬件连接方案和关键程序段。
参考文献:
[1] 刘援琼.基于AT89C51单片机的LED点阵显示系统设计[J].仪器仪表用户,2015,22(1):21-23
[2] 杨富强,朱利强.基于单片机的LED 点阵动态显示系统[J].工业控制计算机,2013,26(1):101-102
[3] 漆强.LED 矩阵显示屏实验系统的设计[J]. 实验科学与技术.2014,12(2):19-21.
[4] 陈晨,孙涛.LED 显示屏控制器设计[J]. 电子世界,2013(3):26-26.
[通联编辑:王力]