购物车0种商品
IC邮购网-IC电子元件采购商城
【图】字符型液晶显示模块原理及应用详解
(2023/10/11 18:00:00)
字符型液晶显示模块原理及应用详解
字符型液晶显示模块的基本特点

字符型液晶显示模块由字符型液晶显示屏(LCD),控制驱动主电路HD44780及其扩展驱动电路HD44100,少量阻、容元件,结构件等装配在PCB板上而成。 字符型液晶显示模块目前在国际上已经规范化,无论显示屏规格如何变化,其电特性和接口形式都是统一的。因此只要设计出一种型号的接口电路,在指令设置上稍加改动即可使用各种规格的字符型液晶显示模块。
1、液晶显示屏是以若干个5´8或5´11点阵块组成的显示字符群。每个点阵块为一个字符位,字符间距和行距都为一个点的宽度。
2、主控制驱动电路为HD44780(HITACHI)及其他公司全兼容电路,如SED1278(SEIKO EPSON)、KS0066(SAMSUNG)、NJU6408(NER JAPAN RADIO)。
3、具有字符发生器ROM可显示192种字符(160个5´7点阵字符和32个5´10点阵字符,见附录一)
4、具有64个字节的自定义字符RAM,可自定义8个5´8点阵字符或四个5´11点阵字符。
5、具有80个字节的RAM。
6、标准的接口特性,适配M6800系列MPU的操作时序。
7、模块结构紧凑、轻巧、装配容易。
8、单+5V电源供电。
9、低功耗、长寿命、高可靠性。
HY字符型液晶显示模块特性
一、HY系列接口特性及时序
1、HD44780读、写操作(时序见附录二)
(1) 写操作(MPU至HD44780)




























































项目

符号

最小值

最大值

单位

使能周期

tcycE

1000

-

ns

使能脉冲宽度

Pweh

450

-

ns

使能升、降时间

Ter,Tef

-

25

ns

地址建立时间

Tas

140

-

ns

地址保持时间

Tah

10

-

ns

数据建立时间

Tdsw

195

-

ns

数据保持时间

Th

10

-

ns

(2) 读操作(MPU至HD44780)




























































项目

符号

最小值

最大值

单位

使能周期

tcycE

1000

-

ns

使能脉冲宽度

Pweh

450

-

ns

使能升、降时间

Ter,Tef

-

25

ns

地址建立时间

Tas

140

-

ns

地址保持时间

Tah

10

-

ns

数据延迟时间

Tddr

-

320

ns

数据保持时间

Tdhr

10

-

ns


(3) 信号真值表


































RS

R/W

E

功能

0

0

下降沿

写指令代码

0

1

高电平

读忙标志和AC码

1

0

下降沿

写数据

1

1

高电平

读数据

2、接口引脚功能










































































































引脚号

符号

状态

功 能

1

Vss



电源地

2

Vdd



+5V逻辑电源

3

V0



液晶驱动电源

4

RS

输入

寄存器选择1:数据;0:指令

5

R/W

输入

读、写操作选择1:读;0:写

6

E

输入

使能信号

7

DB0

三态

数据总线(LSB)

8

DB1

三态

数据总线

9

DB2

三态

数据总线

10

DB3

三态

数据总线

11

DB4

三态

数据总线

12

DB5

三态

数据总线

13

DB6

三态

数据总线

14

DB7

三态

数据总线(MSB)

15

LEDA

输入

背光+5V

16

LEDK

输入

背光地


注:15、16两管脚用于带背光模块,不带背光的模块这两个管脚悬空不接。

二、HY系列电特性

(1)绝对最大值范围














































项目

符号

最小值

最大值

备注

电路逻辑电压

Vdd-Vss

0

7.0V



液晶驱动电压

Vdd-V0

0

13.5V



输入电压

VI

Vss

Vdd



工作温度



0
-20
-30

+50
+70
+80

常温型
宽温型
超宽温型

存储温度



-10
-30
-40

+60
+80
+80

常温型
宽温型
超宽温型

(2)电特性


























































项目

符号

条件

MIN

TYP

MAX

单位

输入高电压

VIH



2.2

-

-

V

输入低电压

VIL



-

-

0.6

V

输出高电压

VOH

IOH=0.2mA

2.4

-

-

V

输出低电压

VOL

IOL=1.2mA

-

-

0.4

V

电源电流

IDD



-

0.5

0.2

mA


三、HY系列供电电路(见附录三)


HY字符型液晶显示模块指令集
一、指令集
1、清屏












RS R/W

DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0

0 0 0 0 0 0 0 1

运行时间(250Khz):1.64ms;
功能:清DDRAM和AC值。

2、归位












RS R/W

DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0

0 0 0 0 0 0 1 *

运行时间(250Khz):1.64ms;
功能:AC=0,光标、画面回HOME位。
3、输入方式设置












RS R/W

DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0

0 0 0 0 0 1 I/D S

运行时间(250Khz):40us;
功能:设置光标、画面移动方式。
其中:I/D=1:数据读、写操作后,AC自动增一;
I/D=0:数据读、写操作后,AC自动减一;
S=1:数据读、写操作,画面平移;
S=0:数据读、写操作,画面不动;
4、显示开关控制












RS R/W

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/W

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/W

DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0

0 0 1 DL N F * *

运行时间(250Khz):40us;
功能:工作方式设置(初始化指令)。
其中:DL=1,8位数据接口;DL=0,四位数据接口;
N=1,两行显示;N=0,一行显示;
F=1,5´10点阵字符;F=0,5´7点阵字符。
7、CGRAM地址设置












RS R/W

DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0

0 1 A5 A4 A3 A2 A1 A0

运行时间(250Khz):40us;
功能:设置CGRAM地址。A5~A0=0~3FH。
8、DDRAM地址设置












RS R/W

DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

0 0

1 A6 A5 A4 A3 A2 A1 A0

运行时间(250Khz):40us;
功能:设置DDRAM地址。
N=0,一行显示A6~A0=0~4FH;
N=1,两行显示,首行A6~A0=00H~2FH,
次行A6~A0=40H~67H。
9、读BF及AC值












RS R/W

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值意义为最近一次地址设置(CGRAM或DDRAM)定义。

10、 写数据












RS R/W

DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

1 0

数 据

运行时间(250Khz):40us;
功能:根据最近设置的地址性质,数据写入DDRAM或CGRAM内。

11、 读数据












RS R/W

DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

1 1

数 据

运行时间(250Khz):40us;
功能:根据最近设置的地址性质,从DDRRAM或CGRAM数据读出。


一、直接访问方式接口电路及驱动程序
直接访问方式的接口电路如下图所示:

常温型模块V0接VSS,如要调节对比度请参考附图三

直接访问方式的驱动子程序如下:
A15=E的选通信号,A9=R/W,A8=RS
COM EQU 20H ;指令寄存器
DAT EQU 21H ;数据寄存器
CW_Add EQU 8000H ;指令口写地址
CR_Add EQU 8200H ;指令口读地址
DW_Add EQU 8100H ;数据口写地址
DR_Add EQU 8300H ;数据口读地址

1、读BF和AC值
PRO: PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR,#CR_Add ;设置指令口读地址
MOVX A,@DPTR ;读BF和AC值
MOV COM,A ;存入COM单元
POP ACC
POP DPL
POP DPH
RET

2、写指令代码子程序
PR1: PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR,#CR_Add ;设置指令口读地址
PR11: MOVX A,@DPTR
JB ACC.7,PR11 ;判BF=0?是继续
MOV A,COM
MOV DPTR,#CW_Add ;设置指令口写地址
MOVX @DPTR,A ;写指令代码
POP ACC
POP DPL
POP DPH
RET

2、写显示数据子程序
PR2: PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR,#CR_Add ;设置指令口读地址
PR21: MOVX A,@DPTR
JB ACC.7,PR21 ;判BF=0?是继续
MOV A,DAT
MOV DPTR,#DW_Add ;设置数据口写地址
MOVX @DPTR,A ;写数据
POP ACC
POP DPL
POP DPH
RET
4、读显示数据子程序
PR3: PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR,#CR_Add ;设置指令口读地址
PR31: MOVX A,@DPTR
JB ACC.7,PR31 ;判BF=0?是继续
MOV DPTR,#DR_Add ;设置数据口读地址
MOVX A,@DPTR ;读数据
MOV DAT,A ;存入DAT单元
POP ACC
POP DPL
POP DPH
RET
二、间接控制方式接口电路及驱动程序
间接控制方式(4位总线)是利用HD44780所具有的4位数据总线的功能,简化电路接口的一种接口方式。实用电路如下:

常温型模块V0接VSS,如要调节对比度请参考附图三

注:此种接口电路适用4位单片机或8位单片机接口不够用的情况,因4位数据传输时需传输两遍,所以比较麻烦,建议在单片机接口够用时,还是把8位数据口都接上。


间接控制方式的驱动子程序如下:

RS EQU P3.3 ;寄存器选择信号

R/W EQU P3.4 ;读/写选择信号

E EQU P3.5 ;使能信号



1、读BF和AC值



PRO : PUSH ACC

MOV P1,#0FFH ;P1置位,准备读

CLR RS ;RS=0

SETB R/W ;R/W=1

SETB E ;E=1

MOV COM,P1 ;读BF和AC6-4值

CLR E ;E=0

MOV P1,#0FFH ;P1置位,准备读

SETB E ;E=1

MOV A,P1 ;读AC3-0值

CLR E ;E=0

SWAP A ;转换成8位数据

ANL A,#0FH

ANL COM,#0F0H

ORL A,COM

MOV COM,A ;送入COM单元

POP ACC

RET



2、写指令代码子程序

PR1 : PUSH ACC

CLR RS ;RS=0

SETB R/W ;R/W=1

PR11: MOV P1,#0FFH ;P1置位,准备读

SETB E ;E=1

MOV A,P1 ;读BF和AC6-4值

CLR E ;E=0

MOV C,ACC.7 BF->进位位C

SETB E ;E=1

CLR E ;E=0(读AC3-0值)

JC PR11 ;判别BF=1?是转

CLR R/W ;R/W=0

MOV P1,COM ;写入指令代码高4位

SETB E ;E=1

CLR E ;E=0

MOV A,COM ;写入指令代码低四位

SWAP A

MOV P1,A

SETB E ;E=1

CLR E ;E=0

POP ACC

RET

3、写显示数据子程序

PR2 : PUSH ACC

CLR RS ;RS=0

SETB R/W ;R/W=1

PR21: MOV P1,#0FFH ;P1置位,准备读

SETB E ;E=1

MOV A,P1 ;读BF和AC6-4值

CLR E ;E=0

MOV C,ACC.7 BF->进位位C

SETB E ;E=1

CLR E ;E=0(读AC3-0值)

JC PR21 ;判别BF=1?是转

SETB RS ;RS=1

CLR R/W ;R/W=0

MOV P1,DAT ;写入数据高4位

SETB E ;E=1

CLR E ;E=0

MOV A,DAT ;写入数据低4位

SWAP A

MOV P1,A

SETB E ;E=1

CLR E ;E=0

POP ACC

RET



4 、读显示数据子程序

PR3 : PUSH ACC

CLR RS ;RS=0

SETB R/W ;R/W=1

PR31: MOV P1,#0FFH ;P1置位,准备读

SETB E ;E=1

MOV A,P1 ;读BF和AC6-4值

CLR E ;E=0

MOV C,ACC.7 ;BF->进位位C

SETB E ;E=1

CLR E ;E=0(读AC3-0值)

JC PR31 ;判别BF=1?是转

SETB RS ;RS=1

SETB R/W ;R/W=1

MOV P1,#0FFH ;P1置位,准备读

SETB E ;E=1

MOV COM,P1 ;读数据高4位

CLR E ;E=0

MOV P1,#0FFH ;P1置位,准备读

SETB E ;E=1

MOV A,P1 ;读数据低4位

CLR E ;E=0

SWAP A ;转换成8位

ANL A,#0FH

ANL DAT,#0F0H

ORL A,DAT

MOV DAT,A ;数据送入DAT单元

POP ACC

RET



三、应用程序

该程序是根据液晶显示模块HY-4002而编制的。其他规格的字符型液晶显示模块都适用,仅是地址的改动而已。



示例一 初始化子程序

(1)直接访问方式下的初始化子程序

INT MOV A,#30H ;此循环必要,不可删除

MOV DPTR,#CW_Add ;指令口地址设置

MOV R2,#03H ;循环量=3

INT1: MOVX @DPTR,A ;写指令代码

LCALL DELAY ;调延时子程序

DJNZ R2,INT1

MOV COM,#38H ;设置工作方式*

LCALL PR1 ;

MOV COM,#01H ;清屏

LCALL PR1

MOV COM,#06H ;设置输入方式

LCALL PR1

MOV COM,#0FH ;设置显示方式

LCALL PR1

RET



(2)间接控制方式下的初始化子程序

INT MOV P1,#30H ;工作方式设置指令代码

CLR RS ;RS=0

CLR R/W ;RW=0

MOV R2,#03H ;循环量=3

INT1 SETB E ;E=1

CLR E ;E=0

LCALL DELAY ;调延时子程序

DJNZ R2,INT1

MOV P1,#28H ;设置工作方式*

SETB E ;E=1

CLR E ;E=0

