(一)常见12864液晶的控制器种类
(1)ST7920类 这种控制器带中文字库,该控制器的液晶还支持画图方式,支持68时序8位和4位并口以及串口。
(2)KS0108类 这种控制器指令简单,不带字库。支持68时序8位并口。
(3)T6963C类 这种控制器功能强大,带西文字库。有文本和图形两种显示方式。有文本和图形两个图层,并且支持两个图层的叠加显示。支持80时序8位并口。
(4)COG类 常见的控制器有S6B0724和ST7565,这两个控制器指令兼容。支持68时序8位并口,80时序8位并口和串口。COG类液晶的特点是结构轻便,成本低。
下面以KS0108控制器为例,讲解这种液晶显示模块的用法。
(二)以KS0108为控制器的液晶显示模块结构图
1、外形图(正反面)

2、内部结构框图

注:KS108B及兼容芯片,IC2控制模块的左半屏,IC1控制模块的右半屏,IC3为行驱动器,IC1IC2 为列驱动器。
(三)12864液晶显示模块技术参数和接口

(四)12864液晶显示模块的操作指令
1、指令表

2、 基本操作时序:
(1)读状态:输入:RS=L,R/W=H,CS1 或CS2=H,E=H输出:D0~D7=状态字
(2)写指令:输入:RS=L,R/W=L,D0~D7=指令码,CS1或CS2=H,E=高脉冲输出:无
(3)读数据:输入:RS=H,R/W=H,CS1 或CS2=H,E=H输出:D0~D7=数据
(4)写数据:输入:RS=H,R/W=L,D0~D7=数据,CS1或CS2=H,E=高脉冲输出:无
3、指令说明


(四)与51单片机的连接

