📄 lcd.asm
字号:
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 0H
AJMP START
ORG 30H
START: MOV 20H,#3EH ;关显示设置
ACALL WI
INC 20H ;开显示设置
ACALL WI
MOV 20H,#0C0H ;设置显示起始行为第一行
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 页面地址暂存器设置
ACALL HZ_3
MOV ZC,#1
MOV A,#0B9H
HZ_3: ADD A,X ;
MOV 20H,A
ACALL WI
MOV A,Y
SWAP A
ADD A,#40H ;设置列计数器Y
MOV 20H,A
ACALL WI
HZ_0: MOV R2,#16 ;取汉字字模
HZ_2: MOV A,ZC
MOVC A,@A+DPTR
MOV 20H,A
MOV A,ZC
ADD A,#2
MOV ZC,A
JB LFT,HZ_5
ACALL WD1
SJMP HZ_6
HZ_5: ACALL WD2
HZ_6: DJNZ R2,HZ_2
CLR E ;使能信号E=0
CLR CS1
CLR CS2
RET
RDY: CLR DI ;读状态标志
CLR RW
SETB E
MOV A,P0 ;读LCD 状态
CLR E
JB ACC.7,RDY ;检测BUSY 位
RET
WI: SETB CS1 ;写控制指令
SETB CS2
LCALL RDY ;检测BUSY位
CLR DI
CLR RW
MOV P0,20H ;向LCD写数据
SETB E
CLR CS2
RET
WD1: SETB CS1 ;写显示数据(左)
LCALL RDY ;检测BUSY 位
SETB DI
CLR RW
MOV P0,20H ;输出数据
SETB E
CLR E
CLR CS1
RET
WD2: SETB CS2 ;写显示数据(右)
LCALL RDY
SETB DI
CLR RW
MOV P0,20H ;输出数据
SETB E ;使能信号E=1
CLR E ;使能信号E=0
LCALL RDY ;检测BUSY 位
CLR DI
CLR RW
MOV P0,20H ;向LCD 写数据
SETB E ;使能信号E=1
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 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
ZI: 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
GONG: 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
SI: 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -