| ;;;串口帶校驗(yàn);;; ;;at89c2051串口帶校驗(yàn)最高數(shù)率并行輸出數(shù)據(jù);; ORG 0000H AJMP MAIN ORG 0003H AJMP EX00 RETI ORG 000BH RETI ORG 0013H AJMP EX11 RETI ORG 001BH RETI ORG 0023H CLR TI JBC RI,ES1 RETI ES1: AJMP ESRD ORG 0030H MAIN: MOV SP,#10H MOV TMOD,#21H ;;MOV TH1,#0EFH;;;16MHZ/2450BANDU/S MOV TH1,#0F3H;;;12MHA/2400BANDU/S MOV TCON,#55H MOV SCON,#50H MOV IE,#94H MOV R2,#00H;;輸出到鎖存器的數(shù)據(jù);;; MOV 2AH,#00H;;總標(biāo)志位;; CLR P3.2;;;鎖存的初始腳;; SETB P3.5;;;進(jìn)入鎖存狀態(tài)時刻的指示;; MOV 30H,#00H;;;;進(jìn)入中斷次數(shù),,初始為00;; MOV 2DH,#00H ACALL CODENUMB;;;本機(jī)序號;;; MOV 40H,#12H LOOPMAIN:;;;;;;;;;;; JNB 50H,LOOP MOV R0,#3EH MOV A,@R0 CJNE A,#0FFH,JB1 SJMP LOOP JB1:MOV A,@R0;;;;執(zhí)行在這 MOV R2,A MOV A,@R0 CJNE A,#0FFH,JB2 SJMP LOOP JB2:;;;執(zhí)行在這 MOV R0,#3FH CLR 50H LOOP: MOV R1,#20 LOOP1: INC 70H CPL P3.7 ACALL DELAY DJNZ R1,LOOP1 NOP MOV PCON,#01H AJMP LOOPMAIN;;;;;;;;;;;;;;;;;;;;;;; EX11: CLR EA CLR EX1 INC R2 MOV P1,R2 SETB P3.2 CLR P3.2 CPL P3.5 MOV SBUF,R2 JNB TI,$ INC 30H SETB EX1 SETB EA RETI EX00: RETI ESRD: CLR ES MOV R0,#3FH MOV R3,#0H;;;;CS RD1: JNB RI,$ MOV @R0,SBUF CJNE @R0,#0FEH,RD2 CLR RI SJMP RD1 RD2: MOV @R0,SBUF MOV R6,SBUF MOV A,R3 ADD A,@R0 MOV R3,A CLR RI INC R6 DEC R0 RD3: JNB RI,$ MOV @R0,SBUF MOV A,R3 ADD A,@R0 MOV R3,A DEC R0 CLR RI DJNZ R6,RD3 INC R0 MOV A,@R0 ADD A,@R0 CJNE A,3,ERR1 SETB 50H MOV SBUF,#43H NOP JNB TI,$ NOP SJMP ES2 ERR1: MOV R0,#3FH ES3:MOV @R0,#0FFH DEC R0 CJNE R0,#31H,ES3 MOV R0,#3FH NOP ES2: SETB ES RETI CODENUMB: CLR ES MOV SBUF,#0FEH NOP JNB TI,$ CLR TI NOP MOV SBUF,#06H;;CCL NOP JNB TI,$ CLR TI NOP MOV SBUF,#01H;;MATCHINE CODE NOP JNB TI,$ CLR TI NOP NOP MOV SBUF,#00H NOP JNB TI,$ CLR TI NOP NOP MOV SBUF,#00H NOP JNB TI,$ CLR TI NOP NOP MOV SBUF,#00H NOP JNB TI,$ CLR TI NOP NOP MOV SBUF,#00H NOP JNB TI,$ CLR TI NOP NOP MOV SBUF,#00H NOP JNB TI,$ CLR TI NOP NOP MOV SBUF,#07H;;;CS NOP JNB TI,$ CLR TI NOP SETB ES RET DELAY: MOV R5,#200 DD1:MOV R4,#20 DJNZ R4,$ DJNZ R5,DD1 RET END |