標(biāo)題: 為什么51單片機中斷定時器模式2我設(shè)置180us定時器不準(zhǔn)確? [打印本頁]

作者: a4732710    時間: 2021-1-23 09:42
標(biāo)題: 為什么51單片機中斷定時器模式2我設(shè)置180us定時器不準(zhǔn)確?
程序如下,keil測試過,和實物測試結(jié)果一樣。
#include<reg52.h>
sbit out=P2^3;
void Timer0_Init()
  { TMOD=0x02;IE=0x82;//模式2
  TH0=0x00;
  TL0=0x5a;//11.0592定時180us
  TR0=1;}
void Timer0_Int() interrupt 1
   {  out=~out;}
void main()
   { Timer0_Init();
   while(1);}





作者: a4732710    時間: 2021-1-23 11:38
改TH0=0x5a正常了,但是還是誤差1us
作者: 人人學(xué)會單片機    時間: 2021-1-23 13:11
89系列龜速單片機,11.0592M的情況下,執(zhí)行一條指令時間是大于1us的。建議你換成STC15W系列的。
作者: mengsiu    時間: 2021-1-23 15:56
人人學(xué)會單片機 發(fā)表于 2021-1-23 13:11
89系列龜速單片機,11.0592M的情況下,執(zhí)行一條指令時間是大于1us的。建議你換成STC15W系列的。

如果說STC15快的話,STC8系列更快。
作者: munuc_w    時間: 2021-1-23 16:21
有誤差是正常的,11.0592/12不是整數(shù)。再者,晶振也不能做到標(biāo)稱值那么準(zhǔn),有誤差是絕對的。
作者: 學(xué)生1    時間: 2021-1-28 11:47
用定時器精確延時有誤差,可不可以把誤差值測出來,設(shè)置定時的時候再減去誤差值




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1