📄 p12_3.asm
字号:
E EQU P3.0
RW EQU P3.1
RS EQU P3.2
CS1 EQU P3.6
CS2 EQU P3.7
LCD EQU P2
ORG 0000H
LJMP MAIN
ORG 2000H
;-- 文字: 汉 -- 宽x高=16x16 --
WORD1: DB 010H,060H,001H,086H,060H,004H,01CH,0E4H,004H,004H,004H,0E4H,01CH,004H,000H,000H
DB 004H,004H,07EH,001H,040H,020H,020H,010H,00BH,004H,00BH,010H,030H,060H,020H,000H
;-- 文字: 字 -- 宽x高=16x16 --
WORD2: DB 000H,010H,00CH,024H,024H,024H,025H,026H,0A4H,064H,024H,004H,014H,00CH,000H,000H
DB 000H,002H,002H,002H,002H,042H,082H,07FH,002H,002H,002H,002H,002H,002H,002H,000H
WAIT: PUSH 30H
MOV 30H, A
MOV LCD, 0FFH ;空读操作
SETB RW
CLR RS
SETB E
MOV A, LCD
CLR E
MOV LCD, 0FFH ;第2次读
CLR RS
SETB RW
SETB E
MOV A, LCD
CLR E
JB ACC.7, WAIT
MOV A, 30H
POP 30H
RET
W_CMD: ACALL WAIT
MOV LCD, A
CLR RS
CLR RW
SETB E
NOP
CLR E
RET
W_DATA: ACALL WAIT
MOV LCD, A
SETB RS
CLR RW
SETB E
NOP
CLR E
RET
CLEAR: MOV R0, #0H
CLR1: MOV A, R0 ;设置页号
ORL A, #10111000B
ACALL W_CMD
MOV R1, #0H
MOV A,#01000000B
ACALL W_CMD
CLR2: MOV A, #0H
ACALL W_DATA
INC R1
CJNE R1, #64, CLR2
INC R0
CJNE R0, #8, CLR1
RET
DISPLAY:CLR CS2
SETB CS1
MOV DPTR, #WORD1
ACALL D_WORD
CLR CS1
SETB CS2
MOV DPTR, #WORD2
ACALL D_WORD
D_WORD: MOV A, #10111011B ;设置页号
ACALL W_CMD
MOV A, #01001111B ;设置起始列号
ACALL W_CMD
MOV R7, #0
LOOP1: MOV A, R7
MOVC A, @A+DPTR
ACALL W_DATA
INC R7
CJNE R7, #16, LOOP1
MOV A, #10111100B ;设置页号
ACALL W_CMD
MOV A, #01001111B ;设置起始列号
ACALL W_CMD
MOV R7, #0
LOOP2: MOV A, R7
ADD A, #16
MOVC A, @A+DPTR
ACALL W_DATA
INC R7
CJNE R7, #16, LOOP2
RET
MAIN: CLR CS1
CLR CS2
MOV A, #00111111B ;打开显示
ACALL W_CMD
ACALL CLEAR
ACALL DISPLAY
LOOP: AJMP LOOP
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -