⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd

📁 lcd128*64PROGRAM
💻
字号:

主要技术参数和性能:
1.电源: VDD: +5V。
2.显示内容: 128(列)× 32(行)点
3.全屏幕点阵
4.七种指令
5.与CPU接口采用8位数据总线并行输入输出和5条控制线
6.占空比1/32
7.工作温度: -10℃ ∽ +60℃ , 存储温度: -20℃ ∽ +70℃
二. 外形尺寸图

/*三. 模块主要硬件构成说明 (结构框图)
结构框图说明:
IC3 为行驱动器。IC1, IC2 为列驱动器, IC1,IC2,IC3 含有如下主要功
能器件。了解如下器件有利于对LCD模块之编程。
1、 指令寄存器( IR)
IR 是用来寄存指令码, 与数据寄存器寄存数据相对应。当D/I=0 时在E
信号下降沿的作用下, 指令码写入IR。
2、 数据寄存器( DR)
DR 是用来寄存数据的, 与指令寄存器寄存指令相对应。当D/I=1 时, 在
E 信号下降沿的作用下, 图形数据写入DR, 或在E 信号高电平作用下由
DR 读到DB7-DB0数据总线。DR 和DDRAM 之间的数据传输是模块内部自动
执行的。
3、 忙标志:( BF)
BF标志提供内部工作情况。BF=1 表示模块在进行内部操作, 此时模
块不接受外部指令和数据。BF=0 表示模块为准备状态, 随时可接受外部
指令和数据。
利用STATUS READ 指令, 可以将BF 读到DB7 总线, 从而检验模块
之工作状态。
4、 显示控制触发器DFF
此触发器是用于模块屏幕显示开和关的控制。3FH 为开显示, 3EH 为关显
示。
DFF=1时为开显示( DISPLAY ON), DDRAM 的内容就显示在屏幕上;
DFF=0时为关显示( DISPLAY OFF)
DFF 的状态是指令DISPLAY ON/ OFF 和RET信号控制的。
5、 XY 地址计数器
XY 地址计数器是一个9位计数器。高三位是X 地址计数器, 低6 位是Y
地址计数器, XY 地址计数器实际上是作为DDRAM 的地址指针, X 地址计数器
为DDRAM 的页指针, Y地址计数器为DDRAM 的Y地址指针。
X地址计数器是没有计数功能的, 只能用指令设置。
PDF created with FinePrint pdfFactory trial version http://www.fineprint.com
广 州 铜 铧 电 子 有 限 公 司
TINSHARP ELECTRONICS CO。LTD
3
Y地址计数器具有循环计数功能, 各显示数据写入后, Y地址自动加1, Y
地址指针从而到63。
6、显示数据RAM ( DDRAM)
DDRAM 是存储图形显示数据的, 数据为1表示显示选择, 数据为0 表示显
示非选择。DDRAM 与地址和显示位置的关系见DDRAM地址表。
7、 Z 地址计数器
Z 地址计数器是一个6位计数器, 此计数器具备循环计数功能, 它是用于
显示行扫描同步。当一行扫描完成, 此地址计数器自动加1, 指向下一行扫描
数据, RET 复位后Z地址计数器为0。
Z地址计数器可以用指令DISPLAY START LINE预置。因此, 显示屏幕的
起始行就由此指令控制, 即DDRAM 的数据从哪一行开始显示在屏幕的第一行。
此模块的DDRAM 共64 行, 而显示屏幕只有32 行, 故屏幕可以循环滚动显示
32 行。
四. 模块的外部接口
外部接口信号如下表2所示:
表 2
管脚
管脚名
电平( LEVEL) 管脚功能描述
1 VLED+ 5.0V 背光源正电压
2 VLED- 0V 背光源负电压
3 V0 - 液晶显示器驱动电压
4 VCC +5.0V 正电源
5 VSS 0V 电源地
6 E H/L 使能信号:R/W=“ L”, E信号下降沿锁存DB7— DB0
R/W=“ H”, E=“ H” 时, 可将DDRAM 数据读
到模块DB7∽ DB0
7 D/I H/L D/I=“ H”( D/I 为高电平), 表示DB7∽ DB0 为显示数
D/I=“ L”( D/I 为低电平), 表示DB7∽ DB0 为显示指令数
8 R/W H/L R/W=“ H” ,E=“ H” 时, 可将DDRAM 数据读到模块DB7∽ DB0
R/W=“ L”, E 信号下降”H→ L”,DB7— DB0 的数据写到IR 或DR
9 CS H/L 片选线:CS=”H”,选择IC1(左)64 列
CS=”L”,选择IC2(右)64 列
10 RET L 复位控制信号,RET=0 有效.
11 DB0 H/L 数据总线
12 DB1 H/L 数据总线
13 DB2 H/L 数据总线
14 DB3 H/L 数据总线
15 DB4 H/L 数据总线
16 DB5 H/L 数据总线
17 DB6 H/L 数据总线
18 DB7 H/L 数据总线

4
五. 指令说明
指令表
表 3
指 指 令 码
令 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
功能
显示
ON/OFF
0 0 0 0 1 1 1 1 1 1/0
控制显示器的开关,
不影响DDRAM 中数
据和内部状态
0: OFF 1: ON
显示起始
0 0 1 1 显示起始行
( 0----63)
指定显示屏从DDRAM
中哪一行开始显示
数据
设置X地址 0 0 1 0 1 1 1 X: 0---3 设置DDRAM 中的页
地址(X地址)
设置Y地址 0 0 0 1 Y地址( 0---63) 设置地址(Y地址)
1 0 B
U
S
Y
0
ON/
OFF
R
S
T
0 0 0 0 读取状态
BUSY 0:准备就绪
1:内部/操作ON/OFF
1:显示开 0:显示关
RST 1:复位0:正常
写显示数
0 1 显示数据 将数据线上的数据
DB7 ∽ DB0 写入
DDRAM
读显示数
1 1 显示数据 将DDRAM 上的数据
读入线数据DB7∽
DB0
1.显示开关控制(DISPLAY ON/OFF)
代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
形式 0 0 0 0 1 1 1 1 1 D
D=1:开显示(DISPLAY ON)意即显示器可以进行各种显示操作
D=1:关显示(DISPLAY OFF)意即不能对显示器可以进行各种显示操作
2.设置显示起始行(DISPLAY START LINE)
代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
形式 0 0 1 1 A5 A4 A3 A2 A1 A0
前面在Z 地址计数器一节已经描述了显示起始行是由Z 地址计数器控
制的。A5∽ A0 的6位地址自动送入Z 地址计数器, 起始行的地址可以是0∽ 63
的任意一行。
例如: 选择A5∽ A0 是30, 则起始行与DDRAM 行的对应关系如下:
DDRAM 行: 30 31 0 1 2 3----------------------28 29
屏幕显示行: 1 2 3 4 5 6----------------------31 32

5
3.设置页地址(SET PAGE” X ADDRESS” )
代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
形式 0 0 1 0 1 1 1 A2 A1 A0
所谓页地址就是DDRAM的行地址,8行为一页,模块共32 行即4 页, A2
∽ A0 表示0∽ 3 页。读写数据对页地址没有影响, 页地址由本指令或RST 信号
改变复位后页地址为0。
页地址与DDRAM 的对应关系见DDRAM地址表。
4.设置Y 地址(SET Y ADDRESS)
代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
形式 0 0 0 1 A5 A4 A3 A2 A1 A0
此指令的作用是将A5∽ A0 送入Y地址计数器,作为DDRAM 的Y地址指针。
在对DDRAM 进行读写操作后, Y地址指针自动加1, 指向下一个DDRAM 单元。
5.读状态(STATUS READ)
代码 R/W D/I DB7 DB
6
DB5 DB4 DB3 DB2 DB1 DB0
形式 1 0 BF 0 ON/OF
F
RET 0 0 0 0
当R/W=1 D/I=0 时, 在E 信号为“ H” 的作用下, 状态分别输出到数据总
线( DB7∽ DB0) 的相应位。
BF: 前面已叙述过( 见BF标志位一节)。
ON/OFF: 表示DFF触发器的状态( 见DFF触发器一节)
RST: RST=1 表示内部正在初始化, 此时组件不接受任何指令和数据。
6.写显示数据(WRITE DISPLAY DATE)
代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
形式 0 1 D7 D6 D5 D4 D3 D2 D1 D0
D7∽ D0 为显示数据,此指令把D7∽ D0 写入相应DDRAM 单元, Y 地指针自动加1。
7.读显示数据(READ DISPLAY DATE)
代码 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
形式 1 1 D7 D6 D5 D4 D3 D2 D1 D0
此指令把DDRAM的内容D7∽ D0 读到数据总线DB7∽ DB0,Y 地址指针自动加1。
DDRAM 地址表: 表 4
CS=1 CS=0
Y= 0 1 --- 62 63 0 1 --- 62 63 行号
DB0 DB0 DB0 DBO DBO DBO DBO DBO DBO DBO 0
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
X=0 DB7 DB7 DB7 DB7 DB7 DB7 DB7 DB7 DB7 DB7 7
DB0 DB0 DB0 DB0 DB0 DB0 DB0 DB0 DB0 DB0 8
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
DB7 DB7 DB7 DB7 DB7 DB7 DB7 DB7 DB7 DB7 23
X=3 DB0 DBO DBO DBO DBO DBO DBO DBO DBO DBO 24
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
DB7 DB7 DB7 DB7 DB7 DB7 DB7 DB7 DB7 DB7 31

6
六. 读写操作时序
1.写操作时序 图 3
2 读操作时序 图 4
3.接口信号读写时序参数表 表 5
名 称 符 号 最小值 典型值 最大值 单位
E 周期时间 Tcyc 1000 --- --- ns
E 信号高电平宽度 Pweh 450 --- --- ns
E信号低电平宽度 Pwel 450 --- --- ns
E 信号上升时间 Tr --- --- 25 ns
E 信号下降时间 Tf --- --- 25 ns
地址建立时间 Tas 140 --- --- ns
地址保持时间 Tah 10 --- --- ns
数据建立时间 Tdsw 200 --- --- ns
数据延迟时间 Tddr --- --- 320 ns
写数据保持时间 Tdhw 10 --- --- ns
读数据保持时间 Tdhw 20 --- --- ns

7
七. 应用举例
MC51 单片机(89c2051)与液晶模块的演示程序:
DI EQU P3.7
E EQU P3.5
RST EQU P3.2
CS EQU P3.3
; RW =>GND , D0-D7 连P1口。
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP LINTO
ORG 0100H
MAIN: NOP
clr ea
SETB CS ;选择左半屏
CLR E
lcall init
MOV 34H,#0ffH ; 全显
LCALL DISPLAY_ALL
lcall dly100
MOV 34H,#00H ; 清屏
LCALL DISPLAY_ALL
lcall plybw ; 方格显示
lcall DLY100
MOV 34H,#00H ; 清屏
LCALL DISPLAY_ALL
MOV R1,#0C0H ;START = 0
LCALL WRI
mov 31h,#0
mov 30h,#0
MOV 30H,#0 ;x
MOV 31H,#8 ;y
MOV DPTR,#HZI7 ;您
LCALL outhz
MOV 30H,#0
MOV 31H,#40
MOV DPTR,#HZI8 ;好

LCALL outhz
MOV 30H,#2
MOV 31H,#16
MOV DPTR,#HZI1 ;铜
LCALL outhz
MOV 30H,#2
MOV 31H,#32
MOV DPTR,#HZI2 ;铧
LCALL outhz
LCALL DLY100
LJMP MAIN
LINTO: NOP
NOP
RETI
init: CLR RST ;RESET : 初始化子程序。
LCALL DLY50
LCALL DLY50
LCALL DLY50
LCALL DLY50
setb rst
MOV R1,#3FH ;DISPLAY ON
LCALL WRI
MOV R1,#0C0H ;START = 0
LCALL WRI
MOV 34H,#00H
LCALL DISPLAY_ALL
ret
DISPLAY_ALL: MOV R1,#0C0H ;START = 0 : 全黑屏子程序。
LCALL WRI
MOV R7,#8 ;DISPLAY DATA= 34H
MOV R2,#0B8H
LOP1: MOV A,R2
MOV R1,A ; X+1
LCALL WRI
MOV R1,#40H ; Y
LCALL WRI
MOV R5,#64
LOP11: MOV R1,34H

9
LCALL WRD
DJNZ R5,LOP11
INC R2
DJNZ R7,LOP1
ret
outhz: : 显示汉字子程序。
;30h=x (0-6) 31h=y(0-63-16)
MOV R1,#0C0H ;START = 0
LCALL WRI
MOV R7,#2
MOV A,#0B8H
ADD A,30H ;B8+X
MOV 30H,A ;A>>30H
HZ2: ; MOV A,R2
MOV R1,30H ; X+1
LCALL WRI
MOV A,#40H ; Y
ADD A,31H
; MOV 31H,A ;40+Y
MOV R1,A
LCALL WRI
MOV R5,#16
HZ1: MOV A,#00H
MOVC A,@A+DPTR
MOV R1,A
LCALL WRD
LCALL DLY10
INC DPTR
DJNZ R5,HZ1
INC 30H
DJNZ R7,HZ2
RET
plybw: : 显示黑白相间块的子程序。
MOV R1,#0C0H ;START = 0
LCALL WRI
mov 30h,#0
mov 31h,#0
mov dptr,#bw
MOV R7,#8
MOV A,#0B8H

10
ADD A,30H ;B8+X
MOV 30H,A ;A>>30H
HZ2bw: MOV R1,30H ; X+1
LCALL WRI
mov R1,#40h
LCALL WRI
MOV R5,#64
HZ1bw: MOV A,#00H
MOVC A,@A+DPTR
MOV R1,A
LCALL WRD
LCALL DLY10
INC DPTR
DJNZ R5,HZ1bw
INC 30H
DJNZ R7,HZ2bw
RET
WRI: CLR E : 写指令子程序。
CLR DI
MOV P1,R1
lcall DLY10
LCALL DLY10
SETB E
LCALL DLY10
CLR E
LCALL DLY10
LCALL DLY10
LCALL DLY10
RET
WRD: CLR E : 写数据子程序。
SETB DI
MOV P1,R1
lcall DLY10
LCALL DLY10
SETB E
LCALL DLY10
CLR E
LCALL DLY10
LCALL DLY10
LCALL DLY10
RET
DLY10:MOV R3,#01H
DL1:MOV R4,#01H

11
DL2:MOV R6,#0FH
DL3:DJNZ R6,DL3
DJNZ R4,DL2
DJNZ R3,DL1
RET
DLY50:MOV R3,#04H
DL111:MOV R4,#0FH
DL222:MOV R6,#0AFH
DL333:DJNZ R6,DL333
DJNZ R4,DL222
DJNZ R3,DL111
RET
DLY100:MOV R3,#06H
DL11:MOV R4,#0FFH
DL22:MOV R6,#0FFH
DL33:DJNZ R6,DL33
DJNZ R4,DL22
DJNZ R3,DL11
RET
ORG 0300H
HZI1: ;铜
DB
080H,080H,070H,0C8H,056H,048H,0F8H,010H,010H,048H,048H,028H,0F8H,008H,000H,000H
DB
000H,000H,002H,02FH,012H,008H,03FH,000H,00FH,009H,027H,040H,07FH,000H,000H,000H
HZI2: ;铧
DB
000H,080H,060H,090H,05EH,050H,030H,010H,0FCH,044H,0FEH,010H,008H,080H,000H,000H
DB
000H2,000H,002H,03FH,01H,00AH,008H,008H,00BH,048H,07CH,009H,009H,005H,000H,000H
HZI7: ;您
DB
000H,040H,040H,030H,0C8H,046H,0B0H,048H,016H,0F0H,048H,0B8H,088H,000H,000H,000H
DB
000H,000H,030H,001H,000H,011H,020H,044H,05AH,083H,064H,008H,009H,010H,000H,000H
HZI8: ;好
DB
000H,040H,040H,0E0H,05FH,040H,0F0H,000H,008H,008H,0E4H,094H,08CH,084H,080H,000H
DB
000H,040H,022H,015H,00CH,00EH,019H,021H,021H,041H,061H,01EH,000H,000H,000H,000H
bw:
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H


DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffh,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffh,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffh,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffh,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffh,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffh,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00h, 00H, 00H, 00H, 00H, 00H
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffh,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffh,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
END

显示流程图
入口
NO
YES
显示完否
初始化
返回
调用显示程序
延时

写指令程序
WRI:
CLR E
CLR DI
MOV P1,R1
CALL DELAY
SETB E
CALL DELAY
CLR E
CALL DELAY
CALL DELAY
RET
清E1,D/I,E1=D/I=0
送命令到P1 口
延时0
置E 为1
延时
E=0
延时
返回

入口
置E=0,D/I=1
送数据到P1 口
延时
置E=1
延时
置E=0
延时
返回
WRD:
CLR E
SETB DI
MOV P1,R1
CALL DELAY
SETB E
CALL DELAY
CLR E
CALL DELAY
CALL DELAY
RET

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -