采用外部中断0的低电平触发方式 控制8个LED灯 闪烁2次。用51单片机语言
时间: 2024-02-22 15:56:04 浏览: 69
基于51单片机的LED灯闪烁程序
好的,以下是使用51单片机语言实现该功能的代码:
```assembly
ORG 0H
MOV IE, 81H ; 开启外部中断0
SETB IT0 ; 低电平触发
SJMP $
ORG 03H
int0:
MOV R0, #2 ; 循环两次
loop:
MOV P2, #00H ; 闪烁8个LED灯
CALL delay
MOV P2, #FFH
CALL delay
DJNZ R0, loop ; 循环结束
RETI
delay: ; 延时函数
MOV R1, #10H
d1: MOV R2, #20H
d2: DJNZ R2, d2
DJNZ R1, d1
RET
END
```
该程序的主要思路和C语言版本的程序相同,都是使用外部中断0触发闪烁LED的函数。在程序运行时,外部中断0会一直等待低电平的输入,当检测到低电平信号时,会触发`int0`函数,该函数会使8个LED灯依次闪烁两次。LED的闪烁时间可以通过调整`delay`函数中的参数来控制。需要注意的是,外部中断0的触发方式需要设置为低电平触发,否则程序将无法正常运行。
在使用51单片机语言时,我们需要手动指定程序的入口地址和中断向量表。在本例中,程序入口地址为0H,中断向量表的第一个中断为外部中断0的中断向量,地址为03H。
阅读全文