ORG 0000H
BUFS EQU 30H
BUFR EQU 50H
NUMB EQU 10H
SUMS EQU 7EH
SUMR EQU 7FH
MAIN:
LCALL InitArray
LCALL DELAY
LCALL InitUart
MAIN2:
JB P1.0,SEND
LCALL RECEIVE
HERE:
SJMP HERE
SEND:
LCALL SEND1
HERE1:
SJMP HERE1
InitArray:
MOV R2,#NUMB
MOV R0,#BUFS
MOV A,#00H
LOOP:
MOV @R0,A
INC R0
INC A
DJNZ R2,LOOP
RET
InitUart:
MOV SCON,#50H
MOV TMOD,#20H
MOV PCON,#00H
MOV TH1,#0FDH
MOV TCON,#40H
RET
SEND1:
MOV P2,#0AAH
MOV SBUF,#0AAH
LOOP1:
JNB TI,LOOP1
CLR TI
LOOP2:
JNB RI,LOOP2
CLR RI
MOV A,SBUF
CJNE A,#0BBH,LOOP2
MOV P2,#0BBH
LCALL DELAY
SEND2:
MOV SUMS,#00H
MOV R0,#BUFS
MOV R2,#NUMB
LOOP3:
MOV A,@R0
MOV P2,A
LCALL DELAY
MOV SBUF,A
LOOP4:
JNB TI,LOOP4
CLR TI
ADD A,SUMS
MOV SUMS,A
INC R0;
DJNZ R2,LOOP3
LOOP5:
JB P1.7,LOOP6
ADD A,#01H
MOV SUMS,A
LOOP6:
MOV P2,A
LCALL DELAY
MOV SBUF,A
LOOP7:
JNB TI,LOOP7
CLR TI
LOOP8:
JNB RI,LOOP8
CLR RI
MOV P2,SBUF
LCALL DELAY
MOV A,SBUF
CJNE A,#00H,LOOP9
ENDS:
RET
LOOP9:
LJMP SEND2
RECEIVE:
JNB RI,RECEIVE
CLR RI
MOV P2,SBUF
LCALL DELAY
MOV A,SBUF
CJNE A,#0AAH,RECEIVE
MOV P2,#0BBH
LCALL DELAY
MOV SBUF,#0BBH
LOOP11:
JNB TI,LOOP11
CLR TI;
LOOP12:
MOV SUMR,#00H
MOV R1,#BUFR
MOV R3,#NUMB
LOOP13:
JNB RI,LOOP13
CLR RI
MOV P2,SBUF
LCALL DELAY
MOV A,SBUF
MOV @R1,A
ADD A,SUMR
MOV SUMR,A
INC R1
DJNZ R3,LOOP13
MOV P2,SUMR
LOOP14:
JNB RI,LOOP14
CLR RI
MOV P2,SBUF
LCALL DELAY
MOV A,SBUF
CJNE A,SUMR,LOOP16
MOV P2,#00H
LCALL DELAY
MOV SBUF,#00H
LOOP15:
JNB TI,LOOP15
CLR TI;
RET
LOOP16:
MOV P2,#0FFH
LCALL DELAY
MOV SBUF,#0FFH
LOOP17:
JNB TI,LOOP17;
CLR TI
LJMP LOOP12
DELAY:
MOV R7,#04H
DL:
MOV R6,#0FFH
DL1:
MOV R5,#0FFH
DL5:
DJNZ R5,DL5
DJNZ R6,DL1
DJNZ R7,DL
RET
END
|