📄 bingzhangche.asm
字号:
ORG 0000H
LJMP SHI
ORG 0030H
SHI:MOV R0,#6
MOV R5,#27
LCALL MTOUT ;伺服机归位
LCALL JS100 ;全速工作
SETB P2.3
CLR P2.4 ;启动后轮电机正转
BZTJ:JNB P1.6,B3
JNB P1.7,B1
JNB P1.5,B2
LJMP XJTJ
B1:LCALL JS40
MOV R5,#25
LCALL MTOUT
MOV R6,#20
LCALL DELAY1
MOV R5,#31
LCALL MTOUT
MOV R6,#10
LCALL DELAY1
LJMP BZTJ
B2:LCALL JS40
MOV R5,#25
LCALL MTOUT
MOV R6,#20
LCALL DELAY1
MOV R5,#31
LCALL MTOUT
MOV R6,#10
LCALL DELAY1
LJMP BZTJ ;先左后右转蔽障,后边时间稍长
B3:LCALL JS40
MOV R5,#23
LCALL MTOUT
MOV R6,#18
LCALL DELAY1
MOV R5,#25
LCALL MTOUT
MOV R6,#12
LCALL DELAY1
MOV R5,#29
LCALL MTOUT
MOV R6,#8
LCALL DELAY1 ;先右后左转蔽障,后边时间稍长
XJTJ:JNB P1.0,Z3
LJMP Z4
Z3:MOV R6,#3
LCALL DELAY1
JNB P1.4,B5 ;交叉线直走
JMP B6 ;左转20
Z4:JNB P1.4,B7 ;右转20
JNB P1.1,B8 ;左转10
JNB P1.3,B9 ;右转10
JNB P1.2,B10 ;直走
LJMP BZTJ
B5:DJNZ R0,BB1
LJMP JS00
BB1:LCALL JS100
MOV R5,#27
LCALL MTOUT
MOV R6,#12
LCALL DELAY1
LJMP BZTJ
B7:LCALL JS40
MOV R5,#23
LCALL MTOUT
LJMP BZTJ ;
B8:LCALL JS60
MOV R5,#29
LCALL MTOUT
LJMP BZTJ ;
B9:LCALL JS60
MOV R5,#25
LCALL MTOUT
LJMP BZTJ ;
B10:LCALL JS100
MOV R5,#27
LCALL MTOUT
LJMP BZTJ
B6:LCALL JS40 ;
MOV R5,#31
LCALL MTOUT
LJMP BZTJ
JS100:CLR P0.0
CLR P0.1
CLR P0.2
SETB P2.0
CLR P2.1
CLR P2.2
RET
JS60:CLR P0.0
CLR P0.1
SETB P0.2
CLR P2.0
SETB P2.1
CLR P2.2
RET
JS40:CLR P0.0
SETB P0.1
SETB P0.2
CLR P2.0
CLR P2.1
SETB P2.2
RET
JS00:SETB P0.0
SETB P0.1
SETB P0.2
CLR P2.3
CLR P2.4
JMP $
MTOUT:
MOV R2,#3 ;输出脉冲个数
LOOP:
MOV A,R5
MOV R1,A
SETB P2.5
CALL DELAY
CLR P2.5
MOV A,#200 ;
SUBB A,R5
MOV R1,A ;
CALL DELAY
DJNZ R2,LOOP
RET
DELAY:MOV R6,#5 ;延时0.05jjms
D1: MOV R7,#4
DJNZ R7,$
DJNZ R6,D1
DJNZ R1,DELAY
RET
DELAY1:
MOV R3,#100
D2:MOV R4,#48 ;10MS
DJNZ R4,$
DJNZ R3,D2
DJNZ R6,DELAY1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -