查看: 2538|回复: 3
打印 上一主题 下一主题

51单片机默认使用11.0592的原因

[复制链接]
跳转到指定楼层
沙发
发表于 2014-7-27 15:46:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在有许多极好的编译程序能显示代码,在速度和尺寸两方面都是非凡有效的。现代的编绎器非常适应寄存器和变量的使用方面,比手动编译有较好的优越性,甚至在其它常规方面,所以C应是看代码方面最合适的。   
答1: 因为它能够准确地划分成时钟频率,与UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常被使用的。      
答2: 当定时器1被用作波特率发生器时,波特率工作于方式1和方式3是由定时器1的溢出率和SMOD的值(PCON.7------双倍速波特率)决定:     
方式1、3波特率= (定时器1的溢出率)      
特殊时,定时器被设在自动重袋模式(模式2,TMOD的高四位为0100B),其为:      
方式1、 3波特率=      
11.0592MHZ晶振的一些典型波特率如下:   

波特率 SMOD TH1
19200 10FDH
9600 00FDH
4800 00FAH
2400 0 0F4H
1200 0 0E8H
300 0 0A0H
更换一种计算方式,它将以修改公式达到我们需求的波特率来计算出晶振。     
最小晶振频率=波特率x 384 x 2 SMOD
这就是我们所需波特率的最小晶振频率,此频率能成倍增加达到我们需求的时钟频率。   
例如:波特率为19.2KH2的最小晶振频率:            
3.6864=19200x384x2(波特率为19.2K的SMOD为1 )           
11.0592=3.6864x3            
其中TH1是由倍乘数(3)确定           
TH1=256-3=253=0FDH      
用来确定定时器的重装值,公式也可改为倍乘数的因子:     
晶振频率=波特率x(256-TH1)x384x2 SMOD     
这是波特率为19.24K的晶振频率。      
以上的例子可知,被乘数(3)是用来确定TH1:     
TH1=256-3=253=0FDH     
19.2K波特率的晶振为      
11.0592=19200x(256-0FDH)x384x2(19.2 k的SMOD为1)      
其它值也会得出好的结果,但是11.0592MHZ是较高的晶振频率,也允许高波特率。

回复

使用道具 举报

板凳
发表于 2014-7-27 15:48:01 | 只看该作者
如此专业的技术文章这个必须顶!!!!!普及知识了啊!!!!
回复 支持 反对

使用道具 举报

地板
发表于 2014-7-27 16:57:27 | 只看该作者
这个还真没想过,学习了
回复 支持 反对

使用道具 举报

4#
发表于 2014-7-28 09:10:05 | 只看该作者
好复杂的感觉
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

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