微處理器C51-7串口通信_第1頁
微處理器C51-7串口通信_第2頁
微處理器C51-7串口通信_第3頁
微處理器C51-7串口通信_第4頁
微處理器C51-7串口通信_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、串口通信串口通信80C51的串行口的串行口計算機串行通信基礎計算機串行通信基礎單片機串行口編程應用舉例單片機串行口編程應用舉例計算機串行通信基礎計算機串行通信基礎 隨著多微機系統(tǒng)的廣泛應用和計算機網絡技術的普及,計算機的通信功隨著多微機系統(tǒng)的廣泛應用和計算機網絡技術的普及,計算機的通信功能愈來愈顯得重要。能愈來愈顯得重要。計算機通信計算機通信是指計算機與外部設備或計算機與計算機是指計算機與外部設備或計算機與計算機之間的信息交換之間的信息交換。通信有通信有并行通信并行通信和和串行通信串行通信兩種方式。在多微機系統(tǒng)以及現代測控系統(tǒng)兩種方式。在多微機系統(tǒng)以及現代測控系統(tǒng)中信息的交換多采用串行通信方式

2、。中信息的交換多采用串行通信方式。計算機通信計算機通信是將計算機技術和通信技術的相結合,完成計算機與外部設是將計算機技術和通信技術的相結合,完成計算機與外部設備或計算機與計算機之間的信息交換備或計算機與計算機之間的信息交換 。可以??梢苑譃閮纱箢悾翰⑿型ㄐ排c串分為兩大類:并行通信與串行通信。行通信。并行通信并行通信通常是將數據字節(jié)的各位用多條數據線同時進行傳送通常是將數據字節(jié)的各位用多條數據線同時進行傳送 。并行通信并行通信控制簡單、傳輸速度快;由于傳輸線較多,長距離傳送時成本控制簡單、傳輸速度快;由于傳輸線較多,長距離傳送時成本高且接收方的各位同時接收存在困難。高且接收方的各位同時接收存在困

3、難。 串行通信串行通信是將數據字節(jié)分成一位一位的形式在一條傳輸線上逐個是將數據字節(jié)分成一位一位的形式在一條傳輸線上逐個地傳送。地傳送。串行通信的特點串行通信的特點:傳輸線少,長距離傳送時成本低,且可以利用電話:傳輸線少,長距離傳送時成本低,且可以利用電話網等現成的設備,但數據的傳送控制比并行通信復雜。網等現成的設備,但數據的傳送控制比并行通信復雜。 串行通信的基本概念串行通信的基本概念 1 異步通信與同步通信異步通信與同步通信a.異步通信異步通信 異步通信異步通信是指通信的是指通信的發(fā)送與接收設備使用各自的時鐘發(fā)送與接收設備使用各自的時鐘控制數據的控制數據的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調,

4、要求發(fā)送和接收設備的時鐘發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調,要求發(fā)送和接收設備的時鐘盡可能一致。盡可能一致。 異步通信是異步通信是以字符(構成的幀)為單位進行傳輸以字符(構成的幀)為單位進行傳輸,字符與字符之,字符與字符之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,即字符之間不一定有時間傳送的,即字符之間不一定有“位間隔位間隔”的整數倍的關系,但的整數倍的關系,但同一字符內的同一字符內的各位之間的距離均為各位之間的距離均為“位間隔位間隔”的整數倍。的整數倍。異步通信的數據格式異步通信的數據格式 :異步通信的特點

5、異步通信的特點:不要求收發(fā)雙方時鐘的嚴格一致,實現容易,設:不要求收發(fā)雙方時鐘的嚴格一致,實現容易,設備開銷較小,但每個字符要附加備開銷較小,但每個字符要附加23位用于起止位,各幀之間還有位用于起止位,各幀之間還有間隔,因此傳輸效率不高。間隔,因此傳輸效率不高。b.同步通信同步通信 同步通信時要建立發(fā)送方時鐘對接收方時鐘的直接控制,使雙方達同步通信時要建立發(fā)送方時鐘對接收方時鐘的直接控制,使雙方達到完全同步。此時,傳輸數據的位之間的距離均為到完全同步。此時,傳輸數據的位之間的距離均為“位間隔位間隔”的整數倍,的整數倍,同時傳送的字符間不留間隙,即同時傳送的字符間不留間隙,即保持位同步保持位同步

