找回密码
 注册
关于网站域名变更的通知
查看: 424|回复: 2
打印 上一主题 下一主题

51单片机的晶振一般使用11.0592,为什么?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-9-9 10:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
9 j6 \. Z. E2 D9 z+ u6 Q

为什么51单片机的晶振一般使用11.0592?

用11.0592晶振的原因是51单片机的定时器导致的。用51单片机的定时器做波特率发生器时,如果用11.0592Mhz的晶振,根据公式算下来需要定时器设置的值都是整数;如果用12Mhz晶振,则波特率都是有偏差的,比如9600,用定时器取0XFD,实际波特率10000,一般波特率偏差在4%左右都是可以的,所以也还能用STC90C516 晶振12M 波特率9600 ,倍数时误差率6.99%,不倍数时误差率8.51%,数据肯定会出错。 这也就是串口通信时大家喜欢用11.0592MHz晶振的原因,在波特率倍速时,最高可达到57600,误差率0.00%。 用12MHz,最高也就4800,而且有0.16%误差率,但在允许范围,所以没多大影响。

9 t" X" g" N% l+ V7 L- ?2 }


% w4 {- D- ~% U+ a% }  H

9 E% K" G2 d# x3 j( T+ p7 _) U: f% }7 R/ V' F% \
$ m) r) V* A" C
0 z. ^# O. {( u- [' _5 G

该用户从未签到

2#
发表于 2019-9-9 11:08 | 只看该作者
谢谢分享,这个主要在串行通信里面用。

该用户从未签到

3#
发表于 2019-9-17 10:33 | 只看该作者
本帖最后由 超級狗 于 2019-9-17 10:43 编辑
3 G1 }( w% i$ [  Y7 l& X+ l! c$ B7 @! R' z
早期的 UART IC 16450 / 16550,使用的晶振頻率就是用 1.8432MHz。. e3 S, h( T- u/ c2 ^7 J
; ~2 J  {0 H3 F  Y" c
後來 UART 被整合到 MCU 中,為了可以除出原來的通訊頻率,最簡單的方式就是選 1.8432MHz 的整數倍。
5 H2 B# M$ \# j' n5 P. g5 C
9 H1 q9 y- t" ?3 k5 J- z& p1.8432MHz x 4 = 7.3728MHz(適用於 8MHz MCU)  J$ d: ?- }$ C1 l% n0 l4 u1 ^
1.8432MHz x 5 = 9.216MHz(適用於 10MHz MCU)
4 c: e' c) Y' F1 c1 x1.8432MHz x 6 = 11.0592MHz(適用於 12MHz MCU)
& k- {- V) n* N2 Y" @/ U" g2 i1.8432MHz x 8 = 14.7456MHz(適用於 16MHz MCU)
" i" F2 V( z' @1.8432MHz x 9 = 16.5888MHz(我們用它偷跑 16MHz MCU : S( f% a/ Z$ i0 N
8 I" [3 _# P" F6 K  T: T
2 w# h: i' [( {, D2 J
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-28 12:23 , Processed in 0.062500 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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