51微控制器序列口波特率計算

2021-09-24 14:27:28 字數 2561 閱讀 3582

方式0

:這種工作方式比較特殊,與常見的微型計算機的序列口不同,它又叫

同步移位暫存器輸出方式。

在這種方式下,資料從

rxd

端序列輸出或輸入,同步訊號從

txd

端輸出,波特率固定不變,為振盪率的

1/12

。該方式是以

8 位資料為一幀,沒有起始位和停止位,先傳送或接收最低位。

常用於序列口外接移位暫存器,以擴充套件並行

i/o口,這種方式不適用與兩個

mcs-51

之間的序列通訊。方式1

:真正用於資料的序列傳送和接收。

txd引腳和

rxd引腳分別用於傳送和接收資料。 方式

1收發1幀資料為

10位,

1個起始位(0),

8個資料位,

1個停止位(

1),先傳送或接收最低位。 方式

2 :序列口工作於方式

2和方式

3時,被定義為

9位非同步通訊介面

。每幀資料均為

11位,

1位起始位

0,8位資料位(先低位),

1位可程式控制為1或

0的第九位資料和

1位停止位

1。採用這種方式可接收或傳送

11 位資料,以

11 位為一幀,比方式

1 增加了乙個資料位,其餘相同。第

9 個資料即

d8 位具有特別的用途,可以通過軟體控制它,再加特殊功能暫存器

scon

中的sm2

位的配合,

可使mcs-51

微控制器序列口適用於多機通訊

。方式2

的波特率固定,只有兩種選擇,為振盪率的

1/64

或1/32

,可由pcon

的最高位選擇。

方式3 :方式

3 與方式

2 完全類似,唯一的區別是方式

3 的波特率是可變的。而幀格式與方式

2- 樣為

11 位一幀。所以方式

3 也適合於多機通訊。

sm0  sm1   方式功

能說明

0      0        0   

同步移位暫存器方式(用於擴充套件

i/o口)

0      1        1   8

位非同步收發,波特率可變(由定時器控制)

1      0        2   9

位非同步收發,波特率為

fosc/64

或fosc/32

1      1        3   9

位非同步收發,波特率可變(由定時器控制) 方式

0波特率固定為:fosc / 12

方式1波特率的計算公式為:(序列口為波特率可變的8位非同步通訊介面,smod為pcon暫存器的最高位值(0或1))

方式1波特率 =(2^smod / 32) * 定時器t1的溢位率

(注:當

smod=1

時,要比

smod=0

時的波特率加倍,所以也稱

smod

位為波特率倍增位)

方式2的波特率由下式確定:

方式2波特率=( 2^smod / 64) * fosc

方式3的波特率由下式確定:

方式3波特率 = (2^smod / 32) * 定時器t1的溢位率

溢位速率 = 1 / 溢位時間

溢位時間(相當於定時時間)= (2^8 – th1初值)* tcy

機器週期tcy = 12時鐘週期 = 12*(1/fosc)

故:溢位速率 = 1 / 溢位時間 = 1 / [(256 - th1初值)* (12 / fosc)] = fosc / [12 *(256-th1初值)]

計數速率 = 1 / 計數時間 = 1 / (12 / fosc) = fosc / 12

故也可寫成:溢位速率 = 計數速率 / (256-th1初值) = fosc / [12 *(256-th1初值)]   

注:一般來說,定時器方式2用來確定波特率是比較理想的,它不需要中斷服務程式設定初值,且算出的波特率比較準確。在使用者使用的波特率不是很低的情況下,建議使用定時器t1的方式2來確定波特率。

定時器方式1或方式3定時,常用t1作為波特率發生器。

而對於定時器方式0和方式1的最大特點是計數溢位後,計數器為全0。因而在迴圈定時或迴圈計數應用時就存在反覆裝入計數初值的問題。這不僅影響定時精度,而且也給程式設計帶來麻煩。方式2就是針對此問題而設定的。定時器/計數器的方式2位自動恢復初值的(初值自動裝入)8位定時器/計數器,tlx作為常數緩衝器,當tlx計數器溢位時,在置1溢位標誌位tfx的同時,還自動的將thx中的初值送入至tlx,使tlx從處置開始重新計數。這種方式可以省去使用者軟體中重灌處置的程式,簡化定時器初值的計算方法,可以相當精確的確定定時時間。

而定時器方式3是為了增加1個附加的8位定時器/計數器而提供的,從而使mcs-51具有3個定時器/計數器。方式3只適用於定時器/計數器t0,定時器/計數器t1不能工作在方式3。t1處於方式3時相當於tr0=0,停止計數(此時t1可以用來做串列埠波特率發生器。)

51微控制器的波特率

最近使用51微控制器的時候,設定串列埠的波特率,需要多種,固先記下來,晶振更改的時候可以通過excel中的改動來調整 excel在126中email的網盤中 51微控制器的波特率.et 下面列表是基於定時器2的方式2,自動重灌的方式 晶振 11.0592 11059200 波特率暫存器的值 1200...

微控制器 波特率設定

在序列通訊中 收發雙方對傳送或接收的資料速率要有一定的約定,我們通過軟體對 mcs 51 序列口程式設計可約定四種工作方式。其中,方式 0和方式 2的波特率是固定的,而方式 1和方式 3的波特率是可變的,由定時器 t1的溢位率決定。序列口的四種工作方式對應著三種波特率。由於輸人的移位時鐘的 不同,所...

微控制器串列埠通訊波特率計算

在模式0和模式2下,串列埠波特率固定,模式0為fosc 12。模式2為fosc 32或fosc 64,具體由pcon暫存器的smod位決定。在模式1和模式3下,波特率是乙個可變值,波特率可以由定時器1產生 8052可以由定時2產生 那麼波特率到底為多少呢?波特率由定時器1的溢位率來決定 baud r...