51单片机两个定时器一起用,该怎么设置啊?

我用的是AT89c51单片机,需要使用两个定时器分别计时,但是怎么发现程序运行时,定时器0的时间慢了很多呢?我不知道同时用两个定时器需要不需要什么特殊设置啊?
我的定时器0
void timer0()interupt1 using0
定时器1
void timer1()interupt3 using1

两个定时器使用没有什么特殊设置,但是有一个经验你必须明白,中断里面重新对定时器赋值的操作必须放在中断处理的头端,否则会有一个整个中断处理的时间延时。如:
void timer1()interupt3 using1
{
... //如果这里的...程序段太长,那么每次中断就慢了处理这段程序的时间
TH1=0X..
TL1=0X..
... //如果把处理程序放在这里,那么慢的是2个指令周期(重载)
}
所以时间要求特别严格的程序,一般建议使用方式2自动载入。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-04-27
这是必然的。
如果想延时少点,就把定时器里的程序移到main函数里,在定时器里运行时间少点就不会慢很多了。
第2个回答  2009-04-27
当你问了这个问题,就说明你要好好把就教科书看一下了
最基础的教材上有你要的答案,自己搜索下吧
相似回答