51单片机的这个程序为什么比实际时间慢?

2024-11-27 16:58:32
推荐回答(3个)
回答1:

选用12MHz晶振,将会定时50ms;
选用11.0592MHz,将会定时54.25ms;
你是用那个晶体振荡器?
void timer0() interrupt 1
{
TH0=0x3C;
TL0=0xB0;
aa++;
if(aa==20)
{
temp++;
aa=0;
}

if(temp==60)
{
temp1++;
temp=0;
}

if(temp1==60)
{
temp1=0 ;
}
}

回答2:

中断要把写初值所花时间减去,还有隐含的入栈的时间也要减去

回答3:

:1、直接采用晶振计时的,肯定存在误差
2、建议你增加一片DS1302吧