|
|
| | -文章搜索 - 最新文章 - | |
第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驱动 |
|
|
|