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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM