找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1544|回复: 5
收起左侧

为什么51单片机中断定时器模式2我设置180us定时器不准确?

[复制链接]
ID:151846 发表于 2021-1-23 09:42 | 显示全部楼层 |阅读模式
程序如下,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);}


D2DD9139-0F50-4066-BEEE-E47B08DE3B79.jpeg 0F21C1DD-72AF-472B-B6DF-4A60B2C79EBE.jpeg

回复

使用道具 举报

ID:151846 发表于 2021-1-23 11:38 | 显示全部楼层
改TH0=0x5a正常了,但是还是误差1us
回复

使用道具 举报

ID:390416 发表于 2021-1-23 13:11 | 显示全部楼层
89系列龟速单片机,11.0592M的情况下,执行一条指令时间是大于1us的。建议你换成STC15W系列的。
回复

使用道具 举报

ID:16255 发表于 2021-1-23 15:56 | 显示全部楼层
人人学会单片机 发表于 2021-1-23 13:11
89系列龟速单片机,11.0592M的情况下,执行一条指令时间是大于1us的。建议你换成STC15W系列的。

如果说STC15快的话,STC8系列更快。
回复

使用道具 举报

ID:752974 发表于 2021-1-23 16:21 | 显示全部楼层
有误差是正常的,11.0592/12不是整数。再者,晶振也不能做到标称值那么准,有误差是绝对的。
回复

使用道具 举报

ID:811405 发表于 2021-1-28 11:47 | 显示全部楼层
用定时器精确延时有误差,可不可以把误差值测出来,设置定时的时候再减去误差值
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表