图形LCD模块ACM19264ASB的汉字显示
- 格式:doc
- 大小:32.50 KB
- 文档页数:3
在C51中,HZK16汉字库的使用(mydows's Blog转载)定义如下:unsigned char str[]="我"在运行时str被初始化为2个字节长度,内容为“我”的GBK码,为:0xCE(区码),0xD2(位码)。
使用如下换算公式得到“我”在HZK16文件中的地址,从该位置开始的顺序32字节为“我”的字模。
ADD=【(区码-0xa1)×0x5e + (位码-0xa1)】×0x20按照上面的计算方法,“我”的字模地址:0x216E0 。
他的C语言字模为:0x04, 0x80,0x0E,0xA0,0x78,0x90,0x08,0x90,0x08,0x84,0xFF,0xFE,0x08,0x80,0x08,0x90,0x0A,0x90,0x0C,0x60,0x18,0x40,0x68,0xA0,0x09,0x20,0x0A,0x14,0x28,0x14,0x10,0x0CHZK16字库是符合GB2312标准的16×16点阵字库,HZK16的GB2312-80支持的汉字有6763个,符号682个。
其中一级汉字有3755个,按声序排列,二级汉字有3008个,按偏旁部首排列。
我们在一些应用场合根本用不到这么多汉字字模,所以在应用时就可以只提取部分字体作为己用。
HZK16字库里的16×16汉字一共需要256个点来显示,也就是说需要32个字节才能达到显示一个普通汉字的目的。
我们知道一个GB2312汉字是由两个字节编码的,范围为A1A1~FEFE。
A1-A9为符号区,B0到F7为汉字区。
每一个区有94个字符(注意:这只是编码的许可范围,不一定都有字型对应,比如符号区就有很多编码空白区域)。
下面以汉字“我”为例,介绍如何在HZK16文件中找到它对应的32个字节的字模数据。
前面说到一个汉字占两个字节,这两个中前一个字节为该汉字的区号,后一个字节为该字的位号。
单片机液晶汉字显示c语言程序/*液晶屏分为4行*12列汉字,全部使用模拟接口方式。
/* TGLCMLIMIT64A接口程序(模拟方式);**********************单片机液晶汉字显示c语言程序***************************************** ************;连线图:;*LCM---89C52* *LCM---89C52* *LCM-------89C52* *LCM----------89C52* *;*DB0---P0.0* *DB4---P0.4* *D/I-------P2.6* *CS1----------P2.4* *;*DB1---P0.1* *DB5---P0.5* *R/W-------P2.7* *CS2----------P2.5* *;*DB2---P0.2* *DB6---P0.6* *RST--------VCC* *CS3----------P3.2* *;*DB3---P0.3* *DB7---P0.7* *E---------P2.3* *;注:89C52的晶振频率为12MHz *;*****************************单片机液晶汉字显示c语言程序********************************** ************///画线部分请参照avr的c程序。
/*#pragma src /*生成ASM文件开关,必要时打开 */#include#include#include#define Uchar unsigned char/***********液晶显示器接口引脚定义***************/sbit Elcm= P2^3; //sbit CS1LCM= P2^4; //sbit CS2LCM= P2^5; //sbit CS3LCM= P3^2; /*这个连接只是做实验的临时接法。
基于PIC单片机的19264点阵型液晶显示屏接口设计文章以19264点阵液晶显示屏为例,介绍了PIC单片机与19264点阵显示屏的硬件接口电路,并给出了使用C30编写的底层驱动接口程序和部分应用层代码,所给出的接口设计方法对相关点阵屏的使用有一定的借鉴意义。
标签:19264;单片机;接口技术前言单片机应用系统中,显示模块有数码管、1602、12864、19264点阵屏,这些都是最常见s的、可用于电子开发的显示屏。
其中19264点阵显示屏功耗低,体积小、显示信息量大,除了能显示字母和数字外,还能显示图片,被广泛的应用于工控领域。
文章以19264点阵屏为例,介绍其与PIC单片机的接口技术。
对于不带字库的液晶显示屏应用有一定的借鉴作用。
1 硬件接口设计19264液晶显示屏生产厂家比较多,但是根据通讯方法有SPI,II2C、并行口这几种方式,我们选取并行口YXD-19264显示模块为例,介绍硬件接口电路设计。
YXD-19264显示模块是一种图形点阵液晶显示模块,它主要由行驱动器、列驱动器及192×64全点阵液晶显示器组成。
可完成线、圆、BMP图片等图形显示,也可以显示12×4个(16×16点阵)汉字,工作温度为-10℃~+55℃,存储温度存储温度为-20℃~+66℃,工作电流约1.3mA(无背光4,无负压)4m(无背光,带负压)底背光电流小于200mA(5.6Ω限流电阻)。
YXD-19264模块接口电路简单,对外只有20个管脚。
管脚定义如表1所示。
单片机选用PIC通用系列16 位MCUPIC24FJ256GB110,它有16位数据宽度,24位指令宽度,片内闪存256KB,有多达85个可编程数字I/O,工作40MIPS,工作电压+3.6V-+5V,外围资源非常丰富,非常适用于工控领域。
按照YXD-19264的管脚定义和PIC24FJ256GB110芯片资源,设计的硬件连接如下:(1)LCD的DB0-DB78位并行数据口接RB0-RB7;(2)LCD的R/W接RB8;(3)LCD的D/I接RB9;(4)LCD的/RST接RB10;(5)LCD的E接RB11;(6)LCD的CS1,CS2分别接RB12,RB13。
1引言
在基于单片机的智能系统中,汉字显示模块是很重要的一个组成部分,它应用广泛、操作容易、调试简便。
然而,在单片机上显示汉字也存在几个问题。
首先,单片机资源有限,我们不能为了显示汉字占用太多的资源;其次,汉字存储读取比较繁琐,使用不方便;第三,汉字是通过点阵显示出来的,往往与LCD写入方式不一样,这就得进行转换和调整。
值得注意的是,基于单片机的汉字显示不能在字符LCD上实现。
使用图形LCD有很多优点,不仅能显示汉字,而且可以实现汉字动态移动和上下滚屏,实现汉字与图形的混合显示,同时功耗低。
2基于单片机的汉字显示原理
2.1汉字字模
汉字一般是以点阵式存储的,如16×16,24×24点阵(即汉字的字模),每个汉字由32字节(16点阵)或72字节(24点阵)描述。
根据汉字的不同字体,也可分为宋体字模、楷体字模、黑体字模等等。
汉字的字模其实是汉字字形的图形化。
对于16点阵字模,就是把汉字写在一个16×16的网格内,汉字的笔画能过某网格时该网格就对应1,否则该网格对应0,这样每一网格均对应1或0,把对应1的网格连起来看,就是这个汉字。
汉字就是这样通过字节表示点阵存储在字库中的。
为了方便查找所需汉字的汉字字模,每个汉字都与一个双字节的内码一一对应。
通过汉字的内码可以计算出它的点阵起始字节。
现以16点阵为例说明。
先由内码计算出它在汉字库中的区位码,计算公式为:
区码=内码第一字节-160
位码=内码第二字节-160
再由区位码可以得到它在汉字库中字模第一个字节的位置:
(区码×94+位码)×32 于是,可以向后连续读出由32个字节组成的该字的点阵数据。
2.2汉字显示
汉字占用资源太多(如16点阵,每个汉字就需32字节),因而通常把汉字库放在EEPROM里,需要显示某个汉字时,先算出它的区位码,再求出点阵起始位置,从EEPROM 中顺序调出该字的点阵数据,存在缓冲区里,最后依次送往LCD显示,描出该字。
需要说
明的是汉字存储方式与LCD 显示方式有一定差别。
本文使用另一种显示方法,即事先将程序用到的汉字、符号和数码(为了节省显示空间,可以将数码压成8×16点阵),编成一个文本文件,用一段小程序做出相应小的汉字库,这个小字库的汉字点阵数据取自于一般汉字库。
再经过转换和调整,得到新的汉字库,最后把新字库固化在EEPROM中。
单片机只需按序号读出点阵字节,送往LCD即可显示所需汉字。
减轻了单片机的负担,去除了繁琐的查找内码、求起始位置、转换、调整等工作,提高了系统可靠性。
表116点阵汉字字库存储方式
3自定义小字库的制作
典型的汉字库可选用UCDOS下的字库,如16点阵字库HZK16。
需要256K空间,用了较大的EEPROM,又不方便读取,而实际应用中需要的汉字又非常少,因而我们可以自己制作小的汉字库,在这个小字库里只包含系统需要的汉字。
这样,一方面节省读取时间,另一方面大大地节省了资源。
限于篇幅,这里仅仅给出流程图(假定事先将所需汉字写到了一个文本文件),如图1所示。
4图形点阵液晶显示模块ACM19264ASB的结构与原理
4.1技术参数和性能
1)电源:+5V;
2)显示内容:192(列)×64(行)点阵,可显示图形,也可显示12×4(16点阵)汉字;
3)全屏幕点阵;
4)7种指令;
5)与CPU接口采用8位数据总线并行输入输出和8条控制线。
4.2模块主要外部接口
1)VSS:地;
2)D/I:高时表示DB7~DB0为显示数据,低时表示为显示指令数据;
3)R/W:读写控制;
4)E:使能信号;
5)DB7~DB0:数据线;
6)CS3~CS1:3组列驱动选择器;
7)RESET:复位控制;
8)VEE:负电压驱动。
4.3指令说明,指令字为【R/W,D/I,DB7,DB6,DB5,DB4,DB3,DB2,DB1,DB0】
1)显示开关控制【0,0,0,0,1,1,1,1,1,D】,D=1表示开显示,可进行各种显示操作;
2)设置显示起始行【0,0,1,1,A5,A4,A3,A2,A1,A0】,起始行地址可以是0~63的任意一行;
3)设置页地址(即X地址)【0,0,1,0,1,1,1,A2,A1,A0】,8行为一页,模块共64行即8页,0~7可选;
4)设置Y地址【0,0,0,1,A5,A4,A3,A2,A1,A0】,Y可从0~63选,对应CS3~CS1,各包含64列,Y可选择其中一列作读写操作起始列,每操作一次Y自动加1;
5)读状态【1,0,BF,0,ON/OFF,RST,0,0,0,0】,其中BF为忙标志,BF=1表示内部正进行操作,不接受外部指令,ON/OFF为显示控制触发器状态,ON/OFF=1为开显示,数据就显示在屏幕上,RST=1表示内部正进行初始化,不接受任何指令和数据;
6)写显示数据【0,1,D7,D6,D5,D4,D3,D2,D1,D0】,写入显示数据存储单元进行显示,Y 地址指针自动加1;
7)读显示数据【1,1,D7,D6,D5,D4,D3,D2,D1,D0】,读出数据,Y自动加1。
4.4模块主要硬件构成说明
图形显示LCD模块ACM19264ASB的内部结。