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

📄 cardeng.asm

📁 汇编写的红绿灯即交通灯程序
💻 ASM
字号:
源代码:

        ORG     0000H
        LJMP    START
        ORG     0003H           ;INT 0 中断入口地址
        LJMP    INT0
        ORG     0040H
START:
        MOV     SP,#60H
        SETB    EX0             ;INT 0 中断有效
        SETB    IT0
        SETB    EA
        LCALL   STATUS0         ;初始状态(都是红灯)
CIRCLE: LCALL   STATUS1         ;南北绿灯,东西红灯
        LCALL   STATUS2         ;南北绿灯闪转黄灯,东西红灯
        LCALL   STATUS3         ;南北红灯,东西绿灯
        LCALL   STATUS4         ;南北红灯,东西绿灯闪转黄灯
        LJMP    CIRCLE
INT0:
        PUSH    PSW             ;保护现场
        PUSH    2
        PUSH    ACC
        MOV     DPTR,#8300H
        MOV     A,#0FH         ;南北,东西都亮红灯
        MOVX    @DPTR,A
        MOV     R2,#100         ;延时10秒
        LCALL   DELAY
        POP     ACC             ;恢复现场
        MOVX    @DPTR,A
        POP     2
        POP     PSW
        RETI
STATUS0:                        ;南北红灯,东西红灯
        MOV     DPTR,#8300H
        MOV     A,#0FH
        MOVX    @DPTR,A
        MOV     R2,#10          ;延时1秒
        LCALL   DELAY
        RET
STATUS1:                        ;南北绿灯,东西红灯
        MOV     DPTR,#8300H
        MOV     A,#5AH          ;南北绿灯,东西红灯
        MOVX    @DPTR,A
        MOV     R2,#50         ;延时5秒
        LCALL   DELAY
        RET
STATUS2:                        ;南北绿灯闪转黄灯,东西红灯
        MOV     DPTR,#8300H
        MOV     R3,#03H         ;绿灯闪3次
FLASH:  MOV     A,#5FH
        MOVX    @DPTR,A
        MOV     R2,#03H
        LCALL   DELAY
        MOV     A,#5AH
        MOVX    @DPTR,A
        MOV     R2,#03H
        LCALL   DELAY
        DJNZ    R3,FLASH
        MOV     A,#0AH         ;南北黄灯,东西红灯
        MOVX    @DPTR,A
        MOV     R2,#10          ;延时1秒
        LCALL   DELAY
        RET
STATUS3:                        ;南北红灯,东西绿灯
        MOV     DPTR,#8300H
        MOV     A,#0A5H
        MOVX    @DPTR,A
        MOV     R2,#50         ;延时5秒
        LCALL   DELAY
        RET
STATUS4:                        ;南北红灯,东西绿灯闪转黄灯
        MOV     DPTR,#8300H
        MOV     R3,#03H         ;绿灯闪3次
FLASH1: MOV     A,#0AFH
        MOVX    @DPTR,A
        MOV     R2,#03H
        LCALL   DELAY
        MOV     A,#0A5H
        MOVX    @DPTR,A
        MOV     R2,#03H
        LCALL   DELAY
        DJNZ    R3,FLASH1
        MOV     A,#05H         ;南北红灯,东西黄灯
        MOVX    @DPTR,A
        MOV     R2,#10          ;延时1秒
        LCALL   DELAY
 NOP
        RET
DELAY:                          ;延时子程序
        PUSH    2
        PUSH    1
        PUSH    0
DELAY1: MOV     1,#00H
DELAY2: MOV     0,#0B2H
        DJNZ    0,$
        DJNZ    1,DELAY2        ;延时 100 mS
        DJNZ    2,DELAY1
        POP     0
        POP     1
        POP     2
        RET
        END

⌨️ 快捷键说明

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