6、關系,關系,也保持字符同步也保持字符同步關系。關系。發(fā)送方對接收方的同步可以通過兩種方法實現。發(fā)送方對接收方的同步可以通過兩種方法實現。 外同步外同步 自同步自同步面向字符的同步格式面向字符的同步格式 : 此時,傳送的數據和控制信息都必須由規(guī)定的字符集(如此時,傳送的數據和控制信息都必須由規(guī)定的字符集(如ASCII碼)中的字符所組成。圖中碼)中的字符所組成。圖中幀頭為幀頭為1個或個或2個同步字符個同步字符SYN(ASCII碼為碼為16H)。)。SOH為序始為序始字符(字符(ASCII碼為碼為01H),表示標題的開始,),表示標題的開始,標題標題中包含源地址、目標地址和路由指示等信息。中包含源地

7、址、目標地址和路由指示等信息。STX為文始為文始字符字符(ASCII碼為碼為02H),表示傳送的數據塊開始。),表示傳送的數據塊開始。數據塊數據塊是傳送的正文是傳送的正文內容,由多個字符組成。數據塊后面是內容,由多個字符組成。數據塊后面是組終字符組終字符ETB(ASCII碼為碼為17H)或)或文終字符文終字符ETX(ASCII碼為碼為03H)。然后是)。然后是校驗碼校驗碼。典型的典型的面向字符的同步規(guī)程如面向字符的同步規(guī)程如IBM的二進制同步規(guī)程的二進制同步規(guī)程BSC。 面向位的同步格式面向位的同步格式 : 此時,將數據塊看作數據流,并用序列此時,將數據塊看作數據流,并用序列01111110作

8、為開始和結束標志。作為開始和結束標志。為了避免在數據流中出現序列為了避免在數據流中出現序列01111110時引起的混亂,發(fā)送方總是在其時引起的混亂,發(fā)送方總是在其發(fā)送的數據流中每出現發(fā)送的數據流中每出現5個連續(xù)的個連續(xù)的1就插入一個附加的就插入一個附加的0;接收方則每檢測;接收方則每檢測到到5個連續(xù)的個連續(xù)的1并且其后有一個并且其后有一個0時,就刪除該時,就刪除該0。 典型的面向位的同步協(xié)議如典型的面向位的同步協(xié)議如ISO的高級數據鏈路控制規(guī)程的高級數據鏈路控制規(guī)程HDLC和和IBM的同步數據鏈路控制規(guī)程的同步數據鏈路控制規(guī)程SDLC。 同步通信的特點同步通信的特點是以特定的位組合是以特定的位

9、組合“01111110”作為幀的開始和結束作為幀的開始和結束標志,所傳輸的一幀數據可以是任意位。所以傳輸的效率較高,但實現的標志,所傳輸的一幀數據可以是任意位。所以傳輸的效率較高,但實現的硬件設備比異步通信復雜。硬件設備比異步通信復雜。 2 串行通信的傳輸方向串行通信的傳輸方向a.單工單工單工單工是指數據傳輸僅能沿是指數據傳輸僅能沿一個方向一個方向,不能實現反向傳輸。,不能實現反向傳輸。b.半雙工半雙工半雙工半雙工是指數據傳輸可以沿是指數據傳輸可以沿兩個方向兩個方向,但需要分時進行。,但需要分時進行。c.全雙工全雙工全雙工全雙工是指數據可以是指數據可以同時進行雙向同時進行雙向傳輸。傳輸。 單工

