0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机应用误差原因分析

电子工程技术 来源:电子工程技术 作者:电子工程技术 2020-06-24 09:31 次阅读

单片机应用中,常常会遇到这种情况,在用单片机制作电子钟或要求根据时钟启控的控制系统时,会突然发现当初校准了的电子时钟的时间竟然变快或是变慢了。

于是,尝试用各种方法来调整它的走时精度,但是最终的效果还是不尽人意,只好每过一段时间手动调整一次。那么,是否可使时钟走时更精确些呢?现探讨如下:

误差原因分析

1.单片机电子时钟的计时脉冲基准,是由外部晶振的频率经过12分频后提供的,采用内部的定时,计数器来实现计时功能。所以,外接晶振频率的精确度直接影响电子钟计时的准确性。

2.单片机电子时钟利用内部定时,计数器溢出产生中断(12MHz晶振一般为50ms)再乘以相应的倍率,来实现秒、分、时的转换。大家都知道,从定时,计数器产生中断请求到响应中断,需要3_8个机器周期。定时中断子程序中的数据人栈和重装定时,计数器的初值还需要占用数个机器周期。此外。从中断人口转到中断子程序也要占用一定的机器周期。例如:

单片机应用误差原因分析

从上述程序可以看出,从中断人口到定时/计数器初值的低8位装入需要占用2+2+2=6个机器周期。所以,在编程时一般会把这6个机器周期加入定时/计数器的初值中。但是,从定时,计数器溢出中断请求到执行中断需要几个机器周期(3~8个机器周期)。就很难确定准确值,正是这一原因导致了电子时钟计时的不准。

解决方法

1、采用高精度晶振方案

虽然采用高精度的晶振可以稍微提高电子钟计时的精确度,但是晶振并不是导致电子钟计时不准的主要因素,而且高精度的晶振价格较高,所以不必采用此方案。

2、动态同步修正方案

从程序人手,采用动态同步修正方法给定时,计数器赋初值。动态同步修正方法如下:由于定时,计数器溢出后,又会从O开始自动加数,故在给定时/计数器再次赋值前,先将定时,计数器低位(TLO)中的值和初始值相加,然后送人定时,计数器中,此时定时,计数器中的值即为动态同步修正后的准确值。具体程序如下:

单片机应用误差原因分析

采用此种方法后,相信制作的电子时钟的精度已有提高了。

3.自动调整方案

采用同步修正方案后,电子时钟的精度虽然提高了很多,但是由于晶振频率的偏差和一些其他未知因素的影响(同一块电路板、同样的程序换了一片单片机后,走时误差不一样,不知是何原因),时间长了仍然会有积累误差。为此,可采用自动调整方案。实际上是一种容错技术。其自动调整原理为:实测出误差Is所需的时间,然后每隔这样一段时间后就对秒进行加“1”或减“1”调整。例如:电子钟每过50小时就慢1秒,其自动调整程序如下:

单片机应用误差原因分析

以下是一个完整实例:

单片机应用误差原因分析

单片机应用误差原因分析

结语

使用此方法调整较费时间,但效果非常好。经实验,一次调整可/以将月误差控制在Is左右,如按此方法再次测出误差Is所需的天数并进行二次调整,其精度会更高。
责任编辑:pj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620825
  • 计数器
    +关注

    关注

    32

    文章

    2121

    浏览量

    92973
  • 电子时钟
    +关注

    关注

    11

    文章

    197

    浏览量

    24121
