在8051串行口编程的4种工作方式。方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1溢出率来决定的。所以,串行口的四种工作方式对应着三种波特率。各种方式的波特率计算公式是不同的。
1.方式0的波特率
方式0时,波特率固定为振荡频率的十二分之一。
波特率=fosc/12 2.方式2的波特率
方式2波特率的产生与方式0不同,即输入的时钟源不同,方式2波特率取决于PCON中SMOD位的值。当SMOD=0时,波特率为fosc的六十四分之一;若SMOD=1,则波特率为fosc的三十二分之一,即:
波特率=2SMOD* fosc/64 3.方式1和方式3的波特率
8051串行口方式1和方式3的波特率由定时器T1的溢出率与SMOD值同时决定。
方式1、方式3波特率=T1溢出率/n。
当SMOD=0时,n=32;SMOD=1时,n=16。所以,可用下式确定方式1和方式3的波特率:
波特率*T1溢出率=2SMOD * T1溢出率/32 其中,T1溢出率取决于T1的计数率(计数率=fosc/12)和T1预置的初值。若定时器T1采用模式1时,波特率公式如下:
例如:8051单片机时钟振荡频率为12MHz,选用定时器T1工作方式2作波特率发生器,初值为FFH,波特率控制位(SMOD)=1,求波特率。
解:波特率=(2/32)*(12*106/12)*(1/(256-255))=62500波特
|