- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                LED点阵显示屏字符信息显示的方法及的应用
                    LED点阵显示屏字符信息显示的方法及的应用
    摘要:本文介绍一种在点阵显示屏上显示西文字符、汉字等信息的方法,将该方法应用于LED屏上,可使显示相关信息变得更加简便,生活中可方便公布各种表格数据信息。 
  关键词:LED;点阵显示屏;汉字编码 
  中图分类号:TN957.52+9 文献标识码:A 
  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++中有一个函数能完成此转换功能,该函数为: 
  int MultiByteToWideChar(UINT CodePage, 
   DWORD dwFlags, 
   LPCSTR lpMultiByteStr, 
   int cbMultiByte, 
   LPWSTR lpWideCharStr, 
   int cchWideChar); 
  该函数最后返回一个整数,若函数调用成功且转换的字符不为空,则返回宽型字符的数值;若函数调用成功而转换的字符为空,则返回一个能接收转换字符缓冲大小的数值;若函数调用失败,则返回0。该函数有六个参数:第一个参数表示转换要得到的编码类型;第二个参数表示转换类型的设置;第三个参数表示将要转换的字符串;第四个参数表示将要转换的字符串的字节数;第五个参数表示转换后字符存储区的首地址;第六个参数表示存储区的大小。 
  ②Unicode码转换成显示编码 
  将汉字在PC机上存储的汉字标准交换码转换成Unicode码后,将Unicode码的低8位加上0x70所得的除进位以外的8位作为高8位,再将Unicode码的高8位减去0x43后与上一步的进位相加作为低8位;若是多个汉字,则通过同样的方式转换后,从高到低依次存放即可。 
  以汉字“我”为例说明: 
  汉字“我”在PC机上存储的汉字标准交换码为4650,利用MultiByte
                
原创力文档
                        

文档评论(0)