单片机在做定时计数器时能用11.0592m的晶振吗?

网上有关“单片机在做定时计数器时能用11.0592m的晶振吗?”话题很是火热,小编也是针对单片机在做定时计数器时能用11.0592m的晶振吗?寻找了一些与之相关的一些信息进行分...

网上有关“单片机在做定时计数器时能用11.0592m的晶振吗?”话题很是火热,小编也是针对单片机在做定时计数器时能用11.0592m的晶振吗?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

关键看你需要定时的精度需要到什么

以51单片机为例,如果用12MHz的晶振

一计数的周期是12个时钟周期,

所以计数频率是1MHz,一个记数的周期是1us

刚好整数,是比较好计算,如果需要10ms的定时

那么计数就要10000个周期

如果换成11.0592M的晶振,

一个记数周期,12个时钟周期,约为1.085us

那么要定时 10ms,就要 10ms/1.085us约为 9216.6个周期

取9216或9217 和实际的误差也就

9216*1.085-10000=-0.640us

9217*1.085-10000=0.445us

这样误差不会超过1us

实际上,使用11.0592M的晶振的误差不会超过1.1us

而通常控制中用到的定时可能到ms甚至s的量级,基本上可以忽略的

只是使用11.0592M晶振,其周期非整数,在计算需要多少个周期的时候稍为麻烦一点而已

单片机常用的是12M跟11.0592MHZ

一般情况下,一个机器周期是12个时钟周期,所以用12M时,一个机器周期是1US,好计算,而且速度相对是最高的,当然现在也有更高频率的单片机。

而进行通信是,一般选择11.0592M,12M频率进行串行通信不容易实现标准的波特率,比如9600,4800,而11.0592M计算时正好可以得到,因此在有通信接口的单片机中,一般选11.0592M

计算一下就知道了。如我们要得到9600

的波特率,晶振为11.0592M

和12M,定时器1

为模式2,SMOD

设为1,分别看看那所要求的TH1

为何值。代入公式:

11.0592M

9600=(2÷32)×((11.0592M/12)/(256-TH1))

TH1=250

12M

9600=(2÷32)×((12M/12)/(256-TH1))

TH1≈249.49

上面的计算可以看出使用12M

晶体的时候计算出来的TH1

不为整数,而TH1

的值只能取整数,这样它就会有一定的误差存在不能产生精确的9600

波特率。当然一定的误差是可以在使用中被接受的,就算使用11.0592M

的晶体振荡器也会因晶体本身所存在的误差使波特率产生误差,但晶体本身的误差对波特率的影响是十分之小的,可以忽略不计

(扬兴科技为您解答)

关于“单片机在做定时计数器时能用11.0592m的晶振吗?”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[kpedzd]投稿,不代表迪紫号立场,如若转载,请注明出处:https://kpedzd.cn/bkdq/202501-61503.html

(6)

文章推荐

发表回复

本站作者后才能评论

评论列表(4条)

  • kpedzd
    kpedzd 2025年01月01日

    我是迪紫号的签约作者“kpedzd”!

  • kpedzd
    kpedzd 2025年01月01日

    希望本篇文章《单片机在做定时计数器时能用11.0592m的晶振吗?》能对你有所帮助!

  • kpedzd
    kpedzd 2025年01月01日

    本站[迪紫号]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育

  • kpedzd
    kpedzd 2025年01月01日

    本文概览:网上有关“单片机在做定时计数器时能用11.0592m的晶振吗?”话题很是火热,小编也是针对单片机在做定时计数器时能用11.0592m的晶振吗?寻找了一些与之相关的一些信息进行分...

    联系我们

    邮件:迪紫号@sina.com

    工作时间:周一至周五,9:30-18:30,节假日休息

    关注我们