?? tiaoshi.asm
字號:
ORG 0000H
LJMP MAIN
ORG 0023H ;串行中斷
LJMP INT
ORG 0030H
MAIN: MOV SP,#70H
CLR P2.0
MOV IE,#90H ;允許串行中斷
MOV SCON,#0C0H ;設置串行口方式3
MOV TMOD,#20H
MOV TH1,#0E8H ;設置波特率200B/S
MOV TL1,#0E8H
SETB TR1 ;啟動定時器1
SETB REN ;允許串行接收
SETB ES ;啟動串行中斷
SJMP $
;串行中斷子程序
INT: CLR EA ;關中斷
PUSH ACC
PUSH PSW
MOV PSW,#08H
MOV A,SBUF ; 接收一個數(shù)據(jù)
CLR RI
CJNE A,#33H,LP1 ; 是否收到詢問信號"1"
LCALL LP2
LCALL PMOVE
SJMP LP3
LP1: CJNE A,#34H,LP3
LCALL LP2
LCALL NMOVE
LP3: JMP OUT
LP2: MOV A,#37H ;發(fā)送回答信號"A"
LCALL SIOO ;調發(fā)一字節(jié)數(shù)據(jù)子程序
RET
LP12: MOV A,#39H ;發(fā)送回答"
LCALL SIOO ;調發(fā)一字節(jié)數(shù)據(jù)子程序
RET
PMOVE: MOV A,SBUF
CLR RI
LCALL LP6
CJNE A,#35H,LP4 ;是否收到"3"
MOV A,SBUF
CLR RI
LCALL LP12
MOV R1,A
LCALL PMOVE2
JMP LP5
LP4: CJNE A,#36H,LP5
LCALL LP6
MOV A,SBUF
CLR RI
MOV R1,A
MOV A,SBUF
CLR RI
LCALL LP12
MOV R2,A
LCALL PMOVE1
LP5: JMP OUT
LP6: MOV A,#38H ;發(fā)送回答信號"B"
LCALL SIOO ;調發(fā)一字節(jié)數(shù)據(jù)子程序
RET
PMOVE1: MOV R0,#00H ;反轉子程序
LP71: MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ PMOVE1
CPL A
MOV P1,A
LCALL DELAY1
INC R0
DJNZ R1,LP71
DJNZ R2,PMOVE1
RET
PMOVE2: MOV R0,#00H ;反轉子程序
LP72: MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ PMOVE2
CPL A
MOV P1,A
LCALL DELAY1
INC R0
DJNZ R1,LP72
RET
NMOVE: MOV A,SBUF
CLR RI
CJNE A,#35H,LP8 ;是否收到"3"
LCALL LP6
MOV A,SBUF
CLR RI
LCALL LP12
MOV R1,A
LCALL NMOVE2
JMP LP9
LP8: CJNE A,#36H,LP9
LCALL LP6
MOV A,SBUF
CLR RI
MOV R1,A
MOV A,SBUF
CLR RI
MOV R2,A
LCALL LP12
LCALL NMOVE1
LP9: RET
NMOVE1: MOV R0,#05H ;反轉子程序
LP11: MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ PMOVE1
CPL A
MOV P1,A
LCALL DELAY1
INC R0
DJNZ R1,LP11
DJNZ R2,NMOVE1
RET
NMOVE2: MOV R0,#05H ;反轉子程序
LP10: MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ NMOVE2
CPL A
MOV P1,A
LCALL DELAY1
INC R0
DJNZ R1,LP10
RET
OUT: POP PSW
POP ACC
SETB EA ;開中斷
SETB REN ;允許串行接收
SETB ES ;啟動串行中斷
RETI
SIOO: CLR ES
MOV SBUF,A
JNB TI,$ ;1 幀是否發(fā)送完
CLR TI
LCALL DELAY1
SETB ES
RET
DELAY1: MOV R6,#74 ;延時20MS
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
TABLE: DB 03H,06H,0CH,09H
DB 00
DB 03H,09H,0CH,06H
DB 00
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -