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

📄 ext_a.asm

📁 1. EXT_C.rar, 给初学者(带中文注释的C51语言例程), 利用外部中断实现LED灯的简单控制。 2. EXT_A.rar, 给初学者(带中文注释的51汇编语言例程), 利用外部中断实现L
💻 ASM
字号:
;---------------------------------------------------------------------
led1      EQU P1.0
led2      EQU P1.1
led3      EQU P1.2
led4      EQU P1.3

P13       EQU P1.3
;---------------------------------------------------------------------
;全局变量及位标志定义
FINT0     EQU 20H.1
FINT1     EQU 20H.2
FT0       EQU 20H.3
FT1       EQU 20H.4
FT2       EQU 20H.4

T0_10ms   EQU 30H
T0_50ms   EQU 31H
T0_100ms  EQU 32H


;---------------------------------------------------------------------
        ORG 0000H
        LJMP main

;---------------------------------------------------------------------
ORG 0003H
        ; FUNCTION int_0 (BEGIN)
        SETB    FINT0            ;有INT0中断发生则标志置位
        RETI    
        ; FUNCTION int_0 (END)

;---------------------------------------------------------------------
ORG 000BH
        ; FUNCTION timer_0 (BEGIN)
        SETB    FT0
        RETI    
        ; FUNCTION timer_0 (END)

;---------------------------------------------------------------------
ORG 00013H
        ; FUNCTION int_1 (BEGIN)
        SETB    FINT1            ;有INT1中断发生则标志置位 
        RETI    
        ; FUNCTION int_1 (END)
;---------------------------------------------------------------------
ORG 001BH
        ; FUNCTION timer_1 (BEGIN)
        SETB    FT1
        RETI    
        ; FUNCTION timer_1 (END)
        
;---------------------------------------------------------------------
ORG 0023H
        ; FUNCTION serial_1 (BEGIN)
        RETI    
        ; FUNCTION serial_1 (END)

;---------------------------------------------------------------------
ORG 002BH
        ; FUNCTION timer_2 (BEGIN)
        SETB    FT2
        RETI    
        ; FUNCTION timer_2 (END)
;---------------------------------------------------------------------


        ; FUNCTION main (BEGIN)
main:
        LCALL   initial
?C0001:
        CLR     P13
        JNB     FINT0,?C0003
        CLR     FINT0
        CLR     led1          ;有INT0中断发生过则点亮
        CLR     led2
        CLR     led3
?C0003:
        JNB     FINT1,?C0004
        CLR     FINT1
        SETB    led1          ;有INT1中断发生过则熄灭
        SETB    led2
        SETB    led3
?C0004:
        JNB     FT0,?C0001
        CLR     FT0
        INC     T0_10ms
        MOV     A,T0_10ms
        SETB    C
        SUBB    A,#01EH
        JC      ?C0001
        CLR     A
        MOV     T0_10ms,A
        SJMP    ?C0001
        ; FUNCTION main (END)
        

;---------------------------------------------------------------------
        ; FUNCTION initial (BEGIN)
initial:
        SETB    EA          ;CPU所有中断开(IE最高位MSB)

        SETB    EX0         ;INT0中断开 
        CLR     IT0         ;INT0低电平触发(为1则为下降沿触发)

        SETB    EX1         ;INT1中断开 
        CLR     IT1         ;INT1低电平触发(为1则为下降沿触发)
        RET     
        ; FUNCTION initial (END)

END

⌨️ 快捷键说明

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