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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
4 ?) l7 L3 U3 d! n7 a0 a$ I

为什么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%误差率,但在允许范围,所以没多大影响。

5 D5 B. Z2 U1 M5 R


3 I) C6 w- b* i, G( n% p

9 E% K" G2 d# x3 j
5 J( g. L/ O! k8 R* @+ Q: s7 C

3 t7 S; I2 ]6 ]! v  f
1 p3 _* K* M. v

该用户从未签到

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

该用户从未签到

3#
发表于 2019-9-17 10:33 | 只看该作者
本帖最后由 超級狗 于 2019-9-17 10:43 编辑 " f+ j8 n- s( `
# F  x& K% E1 `+ e, h0 K8 @
早期的 UART IC 16450 / 16550,使用的晶振頻率就是用 1.8432MHz。4 |' D4 b" V' V$ l: c$ Y' M0 q7 |
  ^6 y2 ~" ^' V
後來 UART 被整合到 MCU 中,為了可以除出原來的通訊頻率,最簡單的方式就是選 1.8432MHz 的整數倍。7 ?; l7 J0 V8 f  ?) X
" Y# Z, }, c3 n/ S: g# D. s$ _4 P1 R
1.8432MHz x 4 = 7.3728MHz(適用於 8MHz MCU)6 s4 A2 P- D# Y" x$ j
1.8432MHz x 5 = 9.216MHz(適用於 10MHz MCU)
1 |% X0 v6 ?# A- L1 h7 _) [; Z7 s1.8432MHz x 6 = 11.0592MHz(適用於 12MHz MCU)" x; r( p/ _( p! z3 ?5 R  x1 E
1.8432MHz x 8 = 14.7456MHz(適用於 16MHz MCU)
3 c% w/ a: v9 k1.8432MHz x 9 = 16.5888MHz(我們用它偷跑 16MHz MCU
2 U. z& a! ]1 u! K4 L2 X3 T
8 @3 A- g  A, f( _
# W+ ?. G0 R9 E5 n3 a7 i2 a% P9 H! i
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-12 15:42 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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