大家可能会有疑惑,为什么单片机系统的晶振要选用11.0592MHz 呢?通过上面的计算可能有些人已经明白了,我们用一个小知识点来为大家解答这个疑感。
知识点:为什么51系列单片机常用11.0592MHz的晶振设计?
常用波特率通常按规范取为1200,2400, 4800, 9600, 。.. 若采用晶振12MHz或6MHz,计算得出的TI定时初值将不是一-个整数,这样通信时便会产生积累误差,进而产生波特率误差、影响串行通信的同步性能,解决的方法只有调整单片机的时钟频率Jo,通常采用11.0592MHz晶振。因为用它能够非常准确地计算出T1定时初值,即使对于较高的波特率(19600,19200), 不管多么古怪的值,只要是标准通信速率,使用1.0592MHz的晶振可以得到非常准确的数值。
2.分析:
但是,在这里博主还是存在一些疑问,为什么不是其他数呢?或者说11.0592M这个数则么产生的?
我们假定0-12_000_000之间有一个数满足以下条件的时候,这个数比较适合晶振的频率:
1.当初值在0-255的情况下,这个数能够整除较多的数(整除的数越多,便可获得能够整除的波特率的种 类越多);
2.而且这个数应该较大,晶振频率越快,波特率越大,传输的速度越快;
3.在SOMD加倍和不加倍的情况下,这个数都能够整除较多的数。
因此,我们选出在SOMD加倍和不加倍的两种情况下,都可以整除较多数的频率(将两种情况的加在一起)。
注:
1.这里我们分析填充初值的范围为0-255,(因为大多数的串口波特率设定使用定时器由硬件自动重装初值的方式二)。
2.这里我们示范分析定时器方式一的。
3.这里晶振的频率测试范围为0-12000000。
4.当SMOD为0时,除数 32*1200,当SMOD为1时,除数 16*1200。(这里考虑到波特率一般是100的倍数,除数由计算公式得出)
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部1条评论
快来发表一下你的评论吧 !