MOV COM,#01H ;清屏

LCALL PR1

MOV COM,#06H ;设置输入方式

LCALL PR1

MOV COM,#0FH ;设置显示方式

LCALL PR1

RET

注:*工作方式参数根据所使用的字符型液晶显示模块的特性而定。

DELAY: MOV R6,#00H ;延时子程序

MOV R7,#00H

DELAY1: NOP

DJNZ R7,DELAY1

DJNZ R6,DELAY1

RET

初始化演示程序

MAIN: MOV SP,#60H

ANL P3,#0C7H

LCALL INT



示例二 字符的写入方式

HD44780有五种字符写入方式。演示程序如下:

(1)逐字依次输入方式演示程序段

MOV COM,#06H

LCALL PR1

MOV COM,#80H

LCALL PR1

MOV DPTR,#TAB

MOV R2,#12

MOV R3,#00H

WRIN: MOV A,R3

MOVC A,@A+DPTR

MOV DTA,A

LCALL PR2

LCALL DELAY

INC R3

DINZ R2,WRIN

SJMP $

TAB: DB 43H,75H,72H,73H,6FH,72H,20H ;Cursor

DB 57F,72H,69H,74H,65H ;write



(2)光标左移输入方式演示程序段

CL_ENTER: MOV COM,#04H ; 输入方式设置

LCALL PR1

MOV COM,#90H ; 设置DDRAM 地址

LCALL PR1

MOV DPTR,#TABCL ; 设置字表首地址

MOV R2,#12H ; 循环量设置

CL_1 MOV A,R2

DEC A

MOVC A,@A+DPTR ;取字符代码

MOV DAT,A

LCALL PR2 ;写数据

LCALL DELAY ;演示用延时

DJNZ R2,CL_1

SJMP $

TABCL: DB 43H, 75H, 72H, 73H, 6FH, 72H, 20H ;Cursor

DB 4CH, 65H, 66H, 74H, 20H ;Left

DB 53H, 63H, 72H, 6FH, 6CH,6CH ;Scroll

(3)光标右移输入方式演示程序段

CR_ENTER: MOV COM,#06H ; 输入方式设置

LCALL PR1

MOV COM,#80H ; 设置DDRAM 地址

LCALL PR1

MOV DPTR,#TABCR ; 设置字表首地址

MOV R2,#13H ; 循环量设置

MOV R3,#00H

CL_1 MOV A,R3

MOVC A,@A+DPTR ;取字符代码

MOV DAT,A

LCALL PR2 ;写数据

INC R3

LCALL DELAY ;演示用延时

DJNZ R2,CR_1

SJMP $

TABCR: DB 43H, 75H, 72H, 73H, 6FH, 72H, 20H ;Cursor

DB 52H, 69H, 67H, 68H, 74H,20H ;Right

DB 53H, 63H, 72H, 6FH,6CH,6CH ;Scroll



(4)画面左滚动输入方式演示程序段

L_ENTER: MOV COM,#07H ; 输入方式设置

LCALL PR1

MOV COM,#90H ; 设置DDRAM 地址

LCALL PR1

MOV DPTR,#TABL ; 设置字表首地址

MOV R2,#0BH ; 循环量设置

MOV R3,#00H

L_1 MOV A,R3

MOVC A,@A+DPTR ;取字符代码

MOV DAT,A

LCALL PR2 ;写数据

INC R3

LCALL DELAY ;演示用延时

DJNZ R2,L_1

SJMP $

TABL: DB 4CH, 65H, 66H, 74H,20H ;Left Scroll

DB 53H, 63H, 72H, 6FH,6CH,6CH

(5) 画面右滚动输入方式演示程序段

R_ENTER: MOV COM,#05H ; 输入方式设置

LCALL PR1

MOV COM,#90H ; 设置DDRAM 地址

LCALL PR1

MOV DPTR,#TABR ; 设置字表首地址

MOV R2,#0CH ; 循环量设置

R_1 MOV A,R2

DEC A

MOVC A,@A+DPTR ;取字符代码

MOV DAT,A

LCALL PR2 ;写数据

LCALL DELAY ;演示用延时

DJNZ R2,R_1

SJMP $

TABR: DB 52H, 69H, 67H, 68H,74H,20H ;Right Scroll

DB 53H, 63H, 72H, 6FH,6CH,6CH



示例三 建立自定义字符库

字符型液晶显示模块允许用户在HD44780片内CGRAM内(64个字节00H-3FH)自建立8个5×8点阵的字符。建立自定义字符库的子程序如下:

