⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 汽车.asm

📁 请认真阅读您的文件包然后写出其具体功能(至少要20个字)。尽量不要让站长把时间都花费在为您修正说明上。压缩包解压时不能有密码。系统会自动删除debug和release目录
💻 ASM
字号:
ORG     0000H
AJMP    START1
ORG     0030H
SAME    EQU  4EH
START1:	MOV     P1,#00H               ; 无输入时无输出
START:	MOV     A,P3                  ; 读P3口的数据
ANL     A,#1FH                ; 取用P3口的低五位数据
CJNE    A,#1FH,SHIY           ; 对P3口低五位进行判断
AJMP    START1               ; 开关没有动作时无输出
SHIY:  MOV      SAME,A
LCALL   YS                    ; 延时
MOV     A,P3                  ; 读P3口的数据
ANL     A,#1FH                ; 取用P3口的低五位数据
CJNE    A,#1FH,SHIY1          ; 对P3口低五位进行判断
AJMP    START1               ; 开关没有动作时无输出
SHIY1:  CJNE    A,SAME,START1
CJNE    A,#17H,NEXT1         ; P3.3=0时进入左转分支
AJMP    LEFT
NEXT1: CJNE     A,#0FH,NEXT2        ; P3.4=0时进入右转分支
AJMP    RIGHT
NEXT2: CJNE     A,#1DH,NEXT3        ; P3.1=0时进入紧急分支
AJMP    EARGE
NEXT3: CJNE     A,#1EH,NEXT4         ; P3.0=0时进入刹车分支
AJMP    BRAKE
NEXT4: CJNE     A,#16H,NEXT5         ; P3.0=P3.3=0时进入左转刹车分支
AJMP    LEBR
NEXT5: CJNE     A,#0EH,NEXT6         ; P3.0=P3.4=0时进入右转刹车分支
AJMP    RIBR
NEXT6: CJNE     A,#1CH,NEXT7         ; P3.0=P3.1=0时进入紧急刹车分支
AJMP    BRER
NEXT7: CJNE     A,#14H,NEXT8         ; P3.0=P3.1=P3.3=0时进入左转紧急刹车分支
AJMP    LBE
NEXT8: CJNE     A,#0CH,NEXT9         ; P3.0=P3.1=P3.4=0时进入右转紧急刹车分支
AJMP    RBE
NEXT9: CJNE     A,#1BH,NEXT10        ; P.3.2=0时进入停靠分支
AJMP    STOP
NEXT10:AJMP    ERROR                ; 其它情况进入错误分支

LEFT:  MOV      P1,#2AH               ; 左转分支
LCALL   Y1s
MOV     P1,#00H
LCALL   Y1s
AJMP     START

RIGHT: MOV      P1,#54H               ; 右转分支
LCALL   Y1s
MOV     P1,#00H
LCALL   Y1s
AJMP    START

EARGE: MOV     P1,#7FH               ; 紧急分支
LCALL   Y1s
MOV     P1,#00H
LCALL   Y1s
AJMP     START

BRAKE: MOV     P1,#60H              ; 刹车分支
AJMP    START

LEBR:  MOV      P1,#6AH             ; 左转刹车分支
LCALL   Y1s
MOV     P1,#40H
LCALL   Y1s
AJMP    START

RIBR:  MOV     P1,#74H               ; 右转刹车分支
LCALL   Y1s
MOV     P1,#20H
LCALL   Y1s
AJMP    START

BRER:  MOV     P1,#7EH               ; 紧急刹车分支
LCALL   Y1s
MOV     P1,#60H
LCALL   Y1s
AJMP    START

LBE:   MOV     P1,#7EH                ; 左转紧急刹车分支
LCALL   Y1s
MOV     P1,#40H
LCALL   Y1s
AJMP     START

RBE:   MOV      P1,#7EH               ; 右转紧急刹车分支
LCALL   Y1s
MOV     P1,#20H
LCALL   Y1s
AJMP    START

STOP:  MOV     P1,#66H               ; 停靠分支
LCALL   Y100ms
MOV     P1,#00H
LCALL   Y100ms
AJMP    START

ERROR: MOV     P1,#80H               ; 错误分支
LCALL   Y100ms
MOV     P1,#00H
LCALL   Y100ms
AJMP    START

YS:    MOV     R7,#20H                ;  延时
YS0:   MOV     R6,#0FFH
YS1:   DJNZ     R6,YS1
DJNZ    R7,YS0
RET

Y1s: MOV     R7,#04H                ; 延时
Y1s1:MOV     R6,#0FFH
Y1S2:MOV     R5,#0FFH
Y1S3:DJNZ    R5,Y1S3
     DJNZ    R6,Y1s2
     DJNZ    R7,Y1s1
RET

Y100ms:  MOV     R7,#066H              ;  延时
Y100ms1: MOV     R6,#0FFH
Y100ms2: DJNZ    R6,Y100ms2
DJNZ     R7,Y100ms1
RET
END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -