15.3.2 扩充指令集
液晶显示模块控制驱动器ST7920扩充指令集提供了更高级的液晶显示控制。当RE=1时,为扩充指令集模式。ST7920提供了7种扩充指令,这些指令也是用来完成液晶显示控制的。下面分别介绍各指令的使用。
1.待命模式指令
待命模式指令主要用于使ST7920进入待命模式。当ST7920进入待命模式后,执行其他任何指令都可以终止待命模式,该指令并不改变RAM的内容。待命模式指令的格式,如图15.19所示。
图 15.19 待命模式指令
2.卷动地址或RAM地址选择指令
卷动地址或RAM地址选择指令主要用于ST7920卷动地址或RAM地址选择。其中,当SR=1时,允许输入垂直卷动地址;当SR=0时,允许输入IRAM地址(扩充指令)及允许设定CGRAM地址(基本指令)。卷动地址或RAM地址选择指令的格式,如图15.20所示。
图 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.21 反白选择指令
4.睡眠模式指令
睡眠模式指令主要用于进入或脱离睡眠模式。其中,当SL=1时,脱离睡眠模式;SL=0时,进入睡眠模式。睡眠模式指令的格式,如图15.22所示。
图 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.23 扩充功能设定指令
6.设定IRAM地址或卷动地址指令
设定IRAM地址或卷动地址指令主要用于设定ST7920的IRAM地址或卷动地址。其中,SR=1:AC5~AC0为垂直卷动地址;SR=0:AC3~AC0为ICON RAM地址。设定IRAM地址或卷动地址指令的格式,如图15.24所示。
图 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.25 设定绘图RAM地址指令