液晶结构与编程.docx
《液晶结构与编程.docx》由会员分享,可在线阅读,更多相关《液晶结构与编程.docx(16页珍藏版)》请在冰豆网上搜索。
![液晶结构与编程.docx](https://file1.bdocx.com/fileroot1/2022-12/13/2df569a5-7522-4b32-bfce-0ae3584f7b26/2df569a5-7522-4b32-bfce-0ae3584f7b261.gif)
液晶结构与编程
带中文字库的液晶显示模块
注:
IC2控制模块的左半屏,IC1控制模块的右半屏.
IC3为行驱动器.IC1,IC为列驱动器.IC1,IC2,IC3含有如下主要功能器件.了解如下器件有利于对LCD模块之编程.
1.指令寄存器(IR)
IR是用来寄存指令码,与数据寄存器寄存数据相对应.当D/I=1时,在E信号下降沿的作用下,指令码写入IR.
2.数据寄存器(DR)
DR是用来寄存数据的,与指令寄存器寄存指令相对应.当D/I=1时,在E信号的下降沿作用下,图形显示数据写入DR,或在E信号高电平作用下由DR读到DB7~DB0数据总线.DR和DDRAM之间的数据传输是模块内部自动执行的.
3.忙标志:
BF
BF标志提供内部工作情况.BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据.BF=0时,模块为准备状态,随时可接受外部指令和数据.
利用STATUSREAD指令,可以将BF读到DB7总线,从而检验模块之工作状态.
4.显示控制触发器DFF
此触发器是用于模块屏幕显示开和关的控制。
DFF=1为开显示(DISPLAYON),DDRAM的内容就显示在屏幕上,DDF=0为关显示(DISPLAYOFF)。
DDF的状态是指令DISPLAYON/OFF和RST信号控制的。
5.XY地址计数器
XY地址计数器是一个9位计数器。
高三位是X地址计数器,低6位为Y地址计数器,XY地址计数器实际上是作为DDRAM的地址指针,X地址计数器为DDRAM的页指针,Y地址计数器为DDRAM的Y地址指针。
X地址计数器是没有记数功能的,只能用指令设置。
Y地址计数器具有循环记数功能,各显示数据写入后,Y地址自动加1,Y地址指针从0到63。
6.显示数据RAM(DDRAM)
DDRAM是存贮图形显示数据的。
数据为1表示显示选择,数据为0表示显示非选择。
DDRAM与地址和显示位置的关系见DDRAM地址表(见第6页)。
7.Z地址计数器
Z地址计数器是一个6位计数器,此计数器具备循环记数功能,它是用于显示行扫描同步。
当一行扫描完成,此地址计数器自动加1,指向下一行扫描数据,RST复位后Z地址计数器为0。
Z地址计数器可以用指令DISPLAYSTARTLINE预置。
因此,显示屏幕的起始行就由此指令控制,即DDRAM的数据从哪一行开始显示在屏幕的第一行。
此模块的DDRAM共64行,屏幕可以循环滚动显示64行。
指令表:
指
指令码
功能
令
RW
DI
D7
D6
D5
D4
D3
D2
D1
D0
显示
ON/OFF
0
0
0
0
1
1
1
1
1
1/0
控制显示器的开关,不影响DDRAM中数据和内部状态
显示
起始行
0
0
1
1
显示起始行
(0…63)
指定显示屏从DDRAM中
哪一行开始显示数据
设置
X地址
0
0
1
0
1
1
1
X:
0…7
设置DDRAM中的页地址
(X地址)
设置
Y地址
0
0
0
1
Y地址(0~63)
设置地址(Y地址)
读状态
1
0
BUSY
0
ON/
OFF
RST
0
0
0
0
RST1:
复位0:
正常
ON/OFF1:
显示开0:
显示关
BUSY0:
READY
1:
INOPERATION
写显示数据
0
1
显示数据
将数据线上的数据DB7~DB0写入DDRAM
读显示数据
1
1
显示数据
将数据线上的数据DB7~DB0写入DDRAM
1.显示开关控制(DISPLAYON/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:
开显示(DISPLAYON)意即显示器可以进行各种显示操作
D=0:
关显示(DISPLAYOFF)意即不能对显示器进行各种显示操作
2.设置显示起始行(DISPLAYSTARTLINE)
代码
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~A06位地址自动送入Z地址计数器,起始行的地址可以是0~63的任意一行。
例如:
选择A5~A0是62,则起始行与DDRAM行的对应关系如下:
DDRAM行:
62630123·················2829
屏幕显示行:
123456·················3132
3.设置页地址(SETPAGE“XADDRESS”)
代码
R/W
D/I
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
形式
0
0
1
0
1
1
1
A2
A1
A0
所谓页地址就是DDRAM的行地址,8行为一页,模块共64行即8页,A2~A0表示0~7页。
读写数据对地址没有影响,页地址由本指令或RST信号改变复位后页地址为0。
页地址与DDRAM的对应关系见DDRAM地址表。
4.设置Y地址(SETYADDRESS)
代码
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单元。
DDRAM地址表:
CS2=1
CS1=1
Y=
0
1
……
62
63
0
1
……
62
63
行号
X=
0
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
0
↓
7
↓
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
8
↓
55
X=7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
DB0
↓
DB7
56
↓
63
5.读状态(STATUSREAD)
代码
R/W
D/I
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
形式
1
0
BUSY
0
ON/OFF
RET
0
0
0
0
当R/W=1D/I=0时,在E信号为“H”的作用下,状态分别输出到数据总线(DB7~DB0)的相应位。
BF:
前面已叙述过(见BF标志位一节)。
ON/OFF:
表示DFF触发器的状态(见DFF触发器一节)。
RST:
RST=1表示内部正在初始化,此时组件不接受任何指令和数据。
6.写显示数据(WRITEDISPLAYDATE)
代码
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.读显示数据(READDISPLAYDATE)
代码
R/W
D/I
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
形式
1
1
D7
D6
D5
D4
D3
D2
D1
D0
六、读写操作时序
1.写操作时序
图3
2.读操作时序
图4
3.读写时序参数表
名称
符号
最小值
典型值
最大值
单位
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
七、应用举例
12864A与单片机8031的一种接口如图5.所示:
图5
利用图5举例介绍编程实例
ORG0000H
LJMPINITM
ORG0100H
INITM:
MOVSP,#67H;SETSTACKADDRESS
MOVDPTR,#3800H;SELECTCHIP1ANDCHIP2
MOVA,#3EH;OFFDISPLAY
LCALLOUTI
LCALLMS40;延时程序
LCALLMS40
LCALLMS40
MOVA,#3FH;ONDISPLAY
LCALLOUTI
LCALLMS40
LCALLMS40
LCALLMS40
;显示“*”号
MOVR3,#04H;PAGENUMBER(2X4=8PAGES)
MOVA,#0B8H;PAGE0
DISP1:
PUSHACC
LCALLCHIN1
POPACC
INCA
INCA
DJNZR3,DISP1
LCALLMS40
LCALLMS40
LCALLMS40
LCALLMS40
LCALLMS40
;显示竖条
MOVR3,#04H
MOVA,#0B8H
DISP2:
PUSHACC
LCALLCHIN2
POPACC
INCA
INCA
DJNZR3,DISP2
LCALLMS40
LCALLMS40
LCALLMS40
LCALLMS40
LCALLMS40
;显示横条
MOVR3,#04H
MOVA,#0B8H
DISP3:
PUSHACC
LCALLCHIN3
POPACC
INCA
INCA
DJNZR3,DISP3
LCALLMS40
LCALLMS40
LCALLMS40
LCALLMS40
LCALLMS40
;显示“XX电子”四个汉字
MOVR3,#04H
MOVA,#0B8H
DISP4:
PUSHACC
LCALLCHIN4
POPACC
INCA
INCA
DJNZR3,DISP4
LCALLMS40
LCALLMS40
LCALLMS40
LCALLMS40
LCALLMS40
LJMPINITM
CHIN1:
PUSHACC;PUTA(PAGENUMBER)INTOSTACK
LCALLOUTI
MOVA,#40H;SETYADDRESS
LCALLOUTI
MOVR2,#32
LOAD1:
MOVA,#55H
LCALLOUTD
MOVA,#0AAH
LCALLOUTD
DJNZR2,LOAD1
POPACC
INCA
LCALLOUTI
MOVA,#40H
LCALLOUTI
MOVR2,#32
LOAD12:
MOVA,#55H
LCALLOUTD
MOVA,#0AAH
LCALLOUTD
DJNZR2,LOAD12
RET
CHIN2:
PUSHACC;PUTA(PAGENUMBER)INTOSTACK
LCALLOUTI
MOVA,#40H;SETYADDRESS
LCALLOUTI
MOVR2,#32
LOAD2:
MOVA,#00H
LCALLOUTD
MOVA,#0FFH
LCALLOUTD
DJNZR2,LOAD2
POPACC
INCA
LCALLOUTI
MOVA,#40H
LCALLOUTI
MOVR2,#32
LOAD21:
MOVA,#00H
LCALLOUTD
MOVA,#0FFH
LCALLOUTD
DJNZR2,LOAD21
RET
CHIN3:
PUSHACC;PUTA(PAGENUMBER)INTOSTACK
LCALLOUTI
MOVA,#40H;SETYADDRESS
LCALLOUTI
MOVR2,#64
LOAD3:
MOVA,#55H
LCALLOUTD
DJNZR2,LOAD3
POPACC
INCA
LCALLOUTI
MOVA,#40H
LCALLOUTI
MOVR2,#64
LOAD31:
MOVA,#55H
LCALLOUTD
DJNZR2,LOAD31
RET
CHIN4:
PUSHACC
LCALLOUTI
MOVA,#40H
LCALLOUTI
MOVR2,#64
MOVR1,#00
MOVDPTR,#CHINESE
LOAD4:
MOVA,R1
MOVCA,A+DPTR
LCALLOUTD
INCDPTR
DJNZR2,LOAD4
POPACC
INCA
LCALLOUTI
MOVA,#40H
LCALLOUTI
MOVR2,#64
LOAD41:
MOVA,R1
MOVCA,A+DPTR
LCALLOUTD
INCDPTR
DJNZR2,LOAD41
RET
MS40:
MOVR7,#0E8H
MS2:
MOVR6,#0FFH
MS1:
DJNZR6,MS1
DJNZR7,MS2
RET
;OUTINSTRCTIONFORCHIP1ANDCHIP2
OUTI:
PUSHDPH
PUSHDPL
MOVDPTR,#3800H
MOVXDPTR,A
POPDPL
POPDPH
RET
OUTD:
PUSHDPH
PUSHDPL
MOVDPTR,#7800H
MOVXDPTR,A
POPDPL
POPDPH
RET
CHINESE:
;(PAGE0)
DB40H,40H,42H,44H,58H,0C0H,40H,7FH,40H,0C0H,50H,48H,46H,64H,40H,00
DB20H,20H,20H,20H,20H,20H,0A0H,7FH,0A0H,20H,20H,20H,20H,30H,20H,00
DB00,0F0H,90H,90H,90H,90H,0FFH,90H,90H,90H,90H,0F8H,10H,00,00,00
DB80H,80H,82H,82H,82H,82H,82H,0E2H,0A2H,92H,8AH,87H,82H,0C0H,80H,00
;(PAGE1)
DB00,80H,40H,20H,18H,07H,00,00,00,3FH,40H,40H,40H,40H,70H,00
DB00,40H,40H,20H,10H,0CH,03H,00,01H,06H,08H,10H,20H,60H,20H,00
DB00,0FH,04H,04H,04H,04H,7FH,84H,84H,84H,84H,8FH,80H,0F0H,00,00
DB00,00,00,00,00,40H,80H,7FH,00,00,00,00,00,00,00,00