国标硬件汉字库的原理与应用_第1页
国标硬件汉字库的原理与应用_第2页
国标硬件汉字库的原理与应用_第3页
国标硬件汉字库的原理与应用_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、国标硬件汉字库的原理与应用彩色液晶器件以其丰富的交互界面,理想的显示效果,越来越多的吸引单片机及嵌入式开发人员的眼球,但随之而来也带来汉字显示,让原本捉襟见肘的系统资源显得更加匮乏,国标16点阵汉字字库的容量为2M bit,已经远远超过普通51单片机的寻址空间,甚至超过了很多ARM7的内部FLASH 容量,液晶自带汉字字库势在必行。极大的简化了用户硬件成本和系统复杂性。一、汉字内码首先我们要知道ASCII 码为了显示英文(英文字母种类很少,加上一些控制字符也不超过128个),所以定义了它是由一个字节表示的,从0-127位则留给英文字符使用,即英文的内码。还空余了128-255这些位置,但是远远

2、少于我们国家汉字的数量(对于中文,常用却有5000以上),于是我们的DOS 前辈想了一个办法,就是将ASCII 表的高128个很少用到的 数值以两个为一组来表示汉字,即汉字的内码。范围从十六进制的0A1H 开始,将机内码的每个字节各减去0A0H 再以十进制显示出来即为该汉字的区位码。例如 “国”字的机内码、国标码和区位码如表1 所示。 即:机内码-0A0A0H=区位码; 就“国”字而言,其机内码和区位码的关系为:0B9FAH (机内码)- 0A0A0H =195AH(区位码)二、汉字字库国家标准汉字字符集GB2312-80共收集了共7445个汉字和图形符号,其中汉字6763个,分为二级。一级汉

3、字3755个,二级汉字3008个。汉字图形符号根据其位置将其分为94个“区”,每个区包含94个汉字字符,每个汉字字符又称为一个“位”。区的序号和位的序号都是从01到94。UCDOS 软件中的文件HZK16为16*16的国标汉字点阵文件,以二进制格式存储。按汉字区位码从小到大依次存有国标区位码表中的所有汉字,每个汉字占用32个字节,每个区为94个汉字。(UCDOS 软件中还包括ASC16文件:ASC16为8*16的ASCII 码点阵文件,以二进制格式存储。按ASCII 码从小到大依次存放ASCII 码点阵,每个ASCII 码占用16个字节)具体程序实现如下(区码和位码都是从0xA1位置开是存储的

4、)qh=*pHz-0xa1; (pHz 为汉字内码存储地址,qh 为区码,wh 为位码)wh=*(pHz+1-0xa1;OffSet=(ulong(qh*94+wh*32+ HZK16_ADDR; /计算该汉字在字库中偏移量 Read_Flash(OffSet,&hz_mo,32; /读取32字节的字模数据到缓冲区三、汉字字模得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,HZK16中的中文“国”的字模中是这样记载的: 字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载汉字的形状,这样我们就可以把这样的数字写入液晶,得到汉字的图形具体函数实现如下:for (i=0;i<16;i+ /16点阵Set_ramaddr(x,y+i;str =(uinthz_moi*2<<8|hz_moi*2+1;/从缓冲区中调用部分字模信息 for (k=0;k<16;k+if ( str & (0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论