单片机外部中断的问题

#include <reg51.h>

sbit key=P3^3;
sbit led=P0^1;
unsigned char a=0;

void main ()
{
led=0;
EA=1;
EX0=1;
IT0=1;

while(1)
{
if(a==1)
{
led=1;
}
else
{
led=0;
}
}

}

void zhongduan() interrupt 0
{
if(key==0)
{
a=1;
}

}

我要按下去亮,但按下去没反应,求原因啊

第1个回答  2014-07-21
52单片机不带PWM功能,只能用定时器模拟,还要配合I/O。例如 周期 = 50ms ,当一个变量 小于 30ms时 P1.0等于1 否则等于0, 那么P1.0 在一个周期(50MS)里前30ms 为1 后20ms为0.

可以选用STC12系列单片机,自带PWM。

定时器中断不会影响外中断0,外部中断0的优先级是出复位外最高的。(看下优先级)
!中断会打乱时序器件,例如:如果程序中还挂有IIC驱动,那么在执行IIC时就应该屏蔽中断,IIC结束完后再开中断。
打字不易,如满意,望采纳。
第2个回答  2014-07-21
你知道你写的是边沿触发还是电平触发吗,检查下按键按下是否满足中断条件,按键接到中断0脚上吗本回答被提问者采纳
第3个回答  2014-07-21
你的按键是接在p33口上么追问

相似回答