老古开发网首页
导航:老古开发网首页文章索引文章分类新闻热点→[经验谈:单片机应用中快速建立小字库的方法]
| -文章搜索 - 最新文章 - |

经验谈:单片机应用中快速建立小字库的方法

发布时间:2006年2月25日 点击次数:1138
来源:单片机与嵌入式系统应用   作者:济南大学 王小平 梁立新 王永燕
 
经验谈:单片机应用中快速建立小字库的方法 在许多单片机应用系统中,经常要用到汉字,以便进行输出显示,此时需要建立单片机的专用字库,而人工向单片机输入所需汉字是非常费时费力的工作。本文围绕这一问题,介绍一种利用C语言快速建立小字库的方法。 一、 有关汉字字库知识的简介 1 汉字的区位码与内码 国家标准的汉字字符集(GB2312-80)在汉字操作系统中是以汉字库的形式提供的。汉字库结构有统一规定,即将汉字库分成94个区,每个区有94个汉字(以位作区别),每个汉字在汉字库中有确定的区和位编号(用两个字节),这就是所谓的区位码。区位码的第一个字节表示区号,第二个字节表示位号,因而只要知道了区位码,就可以知道该汉字在字库中的地址。每个汉字在字库中是以点阵字模形式存储的,如一图1“大”字的字模般采用16×16点阵形式。一个大字的16×16点阵字模如图1所示。当用存储单元存储该字模信息时,将需要32字节,如图1右边所示。 在计算机内,英文字符是用一个字节的ASCII码表示的,而对于众多的汉字,需用两个字节才能代表,国家为此制定了统一标准,称为国标码。又规定国标码在机内表示汉字时,将每个字节的最高位置1。这些国标码的两字节最高位加1后的代码称为机器内的汉字代码,简称内码。 2 内码转换为区位码与取字模 汉字内码与区位码有固定的转换关系,即若汉字内码为十六进制数aaff,则区号qh和位号wh分别为 qh=aa-0xa0;wh=ff-0xa0。 由于在中文DOS下,输入汉字时,其相应的内码即已在程序中存在,如同在西文DOS下,输入英文字符时,其对应的ASCII也在程序中存在一样。因而得知汉字内码,将其转换为区位码,这样就可以找出该汉字字模在字库中存放的地址,由此地址调出该32字节汉字的内容(字模)。 二、 单片机应用中小字库的程序设计 DB40HDB0FCH DB0FEHDB7CH图2单片机数据区根据以上汉字字库知识的简介,利用C语言建立小字库的方法是这样的:在UCDOS下打开标准字库→取出所需汉字字模→生成专用小字库文件。但是,单片机不能识别C语言建立的专用小字库文件。单片机能识别的存储模式如图2所示。 因此,需要把C语言建立的专用小字库转换成MCS51单片机能识别的存储模式。由于C语言建立小字库程序有专门介绍,在此只给出转换过程所需的C语言语句: //C语言建立小字库文件fp16 fread(&buffer,char_16,1,fp16);//取字模 for(j=0;j<= char_16-1;j++)//设置循环次数(一个汉字字模为32字节) { fprintf(fp22,“db”);//MCS51语句定义符(fp22为MCS51能识别的库文件) if(buffer\[j\]<=0xf buffer\[j\]>=0xa)//若一个字节左边 是字母(≥10),前面加0 { fprintf(fp22,“%x”0); } printf(fp22,“%x”,buffer\[j\]);//写汉字字模(一次一个字节) fprintf(fp22,“h\\n”);//最后加上H,然后换行 }  在DOS环境下,把利用C语言建立的单片机小字库文件fp22与单片机汇编程序合在一起,通过单片机开发器写入EPROM。可以看出,每个汉字字模都由程序自动写入EPROM,既节省时间,又避免了字模人工输入时可能产生的错误。在多汉字的单片机应用系统中,此方法更能体现它的实际意义。 (济南大学王小平梁立新王永燕)

欢迎进入老古论坛进行讨论
[新闻热点] 相关文章:
英特尔芯片打低价策略矽统威盛受影响
简介:
  据来自市场方面的消息称,目前英特尔865芯片组的单价为16-17美元,仅比矽统与威盛同等芯片组高出3-5美元。这对原来想抢夺主板芯片组市场份额的矽统和威盛无疑是一次当头棒喝。   今年第一季度,英特尔开始在市场上大量供应865芯片组,业内人士分析,原来作为第一解决方案的ATI芯片组,预期将首先受到冲击,尽管RC410芯片组性价比很高,但是出货量估计不会出现雪崩效应。而矽统也会相应受到影响。   有关数据显示,矽统1月份营收11.3亿新台币,同比增长19%;威盛上月销售额达到20.4亿新台币,比去年同期增长32%。 ......

Nvidia推新款图形芯片可用手机玩Quake3
经验谈:SPI在LonWorks控制节点中的应用
经验谈:国标点阵汉字库的快速访问方法
经验谈:键盘问题的一些软件处理方法
苹果iPod降价举动波及亚洲NAND芯片制造商
国内首台IPTV液晶电视上市 售价近两万元
2006年韩国芯片原料市场将增长9.2%
中国计算机学会微机专业委员会会议报道
NOR闪存市场Intel不敌Spansion
 
下一个:[新闻热点]经验谈:利用单片机A/D端口扩展键盘的方法
简介:
经验谈:利用单片机A/D端口扩展键盘的方法笔者根据自己的实践,介绍一种利用富余的一路A/D转换,来实现接入4个按键开关的要求。 1 电路原理电路原理如图1所示。图1图1中电容C是抗干扰电容,AN0是芯片的A/D转换输入端,Va为待转换电压,VCC为电源电压,各电阻为精密金属膜电阻。2 工作原理由图1可知,在各种不同的工作状态下,Va是R0与其它电阻对VCC的分压值。通过简单的计算,在不考虑各种误差的影响时,Va的电压值及相应的A/D转换的数字值如表1所列。表1电压值和数字值对应表工作状态〖〗Va/V〖〗A/D转换值开关全部断开〖〗5〖〗FFHK0按下〖〗0〖〗00HK1按下,其它断开〖〗1......
 

上一个:[网络文摘]嵌入式RTOS讲座(2)

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:10分钟 执行时间:16毫秒