我的程序C51程序,定时器0原来好使,现在不好使了。
定时器0代码没变。
初始化如下:
TMOD=0X21; //初始化定时器
TH0=0X3B; //送计数初值
TL0=0XC0;
EA=1; //开总中断
ET0=1;
TR0=1;
中断代码如下:
void timer0_int() interrupt 1 using 1
{
TR0=0; //定时器0停止计数
TH0=0X3B; //重装初值
TL0=0XC0;
wdi=~wdi; //喂狗
count1++; //计数器自加
count2++;
if(count1==100)
{count1=0; //计数器1复位
cnt++;
ranking++;
}
if(count2==25)
{count2=0; //计数器2复位
sound++;
}
if(sound==2) sound=0; //计数器3复位
if(cnt==4) cnt=0; //计数器4复位
if(ranking==50) ranking=0; //计数器5复位
TR0=1; //定时器开始计数
}
只不过代码量大了。这也不应该影响中断呀!
请问高手,可能是哪里的问题?谢谢! |