第二章 设计方案论证
2.1系统要求
近几年来,单片机的发展十分迅速,它已渗透到诸多学科的领域,以及人们生活的各个方面[2]。本设计采用AT89S52为主控芯片的16*64LED点阵广告牌,该广告牌的色彩艳丽、显示方式多样化、亮度适中、寿命很长、可视的距离远,驱动简单方面等优点。硬件部分主要由一个AT89S52单片机、16个8*8点阵、八片74HC595芯片和一片74HC154芯片等组成。
16*64点阵广告牌的功能:要求广告的各点亮度尽量做到更好,文字的要能清楚的显示出来而且稳定。广告除了能显示文字外还能显示图片,可以将图片先放大再缩小,广告文字的显示模式有左移、右移、上移和下移四种。
开始设计前简单的画出设计电路的硬件原理图框图如图2-1所示:
列 驱 动 电源 复位电路 52 单 片 机 LED点阵显示屏 行驱动 图2-1 电路硬件原理图框图
2.2主控芯片的选取方案论证
方案一:采用可编程逻辑器件(简称为PLD)系统来实现LED点阵内容的显示,可以充分的利用器件里丰富的I/O口资源来驱动LED点阵的行和列。但若采用中大规模的PLD,设计多个接口电路,开发周期长,不易于进一步扩展,同时系统的成本会急剧上升[3]。
方案二:采用AT89S52单片机系统来实现,52单片机体积小,可靠性高,适用范围广,使用方式灵活而简单,价格便宜。另一方面52单片机简单易学,对于数据的处理也速度比较快,因此是很多设计的优先选择。虽然本设计采用的需要使用到单片机很多的外部接口而单片机外部接口明显不够用,但使用74HC595芯片可以节省I/O口达到驱动更加多的LED,控制灵活方面再加上安装和调试的工作也比较的简单方便,使得本设计和制作过程的难度得以降低。综上比较考虑,毅然选择了方案二来完成本设计。
2
2.3 显示屏的显示方式论证
方案一:采用静态方式,这种方式就是直接把所有的发光二极管的一极跟单片机的I/O口连接,所有发光二极管的另外一极就通过电阻然后接到电源上。这种方法可以直接驱动LED,原理也很简单且具有很强的驱动能力,对于LED的点亮方式则可通过限流电阻来进行调节,十分方便,但这种方法的缺点就是很浪费单片机的I/O口不能驱动很多的LED,它适用于那些相对来说比较小的系统。
方案二:采用动态扫描的方式,这一种方式也就是先把LED并联在一起然后跟驱动芯片的输出引脚相连接,而LED发光二极管的另外一端就跟单片机的通用I/O口相连接,控制选通行所对应列LED灯的亮灭。采用这种扫描方案,能够达到驱动比较多的LED的功能要求,控制起来也很灵活,还有一个优点就是占用较少的单片机的I/O口。动态扫描就是一行接一行的去点亮发光二极管,那样仅仅使用一套驱动器就可以驱动很多行的同名列。
根据对方案一和方案二进行比较,经过综合考虑可以发现,动态扫描方式占有较多的优势。而本设计做的是16*64LED点阵广告牌,若采用静态显示I/O口是明显不足的,所以本设计最后选择的方案是方案二。
2.4电源的选取方案论证
方案一:采用普通的干电池作为系统的供电电源,使用这一方案使得电压稳定也方便携带,但它工作的时间比较短显然不利于屏幕的显示,而且使用干电池是需要经常的更换的,这样就会造成了对环境的污染,不利于环保。
方案二:采用自制的直流稳压电源来作为系统的供电电源,使用这一方案电压稳定而且还能持续的工作,既可以用于大屏幕的显示,又不会造成污染的环境,因此本设计中采用了方案二。
2.5设计方案总结
要实现一个功能要求会有不同的方式,只有通过多方面的综合考虑才能从中选取出最优的设计方案。通过方案论证本设计最终的设计方案就是用AT89S52为主控芯片,芯片74HC595来驱动LED显示屏的列,芯片74HC154来驱动点阵显示屏的行,而显示方式采用的是动态扫描,以自制的直流稳压源作为系统的供电电源。
3
第三章 系统硬件电路的设计
3.1硬件电路要求
硬件电路能完成以下功能:16*64LED点阵显示屏可以显示任何汉字,可以实现汉字的左移、右移、上移和下移,还可以实现图像的显示及图像的放大和缩小。通过软件方面的设计可以实现点阵广告牌内容的随时更新,更新起来简单方便。
3.2单片机模块
单片机具有高性价比、高速度、小体积、可重复编程和方便功能扩展、通用灵活等优点[4]。单片机所具有的优点决定了它使用范围的广度,其价格又便宜是很多系统设计的优先选择。在本设计中,是以AT89S52为主控芯片的LED点阵广告牌,单片机的端口通过与驱动器相连来显示数据。单片机的P3.0口接74HC595的11号引脚(SH-CP)移位寄存器时钟输入;P3.1口接74HC595的12号引脚(ST-CP)存储寄存器时钟输入;P3.2口接74HC595的14号引脚(DS)串行数据输入;P3.3口、P3.4口、P3.5口和P3.6口分别接74HC154的A、B、C、D四个地址输入引脚,控制电路的十六路输出,送出行选信号;P3.7接74HC154的G1、G2作为输出使能端,低电平有效。单片机模块电路原理图如图3-1所示:
图3-1单片机模块原理图
AT89S52为ATMEL所产的一种低功耗、高性能CMOS08位微控制器,其内部程序存储器(ROM)为8KB,内部数据存储器(RAM)为256字节[5]。单片机里有32个I/O口,分为P0口、P1口、P2口和P3口,然后每一个I/O口都是8位的。本设计中主要用
4
到的I/O就是P3口,其中74HC595占用了单片机三个I/O口,75HC154占用了5个I/O口。P3口具有内部上拉电阻8位双向I/O口,输出缓冲器可以驱动4个TTL逻辑电平,还可以接受一些控制信号[5]。P3口引脚号第二功能如表3-1所示:
表3-1引脚号第二功能表
引脚号 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第二功能 RXD串行输入 TXD串行输出 INT0外部中断0 INT0外部中断0 T0定时器/计数器外部输入0 T1定时器/计数器外部输入1 WR外部数据存储器写选通 RD外部数据存储器写选通 3.3点阵模块
3.3.1 LED点阵显示原理
本设计采用的是动态扫描,也就是每一次都只选通一行循环选通行,如对16*64点阵的十六行进行循环点亮,采用这样扫描驱动电路的优点就是能够用一套列驱动器来实现很多行的同名列。采用动态扫描,在行驱动和列驱动的作用下,一行一行的将需要显示的数据送到LED点阵显示屏上。一行一行的进行扫描循环扫描十六次就能得到一整屏的字幕,但只有在扫描到某一行时,该行才会有LED灯被点亮,而人眼却能看到一整屏字幕是同时点亮的。其中的原理就是人们常说的视觉惰性,也就是只要一整屏字幕从开始循环到结束的时间在20ms(50Hz)内,人眼看上去就不会感觉得到有闪烁。实验证明临界闪烁频率大约为24Hz,因此采用每秒24幅画面的电影,在人眼看起来就是连续活动的图像[6]。那么对于16*64LED点阵,一共有十六行,则每行扫描时间不能超过20ms/16=1.25ms,这样才能看到一整屏完整的汉字或字符图像。
3.3.2 16*64点阵显示屏
本设计的LED点阵广告牌是使用16个8*8共阳点阵组成的16*64点阵显示屏,主要用来显示汉字实现广告效果,其次也将图片显示到LED点阵显示屏上。16个点阵组成2*8点阵即有两排点阵,每排八个,可以看成A、B两大行和1~8八大列,2*8点阵排列框图如图3-2所示:
5
3.3.3 8*8点阵内部结构
成的16*64点阵在电路中的原理图如图3-3所示:
图3-2 2*8点阵排列框图
和74HC154的Y8-Y15相连接;这样就实现了LED点阵的列驱动和行驱动,而Y0-Y15
图3-3 16*64点阵电路原理图
也就是,通过行和列可以控制任何一个发光二极管的亮灭,那么要显示出汉字或字符也就
光二极管,则要将该行接高电平,该行所对应的列全部接低电平就可以实现了。换句话说
光二极管则要求发光二极管阳极的电平比阴极的电平高,那么如果要点亮某一行的所有发
部结构。LED点阵是由发光二极管组成的,64个发光二极管通过一定的连接方式连接起
就在于LED灯的连接方式不同。共阳型8*8点阵里每一行中的8个LED发光二级管的阳
上显示。而第A行的所有的8*8LED点阵的9、14、8、12、1、7、2、5号引脚就都和74HC154
10、4、3、13号引脚则分别对应第二片74HC595的Q0-Q7号引脚,以此类推,八片74HC595
极都连接在一起,每一列中的8个LED发光二极管的阴极都连接在一起。要点亮一个发
决定了每一小行的64个LED是否选通,从而实现了控制LED的亮灭。16个8*8点阵组
的Y0-Y7相连接;第B行的所有8*8LED点阵的9、14、8、12、1、7、2、5号引脚就都
本设计的16*64点阵广告牌是由多个8*8点阵组成的,因此要深入了解8*8点阵的内
来组成一个8*8点阵。LED点阵可以分为共阳型的点阵和共阴型的点阵,而它们的区别
刚好能驱动16*64LED点阵的列;这样74HC595锁存的8位数据就可以并行输出到点阵
第1列的两块点阵的16、15、11、6、10、4、3、13号引脚分别对应第一片74HC595
的Q0、Q1、Q2、Q3、Q4、Q5、Q6和Q7号引脚,第2列的两块点阵的16、15、11、6、
6