便携设备中的汉字库设计

[09-13 16:32:44]   来源:http://www.88dzw.com  信息显示与光电技术   阅读:8188

文章摘要: 这里,以“汉”为例,第一个数据088H是最左边的上面第一竖排有点的位置所对应的数据,而且下面为高位。第二个数据091H为左边的上面第二竖排有点的位置所对应的数据,依次类推,得到“汉”上半部分的前12个点阵数据,同样可以得到“汉”下半部分的后12个点阵数据。可以看出,在下半部分的字模,实质上只有一半数据有用,另一半全是0,故,可以采用压缩的办法,缩减字模数据,即下半部分的点阵数据完全可以两个数据缩减成一个数据。比如“汉”压缩后的字模数据为,上半部分不变,前12个数据与原来相同,下半部分两两组合为一个字节,后半部分只有6个字节,这样,一个汉字就只需要18个字节,这样可以大大节省存储器的使

便携设备中的汉字库设计,标签:显示及光电,光电显示技术,http://www.88dzw.com

  
    这里,以“汉”为例,第一个数据088H是最左边的上面第一竖排有点的位置所对应的数据,而且下面为高位。第二个数据091H为左边的上面第二竖排有点的位置所对应的数据,依次类推,得到“汉”上半部分的前12个点阵数据,同样可以得到“汉”下半部分的后12个点阵数据。可以看出,在下半部分的字模,实质上只有一半数据有用,另一半全是0,故,可以采用压缩的办法,缩减字模数据,即下半部分的点阵数据完全可以两个数据缩减成一个数据。比如“汉”压缩后的字模数据为,上半部分不变,前12个数据与原来相同,下半部分两两组合为一个字节,后半部分只有6个字节,这样,一个汉字就只需要18个字节,这样可以大大节省存储器的使用:
088H,091H,064H,018H,002H,01EH,062H,082H,062H,01FH,002H,000H,00FH,008H 084H,021H,024H,088H
  
    如果液晶模块所使用的控制器是6963或1330/1335等,则必须横着取字模,相应的“汉”的字模数据为(每字节右边为高位):
DB 000H,002H,0F2H,007H,024H,002H,029H,002HDB 02AH,002H,044H,001H,044H,001H,083H,000HDB 082H,000H,042H,001H,022H,002H,01AH,00CH
  
    压缩算法与61202的不一样,为左边不变,右边压缩,数据组织上为奇数(对应点阵的右半边)压缩,偶数不变。

3.2 汉字字模数据存放在24Cxxx中
  在一般情况下为自定义汉字库,也有使用全汉字库的情况。在全字库的情况下,可以把现有的汉字库直接存放在两片24C512中(采用压缩方法,每个汉字18字节)。这两片的地址分别是:0-0FFFFH,10000H-1FFFFH。
    
    汉字首地址=((区码-1)×94+位码-1)×18。
  
    大多数情况下使用汉字不会很多,一般用的是自定义汉字库。用一片24C256芯片(见Atmel公司24C256技术手册)可以存放用户常用汉字1 820(32K/18)个,或1 365(32K/24)个,剩余空间可以用作数据记录,对一般用户来说足够了。但放在程序ROM里,将占用32K程序区,对使用小ROM容量(比如89C2051,PIC系列,430F11x等)芯片的场合是不可能的,而用一片24Cxxx芯片就完全解决了,只占用两根I/O口线!这么多数据怎么存放在24C256中呢?很简单,使用编程器。大多数的编程器都支持24Cxxx的编程。先使用字模提取软件得到你所需要的汉字的字模数据,一般情况在购买液晶时会附送的。一般情况会用汇编的DB伪指令来定义,或使用C语言的数组来定义:unsigned char code hzdot〔24*xxxx〕={0x12,0x32,......}。得到这些数据后,用相应的单片机编译软件得到编程器能用的.hex或.bin文件,再使用编程器烧写。在用字模软件取汉字模的时候,必须将汉字按照一定的顺序进行排列,使用此汉字库的时候再按照这个顺序就可以将汉字依次显示出来。

3.3 字模数据在24Cxxx中的存放情况举例
  用户自定义的汉字库已经存放在24Cxxx中了,下面是字库中的开始部分,汉字“使用此汉字库……”的字模,取模方式为纵向、下为高位,其中地址列为在24C256中的片内地址。


  从表1与图2可以看出,汉字字模在24C256中的存放规则:第一个汉字的字模数据放在24C256中从0000H开始的24个单元,即0000-0017H。第二个放在24C256中从0018H开始的24个单元,即0018H-002FH……,依次类推。每个汉字在字库中的第一个字模数据在24C256中的地址为:X×24+0,(X为用户汉字库中的第几个汉字)第二个字模数据在24C256中的地址为:X×24+1,第三个字模数据在24C256中的地址为:X×24+2,……,依次类推,用户汉字库中的第X个汉字的第I个字模数据为:
  X×24+I。
  
    由此,我们在液晶屏上显示汉字的时候依次写出X×24+I(I为00-23)就可以了。24Cxxx为I2C总线方式的EEPROM存储器,用作汉字库时,我们只需要掌握从中读出数据的方法,写入数据的工作就让编程器去完成。下面介绍如何读取汉字库中的汉字信息。

上一页  [1] [2] [3]  下一页


Tag:信息显示与光电技术显示及光电,光电显示技术信息显示与光电技术

《便携设备中的汉字库设计》相关文章

分类导航
最新更新
热门排行