【重点案例5】外部中断
·
文章介绍
先复习案例案例8_1:控制2个LDE(外部中断)
仿真图

需要实现的效果
按下key1时(P32)小灯D1闪烁(亮1秒灭1秒)【按下不松手】
按下key2时(P33)小灯D2闪烁(亮1秒灭1秒)【按下不松手】

代码提示
当前只写了KEY1的代码,请你补充KEY2
#include <reg51.h>
sbit LED = P0^0; // LED连接到P0.0
//================= 延时函数 =================
void Delay(unsigned int ms)
{
unsigned int i, j;
for(i = ms; i > 0; i--)
{
for(j = 110; j > 0; j--);
}
}
//================= 外部中断0服务函数 =================
void EX0_ISR() interrupt 0
{
LED = ~LED; // LED状态取反
Delay(1000); // 简单消抖延时
}
//================= 主函数 =================
void main(void)
{
LED = 1; // LED初始熄灭(低电平点亮时可根据实际修改)
EA = 1; // 开总中断
EX0 = 1; // 开外部中断0
IT0 = 0; // 低电平触发方式
while(1)
{
// 保持LED默认状态
// 等待外部中断触发
}
}
更多推荐



所有评论(0)