单片机89c51外部摁键中断程序

2025-02-23 21:13:48
推荐回答(2个)
回答1:

按键一端接地,另一端接P3^2 就是外部中断0 ,,
sbit key = P3^2;
void main()
{
EX0 = 1;

IT0 = 1;

EA = 1;

while(1)

{
这里写你的功能;

}
}
void int0() interrupt 0
{
unsigned int i = 0;

while(1)

{
if(key == 0)

{
i++;

if(i >= 1000)

{
i=0;
flag = 1;

break;

}
}
else

{
i=0;

break;

}

}
}
这个程序包括了消抖部分,flag = 1的时候就表明 按键按下了。 flag的变量定义,还有头文件,自己加上,在主程序你检测flag的状态就可以了

回答2:

EX0=1;//开外部中断0
EA=0;//开总中断
lT0=1;//下降沿触发

然后写中断函数即可
void extern0( ) interrupt 0
{
执行动作语句
}