各位大神,帮小弟看看这份程序咯!中断处理的,无论怎么按键盘,都是没有反应的,只执行程序的while(a==0)那一部分,无法执行while(a==1)的部分!!!而且无论换到哪个按键都没有效果!!!谢谢咯!!!
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar temp,i,a;
sbit key=P3^0;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void init()
{
EA=1;
EX0=1;
IT0=1;
}
void main()
{
temp=0xfe;
P1=temp;
init();
while(1)
{
if(a==0)
{
for(i=0;i<8;i++)
{
delay(1000);
temp=_crol_(temp,1);
P1=temp;
}
}
if(a==1)
{
for(i=0;i<8;i++)
{
delay(1000);
temp=_cror_(temp,1);
P1=temp;
}
}
}
}
void exter0() interrupt 0
{
if(key==0)
{
delay(5);
if(key==0)
{
while(!key);
a++;
}
if(a==2)
a=0;
}
} |