?? 帶糾錯(cuò)碼的串行通信子程序.asm
字號(hào):
;功能:發(fā)送方將數(shù)據(jù)連發(fā)三此,接受方按位進(jìn)行最大概率糾錯(cuò)。程序返回時(shí),若標(biāo)志位ERR返回為1,則表示
;通信失敗;否則。接收結(jié)果放在A寄存器中。
;程序清單:
JERR_COM:CLR ERR ;清除錯(cuò)誤標(biāo)志
MOV R6,#00H ;查詢串行接受標(biāo)志
RCH3:JB RI,RCH0
DJNZ R6,RCH3
SETB ERR
SJMP RTEXT
RCH0:CLR RI
MOV 28H,SBUF
MOV R6,#00H
RCH1:JB RI,RCH4
DJNZ R6,RCH1
SETB ERR
SJMP RTEXT
RCH4:CLR RI
MOV A,SBUF
MOV R6,#00H
RCH2:JB RI,RCH5
DJNZ R6,RCH2
SETB ERR
SJMP RTEXT
RCH5:CLR RI
MOV B,SBUF
LCALL BITCH
RTEXT:RET
;串行發(fā)送子程序
DO:CLR TI
MOV SBUF,A
DO0:JNB TI ,DO0
CLR TI
LCALL C_DELAY
MOV SBUF,A
DO1:JNB TI,DO1
CLR TI
LCALL C_DELAY
MOV SBUF,A
DO2:JNB TI ,DO2
CLR TI
LCALL C_DELAY
RET
;按照最大概率確定每一位子程序
BITCH:MOV C,40H
ANL C,ACC.0
JC RTCH0
MOV C,40H
ANL C,B.0
JC RTCH0
MOV C,ACC.0
ANL C,B.0
CLR 40H
JNC RTCH1
RTCH0:SETB 40H
RTCH1:MOV C,41H
ANL C,ACC.1
JC RTCH2
MOV C,41H
ANL C,B.1
JC RTCH2
MOV C,ACC.1
ANL C,B.1
CLR 41H
JNC RTCH3
RTCH2:SETB 41H
RTCH3:MOV C,42H
ANL C,ACC.2
JC RTCH4
MOV C,42H
ANL C,B.2
JC RTCH4
MOV C,ACC.2
ANL C,B.2
CLR 42H
JNC RTCH5
RTCH4:SETB 42H
RTCH5:MOV C,43H
ANL C,ACC.3
JC RTCH6
MOV C,43H
ANL C,B.3
JC RTCH6
MOV C,ACC.3
ANL C,B.3
CLR 43H
JNC RTCH7
RTCH6:SETB 43H
RTCH7:MOV C,44H
ANL C,ACC.4
JC RTCH8
MOV C,44H
ANL C,B.4
JC RTCH8
MOV C,ACC.4
ANL C,B.4
CLR 44H
JNC RTCH9
RTCH8:SETB 44H
RTCH9:MOV C,45H
ANL C,ACC.5
JC RTCH10
MOV C,45H
ANL C,B.5
JC RTCH10
MOV C,ACC.5
ANL C,B.5
CLR 45H
JNC RTCH11
RTCH10:SETB 45H
RTCH11:MOV C,46H
ANL C,ACC.6
JC RTCH12
MOV C,46H
ANL C,B.6
JC RTCH12
MOV C,ACC.6
ANL C,B.6
CLR 46H
JNC RTCH13
RTCH12:SETB 46H
RTCH13:MOV C,47H
ANL C,ACC.7
JC RTCH14
MOV C,47H
ANL C,B.7
JC RTCH14
MOV C,ACC.7
ANL C,B.7
CLR 47H
JNC RTCH15
RTCH14:SETB 47H
RTCH15:MOV A,28H
RET
C_DELAY:NOP
NOP
RET
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -