我想让led上四个和下四个循环亮
#include
unsigned char led=0,led1=0,FLAG=0,i=0,a,b;
void shezhi()
{
SCON=0;
TMOD=0X01;//00000000
TH0=-50000/256;
TL0=-50000%256;
ET0=1;EA=1;//ESÊÊÓÃÓÚ´®ÐпÚÖжÏ
TR0=1;
}
void delay(unsigned int n)
{
for(a=0;afor(b=114;b>0;b++);
}
}
void zhuanhuan()
{ led1=0x00;
SBUF=led1;
delay(1);
led=~led;//0000 1111
SBUF=led;
while(!TI)
{
TI=0;
}
delay(350);
}
void main()
{
shezhi();
while(FLAG==1)
{
zhuanhuan();
}
}
void zhongduan() interrupt 1
{
TH0=-50000/256;
TL0=-50000%256;
i++;
while(i==20)
{
i=0;
led=0xf0;//1111 0000
SBUF=led;
while(TI==1)
{FLAG=1;
TI=0;
}
}
}
应该是程序死在delay(1)那个延时函数里面了,你上传的这个代码delay函数格式有问题应该是编译不成功的,即使原本的格式能编译,还有for循环应该是for(b=114;b>0;b--),b++就陷入无限循环了。