中国医科大学 王 研
LED显示屏以其超大画面、超强视觉、亮度高、寿命长以及灵活多变的显示方式等优势,成为目前国际上使用广泛的显示系统。随着信息产业的高速发展,LED显示作为信息传播的一种重要手段,已广泛应用于金融证券、银行利率、商业广告、文化娱乐等室内外需要进行服务内容和服务宗旨宣传的公众场所。显然,LED显示已成为现代化和信息化社会的一个重要标志。有着巨大的社会效益和丰厚的经济效益。研究利用单片机控制LED的文字显示对于学习单片机的基本原理和程序设计具有重要的作用和意义。
图1 设计总体框图
图2 AT89S51单片机PDIP40封装外形图及最小应用系统电路
根据国际标准字库的要求,每一个汉字由16行16列的点阵组成,即国标汉字库中的每一个字均由256个点阵来表示。我们可以把每一个点理解为一个象素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在256象素范围内的任何图形。通过字库软件可自动生成十六进制数据的汉字代码。把内码数据复制到程序中由计算机传给单片机,再经单片机内部程序的控制将接收到的汉字内码转换成16*16的点阵结构,然后就可以送到在LED显示屏上动态显示了。
根据LED显示屏显示汉字的基本原理,设计出系统框图。由于单片机的总线为8位,一个字需要拆分为2个部分,所以需要两个存储器存放。
其中PC机用于查询汉字内码,并把内码传给接口芯片,由接口芯片完成从RS232向TTL电平的转换。AT89S51单片机完成图形显示方式将汉字内码向点阵结构的转化。要显示的相邻两帧内容存放至存储器3,4中。存储器1用于存放单片机接收的汉字内码。存储器2用于存放汉字库的点阵结构。存储器3用于存放要显示的显示的相邻两帧内容的第一帧。存储器4用于存放要显示的显示的相邻两帧内容的第二帧。硬件扫描电路可编程器件完成动态扫描。LED显示模块将显示存储器3或4的内容。
本文中应用到的电路包括AT89S51芯片、74LS373地址锁存器、74LS245双向总线缓冲器、74LS157四位二选一电路、HM6264存储器、EPROM29FO4O存储器以及LED点阵模块。
其中由Atmel公司推出的AT89S51芯片,与MCS51单片机指令集兼容,时钟频率为O~33MHz,采用32个可编程输入/输出引脚和2个16位定时/计数器,内部包含用作程序存储器的4KB的基于FLASH技术的只读存储器。
74LS373地址锁存器的作用是将单片机送往各存储器的地址进行锁存。74LS245双向总线缓冲器起选择地址作用。4LS157电路芯片用于分离计数器和单片机向存储器3或存储器4发送的地址。74LS138译码器可以在不同的时间让需要工作的存储器的片选信号有效。存储器6264用于存放单片机送来的汉字内码和转换后的点阵结构。EPROM AM29O4O-9O/BUA(32)存放经过转换后的汉字点阵。LED显示屏采用16×16像素矩阵模块。
通过程序控制LED画面,可以形成上移、下移、左平移、右平移等多种显示方式。由于篇幅所限,本文只讨论显示屏上移滚动显示方式的实现。编程语言采用C语言。
首先计算机把要显示的信息转换成和LED对应的点阵数据及地址,然后通过接口电路将其送到扫描板的写入地址及数据产生器中。写入地址及数据产生器产生要写入存储器的数据及地址。读地址产生器产生存储器的读出地址。扫描控制电路把存储器中的数据送到显示屏上,并同时产生时钟信号、锁存信号及行扫描信号。
下面只给出接收缓冲区字符存入存储器1的过程及代码以供读者参考。
图3 文字上移滚动设计流程图
内码由串口输入到缓存r_buf,CPU往存储器1顺序存放所有字的内码(每个字2个字节)。设一个一维字符数组mdata[Ox ffff]和指向数组的指针变量*hz。把指针指向数组首部hz=&mdata[O],把从串口输入的所有字的内码依次存入数组mdata[]当中。
本文从理论上阐述了使用单片机控制LED电子显示屏显示汉字的基本原理,并给出了LED屏幕文字向上滚动的设计与实践方案。此方案已在笔者的测试机上通过。虽然电路比较简单,但是其整个过程已经包涵了单片机的基本理论和LED显示屏电路的基本原理和基本程序,只要扩展单片机的IO接口,并增加一些相关芯片,就能设计出更大面积、更复杂的LED显示屏。因此本文对研究单片机原理和LED的显示原理及应用具有一定的理论和实践参考价值。
[1]李朝青.单片机原理及接口技术[M].北京航空航天大学出版社,2005(第三版).
[2]钱珊珠.微型计算机原理及应用[M].国防工业出版社,2008,5(第一版).
[3]马忠梅.单片机的C语言应用程序设计[M].北京航空航天大学出版社,2007(第四版).
[4]谭浩强,张基温.C语言程序设计教程[M].高等教育出版社,2006,8(第3版).