10、 半雙工半雙工 全雙工全雙工3 信號的調制與解調信號的調制與解調 利用調制器(利用調制器(Modulator)把數字信號轉換成模擬信號把數字信號轉換成模擬信號,然后送,然后送到通信線路上去,再由解調器(到通信線路上去,再由解調器(Demodulator)把從通信線路上收到)把從通信線路上收到的的模擬信號轉換成數字信號模擬信號轉換成數字信號。由于通信是雙向的,調制器和解調器合。由于通信是雙向的,調制器和解調器合并在一個裝置中,這就是調制解調器并在一個裝置中,這就是調制解調器MODEM。4 串行通信的錯誤校驗串行通信的錯誤校驗 a.奇偶校驗奇偶校驗 在發(fā)送數據時,數據位尾隨的在發(fā)送數據時,數據位尾

11、隨的1位為奇偶校驗位(位為奇偶校驗位(1或或0)。奇校驗時,)。奇校驗時,數據中數據中“1”的個數與校驗位的個數與校驗位“1”的個數之和應為奇數;偶校驗時,數據中的個數之和應為奇數;偶校驗時,數據中“1”的個數與校驗位的個數與校驗位“1”的個數之和應為偶數。接收字符時,對的個數之和應為偶數。接收字符時,對“1”的個的個數進行校驗,若發(fā)現不一致,則說明傳輸數據過程中出現了差錯。數進行校驗,若發(fā)現不一致,則說明傳輸數據過程中出現了差錯。c.循環(huán)冗余校驗循環(huán)冗余校驗 這種校驗是通過某種數學運算實現有效信息與校驗位之間的循環(huán)校驗,這種校驗是通過某種數學運算實現有效信息與校驗位之間的循環(huán)校驗,常用于對磁

12、盤信息的傳輸、存儲區(qū)的完整性校驗等。這種校驗方法糾錯能常用于對磁盤信息的傳輸、存儲區(qū)的完整性校驗等。這種校驗方法糾錯能力強,廣泛應用于同步通信中。力強,廣泛應用于同步通信中。b.代碼和校驗代碼和校驗 代碼和校驗是發(fā)送方將所發(fā)數據塊求和(或各字節(jié)異或),產生一個代碼和校驗是發(fā)送方將所發(fā)數據塊求和(或各字節(jié)異或),產生一個字節(jié)的校驗字符(校驗和)附加到數據塊末尾。接收方接收數據同時對數字節(jié)的校驗字符(校驗和)附加到數據塊末尾。接收方接收數據同時對數據塊(除校驗字節(jié)外)求和(或各字節(jié)異或),將所得的結果與發(fā)送方的據塊(除校驗字節(jié)外)求和(或各字節(jié)異或),將所得的結果與發(fā)送方的“校驗和校驗和”進行比較

13、,相符則無差錯,否則即認為傳送過程中出現了差錯。進行比較,相符則無差錯,否則即認為傳送過程中出現了差錯。5 傳輸速率與傳輸距離傳輸速率與傳輸距離 a.傳輸速率傳輸速率 比特率比特率是是每秒鐘傳輸二進制代碼的位數每秒鐘傳輸二進制代碼的位數,單位是:位秒(,單位是:位秒(bps)。)。如每秒鐘傳送如每秒鐘傳送240個字符,而每個字符格式包含個字符,而每個字符格式包含10位位(1個起始位、個起始位、1個停個停止位、止位、8個數據位個數據位),這時的比特率為:,這時的比特率為: 10位位240個個/秒秒 = 2400 bpsb.傳輸距離與傳輸速率的關系傳輸距離與傳輸速率的關系 串行接口或終端直接傳送串

14、行信息位流的最大距離與傳輸速率及傳輸串行接口或終端直接傳送串行信息位流的最大距離與傳輸速率及傳輸線的電氣特性有關。當傳輸線使用每線的電氣特性有關。當傳輸線使用每0.3m(約(約1英尺)有英尺)有50PF電容的非電容的非平衡屏蔽雙絞線時,傳輸距離隨傳輸速率的增加而減小。當比特率超過平衡屏蔽雙絞線時,傳輸距離隨傳輸速率的增加而減小。當比特率超過1000 bps 時,最大傳輸距離迅速下降,如時,最大傳輸距離迅速下降,如9600 bps 時最大距離下降到時最大距離下降到只有只有76m(約(約250英尺)。英尺)。串行通信接口標準串行通信接口標準 1 RS-232C1 RS-232C接口接口 RS-23

15、2C是是EIA(美國電子工業(yè)協(xié)會)(美國電子工業(yè)協(xié)會)1969年修訂年修訂RS-232C標準。標準。RS-232C定義了數據終端設備(定義了數據終端設備(DTE)與數據通信設備()與數據通信設備(DCE)之間的)之間的物理接口標準。物理接口標準。a.機械特性機械特性 RS-232C接口規(guī)定使用接口規(guī)定使用25針連接器,連接器的尺寸及每個插針的排針連接器,連接器的尺寸及每個插針的排列位置都有明確的定義。(陽頭)列位置都有明確的定義。(陽頭)b.功能特性功能特性c.過程特性過程特性 過程特性規(guī)定了信號之間的時序關系,以便正確地接收和發(fā)送數據過程特性規(guī)定了信號之間的時序關系,以便正確地接收和發(fā)送數據

16、 。遠程通信連接遠程通信連接 近程通信連接近程通信連接 d. RS-232C電平與電平與TTL電平轉換驅動電路電平轉換驅動電路e.采用采用RS-232C接口存在的問題接口存在的問題l 傳輸距離短,傳輸速率低傳輸距離短,傳輸速率低 RS-232C總線標準受電容允許值的約束,使用時傳輸距離一般不要超過總線標準受電容允許值的約束,使用時傳輸距離一般不要超過15米(線路條件好時也不超過幾十米)。最高傳送速率為米(線路條件好時也不超過幾十米)。最高傳送速率為20Kbps。l 有電平偏移有電平偏移 RS-232C總線標準要求收發(fā)雙方共地。通信距離較大時,收發(fā)雙方的地總線標準要求收發(fā)雙方共地。通信距離較大時

17、,收發(fā)雙方的地電位差別較大,在信號地上將有比較大的地電流并產生壓降。電位差別較大,在信號地上將有比較大的地電流并產生壓降。l 抗干擾能力差抗干擾能力差 RS-232C在電平轉換時采用單端輸入輸出,在傳輸過程中當干擾和噪在電平轉換時采用單端輸入輸出,在傳輸過程中當干擾和噪聲混在正常的信號中。為了提高信噪比,聲混在正常的信號中。為了提高信噪比,RS-232C總線標準不得不采用總線標準不得不采用比較大的電壓擺幅。比較大的電壓擺幅。2 RS-422A接口接口 RS-422A輸出驅動器為雙端平衡驅動器輸出驅動器為雙端平衡驅動器。如果其中一條線為邏輯。如果其中一條線為邏輯“1”狀態(tài),另一條線就為邏輯狀態(tài),

18、另一條線就為邏輯“0”,比采用單端不平衡驅動對電壓的放大倍,比采用單端不平衡驅動對電壓的放大倍數大一倍。數大一倍。差分電路差分電路能從地線干擾中拾取有效信號,差分接收器可以分能從地線干擾中拾取有效信號,差分接收器可以分辨辨200mV以上電位差。若傳輸過程中混入了干擾和噪聲,由于差分放大以上電位差。若傳輸過程中混入了干擾和噪聲,由于差分放大器的作用,可使干擾和噪聲相互抵消。因此可以避免或大大減弱地線干器的作用,可使干擾和噪聲相互抵消。因此可以避免或大大減弱地線干擾和電磁干擾的影響。擾和電磁干擾的影響。RS-422A傳輸速率(傳輸速率(90Kbps)時,傳輸距離可)時,傳輸距離可達達1200米。米

19、。 3 RS-485接口接口 RS-485是是RS-422A的變型:的變型:RS-422A用于全雙工,而用于全雙工,而RS-485則用于則用于半雙工。半雙工。RS-485是一種是一種多發(fā)送器多發(fā)送器標準,在通信線路上最多可以使用標準,在通信線路上最多可以使用32 對對差分驅動器差分驅動器/接收器。如果在一個網絡中連接的設備超過接收器。如果在一個網絡中連接的設備超過32個,還可以使個,還可以使用中繼器。用中繼器。 RS-485的信號傳輸采用兩線間的電壓來表示邏輯的信號傳輸采用兩線間的電壓來表示邏輯1和邏輯和邏輯0。由于發(fā)送。由于發(fā)送方需要方需要兩根傳輸線兩根傳輸線,接收方也需要兩根傳輸線。傳輸線

20、采用差動信道,所,接收方也需要兩根傳輸線。傳輸線采用差動信道,所以它的干擾抑制性極好,又因為它的阻抗低,無接地問題,所以以它的干擾抑制性極好,又因為它的阻抗低,無接地問題,所以傳輸距離傳輸距離可達可達1200米米,傳輸速率可達,傳輸速率可達1Mbps。 RS-485是一點對多點的通信接口,一般采用是一點對多點的通信接口,一般采用雙絞線雙絞線的結構。普通的的結構。普通的PC機一般不帶機一般不帶RS485接口,因此要使用接口,因此要使用RS-232C/RS-485轉換器。對于轉換器。對于單片機可以通過芯片單片機可以通過芯片MAX485來完成來完成TTL/RS-485的電平轉換。在計算機的電平轉換。

21、在計算機和單片機組成的和單片機組成的RS-485通信系統(tǒng)中,下位機由單片機系統(tǒng)組成,上位機通信系統(tǒng)中,下位機由單片機系統(tǒng)組成,上位機為普通的為普通的PC機,負責監(jiān)視下位機的運行狀態(tài),并對其狀態(tài)信息進行集中機,負責監(jiān)視下位機的運行狀態(tài),并對其狀態(tài)信息進行集中處理,以圖文方式顯示下位機的工作狀態(tài)以及工業(yè)現場被控設備的工作處理,以圖文方式顯示下位機的工作狀態(tài)以及工業(yè)現場被控設備的工作狀況。系統(tǒng)中各節(jié)點(包括上位機)的識別是通過設置不同的站地址來狀況。系統(tǒng)中各節(jié)點(包括上位機)的識別是通過設置不同的站地址來實現的。實現的。80C51的串行口的串行口 有兩個物理上獨立的接收、發(fā)送緩沖器有兩個物理上獨立的

22、接收、發(fā)送緩沖器SBUF,它們占用同一地址,它們占用同一地址99H ;接收器是雙緩沖結構;接收器是雙緩沖結構 ;發(fā)送緩沖器,因為發(fā)送時;發(fā)送緩沖器,因為發(fā)送時CPU是主動的,是主動的,不會產生重疊錯誤。不會產生重疊錯誤。 1 1 80C51串行口的結構串行口的結構 SCON 是一個特殊功能寄存器,用以設定串行口的工作方式、接是一個特殊功能寄存器,用以設定串行口的工作方式、接收收/發(fā)送控制以及設置狀態(tài)標志:發(fā)送控制以及設置狀態(tài)標志: 2 2 80C51串行口的控制寄存器串行口的控制寄存器 SM0和和SM1為工作方式選擇位,可選擇四種工作方式:為工作方式選擇位,可選擇四種工作方式: SM2 多機通

23、信控制位多機通信控制位,主要用于方式,主要用于方式2和方式和方式3。當。當接收機的接收機的SM2=1時時可以利用收到的可以利用收到的RB8來控制是否激活來控制是否激活RI(RB80時不激活時不激活RI,收到的信息,收到的信息丟棄;丟棄;RB81時收到的數據進入時收到的數據進入SBUF,并激活,并激活RI,進而在中斷服務中將,進而在中斷服務中將數據從數據從SBUF讀走)。讀走)。當當SM2=0時,不論收到的時,不論收到的RB8為為0和和1,均可以使收,均可以使收到的數據進入到的數據進入SBUF,并激活,并激活RI(即此時(即此時RB8不具有控制不具有控制RI激活的功能)。激活的功能)。通過控制通

