波特率为每秒传输二进制代码的位数,1波特=1位/秒,单位是bps(位/秒)。单片机或计算机在串口通信时的速率用波特率表示。
波特率的计算:
单片机串行口可设定4种工作方式,计算公式如下:
方式0:fosc/12 //fosc为系统晶振频率
方式1:(2^SMOD/32)*(T1溢出率)//T1溢出率为其倒数
方式2:(2^SMOD/64)*fosc //SMOD为PCON寄存器最高位
方式3:(2^SMOD/32)*(T1溢出率)
已知串口通信方式1下,波特率为9600bps,系统晶振频率为11.0592MHz,求TL1,TH1中装入的初值(定时器1方式2)
解:设初值X,则定时器每计256-X个数溢出一次,每计一个数的时间为一个机器周期,一个机器周期等于12个时钟周期,所以计一个数的时间为12/11.0592MHz(s),则定时器溢出一次的时间为[256-X]12/11.0592。方式1的波特率=(2^SMOD/32)(T1溢出率),取SMOD=0,则有9600=(1/32)*11059200/[256-X]*12,得到X=253
通常都是固定的,一般都是根据所使用的波特率来求定时器初值。