首頁(yè) 新聞 > 科技 > 正文

串口波特率計(jì)算的原理分析

波特率基本概念:波特率是一個(gè)衡量通信速度的參數(shù),它表示每秒鐘傳送的bit的個(gè)數(shù)(來(lái)自:http://baike.haosou.com/doc/5430972-5669264.html)。

在單片機(jī)串口通信的設(shè)置中,絕大多數(shù)情況下,波特率是通過(guò)編程人員編寫(xiě)程序設(shè)定的。那么我們?nèi)绾稳ダ斫獠ㄌ芈实挠?jì)算原理呢。

傳統(tǒng)51單片機(jī)串口通信時(shí)(定時(shí)器1作為波特率發(fā)生器)波特率的計(jì)算公式是這樣的:

首先我們要完全理解這個(gè)公式,然后我們才能更好的去運(yùn)用它。其中,‘SMOD’是PCON寄存器中的一個(gè)bit,可以通過(guò)對(duì)PCON賦值,設(shè)置‘SMOD’為0(波特率不加倍)或1(波特率加倍);再看上式中的‘32’,‘32’指的是溢出信號(hào)經(jīng)過(guò)32分頻,當(dāng)然,并不是所有的單片機(jī)的溢出信號(hào)都要經(jīng)過(guò)32分頻。對(duì)上式的理解關(guān)鍵的地方是‘T1的溢出率’,這里的溢出率指的是定時(shí)器在單位時(shí)間內(nèi)溢出的次數(shù),所謂溢出,就是定時(shí)器從開(kāi)始計(jì)數(shù)到計(jì)數(shù)達(dá)到最大值時(shí),如果再加1,定時(shí)器就會(huì)溢出。這樣就有以下的溢出率計(jì)算公式:

傳統(tǒng)51單片機(jī)(12T)計(jì)數(shù)時(shí)鐘是晶振的12分頻,所以對(duì)于傳統(tǒng)的51單片機(jī)而言,單位時(shí)間內(nèi)單片機(jī)可以計(jì)數(shù)的次數(shù)=晶振頻率/12;定時(shí)器溢出一次單片機(jī)計(jì)數(shù)的次數(shù)=定時(shí)器計(jì)數(shù)的最大值-初值;舉個(gè)例子說(shuō)明:現(xiàn)在我們選用的晶振為12M,定時(shí)器是8位的,計(jì)數(shù)的最大值為256(2的8次方),我們賦予定時(shí)器的初值為156,那么就有:

這樣,我們就可以根據(jù)第一個(gè)式子計(jì)算出相應(yīng)的波特率了。同理,如果一開(kāi)始我們就確定了波特率,那么我們也可以通過(guò)以上第一和第二個(gè)式子把定時(shí)器的初值計(jì)算出來(lái)。其實(shí)很多時(shí)候,波特率的計(jì)算,其實(shí)就是定時(shí)器初值的計(jì)算。

最后啰嗦幾句,波特率的計(jì)算不能一概而論,比如有些單片機(jī)對(duì)定時(shí)器的溢出信號(hào)的處理不是32分頻而是4分頻(比如STC15系列單片機(jī)),而且用12T單片機(jī)時(shí)單位時(shí)間內(nèi)單片機(jī)可以計(jì)數(shù)的次數(shù)=晶振頻率/12;如果用的是1T單片機(jī)時(shí),則有:?jiǎn)挝粫r(shí)間內(nèi)單片機(jī)可以計(jì)數(shù)的次數(shù)=晶振頻率。所以我們根據(jù)實(shí)際情況出發(fā),實(shí)事求是。

關(guān)鍵詞: 串口波特率原理分

最近更新

關(guān)于本站 管理團(tuán)隊(duì) 版權(quán)申明 網(wǎng)站地圖 聯(lián)系合作 招聘信息

Copyright © 2005-2018 創(chuàng)投網(wǎng) - www.mallikadua.com All rights reserved
聯(lián)系我們:33 92 950@qq.com
豫ICP備2020035879號(hào)-12