24、過控制SM2,可以實現多機通信。,可以實現多機通信。在方式在方式0時,時,SM2必須是必須是0。在方式。在方式1時,若時,若SM2=1,則只有接收到有效停,則只有接收到有效停止位時,止位時,RI才置才置1。REN 允許串行接收位允許串行接收位。由軟件置。由軟件置REN=1,則啟動串行口接收數據;若,則啟動串行口接收數據;若軟件置軟件置REN=0,則禁止接收。,則禁止接收。TB8 在方式在方式2或方式或方式3中,是發(fā)送數據的第九位中,是發(fā)送數據的第九位,可以用軟件規(guī)定其作用。,可以用軟件規(guī)定其作用。可以用作數據的奇偶校驗位,或在多機通信中,作為地址幀可以用作數據的奇偶校驗位,或在多機通信中,作為

25、地址幀/數據幀的標志數據幀的標志位。在方式位。在方式0和方式和方式1中,該位未用。中,該位未用。RB8 在方式在方式2或方式或方式3中,是接收到數據的第九位中,是接收到數據的第九位,作為奇偶校驗位或,作為奇偶校驗位或地址幀地址幀/數據幀的標志位。在方式數據幀的標志位。在方式1時,若時,若SM2=0,則,則RB8是接收到的停止是接收到的停止位。位。TI 發(fā)送中斷標志位發(fā)送中斷標志位。在方式。在方式0時,當串行發(fā)送第時,當串行發(fā)送第8位數據結束時,或位數據結束時,或在其它方式,串行發(fā)送停止位的開始時,由內部硬件使在其它方式,串行發(fā)送停止位的開始時,由內部硬件使TI置置1,向,向CPU發(fā)中斷申請。在

26、中斷服務程序中,必須用軟件將其清發(fā)中斷申請。在中斷服務程序中,必須用軟件將其清0,取消此中斷申,取消此中斷申請。請。RI 接收中斷標志位接收中斷標志位。在方式。在方式0時,當串行接收第時,當串行接收第8位數據結束時,或位數據結束時,或在其它方式,串行接收停止位的中間時,由內部硬件使在其它方式,串行接收停止位的中間時,由內部硬件使RI置置1,向,向CPU發(fā)中斷申請。也必須在中斷服務程序中,用軟件將其清發(fā)中斷申請。也必須在中斷服務程序中,用軟件將其清0,取消此中斷,取消此中斷申請。申請。PCON中只有一位中只有一位SMOD與串行口工作有關與串行口工作有關 : SMOD(PCON.7) 波特率倍增位

27、。在串行口方式波特率倍增位。在串行口方式1、方式、方式2、方、方式式3時,波特率與時,波特率與SMOD有關,當有關,當SMOD=1時,波特率提高一倍。復時,波特率提高一倍。復位時,位時,SMOD=0。 80C51串行口的工作方式串行口的工作方式 1 方式方式0 方式方式0時,串行口為同步移位寄存器的輸入輸出方式。主時,串行口為同步移位寄存器的輸入輸出方式。主要用于擴展并行輸入或輸出口。數據由要用于擴展并行輸入或輸出口。數據由RXD(P3.0)引腳)引腳輸入或輸出,同步移位脈沖由輸入或輸出,同步移位脈沖由TXD(P3.1)引腳輸出。發(fā))引腳輸出。發(fā)送和接收均為送和接收均為8位數據,低位在先,高位

28、在后。波特率固定位數據,低位在先,高位在后。波特率固定為為fosc/12。 a.方式方式0輸出輸出 b.方式方式0輸入輸入 方式方式0接收和發(fā)送電路接收和發(fā)送電路 2 方式方式1 方式方式1是是10位數據的異步通信口。位數據的異步通信口。TXD為數據發(fā)送引腳,為數據發(fā)送引腳,RXD為數據接為數據接收引腳,傳送一幀數據的格式如圖所示。其中收引腳,傳送一幀數據的格式如圖所示。其中1位起始位,位起始位,8位數據位,位數據位,1位停止位。位停止位。 a.方式方式1輸出輸出 b.方式方式1輸入輸入 用軟件置用軟件置REN為為1時,接收器以所選擇波特率的時,接收器以所選擇波特率的16倍速率采樣倍速率采樣R

29、XD引腳引腳電平,檢測到電平,檢測到RXD引腳輸入電平發(fā)生負跳變時,則說明起始位有效,將其引腳輸入電平發(fā)生負跳變時,則說明起始位有效,將其移入輸入移位寄存器,并開始接收這一幀信息的其余位。接收過程中,數移入輸入移位寄存器,并開始接收這一幀信息的其余位。接收過程中,數據從輸入移位寄存器右邊移入,起始位移至輸入移位寄存器最左邊時,控據從輸入移位寄存器右邊移入,起始位移至輸入移位寄存器最左邊時,控制電路進行最后一次移位。當制電路進行最后一次移位。當RI=0,且,且SM2=0(或接收到的停止位為(或接收到的停止位為1)時,將接收到的時,將接收到的9位數據的前位數據的前8位數據裝入接收位數據裝入接收SB

30、UF,第,第9位(停止位)進位(停止位)進入入RB8,并置,并置RI=1,向,向CPU請求中斷。請求中斷。 c.方式方式2和方式和方式3 方式方式2或方式或方式3時為時為11位數據的異步通信口。位數據的異步通信口。TXD為數據發(fā)送引腳,為數據發(fā)送引腳,RXD為數據接收引腳為數據接收引腳 。 方式方式2和方式和方式3時起始位時起始位1位,數據位,數據9位(含位(含1位附加的第位附加的第9位,發(fā)送時為位,發(fā)送時為SCON中的中的TB8,接收時為,接收時為RB8),停止位),停止位1位,一幀數據為位,一幀數據為11位。方式位。方式2的波特率固定為晶振頻率的的波特率固定為晶振頻率的1/64或或1/32

31、,方式,方式3的波特率由定時器的波特率由定時器T1的溢的溢出率決定。出率決定。 1)方式)方式2和方式和方式3輸出輸出 發(fā)送開始時,先把起始位發(fā)送開始時,先把起始位0輸出到輸出到TXD引腳,然后發(fā)送移位寄存器的引腳,然后發(fā)送移位寄存器的輸出位(輸出位(D0)到)到TXD引腳。每一個移位脈沖都使輸出移位寄存器的各位引腳。每一個移位脈沖都使輸出移位寄存器的各位右移一位,并由右移一位,并由TXD引腳輸出。引腳輸出。 第一次移位時,停止位第一次移位時,停止位“1”移入輸出移位寄存器的第移入輸出移位寄存器的第9位上位上 ,以后每,以后每次移位,左邊都移入次移位,左邊都移入0。當停止位移至輸出位時,左邊其

32、余位全為。當停止位移至輸出位時,左邊其余位全為0,檢,檢測電路檢測到這一條件時,使控制電路進行最后一次移位,并置測電路檢測到這一條件時,使控制電路進行最后一次移位,并置TI=1,向向CPU請求中斷。請求中斷。 2)方式)方式2和方式和方式3輸入輸入 接收時,數據從右邊移入輸入移位寄存器,在起始位接收時,數據從右邊移入輸入移位寄存器,在起始位0移到最左邊時,移到最左邊時,控制電路進行最后一次移位。當控制電路進行最后一次移位。當RI=0,且,且SM2=0(或接收到的第(或接收到的第9位數據位數據為為1)時,接收到的數據裝入接收緩沖器)時,接收到的數據裝入接收緩沖器SBUF和和RB8(接收數據的第(

33、接收數據的第9位),置位),置RI=1,向,向CPU請求中斷。如果條件不滿足,則數據丟失,且不置請求中斷。如果條件不滿足,則數據丟失,且不置位位RI,繼續(xù)搜索,繼續(xù)搜索RXD引腳的負跳變。引腳的負跳變。d.波特率的計算波特率的計算 在串行通信中,收發(fā)雙方對發(fā)送或接收數據的速率要有約定。通過在串行通信中,收發(fā)雙方對發(fā)送或接收數據的速率要有約定。通過軟件可對單片機串行口編程為四種工作方式,其中方式軟件可對單片機串行口編程為四種工作方式,其中方式0和方式和方式2的波的波特率是固定的,而方式特率是固定的,而方式1和方式和方式3的波特率是可變的,由定時器的波特率是可變的,由定時器T1的溢的溢出率來決定。

34、出率來決定。 串行口的四種工作方式對應串行口的四種工作方式對應三種波特率三種波特率。由于輸入的移位時鐘的來。由于輸入的移位時鐘的來源不同,所以,各種方式的波特率計算公式也不相同。源不同,所以,各種方式的波特率計算公式也不相同。方式方式0的波特率的波特率 = fosc/12方式方式2的波特率的波特率 =(2SMOD/64) fosc 方式方式1的波特率的波特率 =(2SMOD/32)(T1溢出率)溢出率)方式方式3的波特率的波特率 =(2SMOD/32)(T1溢出率)溢出率) 當當T1作為波特率發(fā)生器時,最典型的用法是使作為波特率發(fā)生器時,最典型的用法是使T1工作在自動再裝入工作在自動再裝入的的

35、8位定時器方式(即方式位定時器方式(即方式2,且,且TCON的的TR1=1,以啟動定時器)。這,以啟動定時器)。這時溢出率取決于時溢出率取決于TH1中的計數值。中的計數值。 T1 溢出率溢出率 = fosc /12256 (TH1) 在單片機的應用中,常用的晶振頻率為:在單片機的應用中,常用的晶振頻率為:12MHz和和11.0592MHz。所。所以,選用的波特率也相對固定。常用的串行口波特率以及各參數的關系以,選用的波特率也相對固定。常用的串行口波特率以及各參數的關系如表所示。如表所示。 串行口工作之前,應對其進行初始化,主要是設置產生波特率的定串行口工作之前,應對其進行初始化,主要是設置產生

36、波特率的定時器時器1、串行口控制和中斷控制。具體步驟如下:、串行口控制和中斷控制。具體步驟如下:確定確定T1的工作方式的工作方式(編程(編程TMOD寄存器);寄存器);計算計算T1的初值的初值,裝載,裝載TH1、TL1;啟動啟動T1(編程(編程TCON中的中的TR1位);位);確定確定串行口控制串行口控制(編程(編程SCON寄存器);寄存器);串行口在中斷方式工作時,要進行中斷設置(編程串行口在中斷方式工作時,要進行中斷設置(編程IE、IP寄存器)。寄存器)。單片機與單片機的通信單片機與單片機的通信 1、點對點的通信、點對點的通信 硬件連接硬件連接 2、多機通信、多機通信 a.硬件連接硬件連接

37、 單片機構成的多機系統(tǒng)常采用總線型主從式結構。所謂主從式,即在數單片機構成的多機系統(tǒng)常采用總線型主從式結構。所謂主從式,即在數個單片機中,有一個是主機,其余的是從機,從機要服從主機的調度、支個單片機中,有一個是主機,其余的是從機,從機要服從主機的調度、支配。配。80C51單片機的串行口方式單片機的串行口方式2和方式和方式3適于這種主從式的通信結構。當適于這種主從式的通信結構。當然采用不同的通信標準時,還需進行相應的電平轉換,有時還要對信號進然采用不同的通信標準時,還需進行相應的電平轉換,有時還要對信號進行光電隔離。在實際的多機應用系統(tǒng)中,常采用行光電隔離。在實際的多機應用系統(tǒng)中,常采用RS-4

38、85串行標準總線進行串行標準總線進行數據傳輸。數據傳輸。b.通信協(xié)議通信協(xié)議所有從機的所有從機的SM2位置位置1,處于接收地址幀狀態(tài)。,處于接收地址幀狀態(tài)。主機發(fā)送一地址幀,其中主機發(fā)送一地址幀,其中8位是地址,第位是地址,第9位為地址位為地址/數據的區(qū)分標志,該數據的區(qū)分標志,該位置位置1表示該幀為地址幀。表示該幀為地址幀。 所有從機收到地址幀后,都將接收的地址與本機的地址比較。對于地址相所有從機收到地址幀后,都將接收的地址與本機的地址比較。對于地址相符的從機,使自己的符的從機,使自己的SM2位置位置0(以接收主機隨后發(fā)來的數據幀),并把(以接收主機隨后發(fā)來的數據幀),并把本站地址發(fā)回主機作

