📄 p12_4.asm
字号:
REST EQU P0.7
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
PIC1: DB 00H, 00H, 00H, 18H, 18H, 00H, 00H, 00H
PIC2: DB 00H, 00H, 3CH, 24H, 24H, 3CH, 00H, 00H
PIC3: DB 00H, 7EH, 42H, 42H, 42H, 42H, 7EH, 00H
PIC4: DB 0FFH,81H, 81H, 81H, 81H, 81H, 81H, 0FFH
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:MOV DPTR, #PIC1
ACALL D_PIC
MOV DPTR, #PIC2
ACALL D_PIC
MOV DPTR, #PIC3
ACALL D_PIC
MOV DPTR, #PIC4
ACALL D_PIC
MOV DPTR, #PIC3
ACALL D_PIC
MOV DPTR, #PIC2
ACALL D_PIC
AJMP DISPLAY
RET
D_PIC: MOV A, #10111100B ;设置页号
ACALL W_CMD
MOV A, #01010111B ;23列开始显示
ACALL W_CMD
MOV R4, #0
LOOP1: MOV A, R4
MOVC A, @A+DPTR
ACALL W_DATA
INC R4
CJNE R4, #8, LOOP1
;延迟一段时间
MOV R6, #0FFH
LOOP2: MOV R7, #07FH
LOOP3: DJNZ R7, LOOP3
DJNZ R6, 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 + -