LCD GDM
12864A 是带显示存储器的图形液晶显示列驱动控制器。它的特点是内置64×64 位的显示存储器,显示屏上各像素点的显示状态与显示存储器的各位数据—一对应,显示存储器的数据直接作为图形显示的驱动信号。显示数据为“1”,相应的像素点显示;显示数据为“0 “,相应的像素点就不显示。
本次实验主要是要了解一下在LCD上显示汉字的方法,实验板上的LCD屏幕的结构为128×64 位的显示存储器,由两片64×64位的存储器构成。其结构和行列划分如下图所示:
128X64LCD的结构
对于每一片64X64的LCD来说,在本实验中被划分成了8页和64列,列具有自动加一的功能,在每一次的读写数据后将列地址将自动加1,其具体的结构如下图所示,每片上可以显示16X16的汉字16个,每排显示4个,分四排显示。 《点击图片可看大图》
汉字的取模方式有很多种,如横向取模,纵向取模,汉字经过变换之后再取模等,不论那种取模方式,只要弄清楚汉字的取模方式,按取模方式来编写显示程序,这样就可以将汉字完好的显示出来。
附:LCD显示源程序:
;端口定义
CS1 EQU P2.3H
CS2 EQU P2.4H
DI EQU P2.2H
RW EQU P2.1H
E EQU P2.0H
X EQU 20H
Y EQU 21H
ZC EQU 22H
LFT EQU 7FH
;程序入口
ORG 00H
AJMP START
ORG 30H
START: MOV 20H,#3EH ;关显示设置
ACALL WI ;写控制指令
INC 20H ;开显示设置
ACALL WI ;
MOV 20H,#0C0H ;设置显示起始行为{dy}行
ACALL WI ;
MOV X,#0 ;设置X为第1页
MOV Y,#0 ;列计数器Y=0
CLR LFT ;LCD 屏幕(左)
MOV DPTR,#HANG ;杭
ACALL HZ_1 ;调用显示汉字子程序
MOV Y,#1 ;设置列
MOV DPTR,#ZHOU ;州
ACALL HZ_1 ;
MOV Y,#2 ;
MOV DPTR,#KANG ;康
ACALL HZ_1 ;
MOV Y,#3 ;
MOV DPTR,#XIN ;芯
ACALL HZ_1 ;
MOV Y,#0 ;列计数器Y=0
SETB LFT ;LCD 屏幕(右)
MOV DPTR,#DIAN ;电
ACALL HZ_1 ;
MOV Y,#1 ;
MOV DPTR,#ZI ;子
ACALL HZ_1 ;
MOV Y,#2 ;
MOV DPTR,#GONG ;公
ACALL HZ_1 ;
MOV Y,#3 ;
MOV DPTR,#SI ;司
ACALL HZ_1 ;
SJMP $ ;程序结束
;以下程序显示一个汉字
HZ_1: MOV ZC,#0 ;先读偶地址
MOV A,#0B8H ;X addr 页面地址暂存器设置,为页面0
ACALL HZ_3 ;跳转至HZ_3
MOV ZC,#1 ;再读奇地址
MOV A,#0B9H ;X addr 页面地址暂存器设置,为页面1
HZ_3: ADD A,X ; ;调整页面
MOV 20H,A ;
ACALL WI ;
MOV A,Y ;调整列地址
SWAP A ;累加器高低四位互换
ADD A,#40H ;设置列计数器Y,DB6必须为1
MOV 20H,A
ACALL WI ;
HZ_0: MOV R2,#16 ;取汉字字模,R2为模16的计数器
HZ_2: MOV A,ZC ;
MOVC A,@A+DPTR ;
MOV 20H,A ;
MOV A,ZC ;ZC+2-->ZC
ADD A,#2 ;
MOV ZC,A ;
JB LFT,HZ_5 ;判断是写左还是右LCD
ACALL WD1 ;
SJMP HZ_6 ;
HZ_5: ACALL WD2 ;
HZ_6: DJNZ R2,HZ_2 ;R2-1!=0,继续读字库,否则返回
RET ;
;检测是否空闲
RDY: CLR DI ;0 1
SETB RW ;
SETB E ;
MOV A, P0 ;读LCD 状态
CLR E ;
JB ACC.7,RDY ;检测BUSY 位
RET ;
;写控制指令
WI: SETB CS1 ; 1 1
SETB CS2 ;
LCALL RDY ;检测BUSY 位
CLR DI ;0 0
CLR RW ;
MOV P0,20H ;向LCD 写数据
SETB E ;使能信号E=1
CLR E ;使能信号E=0
CLR CS1 ;
CLR CS2 ;
RET ;
;写显示数据(左)
WD1: SETB CS1 ;
LCALL RDY ;检测BUSY 位
SETB DI ; 1 0
CLR RW ;
MOV P0,20H ; 输出数据
SETB E ;
CLR E ;
CLR CS1 ;
RET ;
;写显示数据(右)
WD2: SETB CS2 ;
LCALL RDY ;检测BUSY 位
SETB DI ;
CLR RW ;
MOV P0,20H ;输出数据
SETB E ;使能信号E=1
CLR E ;使能信号E=0
CLR CS2 ;
RET ;
;汉字点阵“杭州康芯电子有限公司”
HANG: DB 08H,04H,10H,03H,0D0H,00H,0FFH,0FFH
DB 90H,80H,10H,41H,08H,20H,0C8H,1FH
DB 49H,00H,4EH,00H,48H,00H,0E8H,3FH
DB 4CH,40H,08H,40H,00H,70H,00H,00H
ZHOU: DB 80H,00H,70H,40H,00H,30H,0FFH,0FH
DB 00H,00H,10H,00H,60H,00H,00H,00H
DB 0FEH,3FH,00H,00H,10H,00H,60H,00H
DB 00H,00H,0FFH,0FFH,00H,00H,00H,00H
KANG: DB 00H,40H,00H,30H,0FCH,0FH,44H,40H
DB 54H,23H,54H,15H,54H,49H,55H,18H
DB 0FEH,7FH,54H,05H,54H,09H,54H,11H
DB 0F4H,29H,46H,64H,44H,20H,00H,00H
XIN: DB 04H,08H,04H,07H,04H,00H,04H,3FH
DB 1FH,40H,04H,40H,44H,40H,84H,40H
DB 04H,43H,04H,40H,1FH,40H,04H,40H
DB 04H,70H,06H,01H,04H,0EH,00H,00H
DIAN: DB 00H,00H,0F8H,07H,48H,02H,48H,02H
DB 48H,02H,48H,02H,0FFH,3FH,48H,42H
DB 48H,42H,48H,42H,48H,42H,0FCH,47H
DB 08H,40H,00H,70H,00H,00H,00H,00H
ZI: DB 80H,00H,80H,00H,82H,00H,82H,00H
DB 82H,00H,82H,40H,82H,80H,0E2H,7FH
DB 0A2H,00H,92H,00H,8AH,00H,86H,00H
DB 80H,00H,0C0H,00H,80H,00H,00H,00H
YOU: DB 04H,04H,04H,02H,04H,01H,84H,00H
DB 0E4H,0FFH,3CH,09H,27H,09H,24H,09H
DB 42H,09H,42H,49H,24H,89H,0F4H,7FH
DB 42H,00H,06H,00H,04H,00H,00H,00H
XIAN: DB 00H,00H,7FH,0FFH,02H,08H,22H,10H
DB 0DAH,08H,06H,07H,00H,00H,0FEH,0FFH
DB 92H,24H,92H,42H,92H,42H,92H,14H
DB 0FFH,22H,02H,61H,00H,20H,00H,00H
GONG: DB 00H,01H,00H,01H,80H,00H,40H,30H
DB 30H,28H,0CH,42H,00H,23H,0C0H,20H
DB 06H,20H,18H,28H,20H,30H,40H,60H
DB 80H,00H,80H,01H,80H,00H,00H,00H
SI: DB 10H,00H,10H,00H,92H,3FH,92H,10H
DB 92H,10H,92H,10H,92H,10H,92H,10H
DB 0D2H,3FH,9AH,00H,12H,40H,02H,80H
DB 0FFH,7FH,02H,00H,00H,00H,00H,00H
END
*********************************************************************** 完 **************************************************************************