基于32×16 LED显示屏混合字符显示的设计与实现
2010-04-11黄敦华赵堂春蒋从根
黄敦华,赵堂春,李 勇,陶 砂,蒋从根
HUANG Dun-hua, ZHAO Tang-chun, LI Yong, TAO Sha, JIANG Cong-gen
(北京电子科技职业学院 自动化工程学院,北京 100176)
基于32×16 LED显示屏混合字符显示的设计与实现
The designing and realizing of mixed character display based on the 32×16 lattice LED display screen
黄敦华,赵堂春,李 勇,陶 砂,蒋从根
HUANG Dun-hua, ZHAO Tang-chun, LI Yong, TAO Sha, JIANG Cong-gen
(北京电子科技职业学院 自动化工程学院,北京 100176)
本文介绍了基于32×16LED显示屏混合字符显示的设计与实现,包括本试验中用到的硬件模块、LED点阵显示模块硬件结构、点阵显示屏原理图、循环扫描过程、叠加原理在混合字符显示上应用、字模编码的提取、编程流程图、Keil C51部分程序以及试验结果。试验的结果表明设计的可行性、可靠性与新颖性,实现了混合字符在LED显示屏上的显示。
LED点阵显示屏;显示;设计;叠加原理;实现
0 引言
随着信息产业的高速发展,LED显示屏作为信息传播的一种重要手段成为现代信息化社会的一个闪亮标志[1,2]。在32×16 LED显示屏上同时显示西文字符与汉字时,由于一个西文是占一个ASCII码的七位二进制, 而一个汉字是占二个扩展ASCII码的八位二进制, 这样就造成在32×16 LED显示屏上显示宽度不一致的问题, 直接影响显示的美观效果[3]。本文巧妙运用“叠加原理”对这个问题予以解决,取得了良好效果。
1 系统设计
1.1 硬件系统设计
本试验以YL236型设备为例,硬件系统由主机模块(含AT89S52)、32×16点阵显示模块、电源模块、YLISP下载器以及导线等构成。
1.1.1 LED点阵显示模块硬件结构
点阵显示屏由点阵显示模块构成,LED点阵显示模块由64个发光二极管组成,这64个发光二极管排列成8行×8列的点阵[4]。在同一行中的8个发光二极管的所有正极连接在一起,由一个引脚引出,在同一列中的8个发光二极管的所有负极连接在一起,由一个引脚引出,这样共有8个行引出脚和8个列引出脚。
1.1.2 点阵显示屏原理图
点阵显示屏由ROW0与ROW1两排,COL0、COL1、COL2、COL3四列组成,两排与四列分别由6片74AC573锁存器进行信号锁存,两排均采用了ULN2803A驱动控制[5]。其原理图如图1所示。
图1 点阵显示屏原理图
1.1.3 点阵显示屏接线图
该试验中主机、点阵、电源各个模块的接线图如图2所示。
图2 点阵显示屏接线图
1.2 软件编程设计
1.2.1 循环扫描过程
1)显示西文字符
若要显示一个西文字符,可以按逐列显示或按逐行显示,即一列一列(或一行一行)将要显示的点阵信息显示出来。YL236型8×8点阵模块从左往右由低到高位,且列线均已接地。如果要在16×8(单字节)显示屏上显示一个数字“1”,只占一列(8位),按行显示,则应在行线上输出的字模编码为
“0x00,0x00,0x00,0x08,0x0E,0x08,0x08,0x08,0 x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00”共16个字节。显示时,开始只在ROW0排A1行线上输出0x00,一段时间后只在A2行线上输出0x00,又一段时间后只在A3行线上输出0x00,再一段时间后只在A4行线上输出0x08,以此类推,一直到只在ROW1排的A8行线上输出0x00。每16行扫描完后再从ROW0排的A1重新扫描,就可以在LED显示屏上显示一个稳定的数字“1”。
2)显示汉字
同理,若要在16×16(一个汉字占两个字节)显示屏上显示一个汉字“和”, 要占两列,不妨记为COL0与COL1(8+8位)。按行显示,则应在行线上输出的字模编码为
“0x00,0x00,0xE0,0x00,0x1E,0x00,0x10,0x3E,0 x10,0x22,0xFE,0x22,0x10,0x22,0x18,0x22,0x38,0x22,0x54,0x22,0xD4,0x22,0x52,0x22,0x1 1,0x3E,0x10,0x22,0x10,0x00,0x10,0x00”共32个字节。显示时,开始只在ROW0排COL0列A1行线上输出0x00,一段时间后只在ROW0排COL1列A1行线上输出0x00,又一段时间后只在ROW0排COL0列A2行线上输出0XE0,再一段时间后只在ROW0排COL1列A2行线上输出0X00;奇偶列逐行轮流输出,以此类推,一直到ROW1排COL1列A8行线上输出0X00。每32行扫描完后再从ROW0排COL0列A1行线重新扫描,就可以在LED显示屏上显示一个稳定的汉字“和”。
1.2.2 叠加原理在混合字符显示上应用
1)叠加原理
在数学与物理中经常出现这样的现象:几种不同原因的综合所产生的效果,等于这些不同原因单独产生效果的累加。例如,物理中几个外力作用于一个物体上所产生的加速度,等于各个外力单独作用在该物体上所产生的加速度的总和,这个原理称为叠加原理。叠加原理适用范围非常广泛,数学上线性方程,线性问题的研究,经常使用叠加原理[6,7]。同理,在LED显示屏上同时显示西文与汉字时也可以采用叠加原理来解决。
2)混合字符显示设计
混合字符显示是指在LED显示屏同一“页”上显示西文与汉字,譬如“082001班加油”可以通过“0820”、“01班”与“加油”三页显示,而在第二页上显示的“01班”既有数字又有汉字,而一个数字占16×8点阵,而一个汉字占16×16点阵,用一般方法很难解决此问题。若引入叠加原理,由图3不难看出“082001班加油”可以由数字串“082001******”(*表示16×8空格)与汉字串“☆☆☆班加油”(☆表示16×16空格)叠加显示而成,而两个不同的字符串可以分别用二维数组shuzi[][16]与hanzi[][32]来表示。
图3 混合字符“叠加原理”
图4 编程流程图
1.2.3 字模编码的提取
采用zimo221软件,在“参数设置”标签“选项”对话框中选择取模方式为“横向取模”、“字节倒序”、“保留”,字体设置“宋体”、“常规”和“小四”,点击“确定”;再在“基本操作”中点击“新建图像”设置宽度“16”或“8”,高度“16”, 点击“确定”;再在“文字输入区”中输入数字或汉字,ctrl+Enter后,点击“取模方式”中“C51”即可生成所需要的字模编码[8,9]。
1.2.4 编程流程图
混合字符显示的编程流程图如图4所示。
1.2.5 Keil C51编写的部分参考程序(略)
2 实验结果
试验结果如图5所示。
图5 试验结果
3 结束语
本文提出了一种基于32×16LED显示屏混合字符显示的设计与实现方法。详细介绍了本试验中用到的硬件模块、LED点阵显示模块硬件结构、点阵显示屏原理图、循环扫描过程、叠加原理在混合字符显示上应用、字模编码的提取、编程流程图、Keil C51部分程序以及试验结果。
本文作者创新点:由于一个西文是占一个ASCII码的七位二进制, 而一个汉字是占二个扩展ASCII码的八位二进制, 这样就造成在32×16 LED显示屏上显示宽度不一致的问题, 直接影响显示的美观效果。该试验中作者引入叠加原理,将要显示的字符串“082001班加油”由数字串“082001******”(*表示16×8空格)与汉字串“☆☆☆班加油”(☆表示16×16空格)叠加显示,而两个不同的字符串分别采用二维数组shuzi[][16]与hanzi[][32]来表示。这种思路在混合字符显示时值得借鉴与应用。试验的结果表明设计的可行性、可靠性与新颖性,实现了混合字符在LED显示屏上的显示。
[1] 林燕雄,雷堂彩.智能LED点阵亮度等级分选仪研制[J].桂林:桂林电子工业学院学报,1999(3):13-14.
[2] 李骐,靳桅,等.基于单片机的LED显示屏控制系统设计[J].微计算机信息,2009,5-2:110-112.
[3] 韩润萍,陈小萍.点阵LED显示屏控制系统[J].微计算机信息,2003(10):26-27.
[4] 赵才荣,刘金娥,丁铁夫.基于LED图文屏的多灰度图像实现方法[J].液晶与显示,2006(1):5-7.
[5] 葛金印,商联红.单片机控制项目训练教程[M].北京:高等教育出版社,2010.
[6] 马秀艳,韩国松.叠加原理的数学基础及其在物理上的应用[J].安阳:安阳师范学院学报,2006(5).
[7] 李平.叠加原理[J].大学物理.1983(9).
[8] 简献忠,虞箐,熊晓君,赵虎,居滋培.基于80C51和KEILC51的LED点阵显示系统[J].仪器仪表学报,2005(1):23-24.
[9] 曾静,郭金玉,史洪岩.用CPLD实现点阵LED显示屏测试[J].计量与测试技术,2005(5):31-32.
TP368.1
A
1009-0134(2010)11(下)-0208-03
10.3969/j.issn.1009-0134.2010.11(下).70
2010-09-13
黄敦华(1978 -),男,讲师,硕士,研究方向为智能移动机器人技术、机电一体化技术等。