
51单片机波特率选择.doc
5页波特率选择在串行通讯中,收发双方的数据传送率(波特率)要有一定的约定在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方式1和方式3定时器T1作为波特率发生器,其公式如下:::]jIlLLid'波特率二32定时器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时,取易获得标准的波特率,所以很多单片机系统选用这个看起来“怪”的晶振就是这个道理F表列出了定时器T1工作于方式2常用波特率及初值常用波特率Fosc(MHZ)SMODTH1初值240011.05920F4H120011.05920E8H1920011.05921FDH960011.05920FDH480011.05920FAH例如960011.05920FDHI--!jiHLud波特率二32定时器T1溢出率T1溢出率=T1计数率/产生溢出所需的周期数产生溢出所需的周期数=256-FD(253)=3SMOD=011059200/12*3*1/32=9600波特率计算在串行通信中,收发双方对发送或接收的数据速率要有一定的约定,我们通过软件对MCS—51串行口编程可约定四种工作方式其中,方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率决定串行口的四种工作方式对应着三种波特率由于输人的移位时钟的来源不同,所以,各种方式的波特率计算公式也不同一、方式0的波特率方式0时,移位时钟脉冲由56(即第6个状态周期,第12个节拍)给出,即每个机器周期产生一个移位时钟,发送或接收一位数据。
所以,波特率为振荡频率的十二分之一,并不受PCON寄存器中SMOD的影响,即:方式0的波特率=fosc/12二、疔式2的滅特卑申行口方式2浊特率的产生与方式0不局"即的人时种源的頻率不网•控制笑胶与扯送的移位时钟由振髓频率的第二节抑P肌即[陶炸)给出.所I几方式2跛特率取决于?C0N中SMOD位的但,当SMOrj=oal^特率为f陆的六十四分之-;若SMO注特率次{政的三十二力之一*即:方式2的塡特率=—*foa?三、方式l和方式3的波特率方式1和方式3的移位时钟脉冲由定时器T1的溢出率决定,故波特宰由定时器T1的溢出率与SMOD值同时决定,即:方式1和方式3的波特率=2SMOD/32.T1溢出率其中,溢出率取决于计数速率和定时器的预置值计数速率与TMOD寄存器中C/T的状态有关当C/T=0时,计数速率二fosc/2;当C/T=1时,计数速率取决于外部输入时钟频率当定时器T1作波特率发生器使用时,通常选用可自动装入初值模式(工作方式2),在工作方式2中,TL1作为计数用,而自动装入的初值放在TH1中,设计数初值为x,则每过“256一x”个机器周期,定时器T1就会产生一次溢出为了避免因溢出而引起中断,此时应禁止T1中断。
这时,溢出周期为:lOSC溢出率为溢出周期的倒数,所囚,冇:液特率=誓一此时、走吋器T】在工怦方式2时的初值対:乂=s同一——嗣v菠持率例:已知8051单片机时抻抿荡频凍为H.0酣2MHz+选用定时器丁1工作方式2作枝特率发生器*垃持率^2400波特.求初值解:设讃特率控制{^SMOD=0,则有:3B4XE400x*5-“j叱??TF+DT2F4H所跖CTHlJ=(TLn=F4H.系统晶振频率选为11.0592MHZ就是为了使初值为整数,从而产生精确的波特率如果串行通信选用很低的波特率,可将定时器Tl置于工作方式0或工作方式1,但在这种情况下,T1溢出时,需用中断服务程序重装初值中断响应时间和执行指令时间会使波特率产生一定的误差,可用改变初值的办法加以调整表6—2列出了各种常用的波特率及其初值ft6-2常用渡特睾却其譬IK选择关礙谀特事{则SMOD定吋器GC/T模式初值方式OilMHzIgMHtXXXX方式2,375k12MHr1X乂X方式],a:62.5K12MHtI&£FFH19.2KIf;053MHz1Q2FDH9.5K11.05&MHZ002FDH4llrSMHaD02FAH2^KlbUS^MHzG02F4H1.?Ku.05DMHz002E8H137-SKll+05&MHz002IDHUDiHi6MHl272HnoHz6MH1Q01FEEBfl。












