四、知识拓展
LCD1602接口引脚如表6.1所示。
表6.1 LCD1602引脚
LCD1602的主要指令:
1.清屏
清除屏幕,地址计数器AC=0,自动增1模式;显示归位,光标或者闪烁回到原点(左上角);但并不改变移位设置模式。
2. 归位
归位指令置地址计数器AC=0,将光标及光标所在位的字符回原点,但DDRAM中的内容并不改变。
3. 设置输入模式
I/D:字符码写入或读出DDRAM后DDRAM地址指针AC变化方向标志。
I/D=1:完成一个字符码传送后,光标右移,AC自动加1;
I/D=0:完成一个字符码传送后,光标左移,AC自动减1。
S:显示移位标志。
S=1:将全部显示向右(I/D=0)或者向左(I/D=1)移位;
S=0:显示不发生移位。
4. 显示开/关控制
D:显示开/关控制标志:D=1,开显示;D=0,关显示。
关显示后,显示数据仍保持在DDRAM中,立即开显示可以再现。
C:光标显示控制标志:C=1,光标显示;C=0,光标不显示。
不显示光标并不影响模块其他显示功能;显示5×8点阵字符时,光标在第8行显示,显示5×10点阵字符时,光标在第11行显示。
B:闪烁显示控制标志:B=1,光标所指位置上,交替显示全黑点阵和显示字符,产生闪烁效果,fosc=250 kHz时,闪烁频率为0.4 ms左右;通过设置,光标可以与其所指位置的字符一起闪烁。
5. 光标或显示移位
光标或显示移位指令可使光标或显示在没有读写显示数据的情况下,向左或向右移动;运用此指令可以实现显示的查找或替换;在双行显示方式下,第1行和第2行会同时移位;当移位越过第1行第40位时,光标会从第1行跳到第2行,但显示数据只在本行内水平移位,第2行的显示决不会移进第1行;若仅执行移位操作,地址计数器AC的内容不会发生改变。
S/C R/L=00:光标向左移动,AC自动减1;
S/C R/L=01:光标向右移动,AC自动加1;
S/C R/L=10:光标与显示一起向左移动,AC值不变;
S/C R/L=11:光标与显示一起向右移动,AC值不变。
6. 功能设置
功能设置指令设置模块数据接口宽度和LCD显示屏显示方式,即MPU与模块接口数据总线为4位或者8位,LCD显示行数和显示字符点阵规格。所以建议用户最好在执行其他指令设置(读忙标志指令除外)之前,在程序的开始进行功能设置指令的执行。
DL:数据接口宽度标志。
DL=1:8位数据总线 DB7~DB0;
DL=0:4位数据总线 DB7~DB4,DB3~DB0不用,使用此方式传送数据,需分两次进行。
N:显示行数标志。
N=1:两行显示模式;N=0:单行显示模式;
F:显示字符点阵字体标志。
F=1:5×10点阵+光标显示模式;F=0:5×7点阵+光标显示模式。
7. CGRAM地址设置
CGRAM地址设置指令设置CGRAM地址指针,它将CGRAM存储用户自定义显示字符的字模数据的首地址ACG5~ACG0送入AC中,于是用户自定义字符字模就可以写入CGRAM中或者从CGRAM中读出。
8. DDRAM地址设置
DDRAM地址设置指令设置DDRAM地址指针,它将DDRAM存储显示字符的字符码的首地址ADD6~ADD0送入AC中,于是显示字符的字符码就可以写入DDRAM中或者从DDRAM中读出。
值得注意的是,在LCD显示屏一行显示方式下,DDRAM的地址范围为:00H~4FH;两行显示方式下,DDRAM的地址范围为:第1行00H~27H,第2行40H~67H。
9. 读忙标志BF和AC
当RS=0和R/W=1时,在E信号高电平的作用下,BF和AC6~AC0被读到数据总线DB7~DB0的相应位。
BF:内部操作忙标志,BF=1,表示模块正在进行内部操作,此时模块不接收任何外部指令和数据,直到BF=0为止。
AC6~AC0:为地址计数器AC内的当前内容,由于地址计数器AC为CGROM、CGRAM 和DDRAM的公用指针,因此当前AC内容所指区域由前一条指令操作区域决定,故只有BF=0时,送到DB7~DB0的数据AC6~AC0才有效。