为什么这无法进入中断
#define uint unsigned int
#define uchar unsigned char
sbit S1=P3^0;
sbit S2=P3^1;
sbit s3=P3^2;
void delay(uint z);
long int table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
long int a=0;
void main()
{
while(1)
{
EA=0;
EX0=1;
EX1=1;
IT0=1;//开中断
P1=table[a];
delay(1000);
P1=0xff;
delay(1000); //闪烁
if(S1==0)
{
delay(5);
if(S1==0)
{
a++ ;
}
}
if(S2==0)
{
delay(5);
if(S2==0)
{
a--;
}
} //检测S1.S2是否按下
if(a<0)
a=7;
else
if(a>7)
a=0;
}
}
void ky3() interrupt 0
{
P1=1;
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
} //延迟
少了一个指令啊,打赏积分把
能具体点吗?
解决了就打赏
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit S1=P3^0;
sbit S2=P3^1;
sbit s3=P3^2;
void delay(uint z);
long int table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
long int a=0;
int x=1;
int k=1;
void main()
{
while(1)
{
EA=1;
PX1=1;
EX0=1;
EX1=1;
TCON=0X05;
//开中断
x=1;
P1=table[a];
delay(1000);
P1=0xff;
delay(1000); //闪烁
if(S1==0)
{
delay(5);
if(S1==0)
{
a++ ;
}
}
if(S2==0)
{
delay(5);
if(S2==0)
{
a--;
}
} //检测S1.S2是否按下
if(a<0)
a=7;
else
if(a>7)
a=0;
}
}
void ky3() interrupt 0
{
k=0;
while(x<2)
{
P1=table[a];
}
}
void ky4() interrupt 1
{
if(k=0)
{
x++;
k=2;
}
else
{
a=0;
k=0;
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
} //延迟
这段程序第二次按k4为什么没反应啊?
if(k=0) 有这么玩的吗?没警告提示?
有警告,我正想问为什么
方便的话讲下吧
我知道了,因该是==,谢谢,但改了第二次按k4还是没反应
EA=0;
EX0=1;
EX1=1;
IT0=1;//开中断
你只开了K3 的中断,K4的中断没开,打赏积分吧
