15.4 点阵图形型液晶操作子函数
液晶显示模块一般均为内置控制器,其操作基本类似。这里以前面介绍的点阵图形型液晶控制器ST7920为例,介绍液晶显示模块的操作子函数。在下面介绍中,常用到的符号含义如下。
❑E为液晶显示模块的读写使能信号。
❑R_W为液晶显示模块的读写选择信号。
❑RS为液晶显示模块的数据/指令信号。
❑D_I为液晶显示模块的数据指令选择信号。
这里采用8位并行接口操作方式对液晶进行操作,由单片机的P1端口作为数据和指令的输入端口。以下的子函数对于采用ST7920控制器的液晶显示模块均适用,而对于采用其他控制器的液晶显示模块则只需少量修改便可以使用。
15.4.1 指令操作子函数
指令操作子函数用于向液晶显示控制器写入各种操作指令。指令操作子函数程序示例如下。
01:void WCOM(unsigned char dcode)
//写指令程序
02:{
03:unsigned char q;04:R_W=1;
05:D_I=0;
//设置状态
06:Loop:
07:P1=0xFF;08:E=1;
//使能有效
09:q=P1;
//将P1口状态读入
10:E=0;
//关闭使能信号
11:if(q&0x80)
//判断屏幕是否忙
12:{
13:goto Loop;
//若忙,循环等待
14:}
15:R_W=0;16:D_I=0;
//写数据指令
17:P1=dcode;
//将数据送入P1口
18:E=1;
//使能信号开
19:E=0;
//使能信号关
20:}
程序中,首先从P1端口读入液晶显示控制器的状态,并判断屏幕是否忙。如果忙则等待,如果不忙则执行写指令。程序中,指令由参数dcode传递,并通过E来实现使能信号的开关。
提示
从表15.1可知道,当D_I和R_W都为低电平(即为0)时,写指令到指令寄存器(IR)。因此,第15、16行将这两位设置为低电平。