微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 硬件汉字库设计原理与应用

硬件汉字库设计原理与应用

时间:07-04 来源:互联网 点击:
随着液晶显示技术的发展和应用,越来越多的开发人员希望在自己开发的仪器设备中使用液晶屏幕来显示汉字,通常的汉字显示方式是先根据所需要的汉字提取汉字点阵如16x16 点阵,将点阵文件存入ROM 形成新的汉字编码,而在使用时则需要先根据新的汉字编码组成语句再由MCU 根据新编码提取相应的点阵进行汉字显示,在这种显示方式中如果使用的汉字数量较大或语句较多时,利用汉字的新编码组成语句将是一件繁琐而枯燥的工作。
如果有新的汉字加入那么汉字库的维护也成问题,而我们日常生活的一些手持工具上如手机快译通等等它们可以任意输入汉字不仅灵活性大而且检索速度快,这其中的主要原因就是在这些设备中固化了硬件汉字库。而半导体技术的发展使得大容量FLASH ROM 的价格大大下降从而使用硬件汉字库的仪器设备的成本大大下降,因此越来越多的技术开发人员开始关注起硬件汉字库希望能在自己开发的设备中设计并使用硬件汉字库,达到加快产品开发速度降低软件成本的目的。

一硬件汉字库相关知识

1 汉字机内码国标码和区位码

在PC 机的文本文件中,汉字是以机内码的形式存储的。每个汉字占用两个字节长度为了和ASCII码区别,范围从十六进制的0A1H 开始小于80H 的为ASCII 码,将机内码每个字节的最高位屏蔽掉,再以十六进制的形式显示出来则为国标码。将机内码的每个字节各减去0A0H 再以十进制显示出来,即为该汉字的区位码。例如"国"字的机内码国标码和区位码如表1 所示
表1 国字的机内码国标码和区位码
类别数值高位字节低位字节
机内码B9FAH 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 0
国标码397AH 0 0 1 1 1 0 0 1 0 1 1 1 1 0 1 0
区位码195AH 0 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0
即区位码机内码0A0AOH 就国字而言其区位码和机内码的关系为
195AH 区位码0B9FAH 机内码0A0A0H
记住这个关系是我们理解下面有关程序的关键

2 国标汉字字符集与区位码

根据对汉字使用频率程度的研究可把汉字分成高频字约100 个常用字约3000 个次常用
字约4000 字罕见字约8000 个和死字约45000 个即正常使用的汉字达15000 个。我国1981
年公布了通讯用汉字字符集基本集及其交换码标准GB2312-80 方案,把高频字常用字和次常用字集合成汉字基本字符集共6763 个,在该字符集中按汉字使用的频度又将其分为一级汉字3755 个,按拼音排序二级汉字3008 个,按部首排序再加上西文字母数字图形符号等700 个,国家标准的汉字字符集GB2312-80 在汉字操作系统中是以汉字库的形式提供的汉字库结构作了统一规定如图1 所示

此主题相关图片如下:

即将字库分成94 个区每个区有94 个汉字,以位作区别每一个汉字在汉字库中有确定的区和位。编号用两个字节这就是所谓的区位码。区位码的第一个字节表示区号,第二个字节表示位号,因而只要知道了区位码就可知道该汉字在字库中的地址。每个汉字在字库中是以点阵字模形式存储的,如一般采用16x16 点阵形式,每个点用一个二进制位表示,存1 的点当显示时可以在屏上显示一个亮点,存0 的点则在屏上不显示,这样就把存某字的16 16 点阵信息直接用来在显示器上按上述原则显示,则将出现对应的汉字如一个国字的16 16 点阵字模如图2 所示。当用存储单元存储该字模信息时将需32 个字节地址在图2 的右边写出了该字模对应的字节值

此主题相关图片如下:

3 液晶显示模块特性与字模数据
汉字显示是国内应用图形液晶显示模块的目的之一,目前对硬件汉字库比较关心的技术人员大多是想将其应用到图形点阵液晶显示器中,但目前有关液晶显示的资料大多数是介绍通过字模软件取出的点阵数据是如何送往液晶显示器的,因此作者在此作一下比较要在液晶屏幕上显示出这个点阵图形需要将相应的点阵数据送入液晶显示驱动器,但对于不同的液晶显示驱动器要显示同一图形所需要送入的数据排列顺序可能不同,作者曾经使用过内置D61202U 液晶显示驱动控制器和内置T6963C 液晶显示驱动控制器的液晶显示模块,同样是显示16 16 点阵的国
字则需要的点阵数据如下
HD61202U
DB 000H,0FEH,002H,00AH,08AH,08AH,08AH,0FAH
DB 08AH,08AH,08AH,00AH,002H,0FEH,000H,000H
DB 000H,0FFH,040H,048H,048H,048H,048H,04FH
DB 048H,049H,04EH,048H,040H,0FFH,000H,000H
由于HD61202U 显示存储器的特性不能将计算机内的汉字库提出直接使用,需要将其旋转90 度后再写入,也就是有些字模软件如zimo22.exe 可到www.c51bbs.com上免费下载设置为竖向倒序取模后所得的数据其生成字库的格式是前16 个字节为上半部16 8 点阵字模数据后16 个字节为下半部16x8 点阵字模数据,读者如果与图2 中的相应数据作比较可以看出如果仅仅从数据上是看不出两者的联系的,如果在这种液晶显示器上要使用硬件汉字库则读出的点阵信息必须经过处理方可送出显示增加了使用难度
T6963C
DB 000H,000H,07FH,0FCH,040H,004H,05FH,0F4H
DB 041H,004H,041H,004H,041H,004H,04FH,0E4H
DB 041H,044H,041H,024H,041H,024H,05FH,0F4H
DB 040H,004H,040H,004H,07FH,0FCH,040H,004H
这些数据也是通过字模软件得出的读者再与图2 中的32 个数据相比较可以看出两者在数值和排列顺序上都是一致的,正是这种特性使得笔者选择了内置T6963C 的液晶显示模块作为论述开发硬件汉字库的例子

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top