(五)测试程序
ORG 0000H
AJMPKS
ORG 0003H
RETI
ORG 000BH
LJMP 0C00H
RETI
ORG 001BH
RETI
ORG 0023H
; AJMPS ;接收数据转S
RSPIN EQU 80h
RWPIN EQU 81h
EPIN EQU 82h
CS1PIN EQU 83h
CS2PIN EQU 84h
XPOS EQU 1AH ;列方向地址指针(用于LCDPOS子程序)
YPOS EQU 1BH ;行方向地址指针(用于LCDPOS子程序)
KS: LACALL MAIN;显示汉字
LCALL QXS3;清显示
LCALL SBQ;画正弦波
AJMP KS
MAIN: MOVYPOS,#0
MOV XPOS,#0
LCALL LCDRESET ;初始化显示器
MOV A,#55H
ACALL LCDFILL ;划线
MOVDPTR,#PL;0900H ;显示户名:频率
MOV R7,#32
LCALL PAC_PA
MOVDPTR,#MH;09E0H ;输出空格
MOV R7,#32
LCALL PAC_PA
MOV R0,#30H
MOV R2,#2
LCALLXSBH1 ;显示2e~2fH中的数字
MOV DPTR,#KG ;输出一个空格占一个汉字的宽度16*16
MOV R7,#16
LCALL PAC_PA
MOV DPTR,#KG ;输出一个空格
MOV R7,#16
LCALL PAC_PA
MOVXPOS,#0 ;在第二行显示户号:
MOV YPOS,#2
MOVDPTR,#XP;09A0H 芯片
MOV R7,#32;48
LCALL PAC_PA;call putchardot
MOV DPTR,#MH ;输出冒号
MOV R7,#32
LCALL PAC_PA
MOVR0,#32H ;22H-2DH存12个数据,2EH,2FH存频率
MOV R2,#2
CALLXSBH1 ;显示30~33H中的数字
MOV DPTR,#KG ;输出一个空格
MOV R7,#16
LCALL call PAC_PA
MOV DPTR,#KG ;输出一个空格
MOV R7,#16
LCALL PAC_PA
MOV DPTR,#SJ;0940H ;显示数据:
MOV R7,#32;48
LCALL PAC_PA
MOV DPTR,#MH;09E0H
MOV R7,#32
LCALL PAC_PA
MOVXPOS,#64 ;在第四行显示数据
MOV YPOS,#4
MOVR0,#34H ;22H-2DH存12个数据,2EH,2FH存频率
MOV R2,#10
LCALLXSBH1 ;显示30~33H中的数字
MOV DPTR,#KG ;输出一个空格
MOV R7,#16
LCALL PAC_PA
MOV DPTR,#KG ;输出一个空格
MOV R7,#16
LCALL PAC_PA
RET
XSBH:
MOVR0,#30H ;表号在30-36H中
MOV R2,#5 ;;;;
XSBH1: MOVDPTR,#0800H
MOVA,@R0 ;表号是0-9的数字,点阵数是16
ANL A,#0F0H
SWAP A
MOVB,#16 ;根据表号乘以16就是该数字的点阵存储区首址DPTR
MUL AB
MOV DPL,A
MOV A,B
ADD A,DPH
MOV DPH,A
MOV R7,#8
LCALL PAC_PA
XSBH2: MOV DPTR,#0800H
MOVA,@R0 ;表号是0-9的数字,点阵数是16
ANL A,#0FH
MOVB,#16 ;根据表号乘以16就是该数字的点阵存储区首址DPTR
MUL AB
MOV DPL,A
MOV A,B
ADD A,DPH
MOV DPH,A
MOV R7,#8
LCALL PAC_PA
INC R0
DJNZ R2,XSBH1
RET
SBQ: MOV DPTR,#SINE ;128*64液晶画线子程序
sbq2: MOV R0,#22H
MOV B,1FH
MOV A,#127
DIV AB
MOV R5,A;#64;127;255
MOVXPOS,#0
SBQ3: MOVR3,#0
MOVR2,1FH;#2;1;2;4;8 ;R2数值决定水平拉伸,与R5配合
SBQ1: CLR A
MOVC A, @A DPTR
MOV @R0,A
MOVB,#4;20H;32 ;输出线段,255/4=63,采集的数据压缩4倍
DIV AB
PUSHDPH ;查表得到Y(X)值
PUSH DPL
MOV DPTR,#CB
MOVC A, @A DPTR
POP DPL
POP DPH
INC DPTR
INC R0
ORL A,R3
MOV R3,A
DJNZ R2, SBQ1
MOV R2,1FH
SBQ0: DEC R0
DJNZ R2,SBQ0
MOVA,@R0 ;得到Y坐标
MOVB,#32 ;256/32=8,采集的数据压缩8倍
DIV AB
MOV YPOS,A
MOV A,R3 ;取Y(X)值
CALL LCDWRITE ;定位并写数据
CALL CUSORNEXT ;X=X 1
DJNZ R5,SBQ3
RET
QXS3: MOV R6,#8 QXS2: MOV YPOS,#0 QXS1: MOVA,#0H ;清显示,把最后一行清除
MOV R7,A
PB1: MOV XPOS,#0
PA1: MOV A,R7
CALL LCDWRITE ;定位并写数据
CALL CUSORNEXT
MOV A,XPOS
JNZ PA1 ;XPOS<128则循环(128列)CUSORNEXT子程序当x=128时x=0,y=y 1
DJNZ R6,QXS1
RET
PUTCHARDOT: ;写显示
MOV R7,#64
PAC_PA:
CLR A
MOVC A,@ADPTR
CALL LCDWRITE
INC YPOS
INC DPTR
CLR A
MOVC A,@ADPTR
CALL LCDWRITE
DEC YPOS
INC DPTR
CALL CUSORNEXT
MOV A,XPOS
JNZ PAC_LAX
INC YPOS
PAC_LAX:
DJNZ R7,PAC_PA
RET
LCDFILL: ;LCD整屏显示A的内容
MOV R7,A
MOV YPOS,#0
LFL_PB:MOV XPOS,#0
LFL_PA:MOV A,R7
CALL LCDWRITE ;定位并写数据
CALL CUSORNEXT
MOV A,XPOS
JNZ LFL_PA ;XPOS<128则循环(128列)
MOV A,YPOS
JNZ LFL_PB ;YPOS<8则循环(8页)
RET
LCDWRITE: ;定位并写数据子程序
CALL LCDPOS ;内部写数指针定位
CALL LCDWD ;写数据
RET
CUSORNEXT:
ANL YPOS,#7
INC XPOS
MOV A,XPOS
JNB ACC.7,CNT_LAX
MOV XPOS,#0
INC YPOS
MOV A,YPOS
ANL A,#0F8H
JZ CNT_LAX
MOV YPOS,#0
CNT_LAX:
RET
LCDPOS: ;内部写数指针定位子程序
PUSH ACC
MOV A,XPOS
JB ACC.6,LPS_LAY
MOV A,YPOS ;XPOS列方向小于64则对CS1操作
ANL A,#07H
ADD A,#0B8H
CALL LCDWC1 ;设页码
MOV A,XPOS
ANL A,#3FH
ORL A,#40H
CALL LCDWC1 ;设列码
JMP LPS_LAX
LPS_LAY:MOV A,YPOS ;XPOS列方向大于等于64则对CS2操作
ANL A,#07H
ADD A,#0B8H
CALL LCDWC2 ;设页码
MOV A,XPOS
ANL A,#3FH
ORL A,#40H
CALL LCDWC2 ;设列码
LPS_LAX:POP ACC
RET
LCDWD: ;送数据子程序
MOV B,A
MOV A,XPOS
JB ACC.6,LWD_LAY
MOV A,B ;XPOS列方向小于64则对CS1操作
CALL LCDWD1
JMP LWD_LAX
LWD_LAY:MOV A,B ;XPOS列方向大于等于64则对CS2操作
CALL LCDWD2
LWD_LAX:
RET
LCDRESET: ;LCD控制器复位
MOV A,#3FH ;打开LCD显示
CALL LCDWC1
CALL LCDWC2
MOV A,#0C0H ;设显示起始行
CALL LCDWC1
CALL LCDWC2
RET
LCDWC1: ;送片1控制字子程序
CALL WAITIDLE1
MOV P1,A
CLR RSPIN ;RS=0 RW=0 CS1=1 E=高脉冲
CLR RWPIN
SETB CS1PIN
SETB EPIN
NOP
CLR EPIN
CLR CS1PIN
RET
LCDWC2: ;送片2控制字子程序
CALL WAITIDLE2
MOV P1,A
CLR RSPIN ;RS=0 RW=0 CS2=1 E=高脉冲
CLR RWPIN
SETB CS2PIN
SETB EPIN
NOP
CLR EPIN
CLR CS2PIN
RET
LCDWD1: ;片1写数据子程序
CALL WAITIDLE1
MOV P1,A
SETB RSPIN ;RS=1 RW=0 CS1=1 E=高脉冲
CLR RWPIN
SETB CS1PIN
SETB EPIN
NOP
CLR EPIN
CLR CS1PIN
RET
LCDWD2: ;片2写数据子程序
CALL WAITIDLE2
MOV P1,A
SETB RSPIN ;RS=1 RW=0 CS2=1 E=高脉冲
CLR RWPIN
SETB CS2PIN
SETB EPIN
NOP
CLR EPIN
CLR CS2PIN
RET
WAITIDLE1:
MOV P1,#0FFH
CLR RSPIN ;RS=0 RW=1 CS1=1 E=高电平
SETB RWPIN
SETB CS1PIN
SETB EPIN
WT1_PA: NOP
JB P1.7,WT1_PA
CLR EPIN
CLR CS1PIN
RET
WAITIDLE2:
CLR RSPIN ;RS=0 RW=1 CS2=1 E=高电平
SETB RWPIN
SETB CS2PIN
SETB EPIN
WT2_PA: NOP
JB P1.7,WT2_PA
CLR EPIN
CLR CS2PIN
RET
LCDRD1: ;片1读数据子程序
CALL WAITIDLE1
MOV P1,#0FFH
SETB RSPIN ;RS=1 RW=1 CS1=1 E=高电平
SETB RWPIN
SETB CS1PIN
SETB EPIN
MOV A,P1
CLR EPIN
CLR CS1PIN
RET
LCDRD2: ;片2读数据子程序
CALL WAITIDLE2
MOV P1,#0FFH
SETB RSPIN ;RS=1 RW=1 CS1=2 E=高电平
SETB RWPIN
SETB CS2PIN
SETB EPIN
MOV A,P1
CLR EPIN
CLR CS2PIN
RET
HZKDOT:
ORG 0800H
;(0)
DB0F0H,03H,0F8H,07H,0CH,0CH,0C4H,08H,0CH,0CH,0F8H,07H,0F0H,03H,00H,00H
;(1)
DB00H,00H,10H,08H,18H,08H,0FCH,0FH,0FCH,0FH,00H,08H,00H,08H,00H,00H
;(2)
DB08H,0EH,0CH,0FH,84H,09H,0C4H,08H,64H,08H,3CH,0CH,18H,0CH,00H,00H
;(3)
SZ3:DB08H,04H,0CH,0CH,44H,08H,44H,08H,44H,08H,0FCH,0FH,0B8H,07H,00H,00H
;(4)
sz4:DB0C0H,00H,0E0H,00H,0B0H,00H,98H,08H,0FCH,0FH,0FCH,0FH,80H,08H,00H,00H
;(5)
sz5:DB7CH,04H,7CH,0CH,44H,08H,44H,08H,44H,08H,0C4H,0FH,84H,07H,00H,00H
;(6)
DB0F0H,07H,0F8H,0FH,4CH,08H,44H,08H,44H,08H,0C0H,0FH,80H,07H,00H,00H
;(7)
DB0CH,00H,0CH,00H,04H,0FH,84H,0FH,0C4H,00H,7CH,00H,3CH,00H,00H,00H
;(8)
DB0B8H,07H,0FCH,0FH,44H,08H,44H,08H,44H,08H,0FCH,0FH,0B8H,07H,00H,00H
;(9)
DB38H,00H,7CH,08H,44H,08H,44H,08H,44H,0CH,0FCH,07H,0F8H,03H,00H,00H
;(A)
DB0E0H,0FH,0F0H,0FH,98H,00H,8CH,00H,98H,00H,0F0H,0FH,0E0H,0FH,00H,00H
;(B)
DB04H,08H,0FCH,0FH,0FCH,0FH,44H,08H,44H,08H,0FCH,0FH,0B8H,07H,00H,00H
;(C)
DB0F0H,03H,0F8H,07H,0CH,0CH,04H,08H,04H,08H,0CH,0CH,18H,06H,00H,00H
;(D)
DB04H,08H,0FCH,0FH,0FCH,0FH,04H,08H,0CH,0CH,0F8H,07H,0F0H,03H,00H,00H
;(E)
DB04H,08H,0FCH,0FH,0FCH,0FH,44H,08H,0E4H,08H,0CH,0CH,1CH,0EH,00H,00H
;(F)
DB04H,08H,0FCH,0FH,0FCH,0FH,44H,08H,0E4H,00H,0CH,00H,1CH,00H,00H,00H
XP:;(芯)
DB04H,08H,04H,07H,04H,00H,04H,3FH,1FH,40H,04H,40H,44H,40H,84H,40H,04H,43H,04H,40H,1FH,40H,04H,40H,04H,70H,06H,01H,04H,0EH,00H,00H
;(片)
DB00H,80H,00H,40H,0FEH,3FH,20H,01H,20H,01H,20H,01H,20H,01H,20H,01H,3FH,01H,20H,0FFH,20H,00H,20H,00H,20H,00H,30H,00H,20H,00H,00H,00H
ce:;(测)
DB10H,04H,22H,04H,6CH,0FEH,00H,01H,80H,40H,0FCH,27H,04H,10H,0F4H,0FH,04H,10H,0FEH,67H,04H,00H,0F8H,47H,00H,80H,0FEH,7FH,00H,00H,00H,00H
SJ:;(数据)
DB10H,02H,92H,82H,54H,4EH,30H,33H,0FFH,22H,50H,52H,94H,8EH,32H,40H
DB0D8H,23H,17H,14H,10H,08H,10H,16H,0F0H,61H,18H,0C0H,10H,40H,00H,00H
DB10H,02H,10H,42H,10H,81H,0FFH,7FH,90H,40H,50H,38H,0FEH,07H,92H,0FCH,92H,44H,92H,44H,0F2H,47H,92H,44H,92H,44H,0DFH,0FEH,82H,04H,00H,00H
PL:;(频)
DB40H,08H,7CH,87H,40H,40H,0FFH,2FH,48H,10H,6CH,0FH,4AH,80H,0F2H,8FH,12H,40H,1AH,20H,0D6H,1FH,12H,20H,12H,40H,0FBH,0CFH,12H,00H,00H,00H
;(率)
DB00H,08H,14H,09H,0A4H,08H,44H,08H,04H,09H,24H,09H,0B5H,09H,6EH,0FFH,24H,09H,94H,09H,04H,0BH,44H,08H,0A6H,08H,14H,0DH,00H,08H,00H,00H
MH:;(:)
DB00H,00H,00H,00H,00H,00H,00H,00H,80H,31H,0C0H,7BH,0C0H,7BH,80H,31H
DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
KG:;( )
DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
FS:;(0A20H)(发)(8008)
DB 00H,40H,10H,20H,18H,90H,16H,88H,10H,46H,90H,41H,0F0H,23H,9FH,14H,90H,08H,90H,14H,92H,22H,94H,21H,10H,40H,18H,0C0H,10H,40H,00H,00H
;(0A40H)(送)(8009)
DB 40H,00H,42H,40H,44H,20H,0CCH,1FH,80H,20H,88H,40H,89H,0A0H,8AH,90H,8CH,8CH,0F8H,83H,8CH,88H,8AH,90H,89H,0B0H,0C8H,0C0H,80H,40H,00H,00H
JIE:;(0A60H)(接)(800a)
DB 10H,02H,10H,42H,10H,81H,0FFH,7FH,90H,02H,54H,02H,44H,82H,54H,8AH,0E5H,57H,46H,22H,64H,32H,54H,4EH,46H,0C2H,44H,03H,00H,02H,00H,00H
;(0A80H)(收)(800b)
DB 00H,00H,0F8H,0FH,00H,04H,00H,02H,0FFH,0FFH,00H,80H,80H,80H,60H,40H,0DFH,21H,10H,16H,10H,08H,10H,16H,0F0H,61H,18H,0C0H,10H,40H,00H,00H
SINE:
DB 07FH 085H 08BH 092H 098H 09EH 0A4H 0AAH 0B0H 0B6H 0BBH0C1H 0C6H 0CBH 0D0H 0D5H
DB 0D9H 0DDH 0E2H 0E5H 0E9H 0ECH 0EFH 0F2H 0F5H 0F7H 0F9H0FBH 0FCH 0FDH 0FEH 0FEH
DB 0FEH 0FEH 0FEH 0FDH 0FCH 0FBH 0F9H 0F7H 0F5H 0F2H 0EFH0ECH 0E9H 0E5H 0E2H 0DDH
DB 0D9H 0D5H 0D0H 0CBH 0C6H 0C1H 0BBH 0B6H 0B0H 0AAH 0A4H09EH 098H 092H 08BH 085H
DB 07FH 079H 073H 06CH 066H 060H 05AH 054H 04EH 048H 043H03DH 038H 033H 02EH 029H
DB 025H 021H 01CH 019H 015H 012H 00FH 00CH 009H 007H 005H003H 002H 001H 000H 000H
DB 000H 000H 000H 001H 002H 003H 005H 007H 009H 00CH 00FH012H 015H 019H 01CH 021H
DB 025H 029H 02EH 033H 038H 03DH 043H 048H 04EH 054H 05AH060H 066H 06CH 073H 079H
END
|