RS EQU P1.0
RW EQU P1.1
E EQU P1.2
LCD EQU P2
BF EQU P2.7
ORG 0000H
AJMP 0030H
ORG 0023H
AJMP COM_INT
ORG 0030H
MOV SCON,#50H;
MOV PCON,#0
MOV TMOD,#20H
MOV TH1,#0FDH;
MOV TL1,#0FDH
SETB TR1
SETB EA
SETB ES
MOV IE,#90H;
MOV R0,#60H
MAIN: MOV A,#38H
ACALL W_CMD
MOV A,#08H
ACALL W_CMD
MOV A,#01H
ACALL W_CMD
MOV A,#06H
ACALL W_CMD
MOV A,#0CH
ACALL W_CMD
SJMP $
COM_INT: NOP
REC: JNB RI,$
CLR RI
MOV A,SBUF
CJNE A,#24H,REC;
JNB RI,$
CLR RI
MOV A,SBUF
CJNE A,#47H,REC; G
JNB RI,$
CLR RI
MOV A,SBUF
CJNE A,#4EH,REC; P
JNB RI,$
CLR RI
MOV A,SBUF
CJNE A,#47H,REC; G
JNB RI,$
CLR RI
MOV A,SBUF
CJNE A,#47H,REC; G
JNB RI,$
CLR RI
MOV A,SBUF
CJNE A,#41H,REC; A
DATE: JNB RI,$
CLR RI
MOV A,SBUF
MOV @R0,A
INC R0
CJNE A,#2AH,DATE
MOV A,#80H
ACALL W_CMD
MOV R0,#61H
ACALL DOUHAO
INC R0
LOOP1: MOV A,@R0
ACALL W_DATE
INC R0
MOV A,@R0
CJNE A,#2CH,LOOP1
MOV A,#00H
ACALL W_CMD
MOV A,#0CH
ACALL W_CMD
INC R0
INC R0
INC R0
LOOP2: MOV A,@R0
ACALL W_DATE
INC R0
CJNE @R0,#2CH,LOOP2
RETI
W_CMD: MOV P2,A
CLR RS
CLR RW
SETB E
NOP
CLR E
RET
W_DATE: ACALL WAIT
MOV P2,A
SETB RS
CLR RW
SETB E
NOP
CLR E
RET
WAIT: MOV LCD,#0FFH
CLR RS
SETB RW
CLR E
NOP
SETB E
JB BF,WAIT
RET
DOUHAO: INC R0
CJNE @R0,#2CH,DOUHAO
RET
DEL: MOV R7,#20
D1: MOV R6,#100
D2: DJNZ R6,D2
DJNZ R7,D1
END |