📄 lcdc3a.a51
字号:
PUBLIC _wrcom
wrcomp SEGMENT CODE
RSEG wrcomP
_wrcom: SETB P1.5 ;/CS=1
NOP
CALL DLY5
CLR P1.5 ;/CS=0
CALL DLY5
CLR P1.3 ;/WR=0
CALL DLY5
NOP
SETB P1.2 ;D=1 (100)
CALL DLY5
NOP
SETB P1.3 ;/WR=1
CALL DLY5
NOP
CLR P1.3 ;/WR=0
CALL DLY5
NOP
CLR P1.2 ;D=0
CALL DLY5
NOP
SETB P1.3 ;/WR=1
CALL DLY5
NOP
CLR P1.3 ;/WR=0
CALL DLY5
NOP
CLR P1.2 ;D=0
CALL DLY5
NOP
SETB P1.3 ;/WR=1
CALL DLY5
NOP
MOV R5,#9 ;LOOP=DATA 8 BIT +1X
CLR C
LOOPWR: NOP
CALL DLY5
CLR P1.3
CALL DLY5
MOV A,r7
RLC A
MOV r7,A
JC WR1
CLR P1.2 ;DATA=0
CALL DLY5
JMP WRR
WR1: SETB P1.2 ;DATA=1
CALL DLY5
WRR: SETB P1.3
CALL DLY5
DJNZ R5,LOOPWR
RET
WRDD: SETB P1.5 ;/CS=1
CALL DLY5
NOP
CLR P1.5 ;/CS=0
CALL DLY5
CLR P1.3 ;/WR=0
CALL DLY5
SETB P1.2 ;D=1 (101)
CALL DLY5
SETB P1.3 ;/WR=1
CALL DLY5
CLR P1.3 ;/WR=0
CALL DLY5
CLR P1.2 ;D=0
CALL DLY5
SETB P1.3 ;/WR=1
CALL DLY5
CLR P1.3 ;/WR=0
CALL DLY5
SETB P1.2 ;D=1
CALL DLY5
SETB P1.3 ;/WR=1
CALL DLY5
MOV R4,#6
mov a,r7
mov r3,a
; MOV 22H,r7
ADDWR2: NOP
CALL DLY5
CLR P1.3
CALL DLY5
MOV A,r3
RLC A
MOV r3,A
JC WR11
CLR P1.2 ;DATA=0
CALL DLY5
JMP WRR1
WR11: NOP
CALL DLY5
SETB P1.2 ;DATA=1
CALL DLY5
WRR1: NOP
CALL DLY5
SETB P1.3
CALL DLY5
DJNZ R4,ADDWR2
RET
PUBLIC _WRDAc
WRDAcP SEGMENT CODE
RSEG WRDAcP
_WRDAc: MOV R5,#4 ;LOOP=DATA 4 BIT
ADDWR3s: NOP
CALL DLY5
CLR P1.3
CALL DLY5
MOV A,r7
RRC A
MOV r7,A
JC WR12s
CLR P1.2 ;DATA=0
CALL DLY5
JMP WRR2s
WR12s: NOP
CALL DLY5
SETB P1.2 ;DATA=1
CALL DLY5
WRR2s: NOP
CALL DLY5
SETB P1.3
CALL DLY5
DJNZ R5,ADDWR3s
RET
WRDA: MOV R4,#4 ;LOOP=DATA 4 BIT
ADDWR3: NOP
CALL DLY5
CLR P1.3
CALL DLY5
MOV A,r3
RRC A
MOV r3,A
JC WR12
CLR P1.2 ;DATA=0
CALL DLY5
JMP WRR2
WR12: NOP
CALL DLY5
SETB P1.2 ;DATA=1
CALL DLY5
WRR2: NOP
CALL DLY5
SETB P1.3
CALL DLY5
DJNZ R4,ADDWR3
RET
;************************************************************
;LOOP WRDA SUB
PUBLIC _walp
walpp SEGMENT CODE
RSEG walpP
_WALP:
ST1: mov r6,0
;MOV r6,r7
MOV A,r7
ADD A,#00000100B
MOV r7,A
;MOV r7,A
inc r6
CALL WRDD
MOV a,r5
mov r3,a
CALL WRDA
cjne R6,#31,st1
RET
PUBLIC _WRDDc
WRDDcP SEGMENT CODE
RSEG WRDDcP
_WRDDc: SETB P1.5 ;/CS=1
CALL DLY5
NOP
CLR P1.5 ;/CS=0
CALL DLY5
CLR P1.3 ;/WR=0
CALL DLY5
SETB P1.2 ;D=1 (101)
CALL DLY5
SETB P1.3 ;/WR=1
CALL DLY5
CLR P1.3 ;/WR=0
CALL DLY5
CLR P1.2 ;D=0
CALL DLY5
SETB P1.3 ;/WR=1
CALL DLY5
CLR P1.3 ;/WR=0
CALL DLY5
SETB P1.2 ;D=1
CALL DLY5
SETB P1.3 ;/WR=1
CALL DLY5
MOV R5,#6
; MOV 22H,r7
ADDWR2c: NOP
CALL DLY5
CLR P1.3
CALL DLY5
MOV A,r7
RLC A
MOV r7,A
JC WR11c
CLR P1.2 ;DATA=0
CALL DLY5
JMP WRR1c
WR11c: NOP
CALL DLY5
SETB P1.2 ;DATA=1
CALL DLY5
WRR1c: NOP
CALL DLY5
SETB P1.3
CALL DLY5
DJNZ R5,ADDWR2c
RET
PUBLIC _wr123
wr123p SEGMENT CODE
RSEG wr123P
_wr123: nop
SETB P1.5 ;/CS=1
CALL DLY5
NOP
CLR P1.5 ;/CS=0
CALL DLY5
CLR P1.3 ;/WR=0
CALL DLY5
SETB P1.2 ;D=1 (101)
CALL DLY5
SETB P1.3 ;/WR=1
CALL DLY5
CLR P1.3 ;/WR=0
CALL DLY5
CLR P1.2 ;D=0
CALL DLY5
SETB P1.3 ;/WR=1
CALL DLY5
CLR P1.3 ;/WR=0
CALL DLY5
SETB P1.2 ;D=1
CALL DLY5
SETB P1.3 ;/WR=1
CALL DLY5
MOV R2,#6
LOOP: CLR P1.3 ;/WR=0
CALL DLY5
CLR P1.2 ;D=0
CALL DLY5
SETB P1.3 ;/WR=1
CALL DLY5
DJNZ R2,LOOP
MOV R3,#8
MOV DPTR,#TABDA
LOOP1: CLR A
MOVC A,@A+DPTR
MOV 25H,A
CALL WRDA
INC DPTR
DJNZ R3,LOOP1
RET
TABDA: DB 08H,05H,0DH,0BH,09H,0FH,0AH,07H;
DLY5: NOP
NOP
NOP
NOP
RET
DLY25M: MOV R1,#250 ;12M/2.5MS
DLOP: CALL DLY5
CALL DLY5
DJNZ R1,DLOP
RET
DLY1S: MOV R0,#20 ;1S
DLOP1: CALL DLY25M
CALL DLY25M
DJNZ R0,DLOP1
RET
PUBLIC _delay500
delay500p SEGMENT CODE
RSEG delay500p
_delay500: MOV R0,#5
DLOP11: CALL DLY25M
CALL DLY25M
DJNZ R0,DLOP11
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -