1602液晶知识详解:
1、1602液晶基础
*VSS:电源地信号引脚;
*VDD:电源信号引脚;
*VEE:液晶对比度调节引脚,接0~5V以调节液晶的显示对比度;
*RS:寄存器选择引脚:
RS = 1时为数据寄存器;
RS = 0时为指令寄存器;
*RW:读写选择引脚:
RW = 1时,选择读操作;
RW = 0时,选择写操作;
*E:读写操作选择引脚,下降沿时,数据被写入1602液晶,E= 1时,对1602液晶进行读数据操作;
*D0~D7:数据总线引脚;
*LEDA:背光电源引脚;
*LEDK:背光电源地引脚;
2、指令简介:
*清屏指令,用与清除DDRAM和AC的数值,将屏幕显示清空:
RS
RW
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
0
0
0
0
0
0
1
*归零指令,将屏幕光标回归原点:
RS
RW
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
0
0
0
0
0
1
*
*输入方式选择指令,用于设置光标和画面移动方式:
I/D = 1:表示数据读写操作后,AC自动加1;
I/D = 0:表示数据读写操作后,AC自动减1;
S = 1:表示数据读写操作后,画面平移;
S= 0:表示数据读写操作后,画面保持不变;
RS
RW
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
0
0
0
0
1
I/D
S
*显示开关控制指令,用于设置显示光标级闪烁开、关:
D:显示开关:D= 1:开;D = 0:关;
C:光标开关:C= 1:开;C= 0:关;
B:闪烁开关:B= 1:开;B= 0:关;
RS
RW
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
0
0
0
1
D
C
B
*光标和画面移动指令,用于在不影响DDRAM的情况下使光标、画面移动:
S/C = 1:画面平移1个字符位;
S/C = 0:光标平移1个字符位;
R/L = 1:右移;
R/L = 0:左移;
RS
RW
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
0
0
1
S/C
R/L
*
*
*功能设置指令,用于设置工作方式(初始化指令):
DL= 1:表示8位数据接口;
DL = 0:表示4位数据接口;
N = 1:表示2行显示;
N = 0:表示1行显示;
F = 1:表示5*10的点阵字符;
F = 0:表示5*7的点阵字符;
RS
RW
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
0
1
DL
N
F
*
*
*CGRAM设置指令,用于设置CGRAM的地址,其中A5~A0 =0X00~0X03F:
RS
RW
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
1
A5
A4
A3
A2
A1
A0
*DDRAM设置指令,用于设置DDRAM地址。其中,D7 = 0,表示一行显示A6~A0= 0~4FH;D7 = 1,表示两行显示,首行显示A6~A0 = 00H~2FH,次行显示A6~A0 = 40H~64FH:
RS
RW
D7
D6
D5
D4
D3
D2
D1
D0
0
0
D7
A6
A5
A4
A3
A2
A1
A0
DDRAM :
显示用RAM,直接和屏幕上的点相对应.屏幕上的一个点和DDRAM中的一个位对应,字符屏的DDRAM和图形屏的DDRAM有一点点区别。
CGROM:
字模存储用空间。你要显示某个ASCII字符时,要显示字符的字模就存在这里,对于字符屏,要显示某个字符时,往DDRAM里写字符的索引(一般都是ASCII码)就可以完成显示。比如你写0x38,则显示为数字8。
字符屏的DDRAM一般和IC能显示的最大字符数相同。有的IC可以控制显示80个字符,但屏幕只显示20个字符。对于图形屏,往DDRAM里写什么样的数据,屏幕上就会显示什么样的点,比如你写0x38, 则显示00111000。图形屏的DDRAM一般都会比屏幕显示大个2倍以上,为的是简化翻屏,以及实现其他特殊显示效果 。
CGRAM是用户自建字模区,有时ASCII码表不能满足个人对字符的要求,则需要在这里写入字模。字模的方式和CGROM中的一样。
一般写入到这里的字模,其索引值为(0x00~0x07),建立好字模后,往DDRAM中写索引0x00,新建的字符就会显示出来。
*读BF和AC指令,其中,BF = 1表示忙,BF = 0表示准备好。此时AC值为最近一次地址设置(CGRAM和DDRAM)定义:
RS
RW
D7
D6
D5
D4
D3
D2
D1
D0
0
1
BF
AC
AC5
AC4
AC3
AC2
AC1
AC0
*写数据指令,用于将地址码写入DDRAM以使LCD显示出相应的图形或将用户自创的图形存入CGRAM内:
RS
RW
D7
D6
D5
D4
D3
D2
D1
D0
0
1
数据
*读数据指令,根据当前设置的地址,从DDRAM和CGRAM中读出数据:
RS
RW
D7
D6
D5
D4
D3
D2
D1
D0
1
1
数据
编程思路:
*设置1602液晶的功能;
*设置1602液晶的输入方式;
*设置1602液晶的显示方式;
*清屏;