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

📄 t5.asm

📁 一些单片机的51实例
💻 ASM
字号:
NAME    T5                    ;中断控制实验
OUTPORT EQU    0CFB0H         ;端口地址
SAVE    EQU    55H            ;保存从端口CFB0输出的数据
CSEG    AT     0000H
        LJMP   START
CSEG AT 4003H
        LJMP   INT
CSEG AT 4100H
START:  SETB   IT0
        SETB   EX0
        SETB   EA
        MOV    A,#11H        ;置首显示码
        MOV    SAVE,A        ;保存
        ACALL  DISP          ;显示输出
        ACALL  DE3S          ;延时3秒
LLL:    MOV    A,#12H        ;东西路口绿灯亮,南北路口红灯亮
        MOV    SAVE,A
        ACALL  DISP  
        ACALL  DE10S         ;延时10秒
        MOV    A,#10H        ;东西路口绿灯灭
        MOV    SAVE,A
        ACALL  DISP  
        MOV    R2,#05H       ;东西路口黄灯闪烁5次
TTT:    MOV    A,#14H
        MOV    SAVE,A
        ACALL  DISP  
        ACALL  DE02S         ;延时0.2秒
        MOV    A,#10H
        MOV    SAVE,A
        ACALL  DISP  
        ACALL  DE02S         ;延时0.2秒
        DJNZ   R2,TTT
        MOV    A,#11H       ;红灯全亮
        MOV    SAVE,A
        ACALL  DISP  
        ACALL  DE02S        ;延时0.2秒
        MOV    A,#21H       ;东西路口红灯亮,南北路口绿灯亮
        MOV    SAVE,A
        ACALL  DISP  
        ACALL  DE10S        ;延时10秒
        MOV    A,#01H       ;南北路口绿灯灭
        MOV    SAVE,A
        ACALL  DISP  
        MOV    R2,#05H      ;南北路口黄灯闪烁5次
GGG:    MOV    A,#41H
        MOV    SAVE,A
        ACALL  DISP  
        ACALL  DE02S
        MOV    A,#01H
        MOV    SAVE,A
        ACALL  DISP  
        ACALL  DE02S
        DJNZ   R2,GGG
        MOV    A,#11H      ;红灯全亮
        MOV    SAVE,A
        ACALL  DISP  
        ACALL  DE02S       ;延时0.2秒
        JMP    LLL         ;转LLL循环
DE10S:  MOV    R5,#100     ;延时10秒
        JMP    DE1
DE3S:   MOV    R5,#30      ;延时3秒
        JMP    DE1
DE02S:  MOV    R5,#02      ;延时0.2秒
DE1:    MOV    R6,#200
DE2:    MOV    R7,#126
DE3:    DJNZ   R7,DE3
        DJNZ   R6,DE2
        DJNZ   R5,DE1
        RET
INT:    CLR    EA
		PUSH   ACC         ;中断处理
        PUSH   PSW
        MOV    A,R5
        PUSH   ACC
        MOV    A,R2
        PUSH   ACC
        MOV    A,#11H     ;红灯全亮,绿、黄灯全灭
        ACALL  DISP  
DEL10S: MOV    R3,#100     ;延时10秒 
DEL1:   MOV    R2,#200
DEL2:   MOV    R5,#126
DEL3:   DJNZ   R5,DEL3
        DJNZ   R2,DEL2
        DJNZ   R3,DEL1
        MOV    A,SAVE     ;取SAVE中保存数据输出到cfa0端口
        ACALL  DISP  
        POP    ACC        ;出栈
        MOV    R2,A
        POP    ACC
        MOV    R5,A
        POP    PSW
        POP    ACC
        SETB   EA        ;允许外部中断
        RETI
DISP:   MOV    DPTR,#OUTPORT
		CPL    A
        MOVX   @DPTR,A
        RET
END

⌨️ 快捷键说明

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