引言
由于LCD液晶显示器具有功耗低、体积小、重量轻、超薄等诸多其他显示器无法比拟的优点,已广泛应用于各种智能型仪表和低功耗电子产品中。
点阵式或图形式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下滚动、动画、闪烁、文本特征显示等功能,用途十分广泛。
2 键盘设计原理
采用美国Microchip Technology公司的8位PIC16F877单片机,利用RB口电平变化中断来实现参数修改,通过查表方式可以选择两百多种起动方式以及选定起动方式下两百多个参数值输入,其最大的选择值取决于寄存器N和M的上限值,如图1所示。
读RB口状态要进行软件消抖处理,即读入RB口状态,然后软件延时大约50ms再读入RB口状态,两次状态相同说明状态正确,防止抖动引起误操作。
3中文液晶显示器LCM12832ZK与单片机PIC16F877硬件接线
本设计单片机PIC16F877与中文液晶显示器LCM12832ZK采用模拟串行通信方式,单片机RD5引脚接液晶显示器串行时钟线E,单片机RD6引脚接液晶显示器数据线RW,单片机RD7引脚接液晶显示器串行选通线RS。
如图2所示,R1用来调节液晶显示器背光源亮度,R2用来调整液晶显示器中文字幕的辉度。调节电位器R2到适当值对字幕显示来说很重要,当R2过大液晶显示器黑屏;当R2过小,液晶显示器过亮,看不到字体显示。
RB口要设置为弱上拉。利用RB口电平变化中断,通过查表方式找到相应的中断服务子程序,最多有两百多种参数可选择,操作简单方便。
4 中文液晶显示器LCM12832ZK的串行及并行接口
4.1LCM12832ZK引脚及其功能如表(1)所示:
4.2 LCM12832ZK液晶显示基本功能
LCM12832ZK可两行显示,每行可显示8个汉字。其字型ROM内含8192个中文字型和128个半宽的字母符号字型,另外绘图显示画面提供一个绘图区域GDRAM,而且内含CGRAM 提供4组软件可编程的点阵造字功能。
LCM12832ZK与单片机等微控器的接口界面灵活,三种模式并行8位/4位及串行3线/2线,还可实现汉字、ASCII码和点阵图。
形的同屏显示,以及具有上/下/左/右移动当前显示屏幕及清除屏幕的命令,具有光标显示/闪烁控制命令及液晶睡眠/唤醒/关闭显示命令预留多种控制线,如复位/串并选择/亮度调整供用户灵活使用。
4.3 并/串接口模块设置
4.4 串行接口数据传输
本设计采用串行模式,即将模块背面S/P的短路电阻在“S”侧。在串行模式下将使用二条传输线作串行资料的传送,主控制系统将配合传输同步时钟(SCLK)与接收串行数据线(SID),来完成串行传输的动作。
串行接口在传输数据时,片选CS先置为1。当时钟SCLK上升缘到达时,传输一个数据。从一个完整的串行传输流程来看,一开始先传输起始位,它需先接收到五个连续的“1”(同步位串)在起始位元组,此时传输计数将被重置并且串行传输将被同步,再跟随的二个BIT 分别指定传输方向位(RW)及暂存器选择位(RS),RW:RS为0:0时写命令到LCD的RAM中,RW:RS为0:1时写数据到LCD的RAM中,最后第八位则为“0”。
在接收到起始位元组后,每个指令/数据将分为二组接收到:较高4位元(DB7~DB4)的指令资料将会被放在第一组的LSB部分,而较低4位元(DB3~DB0)的指令资料则会被放在第二组的LSB 部分,至于相关的另四位则都为0,具体如图4所示。
5 中文液晶显示器LCM12832ZK的串行接口程序设计
5.1PIC16F877单片机串行端口设定
#DEFINE CSPORTD,7 ;CS是片选,工作时为1
#DEFINE SCLK PORTD,5 ;SCLK是时钟线,上升沿动作
#DEFINE SID PORTD,6 ;SID是数据线
5.2 中文液晶显示器LCM12832ZK的初始化过程
MOVLW .40
CALLDELAY_2
MOVLW B i00110000 i ;功能设定
MOVWF DAT
CALLW_COMMOND
CALLDELY_1
MOVLW B i00110000 i;功能设定
MOVWF DAT
CALLW_COMMOND
CALLDELY_1
MOVLW B i00001100 i;显示状态开/关
MOVWF DAT
CALLW_COMMOND
CALLDELY_1
MOVLW B i00000001 i;清除显示
MOVWF DAT
CALLW_COMMOND
MOVLW .10
CALLDELAY_2
MOVLW B i00000110 i ;进入点设定
MOVWF DAT
CALLW_COMMOND
5.3中文液晶显示器LCM12832ZK字型显示子程序
单片机的数据和指令是以串行输送的方式发给中文液晶显示器LCM12832ZK模块,每次输1个字节。输送时,LCM12832ZK中文液晶显示器有固定的传输模式,本设计在软件上是采用循环的方式每次输送24个位元,具体的时序如图4所示,其实现的程序如下:
MOVLW0XB2 ;显示“参”字子程序
MOVWFDATH ;其中“B2CE”为“参”字字库代码
MOVLW0XCE
MOVWFDATL
MOVLWB i10000000 i ;80H为“参”字显示位址
CALLDISPLAY
DISPLAY;显示通用子程序
MOVWFDAT
CALLW_COMMOND;调用写命令子程序
CALLDELY_1;调用延时100μs子程序
BSF RWRS,0;RWRS的1位和0位为命令与数据判断位
BCF RWRS,1 ;bit1-bit0: 00 传输命令
MOVF DATH,W ;bit1-bit0: 01 传输数据
MOVWFDAT
CALLWRITE_1;调用写数据子程序
MOVFDATL,W
MOVWFDAT
CALLWRITE_1
RETURN
6结束语
采用PIC16F877单片机控制LCM12832ZK中文液晶显示器以及多参数键盘输入编程方法,具有实用、低价、指令小、功能强和简单易学的特点,而且外部接线简单灵活,软件修改方便。采用的LCM12832ZK中文液晶显示器有强大的字库和图形编辑功能,适用于各种低压电器智能化液晶显示部分。