| 各位大神,帮小弟看看这份程序咯!中断处理的,无论怎么按键盘,都是没有反应的,只执行程序的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;
 }
 }
 |