汉字点阵信息的方法及应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

从国标字库中提取汉字点阵信息的方法及应用

摘要:在许多单片机与嵌入式系统中,要用到汉字提示或汉字显示,本文介绍在嵌入式应用系统中如何从国标字库中,查找汉字点阵信息的具体方法。

关键词:嵌入式系统、汉字字库、单片机

1意义

在许多单片机与嵌入式应用系统中,要用到中文显示,有的只需要少量的汉字显示作为提示,有的需要随机的显示汉字。如何从国标字库中提取汉字点阵信息?本文就这问题介绍一种简易、快速的提取方法。

2有关汉字字库知识的介绍

1.1汉字的区位码和内码及其转换

国标汉字字符集(GB2312-80)是以汉字库的形式提供的。汉字库结构有统一的规定:汉字库共分为94个区,每个区有94个汉字,每个汉字在汉字库中有确定的区和位编号,这就是区位码。用两个字节表示,区位码的第一个字节表示区号,第二个字节表示位号。计算机内英文字符是用一个字节的ASCII码表示,由于汉字众多,对一个汉字需用两个字节表示,这两个字节的最高位置1,称为机器内的汉字代码,简称内码。

3单片机应用中的小字库提取方法

在一些单片机应用系统中需使用小部分汉字显示,以16×16点阵字库为例,一个汉字占用32个字节。可以采用以下方法找出所对应的汉字的16×16点阵字库的地址(以“字”字为例说明)。

2.1取得汉字的内码方法

在VB的“立即窗口”中输入:?HEX(ASC(“字”))。回车后在“立即窗口”显示:D7D6,这就是“汉”这个汉字的内码(为十六进制数)。

2.2把内码转换为区位码的算法

设汉字的十六进制内码为XXYY则区号QH和位号WH为:QH=XX-A0H=D7H-A0H=37H=55D,WH=YY-A0H=D6H-A0H=36H=54D;5554就是“字”汉字的区位号。

2.3计算该汉字在16×16点阵信息在汉字库中的位置(以十六进制数计算)

公式为:((QH-1)×5EH + (WH-1))×20H

=((37H-1)×5EH+(36H-1))×20H=28120H

28120H就是字“字”在16×16点阵信息在汉字库中的首地址。在字库中从此地址取出的32个字节16进制数为:

02 00 01 00 3F FC 20 04 40 08 1F E0 00 40 00 80

01 04 FF FE 01 00 01 00 01 00 01 00 05 00 02 00

把它们排成16×16点阵的图形为图1所示

收稿时间:2004-02-26

作者简介:黄永顺(1969——),男,福建漳浦县人,学士。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

图1:"字"的16×16点阵图,●代表1

2.4如果使用少量的汉字,可以使用以上方法找出对应汉字的首地址,并取出对应的汉字点阵信息,在程序存储器中建立汉字小字库。

4、单片机应用中的使用国标字库提取方法

在一些嵌入式单片机应用系统中要随机显示的汉字,如要显示8×16的ASC 码字符和16×16点阵汉字,这时就要把字库固化在EPROM。在UCDOS下有两个文件ASC16和HZK16,它们分别是8×16的ASCII字符的点阵字库和16×16汉字点阵字库,我们可以把这两个字库同时固化在29C040 EEPROM里,29C040的容量为512KB,如图2所示,为89C51构成的单片机应用系统的字库扩展图,29C040 EEPROM有19条地址线,可以用I/O口来扩展地址线,在这里用P1.2、P1.1、P1.0分别作为地址线的A18、A17、A16,ASC16 8×16的ASCII字符的点阵字库的大小为4KB,HZK16 16×16汉字点阵字库的大小为262KB。

由于低4KB的地址空间已经安排给了片内程序存储器,所以29C040的低4KB 空间不能使用,可用如下方法把字库写入29C040 EEPROM:把ASC16 4KB的8×16的ASC字符的点阵字库写在以地址为1000H开始至1FFFH的空间,把HZK16 262KB的16×16汉字点阵字库写在以地址2000H开始的地址空间。

可用如下计算方法得出ASCII字符的点阵信息在ASC16字库中的首地址和汉字字符的点阵信息在汉字库的首地址:设AA为ASCII字符的ASCII码的数值,设汉字的十六进制内码为XXYY则

ASC字符的点阵字库地址= AA×10H + 1000H

汉字字符的点阵字库地址=[(XX-A1H)×5EH + (YY-A1H)] ×20H + 2000H

图2

5、结论

用以上方法可以简便、快速的从国标字库中取出ASC字符的点阵信息和汉字字符的点阵信息,在单片机与嵌入式系统中,特别是在LED点阵显示和LCD 液晶显示的应用中可以广泛使用。

参考文献

[1]孙涵芳等,单片机原理及应用[M],北京航空航天大学出版社,1988.2

The measure of quartz clock precision

GUO Haiyan

(Phys. Dept. of Zhangzhou Teacher’s College, Zhangzhou, Fujian of China, 363000)

Abstract:According to the measure of quartz clock precision,the paper provides a measure means of quartz clock precision in a few seconds,that uses AT89C51 MPU.

Key word: embedded system;chinese character library;microcontrollers

相关文档
最新文档