用户工具

站点工具


技术细节:显示驱动:液晶显示驱动

LCD1602及控制器HD44780

液晶显示屏1602通常由芯片HD44780控制。字符型液晶显示模块的特点:

  1. 液晶显示屏是以若干个5×7/8或5×10/11点阵块组成的显示字符群,每个点阵块为一个字符位,字符间距和行距都为一个点的宽度。
  2. 主控驱动芯片为Hitachi HD44780,兼容的型号有:NOVATEK的NT3881,SAMSUNG公司的KS0066,Sunplus公司的SPLC78A01。
  3. 内含字符发生器ROM,可显示192种字符,分别为160个5×7点阵字符和32个5×10点阵字符。
  4. 具有64个字节的自定义字符RAM,可自定义8个5×8点阵字符或者4个5×11点阵字符。
  5. 具有80个字节的RAM.
  6. 标准的接口特性,适配们800系列MPU的操作时序。
  7. 模块结构紧凑轻巧,装配容易。
  8. 单+5V电源供电。
  9. 低功耗、长寿命、高可靠性。

引脚定义及连线

字符型LCD1602通常有14条引脚线或者16条引脚线,多出来的2条线是背光电源VCC和地线GND。

引脚号 引脚名 电平 输入/输出 作用
1Vss0V 电源地
2Vcc5V (+/- 10%)电源(+5V)
3Vee0-5V对比度调整电压
4RS0/1输入寄存器选择:0=指令寄存器,1=数据寄存器
5R/W0/1输入0=向LCD写入指令或数据,1=从LCD读取数据
6E1,1→0输入使能信号,1时读取信息。1→0(下降沿)执行指令
7DB00/1输入/输出数据总线line 0(最低位)
8DB10/1输入/输出数据总线line 1
9DB20/1输入/输出数据总线line 2
10DB30/1输入/输出数据总线line 3
11DB40/1输入/输出数据总线line 4
12DB50/1输入/输出数据总线line 5
13DB60/1输入/输出数据总线line 6
14DB70/1输入/输出数据总线line 7(最高位)
15A+Vcc LCD背光电源正极
16K接地 LCD背光电源负极

字符集

HD44780内置了:

  • DDRAM(显示数据存储RAM):存放80个预显示的字符
  • CGROM(字符存储ROM):存放160个出厂时固化好的字符
  • CGRAM(用户自定义RAM):存放用户自定义的8个字符

DDRAM就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如下表:

显示位置 1 2 3 4 5 6 7 …… 40
DDRAM地址第一行00H01H02H03H04H05H06H……27H
第二行40H41H42H43H44H45H46H……67H

CGROM存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码时它的ASCII码 0100 0001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。

指令功能 指令编码 执行时间/us
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
设定CGRAM地址 0 0 0 1 CGRAM的地址(6位) 40

指令集

1.清屏

RS R/S DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 0 0 0 1

运行时间(250KHz):1.64us
功能:清DDRAM和AC值

2.归位(返回)

RS R/S DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 0 0 1 -

运行时间(250KHz):1.64us
功能:AC=0,光标、画面回HOME位

3.输入方式设置

RS R/S DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 0 1 I/D SH

运行时间(250KHz):40us
功能:设置光标、画面移动方式
其中:

  • I/D=1:数据读、写操作后,AC自动增一;
  • I/D=0:数据读、写操作后,AC自动减一;
  • S=1:数据读、写操作,画面平移;
  • S=0:数据读、写操作,画面不动。

4.显示开关控制

RS R/S DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 1 D C B

运行时间(250KHz):40us
功能:设置显示、光标及闪烁开关。
其中:

  • D表示显示开关:D=1为开,D=0为关;
  • C表示光标开关:C=1为开,C=0为关;
  • B表示闪烁开关:B=1为开,B=0为关;

5.光标、画面位移

RS R/S DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 1 S/C R/L - -

运行时间(250KHz):40us
功能:光标、画面移动,不影响DDRAM。
其中:

  • S/C=1:画面平移一个字符位;
  • S/C=0:光标平移一个字符位;
  • R/L=1:右移;R/L=0:左移

6.功能设置

RS R/S DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 1 DL N F - -

运行时间(250KHz):40us
功能:工作方式设置(初始化指令)。
其中:

  • DL=1:8位数据接口;DL=0:4位数据接口;
  • N=1:两行显示;N=0:一行显示;
  • F=1:5×10点阵字符;F=0:5×7点阵字符

7.CG RAM地址设置

RS R/S DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0

运行时间(250KHz):40us
功能:设置CG RAM地址。A5~A0=0~3FH。

8.DD RAM地址设置

RS R/S DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0

运行时间(250KHz):40us
功能:设置DD RAM地址:
其中:

  • N=0:一行显示,A6~A0=0~4FH
  • N=1:两行显示,首行A6~A0=00H~2FH,次行A6~A0=40H~67H

9.读BF及AC值

RS R/S DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0

功能:读忙BF值和地址计数器AC值。
其中:BF=1:忙;BF=0:准备好。此时AC值意义为最近一次地址设置(CG RAM或DD RAM)定义。

10.写数据

RS R/S DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
1 0 D7 D6 D5 D4 D3 D2 D1 D0

运行时间(250KHz):40us
功能:根据最近设置的地址性质,数据写入DD RAM或CG RAM内。

11.读数据

RS R/S DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
1 1 D7 D6 D5 D4 D3 D2 D1 D0

运行时间(250KHz):40us
功能:根据最近设置的地址性质,从DD RAM或CG RAM数据读出。

Arduino库—LiquidCrystal

参考资料

技术细节/显示驱动/液晶显示驱动.txt · 最后更改: 2021/04/18 23:11 由 imodu