下面逐一进行说明:
1. 清屏指令(Clear Display,代码 01H)
功能: <1> 清除液晶显示器,即将DDRAM的内容全部填入"空白"的 ASCII码 20H;
<2> 光标归位,即将光标撤回液晶显示屏的左上方;
<3> 将地址计数器(AC)的值设为0。
该指令多用于上电时或者更新全屏显示内容时。
2. 光标归HOME位指令(Return Home,代码 02H)
功能: <1> 把光标撤回到显示器的左上方;将光标或闪烁位返回到显示屏的左上第一字符位上,即 DDRAM 地址00H 单元位置;这是因为光标和闪烁位都是以地址指针计数器 AC 当前值定位的。如果画面已滚动,则撤销滚动效果,将画面拉回到 Home位。
<2> 把地址计数器(AC)的值设置为 0;
<3> 保持DDRAM的内容不变
3. 进入模式设置指令,输入方式设置(Enter Mode Set,代码 04H~07H)
该指令的功能在于设置显示字符的输入方式,即在 CPU 读/写 DDRAM 或 CGRAM 后,地址指针计数器 AC 的修改方式,反应在显示效果上,当写入一个字符后画面或光标的移动。该指令的两个参数I/D (N)和 S 确定四种字符的输入方式,如下表所示:
注意:画面滚动方式在 CPU 读DDRAM 数据时,或在读/写 CGRAM 时无效,也就是说该指令主要应用在 CPU 写入 DDRAM 数据的操作时。
4. 显示开关控制指令(Display on/off Control,代码 08H~0FH)
该指令控制着画面,光标与闪烁的开与关。该指令有三个状态位 D、C、B,这三个状态位分别控制这画面,光标和闪烁的显示状态。
闪烁出现在有字符或光标显示的字符位时,正常显示态为当前字符或光标的显示,全亮显示态为该字符位所以点全部显示。若出现在无字符或光标显示的字符位时,正常显示态为无显示,全亮显示态为该字符位所有点全部显示。这种闪烁方式可以设计成块状光标,如同计算机显示器上块状光标闪烁提示符的效果。
该指令实现 5 种状态如下表所示:
5. 设定显示屏和光标移动方向指令(Cursor or Display Shift,代码 10H、14H、18H、1CH)
执行该指令将产生画面或光标向左或右滚动一个字符位。如果定时间隔地执行该指令将关闭画面或光标的平滑滚动。画面滚动是在一行内循环进行的,也就是说一行的第一个单元和最后一个人连接起来,形成闭环式滚动。画面滚动的显示效果如下所示:
功能:使光标移位或使整个显示屏幕移位。参数设定的情况如下:
6. 功能设定指令,工作方式设置(Function Set,代码 30H)
该指令设置了控制器的工作方式,包括控制器与 CPU 的接口形式和控制器显示驱动器的占空比系数等。该指令有 3 个参数,组合功能如下表所示:
7. 设定 CGRAM地址指令(40H~7FH)
该指令将 6 位的 CGRAM 地址写入地址指针计数器 AC 内, 随后计算机对数据的操作是对 CGRAM 的读/写。
8. 设定DDRAM地址指令(80H~FFH)
该指令将 7 位的 DDRAM 地址写入地址指针计数器 AC 内, 随后计算机对数据的操作是对DDRAM 的读/写。
(注意这里我们送地址的时候应该是0x80+Address,这也是前面说到写地址命令的时候要加上 0x80的原因)
9. 读取忙信号或者 AC地址指令
计算机对指令寄存器通道读操作即 RS 为 0、R/W 为 1 时,将读出此格式的忙标志BF 值和 7 位地址指针计数器 AC 的值。
读取忙碌信号 BF的内容,BF=1表示液晶显示器忙,暂时无法接收单片机送来的数据或者指令; 当 BF=0时,液晶显示器可以接收单片机送来的数据或指令;
10. 数据写入 DDRAM或者CGRAM指令一览(WriterData to CG or DDRAM)
CPU 向数据寄存器通道写入数据,SPLC780根据当前地址指针计数器 AC 值的属性及数值将该数据送入相应的存储器的 AC 所指的单元里。如果 AC 值为DDRAM地址指针,则认为写入的数据是字符代码并送入 DDRAM 的 AC 所指单元里。如果 AC 值为CGRAM的地址指针,则认为写入的数据是自定义字符的字模数据并送入 CGRAM 内 AC所指的单元里。所以 CPU 在写数据之前需要设置地址指针或人为的确认地址指针的属性及数值。在写入数据后地址指针计数器 AC 将根据最近设置的输入方式最大修改。由此可知,CPU 在在写数据操作之前要做两项工作,其一是设置或确认地址指针计数器 AC 值的属性及数值,以确保所写数据能够正确到位,其二是设置或确认输入方式,以确保连续写入数据时 AC 值的修改方式符合要求。
11. 从 CGRAM或者DDRAM读出数据的指令一览(Read Data From CG or DDRAM)
在 SPLC780 的内部运行时序操作下,地址指针计数器 AC 值的每一次修改,包括新的 AC 值的写入,光标滚动位移所引起的 AC 值的修改或由 CPU 读写数据操作后所产生的 AC 值的修改,SPLC780 都会把当前 AC 所指单元的内容送到数据输出寄存器内,供 CPU 读取。如果 AC 值为 DDRAM 地址指针,则认为读取的是 DDRAM 内 AC 所指的单元的字符代码,如果 AC 值为 CGRAM 的地址指针,则认为读取的是 CGRAM 内 AC所指单元的自定义字符的字模数据。
(5)总结一下基本操作时序: 读状态 输入:RS=L,RW=H,E=H
输出:DB0~DB7=状态字
写指令 输入:RS=L,RW=L,E=下降沿脉冲,DB0~DB7=指令码
输出:无
读数据 输入:RS=H,RW=H,E=H
输出:DB0~DB7=数据
写数据 输入:RS=H,RW=L,E=下降沿脉冲
(E为高电平的时候,进行数据的写入),DB0~DB7=数据
输出:无
呵呵,看到这么多的控制指令希望你没有头晕。其实这么多的指令刚开始的时候没有必要全部掌握,随着学习的深入可以再尝试去用更复杂的控制指令。下面让我们一起插上 1602 的液晶吧。当我们硬件连接错误,或者程序错误时就会出现情况:就是上排显示 16的白色的块,别急!我们还没写程序呢,一起往下看吧。
`