1 / 235
文档名称:

第九章ARM9LCD显示.ppt

格式:ppt   大小:1,755KB   页数:235页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第九章ARM9LCD显示.ppt

上传人:孔乙己 2022/12/1 文件大小:1.71 MB

下载得到文件列表

第九章ARM9LCD显示.ppt

文档介绍

文档介绍:该【第九章ARM9LCD显示 】是由【孔乙己】上传分享,文档一共【235】页,该文档可以免费在线阅读,需要了解更多关于【第九章ARM9LCD显示 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。第九章ARM9LCD显示

计算机内英文字符用一个字节的ASCII码表示,该字节最高位一般用做奇偶校验,故实际是用7位码来代表128个字符的,但对于众多的汉字,只有用两个字节才能代表,这样用两个字节代表一个汉字的代码体制,国家制定了统一标准,称为国标码。
国标码规定,组成两字节代码的最高位为0,即每个字节仅只使用7位,这样在机器内使用时,由于英文的ASCII码也在使用,可能将国标码看成两个ASCII码,因而规定用国标码在机内表示汉字时,将每个字节的最高位“置”1,以表示该码表示的是汉字,这些国标码两字节最高位加1后的代码称为机器内的汉字代码,简称内码。
以“哈”字为例:其国标码为0x3974,其内码为0xB9F4,即国标码与内码存在一种简单转换关系,将十六进制的国标码,两个字节各加80H后,即成内码。

当用某种输入设备,例如键盘将汉字输入计算机时,则管理模块自动地把键盘输入的汉字转换为内码,再由内码转换成区位码,通过区位码在汉字库中找到该汉字,进行显示。
由于区位码和内码存在着固定的对应关系,因而知道了某汉字的内码,即可确定出对应的区位码。
即若汉字内码为十六进制数0xaaff,则区号qh和位号wh分别为:
qh=0xaa-0xa0;
wh=0xff-0xa0;
因而该汉字在汉字库中离起点的偏移位置(以字节为单位),16×16点阵可计算为:
offset16=(94×(qh-1)+(wh-1))×32;
24×24点阵因为有点特殊,其偏移位置可计算为:
offset24=(94×(qh-16)+(wh-1))×72;
48×48点阵同24×24点阵,其偏移位置可计算为:
offset48=(94×(qh-16)+(wh-1))×288。

在嵌入式控制系统中显示汉字必须解决字膜问题,这当然可以在系统中增加硬件汉卡解决,但有时需要显示的汉字不多,增加硬件汉卡经济上不太划算,特别是批量较大的产品。有的时候现场条件不允许或系统体积受限或显示的汉字种类较多时,从大字库中提取字膜建立本系统自己的小字库就非常重要了。根据上一节的叙述已经知道了汉字显示原理,现在可以用任何一种编程语言来提取字模与建立小字库。

如果应用程序是使用C语言编制或对C语言熟悉,那么使用C语言来提取字模和建立小字库比较方便,C语言的汉字提取程序较多,×16点阵汉字。汉字输入是采用区位码,同时生成的小字库是C语言数据形式,可直接复制到用户程序中运行。还可以在LCD屏显示小字库内容。
程序分5段给出,每段都给出详细的解释。
//
#include<>
#include<>
#include<sys\>
#include<sys\>
#include<>
#include<>
#include<>
#include<>
#include<>
#include“”//这是用户定义的头文件

,:QU_WE[]={24,86,29,73,20,51,34,56,29,81};是汉字“个”,“介”,“从”,“仑”,“今”的区位码;CHNNUMBER(汉字个数)=5。
本程序的特点是不用输入汉字,直接输入区位码就可以得到字膜,同时还可以得到国标上有的拉丁文数字,一般符号,序号,日文假名,希腊字母,英文,俄罗斯文,汉语拼音符号,汉语注音字母等字膜。建立包括这些内容的字库,显示就更丰富多彩了。
具体可以显示哪些内容请参见:中华人民共和国国家标准《信息交换用汉字编码字符集基本集GB2312-80》,它可以从网站HTTP://。
#defineDISP-POX-X16 //显示开始点坐标
#defineDISP-POX-Y16
char*buffw={“0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,0x00000,\n”}; //小汉字库C语言数据格式
voidbintasc(charbinbyte,charhigh-l0w,intn0); //bit置位程序
*buffw数组
char*buffw数组中事先存储了小汉字库中C语言一行字模的存储格式,一个16×16点阵汉字占32个字节,提字模程序将字膜排成二行,一行8个字(16字节),改为C语言数据格式后,每个数前面加0x0,数与数之间用“,”号分隔,再加上每行前面的14个空格,一行是76个字节。
intmain(void)
{unsignedchartstch;
unsignedcharbufch[32];
unsignedcharbufchar[52];
characharl,achar2;
longlocation;
intgdriver=DETECT,gm0de,errorCODE;
intfdr,fdw;
intx=DISP-POX_X,y=DISP-POX_Y,color=3,startchn=1;