天天看點

51單片機的序列槽通信

51單片機的通信方式分為并行通信和串行通信。前者是指通常是将資料位元組的各位用多條資料線同時進行傳送,而後者是将資料位元組分成一位一位的形式。

一、串行通信的傳輸方向

單工是指資料傳輸僅能沿一個方向,不能實作反向傳輸。半雙工是指資料傳輸可以沿兩個方向,但需要分時進行。全雙工是指資料可以同時進行雙向傳輸。串行通信常見的錯誤校驗有奇偶校驗、循環備援校驗。傳輸速率以為比特率為機關,它是每秒鐘傳輸二進制代碼的位數,機關是:位/秒(bps)。

二、80C51串行口的結構

序列槽結構如下圖:

51單片機的序列槽通信

80C51有兩個實體上獨立的接收、發送緩沖器SBUF,它們占用同一位址99H ;接收器是雙緩沖結構 ;發送緩沖器,因為發送時CPU是主動的,不會産生重疊錯誤。

三、串行口的控制寄存器(SCON)

用以設定串行口的工作方式、接收/發送控制以及設定狀态标志:

51單片機的序列槽通信

SM0和SM1為工作方式選擇位,可選擇四種工作方式:

SM2,多機通信控制位,主要用于方式2和方式3。當接收機的SM2=1時可以利用收到的RB8來控制是否激活RI(RB8=0時不激活RI,收到的資訊丢棄;RB8=1時收到的資料進入SBUF,并激活RI,進而在中斷服務中将資料從SBUF讀走)。當SM2=0時,不論收到的RB8為0和1,均可以使收到的資料進入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位資料結束時,或在其它方式,串行發送停止位的開始時,由内部硬體使TI置1,向CPU發中斷申請。在中斷服務程式中,必須用軟體将其清0,取消此中斷申請。

RI,接收中斷标志位。在方式0時,當串行接收第8位資料結束時,或在其它方式,串行接收停止位的中間時,由内部硬體使RI置1,向CPU發中斷申請。也必須在中斷服務程式中,用軟體将其清0,取消此中斷申請。

四、波特率的計算(用波特率電腦)

方式0的波特率 =  fosc/12

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

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

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

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

在單片機的應用中,常用的晶振頻率為:12MHz和11.0592MHz。是以,選用的波特率也相對固定。常用的串行口波特率以及各參數的關系如表所示。

51單片機的序列槽通信
上一篇: 0624學期總結
下一篇: 實驗四