1. 程式人生 > 其它 >51微控制器的串列埠通訊

51微控制器的串列埠通訊

51微控制器的通訊方式分為並行通訊序列通訊。前者是指通常是將資料位元組的各位用多條資料線同時進行傳送,而後者是將資料位元組分成一位一位的形式

一、序列通訊的傳輸方向

單工是指資料傳輸僅能沿一個方向,不能實現反向傳輸。半雙工是指資料傳輸可以沿兩個方向,但需要分時進行。全雙工是指資料可以同時進行雙向傳輸。序列通訊常見的錯誤校驗有奇偶校驗、迴圈冗餘校驗。傳輸速率以為位元率為單位,它是每秒鐘傳輸二進位制程式碼的位數,單位是:位/秒(bps

二、80C51序列口的結構

串列埠結構如下圖:

80C51有兩個物理上獨立的接收、傳送緩衝器SBUF,它們佔用同一地址99H ;接收器是雙緩衝結構 ;傳送緩衝器,因為傳送時

CPU是主動的,不會產生重疊錯誤。

三、序列口的控制暫存器(SCON

用以設定序列口的工作方式、接收/傳送控制以及設定狀態標誌:

SM0SM1為工作方式選擇位,可選擇四種工作方式:

SM2,多機通訊控制位,主要用於方式2和方式3。當接收機的SM2=1時可以利用收到的RB8來控制是否啟用RIRB80時不啟用RI,收到的資訊丟棄;RB81時收到的資料進入SBUF,並激活RI,進而在中斷服務中將資料從SBUF讀走)。當SM2=0時,不論收到的RB801,均可以使收到的資料進入SBUF,並激活RI(即此時RB8不具有控制RI啟用的功能)。通過控制SM2,可以實現多機通訊。在方式0時,SM2必須是

0。在方式1時,如果SM2=1,則只有接收到有效停止位時,RI才置1

REN,允許序列接收位。由軟體置REN=1,則啟動序列口接收資料;若軟體置REN=0,則禁止接收。

TB8,在方式2或方式3中,是傳送資料的第九位,可以用軟體規定其作用。可以用作資料的奇偶校驗位,或在多機通訊中,作為地址幀/資料幀的標誌位。在方式0和方式1中,該位未用。

RB8,在方式2或方式3中,是接收到資料的第九位,作為奇偶校驗位或地址幀/資料幀的標誌位。在方式1時,若SM2=0,則RB8是接收到的停止位。

TI,傳送中斷標誌位。在方式0時,當序列傳送第8位資料結束時,或在其它方式,序列傳送停止位的開始時,由內部硬體使TI1,向CPU

發中斷申請。在中斷服務程式中,必須用軟體將其清0,取消此中斷申請。

RI,接收中斷標誌位。在方式0時,當序列接收第8位資料結束時,或在其它方式,序列接收停止位的中間時,由內部硬體使RI1,向CPU發中斷申請。也必須在中斷服務程式中,用軟體將其清0,取消此中斷申請。

四、波特率的計算(用波特率計算器)

方式0的波特率 = fosc/12

方式2的波特率 =2SMOD/64· fosc

方式1的波特率 =2SMOD/32·T1溢位率)

方式3的波特率 =2SMOD/32·T1溢位率)

T1 溢位率 = fosc /{12×[256 -(TH1]}

在微控制器的應用中,常用的晶振頻率為:12MHz11.0592MHz。所以,選用的波特率也相對固定。常用的序列口波特率以及各引數的關係如表所示。

【參考資料】

51微控制器的串列埠通訊(一)https://blog.csdn.net/sinat_38816924/article/details/84706854