为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

字模与汉字

2011-01-29 50页 ppt 2MB 39阅读

用户头像

is_176781

暂无简介

举报
字模与汉字null嵌入式系统汉字的显示嵌入式系统汉字的显示—— 综合课程设计方向LED大屏幕显示器LED大屏幕显示器LCD液晶显示器LCD液晶显示器null 一 基本显示原理什么是字模?什么是字模?字模是用铜或其它金属制成的,一般是凹型字符的铸字模具。可以用铸字机通过字模将铅合金制成活字,用来进行活字印刷。 由此衍生到计算机的文字显示来计算机文字显示基本原理计算机文字显示基本原理如果存1的点在显示时为一个亮点,存0的点不显示,这样汉字就显示出来了。 如16*16点阵,简单写一下“大”这个字的字模: 这样当需要显示“大”这个汉字时,...
字模与汉字
null嵌入式系统汉字的显示嵌入式系统汉字的显示—— 综合课程方向LED大屏幕显示器LED大屏幕显示器LCD液晶显示器LCD液晶显示器null 一 基本显示原理什么是字模?什么是字模?字模是用铜或其它金属制成的,一般是凹型字符的铸字模具。可以用铸字机通过字模将铅合金制成活字,用来进行活字印刷。 由此衍生到计算机的文字显示来计算机文字显示基本原理计算机文字显示基本原理如果存1的点在显示时为一个亮点,存0的点不显示,这样汉字就显示出来了。 如16*16点阵,简单写一下“大”这个字的字模: 这样当需要显示“大”这个汉字时,首先把这个字模取出,然后逐位显示,1显示0不显示,屏幕上就会出现“大”这个汉字。 0000011000000000 0000001100000000 0000001100000000 0000001100000010 1111111111111111 0000001100000000 0000001100000000 0000001100000000 0000001110000000 0000011001000000 0000110000100000 0001100000010000 0011000000011000 1110000000001110 1100000000000100 0000000000000000 一个点阵字模占用的字节数一个点阵字模占用的字节数图中显示的“汉”字,使用16×16点阵。字模中每一点使用一个二进制位(Bit)示,如果是1,则此处有点,若是0,则说明没有。这样,一个16×16点阵的汉字总共需要16*16/8=32个字节表示。字模的一种表示顺序字模的一种表示顺序先从左到右,再从上到下,也就是先画左上方的8个点,再是右上方的8个点,然后是第二行左边8个点,右边8个点,依此类推,画满16×16个点。       null 二 汉字编码null汉字编码是认为定义一组汉字的顺序表。 目前常用的gb2312,gb13000,gbk,big5,和unicode. 机器内码是汉字编码在计算机里面的具体表示编码,他和汉字编码是有固定对应关系的。 现在window常用的是gbk,他是gb2312的兼容超集。null在计算机处理汉字和ASCII字符时,使每个ASCII字符占用1个字节,而一个汉字占用两个字节,其值称为汉字的内码。(L1)#include void main() { char *a="您"; unsigned char b,c; b=a[0]; c=a[1]; printf("%d,%d\n",b,c); }ASCII码ASCII码ASCII码:美国信息交换标准码 用7位二进制数编码,共包含27=128个符号 编码从00000000~01111111 顺序:控制符、特殊符号、数值、大写字母、小写字母 0的编码为: 48(D) 30(H) A的编码为: 65(D) 41(H) a的编码为: 97(D) 61(H)汉字编码汉字编码外码(拼音、五笔等) 交换码(GB2312-80的十六进制编码) 机内码(GB码,BIG5码,CJKGB码等) 输出码汉字编码(外码)汉字编码(外码)汉字输入码(外码): 操作人员从键盘上输入的代表汉字的编码。它由拉丁字母, 数字或特殊符符号构成。 有几百种编码,种类: 区位码,音码(如简拼,全拼,智能拼音等),形码(如五笔字型,表形码等),音形码(如自然码)。汉字编码(交换码)汉字编码(交换码)交换码: 是指不同的具有汉字处理功能的系统间交换汉字信息时使用的代码. 交换码使用规定的GB2312-80国标码,是统一的。 国标码: GB2312-80(信息交换用汉字编码字符集)所规定的汉字代码的十六进制表示形式。 区位码:但因为十六进制数我们很少用到,所以大家常用的是区位码,它的前两位叫做区码,后两位叫做位码。 国标码是一个四位十六进制数,区位码是一个四位的十进制数,每个国标码或区位码都对应着一个唯一的汉字或符号, 汉字编码(交换码)汉字编码(交换码)常用的6763个汉字,其中一级汉字3755个 ,二级汉字3008个, 各类符号几百个。如“ 啊”的区位码是1601D,其国标码是3021H,“东” 的区位码是2211D,其国标码是B6ABH。汉字编码(机内码)汉字编码(机内码)机内码: 计算机内部存储和加工汉字时所用的代码.汉字系统一般都采用2个字节的机内码来表示一个汉字.机内码有多种,如GB码,BIG5码,CJKGB码等.中国大陆常用GB码汉字编码(输出码)汉字编码(输出码)字形输出码: 是指在输出设备上输出汉字时所要送出的汉字字形点阵码。编码转换编码转换(加2020H)(加A0A0H)(加8080H)编码转换编码转换将区位码的区码和位码的b8、b6位加1就是机内码. 如:啊字的区位码为1601D,机内码为B0A1。 区码:(16)10=(00010000)2;机内码:10110000 位码:(01)10=(00000001)2;机内码:10100001 区码和位码合起来为B0A1 国标码采用16进制数对汉字进行编码,将它的b8位(最高位)置1就是机内码。 如:啊字的国标码为3021H,机内码为B0A1。 区码:(30)16=(00110000)2;机内码:10110000 位码:(21)16=(00100001)2;机内码:10100001 区码和位码合起来为B0A1区位码表区位码表区位码根据国家标准信息交换用汉字编码GB2312-80中汉字的区位编码。 根据其位置分为94个区,每个区分为94个位;区的编码从01-94,位的编码也是01-94;区位码的第一字节(前两位)是区码,第二字节(后两位)是位码。 汉字6763个,分为两级。其中一级字库从第16区到54区,按拼音排序。二级字库从55区到87区,按编旁部首排序。特殊图形符号和英,日,俄字母则分配在01到15区 区位码无重码,但无规律,难记. 常用来对一些特定图形符号进行输入.GB2312-80十六进制编码(国标码)十进制编码(区位码)取得汉字的区位码实例取得汉字的区位码实例  qh=c0-0xa0         wh=c1-0xa0   #include void main() { char *c="您"; unsigned char qh,wh; qh=c[0]-160; wh=c[1]-160; printf("%d,%d\n",qh,wh); }null 嵌入式系统汉字的显示方法(一) ——汉字库常见汉字库常见汉字库 UCDOS里带有这样的汉字库,HZK12, HZK16, HZK24S(宋体)、HZK24K(楷体)或HZK24H(黑体), HZK32等,它们用比特(bit)来存储汉字点阵。汉字字模的方法汉字字模的方法以HZK16文件为例       HZK16文件是按照GB   2312-80标准,也就是通常所说的国标码或区位码的标准排列的。 国标码分为   94   个区(Section),每个区   94   个位(Position),所以也称为区位码。其中01~09   区为符号、数字区,16~87   区为汉字区。而   10~15   区、88~94   区是空白区域。      汉字字模数据存储位置汉字字模数据存储位置   根据区号和位号可以得到汉字字模在文件中的位置:   location=( 94*(qh-1)+(wh-1) ) * 一个点阵字模的字节数       nullHZK12文件的格式有些特别,字模当作12*12位计算,根本无法正常显示汉字。应此字库设计者为了使用的方便,字模每行的位数均补齐为8的整数倍,于是实际该字库的位长度是16*12,每个字模大小为24字节,虽然每行都多出了4位,但这4位都是0(不显示),并不影响显示效果。   nullUCDOS下的HZK24S(宋体)、HZK24K(楷体)或HZK24H(黑体)这些打印字库文件,每个字模占用24*24/8=72字节,不过这类大字模汉字库为了打印的方便,将字模都放倒了,所以在显示时要注意把横纵方向颠倒过来就可以了。  null 嵌入式系统汉字的显示方法(二) ——字模提取软件nullGetPixelGetPixel函数功能:该函数检索指定坐标点的像素的RGB颜色值。 函数原型:;COLORREF GetPixel(HDC hdc, int nXPos, int nYPos) 参数:   hdc:设备环境句柄。   nXPos:指定要检查的像素点的逻辑X轴坐标。   nYPos:指定要检查的像素点的逻辑Y轴坐标。   返回值:返回值是该象像点的RGB值。如果指定的像素点在当前剪辑区之外;那么返回值是CLR_INVALID。Delphi下获得图片像素值Delphi下获得图片像素值h:HDC; h:=getdc(self.Handle ); color_v=GetPixel(h,x,y); color_v=image1.Canvas.Pixels[x,y];VC下获得像素值 实例VC下获得像素值 实例 CDC *pdc; pdc = GetWindowDC(); color_v=Pdc->GetPixel(X,Y);工程一、嵌入式uClinux系统下的汉字显示工程一、嵌入式uClinux系统下的汉字显示特点:一般嵌入式uClinux硬件系统资源比较丰富,因此汉字库可以直接为uClinux所用。请用VC++验证HZK16的正确性(L3_HZK)请用VC++验证HZK16的正确性(L3_HZK)软件验证: 1.输入一个汉字; 2.从HZK16读出汉字对应的字模; 3.把字模在图片上绘出;SetPixel SetPixel 函数功能:该函数将指定坐标处的像素设为指定的颜色。 函数原型:COLORREF SetPixel(HDC hdc, int X, int Y, COLORREF crColor); 参数:   hdc:设备环境句柄。   X:指定要设置的点的X轴坐标,按逻辑单位表示坐标。   Y:指定要设置的点的Y轴坐标,按逻辑单位表示坐标。   crColor:指定要用来绘制该点的颜色。   返回值:如果函数执行成功,那么返回值就是函数设置像素的RGB颜色值。这个值可能与crColor指定的颜我色有不同,之所以有时发生这种情况是因为没有找到对指定颜色进行真正匹配造成的;如果函数失败,那么返回值是C1。验证程序实例验证程序实例 CDC *pdc; FILE *HZK; unsigned char C[3]="是"; pdc = GetWindowDC(); if((HZK=fopen("hzk16","rb"))==NULL) exit(0); C[0]=m_e.GetAt(0) ; C[1]=m_e.GetAt(1) ; qu_ma=C[0]-0xa0; wei_ma=C[1]-0xa0; fseek(HZK, (94*(qu_ma-1)+(wei_ma-1))*32,SEEK_SET); fread(mat,32,1,HZK);null for(j=0;j<16;j++) { for(i=0;i<8;i++) { if( mat[j][0]&(0x80>>i) ) pdc-> SetPixel(100+i,100+j,100) ; } for(i=0;i<8;i++) { if( mat[j][1]&(0x80>>i) ) pdc>SetPixel(100+i+8,100+j,100) ; } } fclose(HZK); null 课程设计方向 多种汉字库的实现方法 课题的提出课题的提出汉字库只有HZK16、 HZK24S(宋体)、HZK24K(楷体)或HZK24H(黑体)等等几种,如果需要多种字体的汉字库,该如何实现?null解决方案: 1.首先在画布上按规定的字体写一个汉字; 2.然后通过GetPixel把该字的字模提取出来; 3.把区位码对应的所有汉字的字模都按1 、2的步骤提取出来。工程二、GSM模块传输汉字工程二、GSM模块传输汉字特点:一般显示屏控制器系统资源有限,同时因为传输距离较远,采用GSM模块通信。公共电话网络null请问:如果采用GSM模块,在计算机控制端,我们传输点阵字模是否合适? 不合适的话,能不能提出一种方案来?null课程设计方向 汉字库芯片实现方法 论文的提出论文的提出由于传输字模数据量太大,低端嵌入式系统资源有限,因此把汉字字模存储到汉字库芯片里,可以解决上述问题。解决方案解决方案把汉字库文件存储到ROM中那么在需要显示的时候,从ROM里把汉字字模提取出来显示即可。 null并行Flash 这里以SST39VF160为例,介绍NOR型FLASH存储器的结构及操作。 SST39VF160是SST公司的CMOS多功能FLASH(MPF)器件,存储容量为2M字节,16位数据宽度(即一个字为2字节),工作电压为2.7~3.6V。SST39VF160由SST特有的高性能SuperFlash技术制造而成,SuperFlash技术提供了固定的擦除和编程时间,与擦除/编程周期数无关。芯片管脚配置如下图所示。——NOR型Flash存储器null并行Flash——NOR型Flash存储器SST39VF160管脚描述 NOR型FLASH存储器采用的是SRAM接口,其地址线和数据线是分开的。 null并行Flash——NOR型Flash存储器SST39VF160工作模式选择null并行Flash——NOR型Flash存储器 NOR型FLASH存储器容量越来越大,为了方便数据管理,将FLASH划分为块(Block),每个块又分成扇区(Sector)。 SST39VF160的块大小为32K字,扇区大小为2K字。 读操作,可以对任何地址的任何字节进行,不受限制; 写操作,以字形式进行编程。编程前包含字的扇区必须完全擦除; 擦除操作,以扇区(2K)、块(32K)或全片为单位进行擦除。 擦除后数据变为0xFF。null并行Flash——NOR型Flash存储器 SST39VF160的存储器操作由命令来启动。命令通过标准微处理器写时序写入器件。将WE#拉低、CE#保持低电平来写入命令。地址总线上的地址在WE#或CE#的下降沿(无论哪一个后产生下降沿)被锁存。数据总线上的数据在WE#或CE#的上升沿(无论哪一个先产生上升沿)被锁存。存储器操作命令如下表所示。null并行Flash——NOR型Flash存储器SST39VF160与LPC2000连接图工程三、有线方式传输汉字图像工程三、有线方式传输汉字图像特点:许多点阵汉字显示屏是较大的图像。
/
本文档为【字模与汉字】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索