方式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...