外部中断问题
为什么我写的中断程序 按下按钮蜂鸣器响了但是二极管还在闪烁 没有中断?这段程序要怎么改呢?
#include <reg52.h>
#define unchar unsigned char
sbit led_1 = P1^2;
sbit led_2 = P1^3;
sbit beep= P1^4;
sbit key = P1^1;
sbit intr = P3^2;
void delay(unchar s)
{
unchar x,y;
for(x=s;x>0;x--)
for(y=110;y>0;y--);
}
int main(void)
{
unchar i;
EA = 1;
EX0 = 1;
IT0 = 0;
while (1)
{
beep = 1;
if (!key)
{
delay(30);
if (!key)
intr = 0;
intr = 1;
}
delay(1000);
beep = 1;
led_1 = 0;
led_2 = 1;
delay(1000);
led_1 = 1;
led_2 = 0;
}
return 0;
}
void int0 () interrupt 0
{
beep = 0;
delay(1000);
}
说实话,我没看懂你的问的啥 if (!key)
{
delay(30);
if (!key)
intr = 0;
intr = 1;
}
在这句话里面,intr始终是=1的,
if (!key)
intr = 0;
没有起作用的。因为它接下来就是 intr = 1;
页:
[1]