找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1487|回复: 5
打印 上一主题 下一主题
收起左侧

为什么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);}




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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系列更快。
回复

使用道具 举报

5#
ID:752974 发表于 2021-1-23 16:21 | 只看该作者
有误差是正常的,11.0592/12不是整数。再者,晶振也不能做到标称值那么准,有误差是绝对的。
回复

使用道具 举报

6#
ID:811405 发表于 2021-1-28 11:47 | 只看该作者
用定时器精确延时有误差,可不可以把误差值测出来,设置定时的时候再减去误差值
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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