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行将这两位设置为低电平。