首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

波特率的计算解决方案

2012-09-06 
波特率的计算51单片机的晶振是:11.09520MHZ,如果要产生9600bps的波特率,下面是我在网上找到了公式:波特率

波特率的计算
51单片机的晶振是:11.09520MHZ,如果要产生9600bps的波特率,下面是我在网上找到了公式:
波特率=1/16或1/32*(晶振的频率/12*(256-TH1))
代入:
9600=11059200/32*12*(256-TH1)
TH1=TH0=FDH 
现在的问题是:为什么要除以:32 呢?


[解决办法]

你上面的计算方法貌似是错误的,正确的如下:

(65535-初值)*晶振频率/12 = 1/波特率;


[解决办法]
LS,他那个是自动重载方式的

16和32哪来的我一时也想不太清楚

要不LZ看一下数据手册看有没有分频什么的

[解决办法]
还有个16倍分频....标准51是这样的.

[解决办法]
给UART的时钟频率应该是波特率的16倍,以便在第7,8,9个时钟处检测Rx的值。
[解决办法]
给UART的时钟频率,不是TX的输出,UART十位指的是10个波特率对应的时间,而
给UART的时钟频率应该是波特率的16倍,以便在第7,8,9个时钟处检测Rx的值。
Rx上一位也是指波特率对应的一位。
[解决办法]
UART硬件对一个位又进行了分割...16等分,并在中间位置多次采样RXD管脚,以减少干扰造成的数据错误...
[解决办法]
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4023698&bbs_page_no=1&search_mode=4&search_text=HuWenjin&bbs_id=9999

我提供一个直接计算,生成初始化程序的。

呵呵,还有生成整套操作函数的,中断方式发送与接收
[解决办法]
其实这是公式:
波特率=(2^smod /32)*(定时器T1溢出率)
溢出率=溢出周期的倒数
溢出周期=(256-X)*12/Fosc
波特率=(2^smod * Fsoc)/(32 *12*(256-X))
你看看吧,应该会理解的,2^smod表示2的SMOD次幂,SMOD可取值为0或1,是零的时候就是32分之一了。




热点排行