CG_WRITE: MOV COM,#40H ;设置CGRAM地址

LCALL PR1

MOV R2,#64 ;循环量设置

MOV R3,#00H

MOV DPTR,#CGTAB ;设置字模数据首地址

CG1: MOV A,R3

MOVC A,@A+DPTR

MOV DAT,A

LCALL PR2

INC R3

DZNJ R2,CG1

RET

CGTAB: DB 08H,0FH,12H,0FH,0AH,1FH,02H,02H ;“年”代码=00H

DB 0FH,09H,0FH,09H,0FH,09H,11H,00H ;“月”代码=01H

DB 1FH,11H,11H,1FH,11H,11H,1FH,00H ;“日”代码=02H

DB 11H,0AH,04H,1FH,04H,1FH,04H,00H ;“$”代码=03H

DB 0EH,00H,1FH,0AH,0AH,0AH,13H,00H ;“元”代码=04H

DB 18H,18H,07H,08H,08H,08H,07H,00H ;“℃”代码=05H

DB 04H,0AH,15H,04H,04H,04H,04H,00H ;“↑”代码=06H

DB 17H,15H,15H,15H,15H,15H,17H,00H ;“10”代码=07H



自定义字符显示演示程序段

LCALL CG_WRITE ;调建立自定义字符子程序

MOV COM,#80H ;设置DDRAM地址

LCALL PR1

MOV DPTR,#TABDY ;设置字表首地址

MOV R2,#18 ;循环量设置

MOV R3,#00H

L00P1 MOV A,R3

MOVC A,@A+DPTR ;取字符代码

MOV DAT,A

LCALL PR2 ;写数据

INC R3

DZNJ R2,L00P1

MOV COM,#0C0H ;设置DDRAM地址

LCALL PR1

MOV R2,#18 ;循环量设置

L00P2 MOV A,R3

MOVC A,@A+DPTR ;取字符代码

MOV DAT,A

LCALL PR2 ;写数据

INC R3

DZNJ R2,L00P2

SJMP $

TABDY: DB 4DH, 44H, 4CH, 53H,34H,30H,32H,36H,36H

DB 20H, 03H, 32H, 35H,35H,2EH,30H,30H,04H

DB 31H, 39H, 39H, 37H,00H,37H 01H,31H,02H

DB 20H, 54H, 3DH, 33H,35H,05H,06H,20H,07H

功能设置指令参数N,F值及显示RAM地址对应表

















































































规格

型号

N F



1 2.. 8 9 10..16 17..20 21.. 24 25..40

8´1



0 0

1

00 01..07

16´1



1 0

1

00 01..07 40 41..47

16´2



1 0

1
2

00 01..07 08 09..0F
40 41..47 48 49..4F

16´4



1 0

1
2
3
4

00 01..07 08 09..0F
40 41..47 48 49..4F
10 11..17 18 19..1F
50 51..57 58 59..5F

20´1



0 0

1

00 01..07 08 09..0F 10..13

20´2



1 0

1
2

00 01..07 08 09..0F 10..13
40 41..47 48 49..4F 50..53

20´4



1 0

1
2
3
4

00 01..07 08 09..0F 10..13
40 41..47 48 49..4F 50..53
14 15..1B 1C 1D..23 24..27
54 55..5B 5C 5D..63 64..67

24´2



1 0

1
2

00 01..07 08 09..0F 10..13 14..17
40 41..47 48 49..4F 50..53 54..57

40´2



1 0

1
2

00 01..07 08 09..0F 10..13 14..17 18..27
40 41..47 48 49..4F 50..53 54..57 58..67

40´4

这是双片控制器工作,1、2行和3、4行分别由一个控制器所控制

1 0

1
2
3
4

00 01..07 08 09..0F 10..13 14..17 18..27
40 41..47 48 49..4F 50..53 54..57 58..67
00 01..07 08 09..0F 10..13 14..17 18..27
40 41..47 48 49..4F 50..53 54..57 58..67

附录一:HD44780的内部字符集

提示:点击查看图片
附录二:HY系列产品时序图
Flgure1 写时序图(MPU写数据到LCD-II)


Flgure2 读时序图(MPU从LCD-II读数据)

附录三:HY系列产品供电电路

浏览:(106)| 评论( 0 )
博文评论

  • 昵 称:
  • 内 容:10~250个字符
  • 验证码: 验证码看不清楚?请点击刷新验证码
  •                      
  • 博文分类

    热点博文

    最新博文

    最新评论

    IC电子元件查询
    IC邮购网电子元件品质保障