单片机实验外部中断控制led灯实验代码
时间: 2024-11-23 11:38:56 浏览: 18
单片机课程设计外部中断控制流水灯变化样本.doc
5星 · 资源好评率100%
在单片机实验中,利用外部中断控制LED灯通常涉及51系列芯片如8051或AVR等。这里以经典的51单片机为例,假设我们使用的是INT0外中断,并连接到某个按键作为中断源,LED灯通过P1口的一个位来控制。以下是简单的C语言代码示例:
```c
#include <reg52.h>
// LED状态
volatile bool led_state = LOW;
void interrupt void INT0(void) __attribute__((interrupt(" External Interrupt"))) {
// 当外部中断触发时(例如按键按下)
if (PIR0 & 0x01) { // PIR0寄存器检测是否有中断发生
PIR0 &= ~0x01; // 清除中断标志位
if (led_state == LOW) {
P1_0 = HIGH; // 将LED点亮
led_state = HIGH;
} else {
P1_0 = LOW; // LED熄灭
led_state = LOW;
}
}
}
void main() {
TR0 = 1; // 开启定时器T0用于外部中断延时处理
EINTEN = 1; // 开启所有外部中断
ET0 = 1; // 配置T0为外部中断模式
EA = 1; // 开启全局中断
while(1); // 无限循环,等待按键触发中断
}
```
阅读全文