?? u2_2.asm
字號:
;===========================================================
;無線模塊調(diào)試程序:U2波特率9600,U2中40H-43H存儲數(shù)據(jù)段
;U2接受數(shù)據(jù)后傳送數(shù)據(jù)給U1
;雙機(jī)通信u1LED2.4.6.8(點(diǎn)亮個(gè)數(shù))顯示,U2LED進(jìn)行1.3.5.7的;顯示
;系統(tǒng)采用的是一應(yīng)一答的方式
;很好的抗干擾性!糾錯(cuò)能力也較強(qiáng)!
;============================================================
ORG 0
LJMP START
ORG 0BH ;T0中斷向量
LJMP TS
ORG 23H ;串行中斷向量
LJMP TII
ORG 30H
START: MOV 40H, #03H;數(shù)據(jù)地址賦值
MOV 41H, #0FH
MOV 42H, #3FH
MOV 43H, #0FFH
MOV R3, #0AAH;;;;接收正確發(fā)送AA。
MOV R4, #90H;;;;錯(cuò)誤發(fā)送90H
MOV R0,#40H
MOV R1,#04H
MOV SP,#70H
MOV TMOD,#21H ;T1方式2,T0方式0,定時(shí)
MOV PCON,#00H ;波特率不加倍
MOV TH1,#0FDH ;對于11.0592MHz的晶振,波特率為9600
MOV TL1,#0FDH
SETB TR1
MOV SCON,#50H;串口工作在方式1,允許接收
MOV TH0,#4CH;11.0592MHz晶振下的50ms定時(shí)常數(shù)
MOV TL0,#0
MOV R2,#20 ;1秒鐘計(jì)數(shù)初值
SETB ET0
SETB ES
SETB EA
WAIT: SJMP $
TS: MOV TH0,#4CH
MOV TL0,#0
DJNZ R2,TR_END
MOV R2,#20
MOV A,@R0
MOV SBUF,A
RETI
TII: JNB TI,RII
CLR TI
TR_END: RETI
RII: JNB RI,TR_END
CLR RI
MOV A,SBUF
MOV 50H,A
CJNE A,#0AAH,L1;接收AA正確返回
LJMP RIGHT
L1: CJNE A,#90H, L2;90為錯(cuò)誤,送上次R0值給SBUF
LJMP ERR
L2: CPL A
MOV P1,A
SETB TR0
MOV SBUF,R3 ;數(shù)據(jù)正確發(fā)送80H
RETI
RIGHT: INC R0
CLR TR0
DJNZ R1, TR_END
MOV R0, #40H
MOV R1, #04
RETI
ERR: MOV SBUF,@R0;處理發(fā)送錯(cuò)誤,再次發(fā)送上次r0值
RETI
ERR0: MOV SBUF,R4;錯(cuò)誤發(fā)送代碼90h
RETI
END
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -