1、 基本概念
常用於數據通信的傳輸方式有單工、半雙工、全雙工和多工方式。
單工方式:數據僅按一個固定方向傳送。因而這種傳輸方式的用途有限,常用於串行口的打印數據傳輸與簡單系統間的數據采集。
半雙工方式:數據可實現雙向傳送,但不能同時進行,實際的應用采用某種協議實現收/發開關轉換。
全雙工方式:允許雙方同時進行數據雙向傳送,但一般全雙工傳輸方式的線路和設備較復雜。
串行通信是指數據一位一位地按順序傳送的通信方式,其突出優點是只需一根傳輸線,可大大降低硬件成本,適合遠距離通信。其缺點是傳輸速度較低。
2、串行口內部結構圖
3、
與之前一樣,首先我們來了解單片機串口相關的寄存器。
SBUF 寄存器:它是兩個在物理上獨立的接收、發送緩沖器,可同時發送、接收數據,可通過指令對SBUF 的讀寫來區別是對接收緩沖器的操作還是對發送緩沖器的操作。
從而控制外部兩條獨立的收發信號線RXD(P3.0)、TXD(P3.1),同時發送、接收數據,實現全雙工
串行口控制寄存器SCON
表中各位(從左至右為從高位到低位)含義如下。
SM0 和SM1 :串行口工作方式控制位,其定義如表2
下面我們對各控制位功能介紹如下:
(1).SM0、SM1:串行口工作方式控制位。
SM0,SM1 工作方式
00 方式0
01 方式1
10 方式2
11 方式3
(2)
其中,fOSC 為單片機的時鍾頻率;波特率指串行口每秒鍾發送(或接收)的位數。
SM2 :多機通信控制位。 該僅用於方式2 和方式3 的多機通信。其中發送機SM2 = 1(需要程序控制設置)。
接收機的串行口工作於方式2 或3,SM2=1 時,只有當接收到第9 位數據(RB8)為1 時,才把接收到的前8 位數據送入SBUF,且置位RI 發出中斷申請引發串行接收中斷,否則會將接受到的數據放棄。
當SM2=0 時,就不管第位數據是0 還是1,都將數據送入SBUF,並置位RI 發出中斷申請。工作於方式0 時,SM2 必須為0。
REN :串行接收允許位:REN =0 時,禁止接收;REN =1 時,允許接收。
TB8 :在方式2、3 中,TB8 是發送機要發送的第9 位數據。在多機通信中它代表傳輸的地址或數據,TB8=0 為數據,TB8=1 時為地址。
RB8 :在方式2、3 中,RB8 是接收機接收到的第9 位數據,該數據正好來自發送機的TB8,從而識別接收到的數據特征。
TI :串行口發送中斷請求標志。當CPU 發送完一串行數據后,此時SBUF 寄存器為空,硬件使TI 置1,請求中斷。CPU 響應中斷后,由軟件對TI 清零。
RI :串行口接收中斷請求標志。當串行口接收完一幀串行數據時,此時SBUF 寄存器為滿,硬件使RI 置1,請求中斷。CPU 響應中斷后,用軟件對RI 清零。
(3)
電源管理寄存器PCON
PCON主要是為CHMOS型單片機的電源控制而設置的專用寄存器,單元地址是87H,其結構格式如下:
(4)中斷允許寄存器IE
中斷允許寄存器在前一節中已闡述,這里重述一下對串行口有影響的位ES。ES為串行中斷允許控制位,ES=1允許串行中斷,ES=0,禁止串行中斷。
_______________________________________________________________________________________________________________________________________________________