一、3 种汉字字模存储和提取的方法 1、字模存放在程序存储器中; 这种方法较为常用,针对程序不大或单片机无外部扩展数据存储区功能的情况。 2、通过外扩的EEPROM 存储汉字字模数据,将其作为外部数据存储器进行寻址; 采用哈佛结构的单片机,如8051 单片机及其派生产品,程序存储器(ROM)和数据存储器(RAM)可分别寻址,51 单片机ROM 和RAM 最大的寻址空间均为64 K 。通常来说,对于中型的嵌入式系统,尤其是带液晶的单片机系统,64 K的程序空间并不富裕,而将汉字字模作为常量数组会大大占用ROM 的空间。而相对来说,数据存储器只需几k 就够用了, 剩下很多空间可用于功能芯片的扩展。 将提取的汉字字模数据存放在EPROM 或EEPROM内,并设定该芯片的片选地址,则只要知道某个汉字字模数据在该芯片的存储位置,通过程序计算出偏移地址,即可实现显示功能。 3、使用外扩的EEPROM存储整个汉字库 某些高端单片机,如Motorola 的M68300 系列32 位单片机,寻址范围可达8 M。液晶显示常用的16 ×16 汉字库二进制数据文件为两百多K ,将汉字字库存入大容量的EEPROM , 通过地址线可寻址到汉字库中的每一个汉字。在计算机中对汉字的识别是通过机内码来实现的,汉字标准机内码为两字节代码。汉字在汉字库中是按照区位来排列的,每一区中有94 个汉字,每个汉字都对应惟一的区号和在本区的位号,汉字输入法中就有区位码方法。实际上,汉字机内码和区位码有标准的对应关系:某个汉字在字库中的区号加上0xA0等于其机内码的高字节,位号加上0xA0 等于其机内码的低字节。 因此可以通过程序计算出要显示的汉字在汉字库中的区位号,即得到了其在汉字库中的偏移地址。由于EEPROM 中存储了整个汉字库,只须在硬件上设定存放汉字库的存储器片选地址,直接将汉字作为字符数组附给汉字显示函数,通过机内码计算出区号和位号,即可方便地对汉字字模进行调用了。与前两种方法相比,无须事先提取字模和设定其地址用于程序调用,因此在进行程序升