1. 程式人生 > >(筆記總結)80C51序列口的工作方式

(筆記總結)80C51序列口的工作方式

1.方式0

方式0時,序列口為同步移位暫存器的輸入輸出方式。主要用於擴充套件並行輸入或輸出口。資料由RXD(P3.0)引腳輸入或輸出,同步移位脈衝由TXD(P3.1)引腳輸出。傳送和接收均為8位資料,低位在先,高位在後。波特率固定為fosc/12。

方式0輸出

方式0輸入

 

2.方式1

方式1是10位資料的非同步通訊口。TXD為資料的傳送引腳,RXD是資料的接受引腳。傳送一幀資料的格式如圖所示,其中1位起始位,8位資料位,1位停止位。

方式1輸出

方式1輸入

用軟體置REN=1時,接收器以所選擇波特率的16倍速率取樣RXD引腳電平,檢測到RXD引腳輸入電平發生負跳變時,則說明起始位有效,將其移入輸入移位暫存器,並開始接收這一幀資訊的其餘位。接收過程中,資料從輸入移位暫存器右邊移入,起始位移至輸入移位暫存器最左邊時,控制電路進行最後一次移位。當RI=0,且SM2=0時,將接收到的9位資料的前八位資料裝入接收SBUF,第九位(停止位)進入RB8,並置RI=1,請求中斷。

 

3.方式2、方式3

方式2或方式3時,為11位資料的非同步通訊口,TXD為資料傳送引腳,RXD為資料接收引腳。

方式2、方式3,起始位1位、資料位9位(含附加的第九位,傳送時為SCON中的TB8,接收時為SCON中的RB8)、停止位1位,一幀資料為11位。方式2的波特率固定為晶振頻率的1/32或1/64。方式3的波特率由定時器T1的溢位率決定。

方式2、方式3的輸出

傳送開始時,先把起始位0輸出到TXD引腳,然後傳送移位暫存器的輸出位(D0)到TXD引腳。每一個移位脈衝都使輸出移位暫存器的各位右移一位,並由TXD引腳輸出。

第一次移位時,停止位‘1’移入輸出移位暫存器的第9位上,以後每次移位,左邊都移入‘0’。當停止位移入輸出位時,左邊其餘位全為‘0’,檢測電路檢測到這一條件時,使控制電路進行最後一次移位,並置TI=1,向CPU請求中斷。

方式2、方式3的輸入

接收時,資料從右邊移入輸入移位暫存器,在起始位‘0’移到最左邊時,控制電路進行最後一次移位。當RI=0,且SM2=0時,接收到的資料裝入接收快取器SBUF和RB8(接收資料的第9位),置RI=1,請求中斷。如果條件不滿足,則資料丟失,且不置位RI,繼續搜尋RXD引腳的負跳變。

 

波特率的計算

方式0的波特率:fosc/12

方式2的波特率:(2^SMOD/64)*fosc

方式1的波特率:(2^SMOD/32)*(TI溢位率)

方式3的波特率:(2^SMOD/32)*(TI溢位率)