新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)中關(guān)于波特率的介紹

        51單片機(jī)中關(guān)于波特率的介紹

        作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò) 收藏
        在串行通訊中,收發(fā)雙方的數(shù)據(jù)傳送率(波特率)要有一定的約定。在8051串行口的四種工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可變的,由定時(shí)器T1的溢出率控制。


        方式0
        方式0的波特率固定為主振頻率的1/12。

        方式2
        方式2的波特率由PCON中的選擇位SMOD來(lái)決定,可由下式表示:

        波特率=2的SMOD次方除以64再乘一個(gè)fosc,也就是當(dāng)SMOD=1時(shí),波特率為1/32fosc,當(dāng)SMOD=0時(shí),波特率為1/64fosc

        方式1和方式3
        定時(shí)器T1作為波特率發(fā)生器,其公式如下:
        波特率=定時(shí)器T1溢出率

        T1溢出率= T1計(jì)數(shù)率/產(chǎn)生溢出所需的周期數(shù)


        式中T1計(jì)數(shù)率取決于它工作在定時(shí)器狀態(tài)還是計(jì)數(shù)器狀態(tài)。當(dāng)工作于定時(shí)器狀態(tài)時(shí),T1計(jì)數(shù)率為fosc/12;當(dāng)工作于計(jì)數(shù)器狀態(tài)時(shí),T1計(jì)數(shù)率為外部輸入頻率,此頻率應(yīng)小于fosc/24。產(chǎn)生溢出所需周期與定時(shí)器T1的工作方式、T1的預(yù)置值有關(guān)。

        定時(shí)器T1工作于方式0:溢出所需周期數(shù)=8192-x
        定時(shí)器T1工作于方式1:溢出所需周期數(shù)=65536-x

        定時(shí)器T1工作于方式2:溢出所需周期數(shù)=256-x

        因?yàn)榉绞?為自動(dòng)重裝入初值的8位定時(shí)器/計(jì)數(shù)器模式,所以用它來(lái)做波特率發(fā)生器最恰當(dāng)。

        當(dāng)時(shí)鐘頻率選用11.0592MHZ時(shí),取易獲得標(biāo)準(zhǔn)的波特率,所以很多單片機(jī)系統(tǒng)選用這個(gè)看起來(lái)“怪”的晶振就是這個(gè)道理。

        下表列出了定時(shí)器T1工作于方式2常用波特率及初值。

        常用波特率 Fosc(MHZ) SMOD TH1初值
        19200 11.05921 FDH
        960011.0592 0 FDH
        4800 11.0592 0 FAH
        2400 11.0592 0 F4H
        1200 11.0592 0 E8H

        例如9600 11.0592 0 FDH
        波特率=定時(shí)器T1溢出率

        T1溢出率= T1計(jì)數(shù)率/產(chǎn)生溢出所需的周期數(shù)

        產(chǎn)生溢出所需的周期數(shù)=256-FD(253)=3
        SMOD=0 11059200/12*3 *1/32=9600

        本文引用地址:http://www.104case.com/article/201611/320471.htm

        波特率計(jì)算


        在串行通信中,收發(fā)雙方對(duì)發(fā)送或接收的數(shù)據(jù)速率要有一定的約定,我們通過(guò)軟件對(duì)MCS—51串行口編程可約定四種工作方式。其中,方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可變的,由定時(shí)器T1的溢出率決定。
        串行口的四種工作方式對(duì)應(yīng)著三種波特率。由于輸人的移位時(shí)鐘的來(lái)源不同,所以,各種方式的波特率計(jì)算公式也不同。


        一、方式0的波特率
        方式0時(shí),移位時(shí)鐘脈沖由56(即第6個(gè)狀態(tài)周期,第12個(gè)節(jié)拍)給出,即每個(gè)機(jī)器周期產(chǎn)生一個(gè)移位時(shí)鐘,發(fā)送或接收一位數(shù)據(jù)。所以,波特率為振蕩頻率的十二分之一,并不受 PCON寄存器中SMOD的影響,即:
        方式0的波特率=fosc/12


        三、方式l和方式3的波特率
        方式1和方式3的移位時(shí)鐘脈沖由定時(shí)器T1的溢出率決定,故波特宰由定時(shí)器T1的
        溢出率與SMOD值同時(shí)決定,即:
        方式1和方式3的波特率=2SMOD/32·T1溢出率
        其中,溢出率取決于計(jì)數(shù)速率和定時(shí)器的預(yù)置值。計(jì)數(shù)速率與TMOD寄存器中C/T的狀態(tài)有關(guān)。當(dāng)C/T=0時(shí),計(jì)數(shù)速率=fosc/2;當(dāng)C/T=1時(shí),計(jì)數(shù)速率取決于外部輸入時(shí)鐘頻率。
        當(dāng)定時(shí)器Tl作波特率發(fā)生器使用時(shí),通常選用可自動(dòng)裝入初值模式(工作方式2),在
        工作方式2中,TLl作為計(jì)數(shù)用,而自動(dòng)裝入的初值放在THl中,設(shè)計(jì)數(shù)初值為x,則每過(guò)“256一x”個(gè)機(jī)器周期,定時(shí)器T1就會(huì)產(chǎn)生一次溢出。為了避免因溢出而引起中斷,此時(shí)應(yīng)禁止T1中斷。這時(shí),溢出周期為:


        系統(tǒng)晶振頻率選為11.0592MHZ就是為了使初值為整數(shù),從而產(chǎn)生精確的波特率。
        如果串行通信選用很低的波特率,可將定時(shí)器Tl置于工作方式0或工作方式1,但在
        這種情況下,T1溢出時(shí),需用中斷服務(wù)程序重裝初值。中斷響應(yīng)時(shí)間和執(zhí)行指令時(shí)間會(huì)使波特率產(chǎn)生一定的誤差,可用改變初值的辦法加以調(diào)整。



        關(guān)鍵詞: 51單片機(jī)波特

        評(píng)論


        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 米林县| 云南省| 鱼台县| 盐城市| 井研县| 仙游县| 称多县| 萍乡市| 平阳县| 富平县| 麦盖提县| 云阳县| 吉隆县| 玉树县| 旬阳县| 本溪市| 自贡市| 静宁县| 吉隆县| 象州县| 崇仁县| 宜丰县| 晋江市| 武川县| 页游| 博罗县| 东台市| 岑巩县| 南昌县| 平罗县| 灌南县| 开远市| 蚌埠市| 洞口县| 临夏县| 阿拉善右旗| 祥云县| 新竹县| 隆德县| 巨鹿县| 霞浦县|