39、為應答;對于地址不符的從機,仍保持本站地址發(fā)回主機作為應答;對于地址不符的從機,仍保持SM2=1,對主,對主機隨后發(fā)來的數據幀不予理睬。機隨后發(fā)來的數據幀不予理睬。從機發(fā)送數據結束后,要發(fā)送一幀校驗和,并置第從機發(fā)送數據結束后,要發(fā)送一幀校驗和,并置第9位(位(TB8)為)為1,作為,作為從機數據傳送結束的標志。從機數據傳送結束的標志。主機接收數據時先判斷數據接收標志(主機接收數據時先判斷數據接收標志(RB8),若),若RB8=1,表示數據傳送,表示數據傳送結束,并比較此幀校驗和,若正確則回送正確信號結束,并比較此幀校驗和,若正確則回送正確信號00H,此信號命令該從機,此信號命令該從機復位(即

40、重新等待地址幀);若校驗和出錯,則發(fā)送復位(即重新等待地址幀);若校驗和出錯,則發(fā)送0FFH,命令該從機重,命令該從機重發(fā)數據。若接收幀的發(fā)數據。若接收幀的RB8=0,則存數據到緩沖區(qū),并準備接收下幀信息。,則存數據到緩沖區(qū),并準備接收下幀信息。主機收到從機應答地址后,確認地址是否相符,如果地址不符,發(fā)復位信主機收到從機應答地址后,確認地址是否相符,如果地址不符,發(fā)復位信號(數據幀中號(數據幀中TB8=1);如果地址相符,則清);如果地址相符,則清TB8,開始發(fā)送數據。,開始發(fā)送數據。從機收到復位命令后回到監(jiān)聽地址狀態(tài)(從機收到復位命令后回到監(jiān)聽地址狀態(tài)(SM2=1)。否則開始接收數據和)。否

41、則開始接收數據和命令。命令。單片機串行口應用舉例單片機串行口應用舉例 在計算機組成的測控系統(tǒng)中,經常要利用串行通信方式進行數據傳輸。在計算機組成的測控系統(tǒng)中,經常要利用串行通信方式進行數據傳輸。80C51單片機的串行口為計算機間的通信提供了極為便利的條件。利用單單片機的串行口為計算機間的通信提供了極為便利的條件。利用單片機的串行口還可以方便地擴展鍵盤和顯示器,對于簡單的應用非常便利。片機的串行口還可以方便地擴展鍵盤和顯示器,對于簡單的應用非常便利。這里僅介紹單片機串行口在通信方面的應用。這里僅介紹單片機串行口在通信方面的應用。1、移位式數據串入、移位式數據串入 電路如圖,利用電路如圖,利用74

42、165將將撥碼開關的狀態(tài)轉換成串行撥碼開關的狀態(tài)轉換成串行數據由數據由RXD輸入,其數據將輸入,其數據將反映在反映在P1所接的所接的LED上。上。#include #define LED P1sbit load=P32;main() SCON=0 x11; while(1) load=0; load=1; RI=0; while(RI=0); LED=SBUF; 2、移位式數據串出、移位式數據串出 電路如圖,利用電路如圖,利用74164將將輸出數據由輸出數據由RXD輸出,程序中將輸出,程序中將8P撥碼開撥碼開關的狀態(tài)經關的狀態(tài)經P2輸入到輸入到8051,再由,再由8051通過通過串行路徑輸出到

43、串行路徑輸出到74164,而,而74164的并行輸的并行輸出腳連接出腳連接8個個LED。#include #define DIPSW P2main() SCON=0 x00; while(1) DIPSW=0 xff; SBUF=DIPSW; while(TI=0); TI=0; 3、mode 1 mode 1通訊時,雙方采用相同的波特通訊時,雙方采用相同的波特率,誤差不能超過率,誤差不能超過2.5%。 電路如圖,采用電路如圖,采用12Mhz時鐘。時鐘。#include #define LED P1#define DIP_SW P2main() TMOD|=0 x20; PCON&=0

44、 x7f; TH1=TL1=0 xfd; TR1=1; SCON=0 x50; while(1) DIP_SW=0 xff; SBUF=DIP_SW; while(RI=0); RI=0; LED=SBUF; TI=0; 程序采用的是查詢方式,若采用中斷程序采用的是查詢方式,若采用中斷方式。方式。#include #define LED P1#define DIP_SW P2sbit BUZZER=P37;void delay(int);char i;main() TMOD|=0 x20; PCON&=0 x7f; TH1=TL1=0 xfd; TR1=1; SCON=0 x50; EA=ES=1; DIP_SW=0 xff; SBUF=DIP_SW; while(1) for(i=0;i30;i+) BUZZER=1;delay(1); BUZZER=0;delay(1); delay(200);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論