楼主局部变量int x=0,y=0;,也就是每次进入中断都清0,永远也加不到想要的数。只有把x、y设为全局变量或局部静态变量才能达到楼主想要的效果。
void timer () interrupt 1
{
static unsigned char x=0,y=0;
TH0=0x3C; //计数初值重装载
TL0=0xB0;
if(led2==0)
{
x++;
if(x==40)
{
led2=1;
x=0;
}
}
if(led2==1)
{
y++;
if(y==200)
{
led2=0;
y=0;
}
}
} |