c51单片机外部中断实验
时间: 2023-09-24 11:02:55 浏览: 157
单片机C51中断口定时器控制器
4星 · 用户满意度95%
C51单片机的外部中断可以通过INT0和INT1引脚来实现。下面是一个简单的外部中断实验,当按下按键时,外部中断会被触发,LED灯会亮起来。
```c
#include <reg51.h> // 引入C51单片机的头文件
sbit LED = P1^0; // 定义LED灯连接的IO口
sbit KEY = P3^2; // 定义按键连接的IO口
void main() {
EA = 1; // 开启总中断
EX0 = 1; // 开启INT0中断
IT0 = 1; // 设置INT0为下降沿触发
LED = 0; // 初始化LED灯为灭
while (1) { // 一直循环
// 主函数中不需要做其他的事情,中断处理函数会处理按键事件
}
}
// INT0的中断处理函数
void int0_isr() interrupt 0 {
LED = ~LED; // LED灯翻转
}
```
这段代码使用P1口的第0个引脚来连接LED灯,使用P3口的第2个引脚来连接按键。开启总中断后,通过`EX0`和`IT0`来开启并设置INT0中断。在中断处理函数`int0_isr()`中,LED灯会翻转,实现了按下按键时LED灯的亮灭切换。需要注意的是,INT0中断的中断号为0,因此需要在中断处理函数前加上`interrupt 0`来声明中断号。
阅读全文