51單片機(jī)串口通信實(shí)例
波特率計(jì)算:在了解了串行口相關(guān)的寄存器之后,我們可得出其通信波特率的一些結(jié)論:
① 方式0 和方式2 的波特率是固定的。
在方式0 中, 波特率為時(shí)鐘頻率的1/12, 即fOSC/12,固定不變。
在方式2 中,波特率取決于PCON 中的SMOD 值,即波特率為:

當(dāng)SMOD=0 時(shí),波特率為fosc/64 ;當(dāng)SMOD=1 時(shí),波特率為fosc/32。
② 方式1 和方式3 的波特率可變,由定時(shí)器1 的溢出率決定。

當(dāng)定時(shí)器T1 用作波特率發(fā)生器時(shí),通常選用定時(shí)初值自動(dòng)重裝的工作方式2( 注意:不要把定時(shí)器的工作方式與串行口的工作方式搞混淆了)。其計(jì)數(shù)結(jié)構(gòu)為8 位,假定計(jì)數(shù)初值為Count,單片機(jī)的機(jī)器周期為T(mén),則定時(shí)時(shí)間為(256 ?Count)×T 。從而在1s內(nèi)發(fā)生溢出的次數(shù)(即溢出率)可由公式(1)所示:

從而波特率的計(jì)算公式由公式(2)所示:

在實(shí)際應(yīng)用時(shí),通常是先確定波特率,后根據(jù)波特率求T1 定時(shí)初值,因此式(2)又可寫(xiě)為:

二、電路詳解
下面就對(duì)圖1 所示電路進(jìn)行詳細(xì)說(shuō)明。

圖1 串行通信實(shí)驗(yàn)電路圖
評(píng)論