小点阵汉显液晶模块及其应用_第1页
小点阵汉显液晶模块及其应用_第2页
小点阵汉显液晶模块及其应用_第3页
小点阵汉显液晶模块及其应用_第4页
小点阵汉显液晶模块及其应用_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

小点阵汉显液晶模块及其应用

摘要:HZ132-64B30是一种采用12×12点阵的小点阵汉字液晶显示模块,该模块内嵌T9拼音输入法并采用标准的UART与控制MCU通信。文中介绍了该模块的性能特点、引脚功能及用户命令,给出了HZ132-64B30的具体应用电路和应用程序。

关键词:小点阵;汉显液晶模块;单片机;HZ3132-64B30

对于手机等体积小巧的电子产品,其人机界面一方面要满足大信息量的显示要求,另一方面,显示屏的大小又受体积的制约。因此,如何在面积有限的情况下多显示一些汉字已成为此类产品需要解决的重要问题。而解决上述问题最为行之有效的方法就是采用小点阵汉字显示,这样可以在同样的成本和体积下多显示一些汉字。另一方面,此类电子产品还要求具有较强的汉字输入功能,以满足汉字输入及查找的需要。

HZ132-64B30即是采用小点阵汉字显示,它是具有12×12点阵汉字显示功能的液晶图形显示模块。该模块同时还内嵌了先进的T9拼音输入法,并采用UART方式与控制MCU进行接口,因此可为手机、智能终端等人机交互信息量大的电子产品提供一个较好的解决方案。

1HZ132-64B30的性能特点

HZ132-64B30汉字液晶显示模块的主要性能特点

●模块分辨率为132×64,全屏幕图形点阵,汉字显示点阵为12×12;

●内含12×12点阵一、二级简体中文汉字字库及12×6点阵ASCⅡ字符库;

●全屏幕可以显示每行10个共5行标准宋体汉字或者20×5个ASCⅡ字符,非常适合信息终端类显示;

●具有多种图形及文本显示命令;

●采用串行接口控制,硬件连接比较简单;

●内嵌先进的T9拼音输入法,与大多数手机的拼音输入法兼容;

●液晶屏尺寸:53.0×28.0×2.0,显示点阵:0.26×0.28;

●采用单+5V电源供电,内部可提供显示驱动负电压。

HZ132-64B30汉显模块在模块上方的一排5根引脚是给用户的电源和串行数据口,现将各引脚功能说明

VCC:5V正电源端;

TXD:汉显模块的串行数据输出引脚;

RXD:汉显模块的串行数据输入引脚,在模块启动期间,该脚接地可以激活自检程序,此时液晶屏将显示自检画面

GND:接地端;

RESET:外部复位引脚,高电平有效。

2用户命令

控制MCU一般通过串口命令与汉显模块进行通信,模块对串口命令做出相应的显示或返回相应的数据,模块的通信格式为9600,n,8,1,所有发往汉显模块的命令都是以“ESC”键值0X1b开始,后面跟一个字节的命令码,其后再跟具体的命令内容。模块返回的内容则是以“ESC”开始,后面跟一个字节的命令码,其后跟返回内容。模块可自动对每条指令做出是否成功的返回响应,执行成功时返回“OK!”,错误指令则返回“error”。对于有数据返回的指令,这些响应通常跟在数据的后面。当模块正常运行时,可以通过适当的设置使其不再对命令执行做出成功与否的响应,以提高模块的运行速度。

发往模块的命令格式为:ESC、命令代码、命令内容;

模块返回的数据格式为:ESC、返回内容。

下面详细介绍各用户命令

设置LCM的灰度

命令格式:ESC,0X31,HD;

0X31:灰度设置命令;

HD:灰度值,取值范围为0X00~0X3F,建议灰度值取为0X07。

清屏命令

命令格式:ESC,0X32;

设置光标位置

命令格式:ESC,0X33,X,Y;

其中X为以汉字为单位的屏幕列坐标值,取值范围为0~19;Y则是以汉字为单位的屏幕行坐标值,取值范围为0~4。

显示光标

命令格式:ESC,0X34,A;

其中,A为光标显示开关,A为0时,不显示光标,A为1时,光标显示。

在光标位置显示字符串

命令格式:ESC,0X37,B,N,END;

该命令可在当前光标位置显示汉字或ASCⅡ字符串,也可用于显示单个汉字或ASCⅡ字符。其中:B为显示属性开关,当B为0时,正常显示字符,B为1时,反显字符;N为显示字符的内容,当显示内容为汉字时,N为显示汉字的内码;当显示内容为ASCⅡ码时,N为ASCⅡ码值;END为结束标志,其值为0X00。

在任意位置画点

命令格式:ESC,0X38,C,X,Y;

画点时,坐标原点都是在左上角,X坐标向右递增,Y坐标向下递增。其中:C是画点属性开关,C为1时,在该坐标原点画一个点,C为0时,擦除该坐标的点;X表示以点为单位的X坐标值;Y表示以点为单位的Y坐标值。

任意位置画线

命令格式:ESC,0X39,D,X0,Y0,X1,Y1;

其中,D为画线属性,D为2时,画一条虚线;D为1时,画一条实线;D为0时,擦除该位置的线;X0表示直线一端的X位置;Y0表示直线一端的Y位置;X1表示直线另一端的X位置;Y1表示直线另一端的Y位置。

任意位置画圆

命令格式:ESC,0X41,E,X,Y,R;

其中,E表示画圆属性,E为1,画一个圆,E为0,擦除该圆;X表示圆心的X位置;Y表示圆心的Y位置;R表示半径。

画图片

命令格式:ESC,0X42,F,X0Y0,X1Y1,N;

