MCS-51單片機内部有一個全雙工的串行通信口,即串行接收和發送緩沖器(SBUF),這兩個在實體上獨立的接收發送器,既可以接收資料也可以發送資料。但接收緩沖器隻能讀出不能寫入,而發送緩沖器則隻能寫入不能讀出,它們的位址為99H。這個通信口既可以用于網絡通信,亦可實作串行異步通信,還可以構成同步移位寄存器使用。如果在傳行口的輸入輸出引腳上加上電平轉換器,就可友善地構成标準的RS-232接口。下面我們分别介紹。 [1]. 基本概念 資料通信的傳輸方式 常用于資料通信的傳輸方式有單工、半雙工、全雙工和多工方式。 單工方式:資料僅按一個固定方向傳送。因而這種傳輸方式的用途有限,常用于串行口的列印資料傳輸與簡單系統間的資料采集。 半雙工方式:資料可實作雙向傳送,但不能同時進行,實際的應用采用某種協定實作收/發開關轉換。 全雙工方式:允許雙方同時進行資料雙向傳送,但一般全雙工傳輸方式的線路和裝置較複雜。 多工方式:以上三種傳輸方式都是用同一線路傳輸一種頻率信号,為了充分地利用線路資源,可通過使用多路複用器或多路集線器,采用頻分、時分或碼分複用技術,即可實作在同一線路上資源共享功能,我們盛之為多工傳輸方式。 串行資料通信兩種形式 異步通信 在這種通信方式中,接收器和發送器有各自的時鐘,它們的工作是非同步的,異步通信用一幀來表示一個字元,其内容如下:一個起始位,僅接着是若幹個資料位,圖2是傳輸45H的資料格式。 同步通信 同步通信格式中,發送器和接收器由同一個時鐘源控制,為了克服在異步通信中,每傳輸一幀字元都必須加上起始位和停止位,占用了傳輸時間,在要求傳送資料量較大的場合,速度就慢得多。同步傳輸方式去掉了這些起始位和停止位,隻在傳輸資料塊時先送出一個同步頭(字元)标志即可。 同步傳輸方式比異步傳輸方式速度快,這是它的優勢。但同步傳輸方式也有其缺點,即它必須要用一個時鐘來協調收發器的工作,是以它的裝置也較複雜。 | 串行資料通信的傳輸速率 串行資料傳輸速率有兩個概念,即每秒轉送的位數bps(Bit per second)和每秒符号數—波特率(Band rate),在具有數據機的通信中,波特率與調制速率有關。 [2]. MCS-51的串行口和控制寄存器 串行口控制寄存器 | MCS-51單片機串行口寄存器結構如圖3所示。SBUF為串行口的收發緩沖器,它是一個可尋址的專用寄存器,其中包含了接收器和發送器寄存器,可以實作全雙工通信。但這兩個寄存器具有同一位址(99H)。MCS-51的串行資料傳輸很簡單,隻要向發送緩沖器寫入資料即可發送資料。而從接收緩沖器讀出資料即可接收資料。 此外,從圖中可看出,接收緩沖器前還加上一級輸入移位寄存器,MCS-51這種結構目的在于接收資料時避免發生資料幀重疊現象,以免出錯,部分文獻稱這種結構為雙緩沖器結構。而發送資料時就不需要這樣設定,因為發送時,CPU是主動的,不可能出現這種現象。 | 串行通信控制寄存器 在上一節我們已經分析了SCON控制寄存器,它是一個可尋址的專用寄存器,用于串行資料的通信控制,單元位址是98H,其結構格式如下: | 表1 SCON寄存器結構 | SCON | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI | 位位址 | 9FH | 9EH | 8DH | 9CH | 9BH | 9AH | 99H | 98H | 下面我們對各控制位功能介紹如下: (1).SM0、SM1:串行口工作方式控制位。 SM0,SM1 工作方式 00 方式0 01 方式1 10 方式2 11 方式3 (2).SM2:多機通信控制位。 多機通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。接收狀态,當串行口工作于方式2或3,以及SM2=1時,隻有當接收到第9位資料(RB8)為1時,才把接收到的前8位資料送入SBUF,且置位RI發出中斷申請,否則會将接受到的資料放棄。當SM2=0時,就不管第位資料是0還是1,都難得資料送入SBUF,并發出中斷申請。 工作于方式0時,SM2必須為0。 (3).REN:允許接收位。 REN用于控制資料接收的允許和禁止,REN=1時,允許接收,REN=0時,禁止接收。 (4).TB8:發送接收資料位8。 在方式2和方式3中,TB8是要發送的——即第9位資料位。在多機通信中同樣亦要傳輸這一位,并且它代表傳輸的位址還是資料,TB8=0為資料,TB8=1時為位址。 (5).RB8:接收資料位8。 在方式2和方式3中,RB8存放接收到的第9位資料,用以識别接收到的資料特征。 (6).TI:發送中斷标志位。 可尋址标志位。方式0時,發送完第8位資料後,由硬體置位,其它方式下,在發送或停止位之前由硬體置位,是以,TI=1表示幀發送結束,TI可由軟體清“0”。 (7).RI:接收中斷标志位。 可尋址标志位。接收完第8位資料後,該位由硬體置位,在其他工作方式下,該位由硬體置位,RI=1表示幀接收完成。 | 電源管理寄存器PCON PCON主要是為CHMOS型單片機的電源控制而設定的專用寄存器,單元位址是87H,其結構格式如下: | 表2 PCON電源管理寄存器結構 | PCON | | | | | | | | | 位符号 | SMOD | - | | | GF1 | GF0 | PD | IDL | 在CHMOS型單片機中,除SMOD位外,其他位均為虛設的,SMOD是串行口波特率倍增位,當SMOD=1時,串行口波特率加倍。系統複位預設為SMOD=0。 | 中斷允許寄存器IE 中斷允許寄存器在前一節中已闡述,這裡重述一下對串行口有影響的位ES。ES為串行中斷允許控制位,ES=1允許串行中斷,ES=0,禁止串行中斷。 | 表3 IE中斷允許控制寄存器結構 | | EA | | | ES | ET1 | EX1 | ET0 | EX0 | | AFH | AEH | ADH | ACH | ABH | AAH | A9H | A8H | |