最近的一个嵌入式开发项目要求实现UCDOS字库的显示和打印.
 
由于嵌入式系统没有中文的操作系统,而且所用的打印机也不含字库,所以要求编程实现字库的显示和点阵输出打印功能.
 
经过认真分析需求和系统运行环境,决定用C开发完成此功能.
 
在这里把开发的思路理一下:
 
1. 所要求显示或打印的汉字的编码格式需要明确,目前常用的有GB2312-80,GBK,UNICODE等.
2.所需字库的点阵大小应该明确.由于最终字库要放到单片机中,所以不能太大.
3.字库的编排格式要分析清楚.
 
经过研究,确定如下:
1.采用国标一二级汉字,使用GB2312-80编码.
2.点阵使用16*16,每个字占用16*16/8=32个字节,全部6000多个汉字,共需200K左右的空间.
3.字库是按区位码排列,每个区94个汉字.
4. 从GB2312-80编码到区位码的变换为 高位字节和低位字节均减去16进制 0xA0.
5.在 UCDOS 的点阵字库 HZK16 中每个汉字的点阵为 16点*16点 共32字节,数据按第一行 1-8点,9-16点,第二行 1-8点,9-16点...排列,每位数据 1 为要显示点,0 为不显示点。
 
根据以上思路,完成了该项目的开发.具体的编程代码就不在这里浪费大家的时间了,只要对任何一种开发语言比较熟悉,均可以在很短的时间内完成编码工作.
从另一角度看,项目的开发,思路比编码要重要得多,不知道我的感觉是不是正确.