UCDOS中的点阵字库HZK12.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UCDOS中的点阵字库HZK12

UCDOS中的点阵字库HZK12,HZK16,HZK24,ASC12,ASC16[转] 2009年03月10日 星期二 13:40 ???????? 如何在嵌入式系统中使用大量的汉字和字符呢? ???????? DOS前辈们经过艰辛的努力,将制作好的字模放到了一个个标准的库中以免去后辈的麻烦,这就是点阵字库文件。 ???????? 一般我们使用16*16的点阵宋体字库,所谓16*16,是每一个汉字在纵、横各16点的区域内显示的。不过后来又有了HZK12、HZK24,HZK32和HZK48字库及黑体、楷体和隶书字库。虽然汉字库种类繁多,但都是按照区位的顺序排列的。前一个字节为该汉字的区号,后一个字节为该字的位号。每一个区记录94个汉字,位号则为该字在该区中的位置。 ???????? 因此,汉字在汉字库中的具体位置计算公式为:94*(区号-1)+位号-1。减1是因为数组是以0为开始而区号位号是以1为开始的。这仅为以汉字为单位该汉字在汉字库中的位置,那么,如何得到以字节为单位得到该汉字在汉字库中的位置呢?只需乘上一个汉字字模占用的字节数即可,即:(94*(区号-1)+位号-1)*一个汉字字模占用字节数,而按每种汉字库的汉字大小不同又会得到不同的结果。以16*16点阵字库为例,计算公式则为:(94*(区号-1)+(位号-1))*32。汉字库文该从该位置起的32字节信息即记录了该字的字模信息。 ????????? ☆打印字库文件和HZK12 ???????? 如果你有UCDOS的HZK24S(宋体)、HZK24K(楷体)或HZK24H(黑体),你还可以使用不同字体的大字模汉字了。HZK24系列是24*24的点阵字库,每字模占用3*24字节。如果你按照HZK16的显示方法的话,你会看到......呵呵,字被放倒了。这是因为该类字库与一般的汉字库不同,这类大字模汉字库是专供打印的打印字库,为了打印的方便将字模都放倒了,你使用时,只要将字模的位信息纵横转置显示即可。例如你如果定义为mat[24][3]则应该这样输出:  ???????? for(i=0;i24;i++)   ???????????? for(j=0;j24;j++)   ???????????????? if((0x80i%8)mat[j][i/8]) /*转置显示*/    ???????????????????? putpixel(j+x,y+i,color);   还有一类字库HZK12,虽然属于标准字库类型,但如果你将它的字模当作12*12位计算的话,根本无法正常显示汉字。因为字库设计者为了使用的方便,字摸每行的位数均补齐为8的整数倍,于是实际该字库的位长度是16*12,虽然每行都多出了4位,但这4位都是0(不显示),并不影响显示效果。在uC/GUI中实现汉字显示 2009年03月09日 星期一 09:55   以人为本的系统开发观念不断深入人心,GUI做为典型的人机交互接口,在系统开发工程中具有不可动摇的地位。易用的操作界面已成为衡量产品开发成功的重要因素。据统计,系统工程师要花去近三分之一的时间用于GUI系统的开发。完善的GUI开发系统,把设计人员从繁重的低层图形界面设计中解放出来,使其有更多的时间用于系统性能的提高。这极大的缩短了开发周期,使产品在激烈的市场竞争中抢占先机。 uC/GUI是Micrium公司专门针对嵌入式系统开发的一款通用图形界面开发系统。它提供高效的图形LCD管理,可以嵌于单任务和多任务嵌入式系统中。在小模式(small system)下,只需要100 B的RAM+500 B的STACK(RAM)+10~25 KB的ROM,全部代码用C语言完成,具有良好的可移植性,适用于各种CPU。 uC/GUI是一款非常简洁的图形界面开发系统,但是它缺乏对中文汉字的支持,严重阻碍了在国内的使用。本文结合工程实践,着重讲述汉字在uC/GUI上的实现过程,汉字字库的创建方法及其相关程序代码。 1uC/GUI中字体系统结构 uC/GUI中字体的显示是通过查找字模的方式实现的。字体库中的每一个字母都有其对应的字模,所有的字母的字模由GUI_FONT和GUI_FONT_PROP这两个结构体来进行统一管理。GUI_FONT结构体中定义了该字母的点阵大小(比如16×16或者8×8)和GUI_FONT_PROP结构体的入口地址。GUI_FONT_PROP这个结构体建立了字库中字母编码(比如字母A在ASCII中的字母编码为33)和字模数据存放地址的映像。值得一提的是,GUI_FONT_PROP中pNext指针指向下一个GUI_FONT_PROP数据的入口地址,这为解决在字母编码不连续的情况下,保证字模数据在程序段的存储连续这一问题提供了一个良好的解决方案。设计人员可以定义多个

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档