叶惠琴
摘 要:文章介绍了一款以单片机AT89S52为控制器的16×16的汉字显示系统的软硬件设计。该系统可实现中英文字符的显示和动态特效显示,并且可以通过级连的方式来扩大显示屏幕的尺寸以达到增加显示内容的目的。
关键词:单片机;16×16点阵;汉字
1 系统说明
文章设计的是一种有AT89S52单片机控制的16×16的LED汉字显示屏。当扫描周期小于24.15ms时,由于人眼视觉残留效应,人眼观察不到的LED为连续稳定的发光,文章采用动态扫描方式显示汉字,所谓动态扫描显示模式简单概括就是逐行轮流点亮。把所有同一行发光管的阳极连接在一起,所有同一列发光管的阴极连在一起,首先送出对应第一行发光管亮灭的数据并锁存,然后选通第一行使其点亮一定的时间,熄灭;再送出第二行的数据并锁存,然后选通第二行使其点亮相同的时间,熄灭;直到第十六行显示完后又重新点亮第一行,这样反复轮回。采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。显示时要把一行中各列的数据都送到相应的列驱动器上。
2 系统结构
整个系统由单片机、74HC595、74HC138、74HC245D和LED点阵组成,显示由四块8*8的LED点阵块组成,以89S52系列单片机为控制核心。单片机的P1.0-P1.3通过74HC245D连接74HC138的输入口A、B、C及138的使能端(控制H1~H8的74HC138的E1及H9~H16的74HC138的E3端);P2.0-P2.4通过74HC245D连接74HC595的输入口SHCP、STCP、DS(第一行R1)、DS第二行R2)及EN(控制两个74HC138的E2)。点阵里面同一行的发光二极管正极接在一起,同一列的負极接到一起。点阵的16列数据线驱动由2 片74HC595级联组成,前一片74HC595的Q7引脚连接下一片的DS引脚,各片的SHcp、STcp引脚分别并联。两块74HC138译码器的16个输出端连接汉字点阵的16个列线控制端。74HC138通过译码选通时输出端为一个低电平,无法驱动点阵里的行,因此在138与点阵之间连接上4953SS,通过138选通4953SS驱动点阵。如图1所示。
图1 点阵显示板总原理图
3 点阵原理说明
8X8点阵共由64个发光二极管组成,每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮;如要将第一个点红色点亮,则24脚接高电平20脚接低电平,则第一个点红点就亮;如果要将第一行点亮,则第24脚要接高电平,而(20、19、18、17、16、15、14、13)这些引脚接低电平,第一行红色就会全部点亮;如要将第一列点亮,则第20脚接低电平,而(24、23、22、21、4、3、2、1)接高电平,那么第一列红色就会点亮。(本项目有双色板及单色板),其硬件接线图如图2所示。文章使用点阵显示汉字是用的16*16的点阵宋体字库,所谓16*16,是每一个汉字在纵、横各16点的区域内显示的。也就是说得用四个8*8点阵组合成一个16*16的点阵。
4 调试分析
4.1 硬件调试问题分析
单色板做了改进,通过74HC245D再连接到138的E2端,控制两块138的选通译码。单色板的反相器接法及使用如图3所示。单色板在保护方面也做了改进。在控制138选通译码的同时控制138有全能端,使它处于译码有效状态。当在高速选通行时对C228进行充放电,只要译码选通达到一定频率,就可以使C228的左端保持一个高电平,E1_2保持低电平,E3_1保持高电平,138处于译码状态。当不需要138译码时,LA处于一个静态模式,E1_2为高电平,E3_1为低电平,使两个138处不译码状态。当通电的屏幕处于不工作状态时,可以使正个屏幕的行处于不选中状态,避免第一行在屏幕不工作也处于亮的状态,起到保护作用。这个电路只适合使用在高频CPU的控制模式下。
图3 单色板的反相器接法及使用
改正方案:(1)使用工作频率更高的CPU。(2)把C228换用容量更大的电容,延长放电时间,达到使E1_2保持低电平,E3_1保持高电平的功能。(3)更改电路控制,断开LA(取下R7),74HC04的3号脚直接接电源正极。由于条件所限,作者选择了方案3。
4.2 软件调试问题分析
(1)第一次使用双色板进行调试时,由于没有把握好595的时序,在送移位脉冲的同时送锁存脉冲,在破坏本来传送在595里面的数据,再送行显示时,整个屏幕处于乱码现象。处理方法:通过模拟串口送完8个字节(显示4个字)后,再模拟一个上升沿,形成一个锁存脉冲,再选中该行。(2)在使用单色板调试时,把EN接地,无法控制,在汉字显示时闪烁感太明显。经过测试后,把EN用一个IO口控制,每次送行数据之前EN置1,使138处于不选中状态,送完数据后再把EN复位,再选中行,通过一段延时再循环操作。通过控制延时的长短可以控制屏幕的亮度,但延时时间不能太长,过长会使屏幕闪烁得更明显。
5 结束语
该项目中遇到了两个问题,总结如下:(1)点阵的硬件电路中,由于51的主频不够高,导致时序不紧密,因此不能实现74hc04电路的控制。又因74hc138的使能端状态很不稳定,导致显示不正常。修改电路后,点阵显示正常了。(2)由于点阵是大功率负载,需要很大的驱动电流。而过大的电流会把电压拉低,因此点阵的电源应该独立,提高系统的稳定性会。
参考文献
[1]陈明萤.8051单片机课程设计实训教材[M].清华出版社,2004.
[2]康华光,邹寿彬.电子技术基础数字部分[M].高等教育出版社,2000.
[3]李昌禧.智能仪表原理与设计[M].化学工业出版社,2005.
[4]祁伟.单片微型计算机原理与接口技术教程[M].2007.