在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波特
|