老古开发网首页
导航:老古开发网首页文章索引索引第2527页文章分类单片机第47页→[串口波特率选择]
| -文章搜索 - 最新文章 - |

第3088篇:串口波特率选择

发布时间:2006年10月15日 点击次数:4802
来源:   作者:
 
波特率选择

如前所述,在串行通讯中,收发双方的数据传送率(波特率)要有一定的约定。在8051串行口的四种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率控制。


方式0

方式0的波特率固定为主振频率的1/12。


方式2

方式2的波特率由PCON中的选择位SMOD来决定,可由下式表示:

波特率=2的SMOD次方除以64再乘一个fosc,也就是当SMOD=1时,波特率为1/32fosc,当SMOD=0时,波特率为1/64fosc

3.方式1和方式3

定时器T1作为波特率发生器,其公式如下:


波特率=定时器T1溢出率

T1溢出率= T1计数率/产生溢出所需的周期数


式中T1计数率取决于它工作在定时器状态还是计数器状态。当工作于定时器状态时,T1计数率为fosc/12;当工作于计数器状态时,T1计数率为外部输入频率,此频率应小于fosc/24。产生溢出所需周期与定时器T1的工作方式、T1的预置值有关。

定时器T1工作于方式0:溢出所需周期数=8192-x
定时器T1工作于方式1:溢出所需周期数=65536-x

定时器T1工作于方式2:溢出所需周期数=256-x

因为方式2为自动重装入初值的8位定时器/计数器模式,所以用它来做波特率发生器最恰当。

当时钟频率选用11.0592MHZ时,取易获得标准的波特率,所以很多单片机系统选用这个看起来“怪”的晶振就是这个道理。

下表列出了定时器T1工作于方式2常用波特率及初值。

常用波特率 Fosc(MHZ) SMOD TH1初值
19200 11.0592 1 FDH
9600 11.0592 0 FDH
4800 11.0592 0 FAH
2400 11.0592 0 F4h
1200 11.0592 0 E8h

例如9600 11.0592 0 FDH
波特率=定时器T1溢出率

T1溢出率= T1计数率/产生溢出所需的周期数

产生溢出所需的周期数=256-FD(253)=3
SMOD=0 11059200/12*3 *1/32=9600

欢迎进入老古论坛进行讨论
[单片机] 相关文章:
EMC8BIT单片机指令应用的误区与技巧
简介:
EMC8BIT单片机指令应用的误区与技巧 EMC的基本指令语法,其实也就57/58条,如何变化折腾,就看各位的修行造化了。 但是,新手上路总容易进入一些误区,而老鸟们的一些技巧也值得借鉴。 废话少说,言归正传,且看匠人娓娓道来…… 1.减法指令的误区 之一:关于ACC EMC的减法指令有三条,如下: SUB A,R (R-A→A) SUB R,A (R-A→R) SUB A,K (K-A→A) 需要注意的是,不论A的位置在前面还是后面,A都是减数,不是被减数. ......

24CXX系列读写程序(EMC指令版)
单片机模拟I2C总线及AT24C01应用实例
AT89C51\52的编程原理
在EM78Pxx上模拟8(COM)*8(SEG)LCD驱动
 
下一个:[单片机]EMC指令版本SLE4428卡读写程序
简介:
SLE4428卡读写程序。这个EMC指令版本是根据C51程序改写的。已经通过了调试。 ;============================ ;发送数据子程序 ;入口: DBUF_24 =要发送的数据(8_BIT) ;============================ ic_send_data: MOV A,@8 ;循环次数=8 MOV COUNT_24,A TXLP: RRC DBUF_24 ;左移(带C) CALL ic_BITOUT ;输出1_BIT DJZ......

上一个:[单片机]EM78系列单片机的编程技巧

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:20分钟 执行时间:0毫秒