公司新闻 行业动态

51单片机为何用11.0592M晶振

发布时间:2021/5/28 16:20:04

用11.0592晶振的原因是51单片机的定时器导致的。用51单片机的定时器做波特率发生器时,如果用11.0592Mhz的晶振,根据公式算下来需要定时器设置的值都是整数;如果用12Mhz晶振,则波特率都是有偏差的,
比如以9600B/s的速率通信,那么发送数据的频率为9600HZ

用12M的晶振来分频,N = 12M/9600 =1250

用11.0592M来分频,N = 11.0592M/9600 = 1152 

这么看似乎没有问题,但查找资料发现有一个叫12T单片机的概念,就是说12个晶振周期(12M的晶振,一个晶振周期为1/12M),机器做一个指令周期,刚好就是1/12M*12=1us,12T的晶振为12M单片机的时钟频率的最小单位是12M/12=1M,不是晶振12M。



故串口发送的周期发送要求为9600,这个分频系数需要用1M(12M的晶振的12T单片机)去分,即1M/9600 =104.167,这不为整数倍啊,不行的,会导致数据传输的两端因为时钟的误差,导致数据传输错误。用11.0592M即可解决这个问题,11.0592M/(12*9600)=96可以得到整数。
这也就是串口通信时大家喜欢用11.0592MHz晶振的原因,在波特率倍速时,最高可达到57600,误差率0.00%。 用12MHz,最高也就4800,而且有0.16%误差率,但在允许范围,所以没多大影响。

技术支持:万广互联 Copyright © 2018-2019 深圳市恒通宏达电子有限公司 All Rights Reserved. 备案号:粤ICP备16036693号-3