74HC595在LED点阵显示系统中的应用

2018-03-04 07:03黄勇
电脑知识与技术 2018年36期
关键词:双色显示屏寄存器

黄勇

摘要: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.

[通联编辑:王力]

猜你喜欢
双色显示屏寄存器
一块布就是一个显示屏?
Lite寄存器模型的设计与实现
简析《双色丰收南瓜》的壶艺韵味
汽车大灯灯罩双色注射模设计
苍蝇迷恋显示屏
分簇结构向量寄存器分配策略研究*
未来五年LED显示屏出货将保持16%增长
汽车格栅双色注射模具设计
基于AT89S52的手势可控LED滚动显示屏设计
高速数模转换器AD9779/AD9788的应用