新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > c51 串口 波特率的計算

        c51 串口 波特率的計算

        作者: 時間:2016-11-17 來源:網絡 收藏
        在串行通信中,收發雙方對發送或接收的數據速率要有一定的約定,我們通過軟件對MCS—51串行口編程可約定四種工作方式。其中,方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可變的,由定時器T溢出率決定。

        串行口的四種工作方式對應著三種波特率。由于輸人的移位時鐘的來源不同,所以,各種方式的波特率計算公式也不同。
        一、方式0的波特率
        方式0時,移位時鐘脈沖由56(即第6個狀態周期,第12個節拍)給出,即每個機器周期產生一個移位時鐘,發送或接收一位數據。所以,波特率為振蕩頻率的十二分之一,并不受 PCON寄存器中SMOD的影響,即:

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

        方式0的波特率=fosc/12

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

        系統晶振頻率選為11.0592MHZ就是為了使初值為整數,從而產生精確的波特率。
        如果串行通信選用很低的波特率,可將定時器Tl置于工作方式0或工作方式1,但在
        這種情況下,T1溢出時,需用中斷服務程序重裝初值。中斷響應時間和執行指令時間會使波特率產生一定的誤差,可用改變初值的辦法加以調整。
        表6—2列出了各種常用的波特率及其初值。



        關鍵詞: c51串口波特

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 长沙县| 金秀| 拜泉县| 七台河市| 洮南市| 班戈县| 富蕴县| 潢川县| 美姑县| 汉源县| 旬阳县| 高雄县| 元江| 基隆市| 乌什县| 兴仁县| 拜城县| 京山县| 资溪县| 南靖县| 新郑市| 南开区| 合山市| 淳安县| 都兰县| 自贡市| 东乌珠穆沁旗| 南华县| 江阴市| 屯昌县| 正宁县| 高青县| 义马市| 咸阳市| 松阳县| 鹤岗市| 盱眙县| 舒兰市| 遂平县| 荔浦县| 保靖县|