外部中断学习

博客给出了通过外部中断实现两个按键控制两个LED闪烁的代码。代码中定义了LED和按键引脚,设置了延时函数,分别编写了外部中断0和1的处理函数,在主函数中设置了中断触发方式并开启总中断。

在这里插入图片描述在这里插入图片描述
下面代码实现两个按键控制两个led的闪烁,通过外部中断实现
#include <reg51.h>
typedef unsigned int u16;
typedef unsigned char u8;
sbit led1=P1^0;
sbit led2=P1^1;
sbit k1=P3^2;
sbit k2=P3^3;
void delay(u16 n)
{
while(n–);
}
void Int0_RunFunc() interrupt 0
{
delay(1000);
if(k1==0)
{
led1=~led1;
}

}
void Int1_RunFunc() interrupt 2//
{//注意外部中断1的中断号是2不是1
delay(1000);
if(k2==0)
{
led2=~led2;
}

}
void main()
{
IT0=1;//设置下降沿触发中断
EX0=1;//开启外部中断0
IT1=1;//设置1中断的触发方式为下降沿触发
EX1=1;//开启外部中断1
EA=1;//开启总中断
while(1);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值