15.3.2 扩充指令集

液晶显示模块控制驱动器ST7920扩充指令集提供了更高级的液晶显示控制。当RE=1时,为扩充指令集模式。ST7920提供了7种扩充指令,这些指令也是用来完成液晶显示控制的。下面分别介绍各指令的使用。

1.待命模式指令

待命模式指令主要用于使ST7920进入待命模式。当ST7920进入待命模式后,执行其他任何指令都可以终止待命模式,该指令并不改变RAM的内容。待命模式指令的格式,如图15.19所示。

15.3.2 扩充指令集 - 图1

图 15.19 待命模式指令

2.卷动地址或RAM地址选择指令

卷动地址或RAM地址选择指令主要用于ST7920卷动地址或RAM地址选择。其中,当SR=1时,允许输入垂直卷动地址;当SR=0时,允许输入IRAM地址(扩充指令)及允许设定CGRAM地址(基本指令)。卷动地址或RAM地址选择指令的格式,如图15.20所示。

15.3.2 扩充指令集 - 图2

图 15.20 卷动地址或RAM地址选择指令

3.反白选择指令

反白选择指令主要用于选择4行中的任一行作反白显示,并可决定是否反白。其中,R1、R0初值为00,当第一次设定时为反白显示,再一次设定时为正常显示。R1和R0的取值含义如下所示。

❑当R1=0,R0=0,第一行反白或正常显示。

❑当R1=0,R0=1,第二行反白或正常显示。

❑当R1=1,R0=0,第三行反白或正常显示。

❑当R1=1,R0=1,第四行反白或正常显示。

反白选择指令的格式,如图15.21所示。

15.3.2 扩充指令集 - 图3

图 15.21 反白选择指令

4.睡眠模式指令

睡眠模式指令主要用于进入或脱离睡眠模式。其中,当SL=1时,脱离睡眠模式;SL=0时,进入睡眠模式。睡眠模式指令的格式,如图15.22所示。

15.3.2 扩充指令集 - 图4

图 15.22 睡眠模式指令

5.扩充功能设定指令

扩充功能设定指令主要用于指令集的选择和控制方式的选择等。其中,DL为4/8BIT控制选择,当DL=1时,为8位MPU控制方式;当DL=0时,为4位MPU控制方式。RE为指令集选择控制,当RE=1时,为扩充指令集动作;当RE=0时,为基本指令集动作。G为绘图显示控制,当G=1时,绘图显示ON;当G=0时,绘图显示OFF。同一指令集不可同时改变RE及DL、G,一般需要先改变DL或G,然后再改变RE,才能确保FLAG正确设定。扩充功能设定指令的格式,如图15.23所示。

15.3.2 扩充指令集 - 图5

图 15.23 扩充功能设定指令

6.设定IRAM地址或卷动地址指令

设定IRAM地址或卷动地址指令主要用于设定ST7920的IRAM地址或卷动地址。其中,SR=1:AC5~AC0为垂直卷动地址;SR=0:AC3~AC0为ICON RAM地址。设定IRAM地址或卷动地址指令的格式,如图15.24所示。

15.3.2 扩充指令集 - 图6

图 15.24 设定IRAM地址或卷动地址指令

7.设定绘图RAM地址指令

设定绘图RAM地址指令主要用于设定ST7920绘图RAM地址。设定GDRAM地址到地址计数器AC时,先设垂直地址再设水平地址(连续写入两个字节的数据来完成垂直与水平的坐标地址)。垂直地址范围为AC6~AC0,水平地址范围为AC3~AC0。绘图RAM的地址计数器AC只会对水平地址(X轴)自动加1。当水平地址=0FH时,会重新设为00H,但并不会对垂直地址做进位自动加1,因此连续写入多个数据时,程序自动判断垂直地址是否需要重新设定。设定绘图RAM地址指令的格式,如图15.25所示。

15.3.2 扩充指令集 - 图7

图 15.25 设定绘图RAM地址指令