收藏 人收藏

    评论

    相关推荐

    rc串并联选频电路误差原因分析

    RC串并联选频电路误差原因分析 选频电路是一种用于选择特定频率信号的电路,在电子设备中广泛应用。其中,RC串并联选频电路是一种常见的选频电路。然而,RC串并联选频电路可能存在误差,降低
    的头像 发表于 03-01 13:58 556次阅读

    伺服位置误差大的原因 怎么解决伺服电机定位误差过大的问题?

    等多个方面分析伺服位置误差大的原因,并提供相应的解决方法,帮助读者更好地理解和应对该问题。 一、机械结构 伺服电机的机械结构是定位误差的一个重要来源。机械结构问题可能包括: 1. 机械
    的头像 发表于 12-25 13:57 2422次阅读

    请问单片机串口失败主要原因是什么?

    单片机串口通信,初始化按照书上写得,但是仍然通信失败,不知道是什么原因。想知道一般大家遇到的通信通信失败原因有哪些?
    发表于 11-07 06:53

    单片机ADC读取的数据浮动较大有哪些原因

    单片机ADC读取的数据浮动较大,可能有哪些原因
    发表于 11-02 07:21

    单片机中RAM少有哪几点原因

    单片机中RAM少有哪几点原因? 正文: 单片机是指把整个计算机系统集成在一个芯片之内,具有微型化、低功耗、低成本等特点的集成电路。单片机系统中RAM少常有几点
    的头像 发表于 10-29 16:23 397次阅读

    单片机程序又跑飞?从这6个方面查找原因

    单片机程序又跑飞?从这6个方面查找原因
    的头像 发表于 10-26 16:43 458次阅读

    单片机解密失败的原因

    单片机解密存在失败的概率,从我们解密的经验来看,按概率来讲,大概存在1%单片机解密的失败概率,存在0.3%的损坏母片的概率。所以我们不保证100%解密成功,也不保证100%不破坏母片,那么,单片机解密失败有那几点
    发表于 10-25 09:49 242次阅读

    单片机常有Flash,而不常有EEPROM原因

    单片机常有Flash,而不常有EEPROM原因
    的头像 发表于 10-24 15:38 369次阅读
    <b class='flag-5'>单片机</b>常有Flash,而不常有EEPROM<b class='flag-5'>原因</b>

    定时器计时问题,每一片单片机计时显示都不一样,误差很大的原因

    同一个单片机计时程序,STC12C5410AD单片机型号,每一片单片机计时显示都不一样,误差很大,一分钟差5S左右,请各位大神帮忙分析一下什
    发表于 10-19 08:18

    单片机异常复位原因 简述单片机如何复位

    单片机异常复位原因 简述单片机如何复位  单片机异常复位是指在正常运行期间,单片机出现了不可恢复的故障,导致异常复位。常见的异常复位
    的头像 发表于 10-17 16:44 2300次阅读

    引起单片机晶振不起振的原因有哪些呢?

    遇到单片机晶振不起振是常见现象,那么引起晶振不起振的原因有哪些呢? (1) PCB板布线错误; (2) 单片机质量有问题; (3) 晶振质量有问题; (4) 负载电容或匹配电容与晶振不匹配或者电容质量有问
    发表于 10-13 11:45 941次阅读

    单片机与labview做的上位通信,labview的数据无法给到单片机原因

    [i]​我用labview做了一个上位波形显示的界面,用串口助手与labview通信时,数据可以正常收发,用单片机与串口助手通信时,数据也可以正常收发,但是当单片机与labview通信时,labview的数据无法给到
    发表于 09-28 06:08

    单片机中ADC采集都存在哪些误差

    单片机中ADC采集都存在哪些误差
    的头像 发表于 09-18 16:31 2315次阅读
    <b class='flag-5'>单片机</b>中ADC采集都存在哪些<b class='flag-5'>误差</b>?

    单片机蜂鸣器不响是什么原因

    单片机蜂鸣器不响是什么原因  单片机蜂鸣器是常见的电子元件之一,可用于报警、提示等场合。然而,在实际应用中,单片机蜂鸣器不响的情况也时有发生。那么,
    的头像 发表于 09-13 10:43 3370次阅读

    单片机写芯片超时是什么原因

    单片机写芯片超时是什么原因?  单片机写芯片超时是指在单片机与外部芯片进行数据传输时,无法在规定的时间内完成交互流程。这种情况通常发生在单片机
    的头像 发表于 09-13 10:43 4080次阅读