LED点阵显示屏字符信息显示方法及应用
2012-07-24李志强郭麒肖尊兴陈海明
李志强 郭麒 肖尊兴 陈海明
(衡阳师范学院,湖南 衡阳 421008)
1 引言
LED点阵显示屏是由一系列发光二极管排列组合而成的点阵,根据字形控制点阵屏局部发光完成字母、数字和汉字显示。LED屏的显示多采用计算机控制,目前生产厂家提供的LED屏控制系统都是通过控制LED屏来显示各种数据的。由于数据种类的多样混杂,数据不能以一种稳定格式进行保存。本文所介绍的显示方法用到的系统虽也是控制LED屏显示的软件,但它是采用表格数据库保存数据,将表格数据库和LED屏显示直接连接起来,让LED屏显示表格数据库中的内容,从而解决LED屏不能统一管理数据显示的问题,也使得各种文字信息的公布变得更加方便。
显示中,我们需用到现行计算机通用的字库字模,一个字的点阵分为 16×16、24×24、32×32和48×48等不同规格。一个LED显示屏成品主要由控制卡和单元板两部分组成。组装LED屏时,必须先确定接口的一致性,才方便组装。如果接口不一致,需自行制作转换线。
在系统中信号先由PC机发送给控制卡,通过控制卡识别信号,再根据识别情况返回一个信号给PC机,如果控制卡识别成功,将把显示信号发给LED屏,让其显示相应信息。PC机上的控制软件对显示信号进行操作,先将PC机上的字符机器码编译成LED屏显示码,通过串口发送给控制卡,再根据控制卡返回的信号在PC机上判断LED屏是否显示成功,然后控制卡会自动将正确的显示码发送给LED屏。
2 应用中提取字符显示编码的方法
在许多单片机与嵌入式应用系统中,经常要用到文字显示,如何提取字符点阵显示信息,本文接下来就这一问题介绍一种简易、快速的提取方法。PC机中的数据通过串口通信发送,在程序中一般以16进制表示2进制数,常见的编码有ASCII码、Binary码、Unicode码等。在要介绍的提取方法中,LED屏显示数据的编码是相对独立的,它的编码由厂家设定,显示数据中,数字和字母的编码由ASCII码转换而来,汉字编码由Unicode码转换而来。
2.1 显示西文字符
字母和数字的显示编码是将它们的ASCII码减去0x0a作为高8位,将0x63作为低8位;若是多个字母或数字,则将它们的ASCII码减去0x0a并从高到低依次存放,再将0x63存放在低8位即可。
以字母“A”为例说明:
字母“A”的 ASCII码为 0x41,0x41-0x0a=0x37,将0x37作为高8位,0x63作为低8位,得到字母“A”的LED屏显示编码为0x3763。
2.2 显示汉字
①汉字内码转换成Unicode码
汉字在PC机中存储的汉字标准交换码是一种计算机内部码,是微机内部使用的代码、系统处理的对象。在计算机内英文字符是用一个字节的ASCII码表示,由于汉字众多,对一个汉字需用两个字节表示,且为了与系统中ASCII码相区别,将这两个字节的最高位置1,作为机器内的汉字代码即机内码,简称内码。要将汉字内码转换成LED屏显示码就必须先将其转换成Unicode码,在VC++中有一个函数能完成此转换功能,该函数为:
intMultiByteToWideChar(UINT Code-Page,
该函数最后返回一个整数,若函数调用成功且转换的字符不为空,则返回宽型字符的数值;若函数调用成功而转换的字符为空,则返回一个能接收转换字符缓冲大小的数值;若函数调用失败,则返回0。该函数有六个参数:第一个参数表示转换要得到的编码类型;第二个参数表示转换类型的设置;第三个参数表示将要转换的字符串;第四个参数表示将要转换的字符串的字节数;第五个参数表示转换后字符存储区的首地址;第六个参数表示存储区的大小。
②Unicode码转换成显示编码
将汉字在PC机上存储的汉字标准交换码转换成Unicode码后,将Unicode码的低8位加上0x70所得的除进位以外的8位作为高8位,再将Unicode码的高8位减去0x43后与上一步的进位相加作为低8位;若是多个汉字,则通过同样的方式转换后,从高到低依次存放即可。
以汉字“我”为例说明:
汉字“我”在PC机上存储的汉字标准交换码为4650,利用MultiByteToWideChar函数转换得到其Unicode码为0x6211,其Unicode码的低8位为0x11,0x11+0x70=0x81,所得除进位以外的8位0x81作为高8位;Unicode码的高8位为0x62,0x62-0x43=0x1F,上一步没有进位,0x1F直接作低8位,汉字“我”的LED屏显示编码就为0x811F。
发送给LED屏的数据除了字符的显示编码外还有它从高位起的48个字节和从低位起的4个字节,这些数据共同组成LED显示字符的数据包,其中高位字节的第19个字节表示进入动画,第20个字节表示环绕边框,第21个字节表示进入速度,第22个字节表示停留时间,第41个字节表示字体颜色,第45个字节表示字符个数,其低位字节的第1、2个字节表示验证码,这是前面高位所有数求和所得的两个字节,然后交换其本身的高低字节得到。
结论
本文论述了如何在LED显示屏上显示字符信息的方法,并结合实例进行了说明。从而很好地解决了在LED显示屏上显示表格信息这一难题。此方法通过直接将计算机中的数据库和LED显示屏连接,实现了用计算机控制LED屏的功能,加上计算机中数据库技术已十分成熟,因此可以方便地对数据进行存储、修改、删除,所以本文提出的LED点阵显示屏字符信息显示的方法解决了其他LED显示系统不便于设计表格和保存数据的问题。
所述方法在LED点阵显示屏、学风信息显示系统等方面的应用,充分显示了此显示方法具有灵活性好、功能强、简单易操作等优点,有很好的发展前景。
[1]李卫东.微机控制LED点阵显示屏[J].大连理工大学,2000,(1):23-24.
[2]黄永顺.从国标字库中提取汉字点阵信息的方法及应用 [J]漳州师范师院学报,2004,(17):48-50.
[3]赵堂春,李勇,陶砂.基于 32×16LED 显示屏混合字符显示的设计与实现[J].制造业自动化,2010,(5):45-50.
[4]余金栋,写式LED点阵显示屏的设计[J].电子技术,2010,(5):50-55.
[5]哲源.掌握VisualC++MFC程序设计与剖析[M].北京:清华大学出版社,2001,120-123.
[6]李刚.MSCEComm控件在串口编程中的应用 [J].重庆电力高等专科学校学报,2003,(4):11-62.
[7]阚能琪,汪鑫.MSComm控件在串口编程中的应用[J].四川工业学院学报,(1):2003,56-77.