其中,F为画图属性,F为0,画正常图,F为1,画反显图;X0Y0为图片左上角的坐标位置;X1Y1

为图片大小,宽为X1高为Y1;N为多字节图形数据,排列方法为横向8bit,字节为左高右低,字节排列顺序为从左到右、从上到下。

画ICON

命令格式:ESC,0X43,G,N;

该功能用于显示厂家预设在模块内的ICON图形。其中:G表示ICON属性,G为1时,画该ICON,G为0时,擦除该ICON;N表示从左到右第几个ICON0<n<131。

取数字组合的有效拼音组合用于T9拼音输入法

命令格式:发送:ESC,0X47,N1,END;

返回:ESC,N1,X1,END,Xn,END;

数字代表的字母采用国际标准:0和1无效,2ABC,3DEF,4GHI,5JKL,6MNO,7PQRS,8TUV,9WXYZ;

N1表示输入数字所代表的字母小于或等于6个数字,取值范围为2~9,代表的字母范围为A~F;

X1表示第一个返回的拼音字符串;

Xn表示第n个返回的拼音字符串;

取符合输入拼音字符串的汉字串用于T9拼音输入法

命令格式:发送:ESC,0X48,N,Xn,N,END;

返回:ESC,Nx,END。

其中,N表示返回汉字的个数;Xn表示返回第几页的汉字n≥1;N1表示输入的拼音字符串≤6个数字;Nx表示返回的汉字串。

设置是否对命令做返回响应

命令格式:ESC,0X50,H;

其中,H为命令响应属性,H为00表示不返回命令响应,H为01则表示当命令正确执行时返回“OK!”,当命令不正确时返回“error”。

3具体应用

HZ132-64B30汉显液晶模块可广泛用于人机交互界面友好、显示信息量大的电子产品中,由于控制MCU是通过UART与液晶模块进行通讯的,故该模块几乎可与任何种类的单片机进行接口。对于不具备UART或UART被占用的单片机,可使用通用I/O口线来模拟串口,但模拟串口的波特率将受到指令周期的限制而无法做得很高,一般只能做到4800bps,这时可将汉显模块的晶振更换为11.0592MHz,同时模块的波特率也改为4800bps,即可正常通讯了。

图1是以AT89C2051单片机为例,给出的汉显液晶模块与单片机的接口电路。

下面是采用C51语言编写的与图1硬件电路配套的子程序

#defineCRputstring//发送一个回车换行

#defineOLEN8//串行发送缓冲区长度

idataucharoutbuf[OLEN];//发送缓冲区

dataucharidata*outlast=outbuf;//最后由中断传输出去的字节位置

dataucharidata*putlast=outbuf;//最后放入发送缓冲区的字节位置

#defineILEN30//串行接收缓冲区长度

idataucharinbuf[OLEN];接收缓冲区

dataucharidata*inlast=inbuf;//最后由中断进入接收缓冲区的字节位置

dataucharidata*getlast=inbuf;//最后取走的字节位置

bitoutbufsign0;//最后一个数据发完标志,发完=0

bitoutbufsign;//输出缓冲区非空标志,非空=1

bitinbufsign;//接收缓冲区非空标志,非空=1

bitinbufful;//输入缓冲区满标志,满=1

//放入一个字节到发送缓冲区

putbyte

{

ES=0;//暂停串行中断,以免数据比较时出错

while==2)&&)||&&==2)))

{

ES=1;

c++;c--;

ES=0;

}

*putlast=c;//放字节进入缓冲区

putlast++;//发送缓冲区指针加一

ifputlast=outbuf;

//指针到顶部后换到底部

outbufsign=1;

if

{

outbufsign0=1;

TI=1;

}//缓冲区开始为空置为有,启动发送

ES=1;

}

//设置光标位置

voidlcd_cursor(ucharx,uchary)

{

putbyte(0x1b);

putbyte(0x33);

putbyte(x);

putbyte(y);

}

//显示字符串

voidlcd_string(ucharattr,uchar*string)

{

putbyte(0x1b);

putbyte(0x37);

putbyte(attr);

putstring(string);

putbyte(0x00);

}

//画点

voidlcd_dot(ucharattr,ucharx,uchary)

{

putbyte(0x1b);

putbyte(0x38);

putbyte(attr);

putbyte(x);

putbyte(y);

}

//画图片,*picturedata指向图片数据,图片数据的第一二个字节是图片宽度和图片高度

voidlcd_picture(ucharattr,ucharx0,uchary0,uchar*picture_data)

{

putbyte(0x1b);

putbyte(0x42);

putbyte(attr);

putbyte(x0);

putbyte(y0);

putbytes(picture_data,(((*picture_data)+7)/8)*(*(picture_data+1))+2);

}

//发送字符串到串口

putstring(uchar*puts)

{

for(;*puts!=0;puts++)//遇到停止符0结束

putbyte(*puts);

}

//串口中断处理

serial()interrupt4

{

if(TI)

{

TI=0;

if(outbufsign)

{

SBUF=*outlast;//未发送完继续

outlast++;//最后传出去的字节位置加一

if(outlast==outbuf+OLEN)outlast=

outbuf;//地址到顶部回到底部

if(putlast==outlast)outbufsign=0;

//数据发送完置发送缓冲区空标志

}

else

{

outbufsign0=0;

}

}

if(RI)

{

RI=0;

if(!inbufful)

{

*inlast=SBUF;//放入数据

inlast++;//最后放入的位置加一

inbufsign=1;

if(inlast==inbuf+ILEN)inlast=inbuf;

//地址到顶部回到底部

if(inlast==getlast)inbufful=1;

//接收缓冲区满置满标志

}

}

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论