就是在最右边显示一个0,e连片p2.7 Rs连片2.6 r/w 连片片p2.5.困扰好几天了。
RS BIT P2.6
RW BIT P2.5
E BIT P2.7
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV SP,#30H
LCALL INIT
LCALL FIRST
MOV DPTR,#TAB1
LCALL DISPLAY
SJMP $
INIT:LCALL DEL15
MOV A,#38H
CLR RS
CLR RW
CLR E
MOV P0,A
NOP
NOP
NOP
NOP
SETB E
NOP
NOP
NOP
NOP
CLR E
LCALL DEL5
MOV A,#38H
CLR RS
CLR RW
CLR E
MOV P0,A
NOP
NOP
NOP
NOP
SETB E
NOP
NOP
NOP
NOP
CLR E
LCALL DEL5
MOV A,#38H
CLR RS
CLR RW
CLR E
MOV P0,A
NOP
NOP
NOP
NOP
SETB E
NOP
NOP
NOP
NOP
CLR E
LCALL DEL5
MOV A,#38H
ACALL WRC
LCALL DEL5
MOV A,#08H
ACALL WRC
LCALL DEL5
MOV A,#01H
ACALL WRC
LCALL DEL5
MOV A,#06H
ACALL WRC
LCALL DEL5
MOV A,#0CH
ACALL WRC
RET
WRC:ACALL BUSY
CLR RS
CLR RW
CLR E
MOV P0,A
NOP
NOP
NOP
NOP
SETB E
NOP
NOP
NOP
NOP
CLR E
RET
BUSY:PUSH ACC
W: CLR RS
SETB RW
CLR E
SETB E
MOV A,P0
JB ACC.7,W
CLR E
POP ACC
RET
FIRST:
MOV A,#80H
LCALL WRC
RET
DISPLAY: MOV R1,#00H
NEXT: MOV A,R1
MOVC A,@A+DPTR
CJNE A,#21H,DSL
RET
DSL:LCALL WRTD
INC R1
SJMP NEXT
WRTD:ACALL BUSY
SETB RS
CLR RW
CLR E
MOV P0,A
NOP
NOP
NOP
NOP
SETB E
NOP
NOP
NOP
NOP
CLR E
LCALL DEL5
RET
DEL15: MOV R7,#0FH
L2: MOV R6,#0FAH
L1: NOP
NOP
DJNZ R6,L1
DJNZ R7,L2
RET
DEL5: MOV R5,#05H
N2: MOV R4,0FAH
N1: NOP
NOP
DJNZ R4,N1
DJNZ R5,N2
RET
TAB1:DB*B*,*!*
END
RS BIT P2.6
RW BIT P2.5
E BIT P2.7
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV SP,#30H
LCALL INIT
LCALL FIRST
MOV DPTR,#TAB1
LCALL DISPLAY
SJMP $
INIT:LCALL DEL15
MOV A,#38H
CLR RS
CLR RW
CLR E
MOV P0,A
NOP
NOP
NOP
NOP
SETB E
NOP
NOP
NOP
NOP
CLR E
LCALL DEL5
MOV A,#38H
CLR RS
CLR RW
CLR E
MOV P0,A
NOP
NOP
NOP
NOP
SETB E
NOP
NOP
NOP
NOP
CLR E
LCALL DEL5
MOV A,#38H
CLR RS
CLR RW
CLR E
MOV P0,A
NOP
NOP
NOP
NOP
SETB E
NOP
NOP
NOP
NOP
CLR E
LCALL DEL5
MOV A,#38H
ACALL WRC
LCALL DEL5
MOV A,#08H
ACALL WRC
LCALL DEL5
MOV A,#01H
ACALL WRC
LCALL DEL5
MOV A,#06H
ACALL WRC
LCALL DEL5
MOV A,#0CH
ACALL WRC
RET
WRC:ACALL BUSY
CLR RS
CLR RW
CLR E
MOV P0,A
NOP
NOP
NOP
NOP
SETB E
NOP
NOP
NOP
NOP
CLR E
RET
BUSY:PUSH ACC
W: CLR RS
SETB RW
CLR E
SETB E
MOV A,P0
JB ACC.7,W
CLR E
POP ACC
RET
FIRST:
MOV A,#80H
LCALL WRC
RET
DISPLAY: MOV R1,#00H
NEXT: MOV A,R1
MOVC A,@A+DPTR
CJNE A,#21H,DSL
RET
DSL:LCALL WRTD
INC R1
SJMP NEXT
WRTD:ACALL BUSY
SETB RS
CLR RW
CLR E
MOV P0,A
NOP
NOP
NOP
NOP
SETB E
NOP
NOP
NOP
NOP
CLR E
LCALL DEL5
RET
DEL15: MOV R7,#0FH
L2: MOV R6,#0FAH
L1: NOP
NOP
DJNZ R6,L1
DJNZ R7,L2
RET
DEL5: MOV R5,#05H
N2: MOV R4,0FAH
N1: NOP
NOP
DJNZ R4,N1
DJNZ R5,N2
RET
TAB1:DB*B*,*!*
END
