标题: 为什么51单片机中断定时器模式2我设置180us定时器不准确? [打印本页]

作者: a4732710    时间: 2021-1-23 09:42
标题: 为什么51单片机中断定时器模式2我设置180us定时器不准确?
程序如下,keil测试过,和实物测试结果一样。
#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
作者: 人人学会单片机    时间: 2021-1-23 13:11
89系列龟速单片机,11.0592M的情况下,执行一条指令时间是大于1us的。建议你换成STC15W系列的。
作者: mengsiu    时间: 2021-1-23 15:56
人人学会单片机 发表于 2021-1-23 13:11
89系列龟速单片机,11.0592M的情况下,执行一条指令时间是大于1us的。建议你换成STC15W系列的。

如果说STC15快的话,STC8系列更快。
作者: munuc_w    时间: 2021-1-23 16:21
有误差是正常的,11.0592/12不是整数。再者,晶振也不能做到标称值那么准,有误差是绝对的。
作者: 学生1    时间: 2021-1-28 11:47
用定时器精确延时有误差,可不可以把误差值测出来,设置定时的时候再减去误差值




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1