`
helloyesyes
  • 浏览: 1269369 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

S3C2440-LCD字符显示

阅读更多

哈尔滨理工大学软件工程专业08-7李万鹏原创作品,转载请标明出处

http://blog.csdn.net/woshixingaaa/archive/2010/12/18/6084493.aspx

LCD字符显示有两种方式,一个是通过字模提取软件,将字符转化成一个字节型的数组,另一个是使用字库。如果字符较多的时候,直接使用字库比较方便。现在说一下中英文字符的存储结构和编码方式。中英文的字符点阵结构有4*8,8*16,16*16,24*24,32*32,48*48等结构形势,不同点阵汉字的字体又有宋体,仿宋体,黑体,楷体等之分。在计算机中,相同点阵结构和相同字体的字符存放在同一字库中。本文使用的是16*16的宋体。16*16的点阵字库中,字符的信息结构采用以行排列的形式,共有16行,每行有16个点,分别存放在两个字节内。因此每个字符共占用16*16/2=32个字节。字节的存放顺序为从左到右,从上到下。将汉字变成字符模式,使用16*16个像素表示一个汉字。在字模提取的过程中,还要注意取模的顺序,顺序不同,得到的数组就不同,一般式从左向右,从上到下。取模方式,逐行式。ASCII型字符的宽度是汉字的一半,即8。

如果使用字库,每个汉字的地址由两个字节表示。一个是区号,一个是区中的位置,即位号。16*16的点阵字库中,每个字符占32个字节,每94个字符为一个区,共87个区,其中1~15区为常用符号区(包括数字0~9及大小写英文字母),16~86为常用汉字,其排列是以汉语拼音为序,从一声到四声,第87区为生僻汉字。汉字的起始地址是0xA1A1,A1+94=255,所以一个区有94个字符。区和位的起始号都是1,数组是从0开始,所以如果想在字库中定位一个字符,(94*(qu-1)+wei)*32。如果中文字符和ASCII码混合在一样,如何区分它们呢?其实也很简单,ASCII码的最高位是0,而中文的最高位是1,因此当读取到的一个字节的最高位是0,则该字节为ASCII码,它的下一个字节与这个字节无关;当取得到的字节的最高位是1,则表示的是中文字符,并且该字节与它的下一个字节组合在一起表示完整的一个汉字。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics