当前位置:文档之家› 汉字字模介绍

汉字字模介绍

容量为 512KB 甚至更大的存储器 除了可以存储全部的国标汉字外 还可以存储 8 16 的 ASCII 码 点阵数据以及汉字语句编码数据 使用起来更加方便
串行数据存储器 如 AT45DB041B 等 特点是占用口线少 体积小和成本低 如果对于速度要求不 是很高的场合非常适宜
三 硬件汉字库使用电路
在本节中 笔者使用 PHILIPS 公司的产品 P89C51RD2 作为主控 CPU 使用内置 T6963 控制器的 240
即区位码 机内码 0A0AOH 就 国 字而言 其区位码和机内码的关系为 195AH 区位码 0B9FAH 机内码 0A0A0H
记住这个关系 是我们理解下面有关程序的关键 2 国标汉字字符集与区位码 根据对汉字使用频率程度的研究 可把汉字分成高频字 约 100 个 常用字 约 3000 个 次常用 字 约 4000 字 罕见字 约 8000 个 和死字 约 45000 个 即正常使用的汉字达 15000 个 我国 1981 年公布了 通讯用汉字字符集 基本集 及其交换码标准 GB2312-80 方案 把高频字 常用字和次常用 字集合成汉字基本字符集 共 6763 个 在该字符集中按汉字使用的频度 又将其分为一级汉字 3755 个 按 拼音排序 二级汉字 3008 个 按部首排序 再加上西文字母 数字 图形符号等 700 个 国家标准的汉
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925
硬件汉字库设计原理与应用
青岛海洋大学 PHILIPS 单片机实验室 綦声波 刘滨 马志强
摘要 本文论述了硬件汉字库的基本原理和具体制作步骤 并利用 P89C51RD2 作为主控 CPU 240 128 点阵的液晶和硬件汉字库 将一部科幻小说嵌入其中 开机后即可阅读 文章中给出了具体的电路和相应 的软件
表 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
-2-
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925
晶显示驱者曾经使用过内置 HD61202U 液 晶显示驱动控制器和内置 T6963C 液晶显示驱动控制器的液晶显示模块 同样是显示 16 16 点阵的 国 字 则需要的点阵数据如下
-1-
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925
字字符集 GB2312-80 在汉字操作系统中是以汉字库的形式提供的 汉字库结构作了统一规定 如图 1 所 示
位码
第二字节 位号
区码
0

UCDOS 软件有一个名字为 HZK16 的文件 这就是 16 16 的国标汉字点阵文件 在该文件中 按汉字区 位码从小到大依次存有国标区位码中的所有汉字 每个汉字占用 32 格字节 每个区为 94 个汉字 如果显 示其属性 可以看出其大小为 262KB 当写入 AT29C020A 时 可以将多于 256KB 的部分截去 实际上 在 国标汉字点阵字库中 二级汉字排到第 87 区 从第 88 区开始就是空白 所以将多余部分截去不会影响实 际使用
94
0
字母 数字 图符 记号区


7

扩展 ASCII 码和保留区
节 16
一级汉字 3755 个
区┇
号 94
二级汉字 3008 个
图 1 国标 GB2312-80 汉字字符集
即将字库分成 94 个区 每个区有 94 个汉字 以位作区别 每一个汉字在汉字库中有确定的区和位 编号 用两个字节 这就是所谓的区位码 区位码的第一个字节表示区号 第二个字节表示位号 因而只 要知道了区位码 就可知道该汉字在字库中的地址 每个汉字在字库中是以点阵字模形式存储的 如一般 采用 16 16 点阵形式 每个点用一个二进制位表示 存 1 的点 当显示时 可以在屏上显示一个亮点 存 0 的点 则在屏上不显示 这样就把存某字的 16 16 点阵信息直接用来在显示器上按上述原则显示 则将 出现对应的汉字 如一个 国 字的 16 16 点阵字模如图 2 所示 当用存储单元存储该字模信息时 将需 32 个字节地址 在图 2 的右边写出了该字模对应的字节值
二 汉字库的制作
在本节中 笔者将论述将 16 16 点阵的宋体汉字库烧录到 256KB 的存储器中的具体方法 这也是读 者比较关心的问题
本例中使用了 AT29C020 该产品是 ATMEL 公司生产的高达 256KB 的 FLASH ROM 读者也可以使用其它 容量不小于 256KB 的产品 但在具体电路设计时应注意引脚定义和逻辑关系 并在烧录时选择相应的型号
Chip Enable(片使能)
WR=’L’, C/D=’H’: Command Write(命令写) WR=’L’, C/D=’L’: Data Write(数据写) RD=’L’, C/D=’H’: Status Read(状态读) RD=’L’, C/D=’L’: Data Read(数据读) No Connection Controller reset(控制器复位)
字节
0 00H 2 7FH 4 40H 6 5FH 8 41H 10 41H 12 41H 14 4FH 16 41H 18 41H 20 41H 22 5FH 24 40H 26 40H 28 7FH 30 40H
字节 1 00H 3 FCH 5 04H 7 F4H 9 04H 11 04H 13 04H 15 E4H 17 44H 19 24H 21 24H 23 F4H 25 04H 27 04H 29 FCH 31 04H
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 可到上免费下载 设置为竖向 倒序取模后 所得的数据 其生成字库的格式是前 16 个字节为上半部 16 8 点阵字模数据 后 16 个字节为下半部 16 8 点阵字模数据 读者如果与图 2 中的相应数据作比较 可以看出如果仅仅从数据上是看不出两者的联系 的 如果在这种液晶显示器上要使用硬件汉字库 则读出的点阵信息必须经过处理方可送出显示 增加了 使用难度
在实际操作中 硬件汉字库的制作和普通的程序存储器的编程没什么不同 注意将 HZK16 文件调入时 要使用二进制方式打开 编程并校验成功后 即可将存储器取下备用 这样一个硬件汉字库就制作好了
针对不同的应用 读者也可以选用其它大容量甚至是串行数据存储器 从而可以扩展硬件汉字库的使 用范围 在此也一并向大家推荐
单片机的派生产品 它在完全保留 80C51 指令系统和硬件结构的大框架外 发生了多方面的加强 扩展
翻新和创新 P89C51RD2 将原有的对外数据和程序存储器的 16 位寻址机制加以利用 把片上的 RAM 扩展
到 1K 字节 片上的 FLASH EPROM 扩展到 64K 字节 由于一个汉字的内码占用两个字节 所以 1024 字
-3-
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925
128 点阵图形液晶显示器 并结合硬件汉字库的使用 将一部 3 万多字的小说嵌入其中 开机后就可以阅
读小说
P89C51RD2 是 PHILIPS 公司于 2001 年发布的一款非常优秀的单片机 该单片机是基于 8 位 80C51
关键词 硬件汉字库 液晶显示 P89C51RD2 _______________________
随着液晶显示技术的发展和应用 越来越多的开发人员希望在自己开发的仪器设备中使用液晶屏幕来 显示汉字 通常的汉字显示方式是先根据所需要的汉字提取汉字点阵 如 16 16 点阵 将点阵文件存入 ROM 形成新的汉字编码 而在使用时则需要先根据新的汉字编码组成语句 再由 MCU 根据新编码提取相应 的点阵进行汉字显示 在这种显示方式中 如果使用的汉字数量较大或语句较多时 利用汉字的新编码组 成语句将是一件繁琐而枯燥的工作[1] 如果有新的汉字加入 那么汉字库的维护也成问题 而我们日常生 活的一些手持工具上 如手机 快译通等等 它们可以任意输入汉字 不仅灵活性大 而且检索速度快 这其中的主要原因就是在这些设备中固化了硬件汉字库 而半导体技术的发展 使得大容量 FLASH ROM 的 价格大大下降 从而使用硬件汉字库的仪器设备的成本大大下降 因此 越来越多的技术开发人员开始关 注起硬件汉字库 希望能在自己开发的设备中设计并使用硬件汉字库 达到加快产品开发速度 降低软件 成本的目的
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 的液晶显示模块 作为论述开发硬件汉字 库的例子
相关主题