RT12232F带中文液晶显示器.docx
《RT12232F带中文液晶显示器.docx》由会员分享,可在线阅读,更多相关《RT12232F带中文液晶显示器.docx(34页珍藏版)》请在冰豆网上搜索。
RT12232F带中文液晶显示器
一、概述
12232F是一种内置8192个16*16点汉字库和128个16*8点ASCII字符集图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×32全点阵液晶显示器组成。
可完成图形显示,也可以显示7.5×2个(16×16点阵)汉字.与外部CPU接口采用并行或串行方式控制。
主要技术参数和性能:
1.电源:
VDD:
+3.0∽+5.5V。
(电源低于4.0伏LED背光需另外供电)
2.显示内容:
122(列)×32(行)点。
3.全屏幕点阵。
4.2MROM(CGROM)总共提供8192个汉字(16×16点阵)。
5.16KROM(HCGROM)总共提供128个字符(16×8点阵)。
6.2MHZ频率。
7.工作温度:
0℃∽+55℃,存储温度:
-20℃∽+60℃
8.在线路板上,有一焊接处,标有J2,共3个焊点。
使用并行方式,连接上2个焊点。
使用串行方式,连接下2个焊点。
二、外形尺寸图
图1
2.外形尺寸图
表1
项目
正常尺寸
单位
模块体积
84×44×13
mm
视域
60.5×18.0
mm
行列点阵数
122×32
DOTS
点距离
0.36×0.41
mm
点大小
0.40×0.45
mm
三、模块主要硬件构成说明
1.RS,R/W的配合选择决定控制界面的4种模式:
RS
R/W
功能说明
L
L
MPU写指令到指令暂存器(IR)
L
H
读出忙标志(BF)及地址记数器(AC)的状态
H
L
MPU写入数据到数据暂存器(DR)
H
H
MPU从数据暂存器(DR)中读出数据
2.E信号
E状态
执行动作
结果
高——>低
I/O缓冲——>DR
配合/W进行写数据或指令
高
DR——>I/O缓冲
配合R进行读数据或指令
低/低——>高
无动作
●忙标志:
BF
BF标志提供内部工作情况.BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据.BF=0时,模块为准备状态,随时可接受外部指令和数据.
利用STATUSRD指令,可以将BF读到DB7总线,从而检验模块之工作状态.
●字型产生ROM(CGROM)
字型产生ROM(CGROM)提供8192个此触发器是用于模块屏幕显示开和关的控制。
DFF=1为开显示(DISPLAYON),DDRAM的内容就显示在屏幕上,DFF=0为关显示(DISPLAYOFF)。
DFF的状态是指令DISPLAYON/OFF和RST信号控制的。
●显示数据RAM(DDRAM)
模块内部显示数据RAM提供64×2个位元组的空间,最多可控制4行16字(64个字)的中文字型显示(本模块只用到其中的7.5*2个),当写入显示数据RAM时,可分别显示CGROM与CGRAM的字型;此模块可显示三种字型,分别是瘦长的英数字型(16*8)、CGRAM字型及CGROM的中文字型,三种字型的选择,由在DDRAM中写入的编码选择,在00~0F的编码中将选择CGRAM的字定义字型,10~7F的编码中将选择
瘦长英数字的字型,至于A0以上的编码将自动的结合下一个位元组,组成两个位元组的编码形成中文字型的编码(A140~D75F)。
●字型产生RAM(CGRAM)
字型产生RAM提供图象定义(造字)功能,可以提供四组16×16点的自定义图象空间,使用者可以将内部字型没有提供的图象字型自行定义到CGRAM中,便可和CGROM中的定义一般的通过DDRAM显示在荧屏中。
●地址计数器AC
地址计数器是用来贮存DDRAM/CGRAM之一的地址,它可由设定指令暂存器来改变,之后只要读取或是写入DDRAM/CGRAM的值时,地址计数器的值就会自动加一,当RS为“0”时而R/W为“1”时,地址计数器的值会被读取到DB6~DB0中。
●游标/闪烁控制电路
此模块提供硬体游标及闪烁控制电路,由地址计数器的值来指定DDRAM中的游标或闪烁位置。
四、模块的外部接口
外部接口信号如下表2、3所示(并行接口):
表2
管脚号
管脚名称
LEVER
管脚功能描述
1
VSS
0V
电源地
2
VCC
3.0+5V
电源正
3
VEE
-
对比度调整
4
RS(CS)
H/L
RS=“H”,表示DB7~DB0为显示数据
RS=“L”,表示DB7~DB0为显示指令数据
5
R/W(SID)
H/L
R/W=“H”,E=“H”,数据被读到DB7~DB0
R/W=“L”,E=“H→L”,DB7~DB0的数据被写到IR或DR
6
E(CLK)
H/L
使能信号
7
DB0
H/L
数据线
8
DB1
H/L
数据线
9
DB2
H/L
数据线
10
DB3
H/L
数据线
11
DB4
H/L
数据线
12
DB5
H/L
数据线
13
DB6
H/L
数据线
14
DB7
H/L
数据线
15
BL+
VDD
背光源电压+4.2V-+5V
16
BL-
Vss
背光源公共端
串口接口管脚信号
表3
管脚号
名称
LEVER
功能
1
VSS
0V
电源地
2
VDD
+5V
电源正(3.0V~5.5V)
3
VEE
-
对比度调整
4
CLK
H/L
串行同步时钟:
上升沿时读取SID数据
5
SID
H/L
串行数据输入端
6
CS
H/L
模组片选端,高电平有效
7
BL+
VDD
背光源电压+4.2V-+5V
8
BL-
VSS
背光源公共端
五、指令说明
模块控制芯片提供两套控制命令,基本指令和扩充指令如下:
指令表1:
(RE=0:
基本指令)
指
指令码
功能
令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
清除
显示
0
0
0
0
0
0
0
0
0
1
将DDRAM填满"20H",并且设定DDRAM的地址计数器(AC)到"00H"
地址
归位
0
0
0
0
0
0
0
0
1
X
设定DDRAM的地址计数器(AC)到"00H",并且将游标移到开头原点位置;这个指令不改变DDRAM的内容
显示状态开/关
0
0
0
0
0
0
1
D
C
B
D=1:
整体显示ON
C=1:
游标ON
B=1:
游标位置反白允许
进入点
设定
0
0
0
0
0
0
0
1
I/D
S
指定在数据的读取与写入时,设定游标的移动方向及指定显示的移位
游标或显示移位控制
0
0
0
0
0
1
S/C
R/L
X
X
设定游标的移动与显示的移位控制位;这个指令不改变DDRAM的内容
功能
设定
0
0
0
0
1
DL
X
RE
X
X
DL=0/1:
4/8位数据
RE=1:
扩充指令操作
RE=0:
基本指令操作
设定CGRAM
地址
0
0
0
1
AC5
AC4
AC3
AC2
AC1
AC0
设定CGRAM地址
设定DDRAM
地址
0
0
1
0
AC5
AC4
AC3
AC2
AC1
AC0
设定DDRAM地址(显示位址)
第一行:
80H-87H
第二行:
90H-97H
读取忙标志和地址
0
1
BF
AC6
AC5
AC4
AC3
AC2
AC1
AC0
读取忙标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值
写数据到RAM
1
0
数据
将数据D7~D0写入到内部的RAM(DDRAM/CGRAM/IRAM/GRAM)
读出RAM的值
1
1
数据
从内部RAM读取数据D7~D0
(DDRAM/CGRAM/IRAM/GRAM)
指令表2:
(RE=1:
扩充指令)
指
指令码
功能
令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
待命
模式
0
0
0
0
0
0
0
0
0
1
进入待命模式,执行其他指令都棵终止
待命模式
卷动地址开关开启
0
0
0
0
0
0
0
0
1
SR
SR=1:
允许输入垂直卷动地址
SR=0:
允许输入IRAM和CGRAM地址
反白
选择
0
0
0
0
0
0
0
1
R1
R0
选择2行中的任一行作反白显示,并可决定反白与否。
初始值R1R0=00,第一次设定为反白显示,再次设定变回正常
睡眠
模式
0
0
0
0
0
0
1
SL
X
X
SL=0:
进入睡眠模式
SL=1:
脱离睡眠模式
扩充
功能
设定
0
0
0
0
1
CL
X
RE
G
0
CL=0/1:
4/8位数据
RE=1:
扩充指令操作
RE=0:
基本指令操作
G=1/0:
绘图开关
设定绘图RAM
地址
0
0
1
0
AC6
0
AC5
0
AC4
AC3
AC3
AC2
AC2
AC1
AC1
AC0
AC0
设定绘图RAM
先设定垂直(列)地址AC6AC5…AC0
再设定水平(行)地址AC3AC2AC1AC0
将以上16位地址连续写入即可
备注;当IC1在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取BF标志时,BF需为零,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即是等待前一个指令确实执行完成。
六.时序图
并口读写时序图:
MPU写数据
MPU读数据
串口读写时序:
电源开启
七、软件初始化:
延迟时间超过40ms
RSRWD7D6D5D4D3D2D1D0
…….在此指令前,不能检查BF标志
000011XXXX
延迟时间超过100us
000011XXXX
…….在此指令前,不能检查BF标志
延迟时间超过37us
000011XXXX
…….在此指令前,不能检查BF标志
00001111xx
……在此指令前,不能检查BF标志
0000111000
…..设为基本指令
0000000001
…..荧屏显示清除
00000001I/DS
…..进入点设定
初始设定结束
八.应用举例:
12232F与单片机8031的一种接口如图5.所示
;Thisprogramisfor12232F
;RS--------P3.3
;R/W-------P3.1
;E---------P3.0
;DB~7-----P1
DIEQUP3.3
RWEQUP3.1
EEQUP3.0
ORG0000H
AJMPSTART
ORG0003H
LCALLPAUSE
START:
MOVIE,#81H;EXT.INT0PERMIT
MOVIP,#01H;INT0ISFIRSTINT.LEVEL
MOVTCON,#00H;TIMER/COUNTERCONTROLERINIT.
movSP,#67h
LCALLDELAY
LCALLDELAY
LCALLSETUP
LCALLDEF_CHAR
MOVA,#80H
LCALLWRITE_COM
MOVR3,#8
TEST11:
MOVDPTR,#CGRAM1;CGRAMTEST
LCALLWRITE_CGRAM
DJNZR3,TEST11
MOVA,#90H
LCALLWRITE_COM
MOVR3,#8
TEST12:
MOVDPTR,#CGRAM1
LCALLWRITE_CGRAM
DJNZR3,TEST12
LCALLDELAY
LCALLDELAY
LCALLDELAY
LCALLDELAY
LCALLDELAY
MOVA,#80H
LCALLWRITE_COM
MOVR3,#8
TEST21:
MOVDPTR,#CGRAM2
LCALLWRITE_CGRAM
DJNZ3,TEST21
MOVA,#90H
LCALLWRITE_COM
MOVR3,#8
TEST22:
MOVDPTR,#CGRAM2
LCALLWRITE_CGRAM
DJNZR3,TEST22
LCALLDELAY
LCALLDELAY
LCALLDELAY
LCALLDELAY
LCALLDELAY
MOVA,#80H
LCALLWRITE_COM
MOVR3,#8
TEST31:
MOVDPTR,#CGRAM3
LCALLWRITE_CGRAM
DJNZR3,TEST31
MOVA,#90H
LCALLWRITE_COM
MOVR3,#8
TEST32:
MOVDPTR,#CGRAM3
LCALLWRITE_CGRAM
DJNZR3,TEST32
LCALLDELAY
LCALLDELAY
LCALLDELAY
LCALLDELAY
LCALLDELAY
MOVA,#80H
LCALLWRITE_COM
MOVR3,#8
TEST41:
MOVDPTR,#CGRAM4
LCALLWRITE_CGRAM
DJNZR3,TEST41
MOVA,#90H
LCALLWRITE_COM
MOVR3,#8
TEST42:
MOVDPTR,#CGRAM4
LCALLWRITE_CGRAM
DJNZR3,TEST42
LCALLDELAY
LCALLDELAY
LCALLDELAY
LCALLDELAY
LCALLDELAY
MOVA#80H;WORDTEST
LCALLWRITE_COM
MOVDPTR,#CHINESE
LCALLWRITE_HZ
MOVA,#90H
LCALLWRITE_COM
MOVDPTR,#TABLE1
LCALLWRITE_ASCII
LCALLDELAY
LCALLDELAY
LCALLDELAY
LCALLDELAY
LCALLDELAY
MOVA#80H
LCALLWRITE_COM
MOVDPTR,#table1
LCALLWRITE_ascii
MOVA,#90H
LCALLWRITE_COM
MOVDPTR,#chinese
LCALLWRITE_hz
LCALLDELAY
LCALLDELAY
LCALLDELAY
LCALLDELAY
LCALLDELAY
AAA:
LJMPSTART
SETUP:
LCALLDELAY
LCALLDELAY
LCALLDELAY
MOVA,#01H;CLEARDISPLAY
LCALLWRITE_COM
MOVA,#00110000B;FUNCTIONSETTING
LCALLWRITE_COM
MOVA,#00000010B;DDRAMSETTO'00H'
LCALLWRITE_COM
MOVA,#00000100B;
LCALLWRITE_COM
MOVA,#00001100B;DISPLAYON
LCALLWRITE_COM
MOVA,#00000001B;CLEARINGSCREEN
LCALLWRITE_COM
MOVA,#10000000B;SETDDRAMADDRESS
LCALLWRITE_COM
RET
WRITE_COM:
;WRIT///cv
;WRITECOMMANDSTOST7920
LCALLDELAY1;INSTEADOFCHECKINGBFSTATE
CLRRS
CLRRS
CLRRW
CLRRW
MOVP1,A
MOVP1,A
SETBE
SETBE
NOP
NOP
CLRE
CLRE
;LCALLDELAY1
RET
WRITE_DAT:
;WRITEDISPLAYDATASTOST79220
LCALLDELAY1
SETBRS
SETBRS
CLRRW
CLRRW
MOVP1,A
MOVP1,A
SETBE
SETBE
NOP
NOP
CLRE
CLRE
RET
DELAY1:
MOVR7,#010H
D11:
MOVR6,#010H
DJNZR6,$
DJNZR7,D11
RET
DELAY:
MOVR1,#00H
D2:
MOVR2,#00H
DJNZR2,$
DJNZR1,D2
RET
DEF_CHAR:
;WRITETOCGRAM
MOVA,#01000000B;SETCGRAMADDRESS
LCALLWRITE_COM
MOVR3,#8
DEF1:
MOVA,#000H
LCALLWRITE_DAT
LCALLWRITE_DAT
MOVA,#0FFH
LCALLWRITE_DAT
LCALLWRITE_DAT
DJNZR3,DEF1
MOVR3,#8
DEF2:
MOVA,#0AAH
LCALLWRITE_DAT
LCALLWRITE_DAT
MOVA,#0AAH
LCALLWRITE_DAT
LCALLWRITE_DAT
DJNZR3,DEF2
MOVR3,#8
DEF3:
MOVA,#055H
LCALLWRITE_DAT
LCALLWRITE_DAT
MOVA,#0AAH
LCALLWRITE_DAT
LCALLWRITE_DAT
DJNZR3,DEF3
movR3,#8
DEF4:
MOVA,#0FFH
LCALLWRITE_DAT
LCALLWRITE_DAT
LCALLWRITE_DAT
LCALLWRITE_DAT
DJNZR3,DEF4
RET
WRITE_ASCII:
MOVR4,#16
DDDD:
CLRA
MOVCA,@A+DPTR
LCALLWRITE_DAT
INCDPTR
DJNZR4,DDDD
RET
WRITE_HZ:
;WRITE8CHINESETOLCD
MOVR4,#8
DD:
CLRA
MOVCA,@A+DPTR
INCDPTR
LCALLWRITE_DAT
CLRA
MOVCA,@A+DPTR
INCDPTR
LCALLWRITE_DAT
DJNZR4,DD
RET
WRITE_CGRAM:
;CGRAMTESTING
CLRA
MOVCA,@A+DPTR
LCALLWRITE_DAT
INCDPTR
CLRA
MOVCA,@A+DPTR
LCALLWRITE_DAT
RET
PAUSE:
SETBP3.2;PAUSEKEYPROCESS
SETBP3.2
LCALLDELAY1
MOVC,P3.2
MOVC,P3.2
JNCPAUSE;CHECKKEYWASPRESSED
PAUSE1:
MOVC,P3.2
MOVC,P3.2
LCALLDELAY1
JCPAUSE1;CHECKKEYOPENAFTERPRESSED
PAUSE2:
SETBP3.2
SETBP3.2
LCALLDELAY1
MOVC,P3.2
MOVC,P3.2
JNCPAUSE2;CHECKKEYWASPRESSEDAGAIN
RETI
TABLE1:
;“这里是16*8点阵的字符代码”
CGRAM1:
DB000H,000H;这里是自造字符地址表
CGRAM2:
DB000H,002H
CGRAM3:
DB000H,004H
CGRAM4:
DB000H,006H
CHINESE:
;“这里是16*16点阵的汉字代码表”
END
以下为串口写指令和数据的子程序:
WRITE_COM:
LCALLDELAY1;INSTEADOFCHECKINGBFSTATE
SETBCS
PUSHACC
MOVR0,#8
MOVA,#11111000B
COMM1:
CLRC
RLC