單片機學(xué)習(xí)第六章_第1頁
單片機學(xué)習(xí)第六章_第2頁
單片機學(xué)習(xí)第六章_第3頁
單片機學(xué)習(xí)第六章_第4頁
單片機學(xué)習(xí)第六章_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、1本章主要內(nèi)容本章主要內(nèi)容第6章 MCS-51單片機的串口通信串口通信的基本知識MCS-51單片機的串口及控制寄存器串口的工作方式串口的應(yīng)用26.1 串口通信的基本知識第6章 MCS-51單片機的串口通信6.1.1 通信的基本概念計算機通信是將計算機技術(shù)和通信技術(shù)的相結(jié)合,完成計算機與外部設(shè)備或計算機與計算機之間的信息交換。計算機通信可以分為兩大類:并行通信與串行通信。并行通信即數(shù)據(jù)的各位同時傳送;串行通信即數(shù)據(jù)一位一位地順序傳送。圖6-1為這兩種通信方式的示意圖。 計算機 2 或外設(shè) GND GND GND GND 計算機 1 計算機 1 計算機 2 或外設(shè) 發(fā)送 接收 圖6-1 兩種通信方

2、式的示意圖并行通信的特點是控制簡單、傳輸速度快,但由于傳輸線較多,長距離傳送時成本高且接收方的各位同時接收存在困難;串行通信的特點是傳輸線少,長距離傳送時成本低,且可以利用電話網(wǎng)等現(xiàn)成的設(shè)備,但數(shù)據(jù)的傳送控制比并行通信復(fù)雜。 36.1 串口通信的基本知識串口通信的基本知識 第6章 MCS-51單片機的串口通信6.1.2 串行通信的分類 按照串行數(shù)據(jù)的時鐘控制方式,串行通信可分為同步通信和異步通信兩類。1. 異步通信(Asynchronous Communication)異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時鐘盡可能一致

3、。異步通信的示意圖如圖6-2所示。 接收設(shè)備 發(fā)送設(shè)備 0 10100101 1 0 11100110 1 00100 1 11100 0 間隙任意 間隙任意 圖6-2 異步通信示意圖4 6.1 串口通信的基本知識串口通信的基本知識 第6章 MCS-51單片機的串口通信異步通信是以字符(構(gòu)成的幀)為單位進(jìn)行傳輸,字符與字符之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,即字符之間是異步的(字符之間不一定有“位間隔”的整數(shù)倍的關(guān)系),但同一字符內(nèi)的各位是同步的(各位之間的距離均為“位間隔”的整數(shù)倍)。異步通信的特點是不要求收發(fā)雙方時鐘的嚴(yán)格一致,實現(xiàn)容易,設(shè)備開銷較小,但

4、每個字符要附加23位用于起止位,各幀之間還有間隔,因此高。2. 同步通信(Synchronous Communication)同步通信是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳輸一幀信息。這里的信息幀和異步通信的字符幀不同,通常有若干個數(shù)據(jù)字符,如圖6-3所示。圖6-3(a)為單同步字符幀結(jié)構(gòu),圖6-3(b)為雙同步字符幀結(jié)構(gòu),但它們均由同步字符、數(shù)據(jù)字符和校驗字符CRC三部分組成。在同步通信中,同步字符可以采用統(tǒng)一的標(biāo)準(zhǔn)格式,也可以由用戶約定。 5 6.1 串口通信的基本知識串口通信的基本知識 第6章 MCS-51單片機的串口通信 同步 字符 1 同步 字符 1 同步 字符 2 數(shù)據(jù) 字

5、符 1 數(shù)據(jù) 字符 2 數(shù)據(jù) 字符 3 數(shù)據(jù) 字符 1 數(shù)據(jù) 字符 2 數(shù)據(jù) 字符 n 數(shù)據(jù) 字符 n CRC1 CRC2 CRC1 CRC2 (a) 單同步字符幀格式 (b) 雙同步字符幀格式 圖6-3 同步通信的字符幀格式 6 6.1 串口通信的基本知識串口通信的基本知識 第6章 MCS-51單片機的串口通信6.1.3 串行通信的制式在串行通信中,數(shù)據(jù)是在兩個站之間進(jìn)行傳送的,按照數(shù)據(jù)傳送方向,串行通信可分為單工(Simplex)、半雙工(Half Duplex)和全雙工(Full Duplex)三圖。在單工制式下,通信線的一端接發(fā)送器,一端接接收器,數(shù)據(jù)只能按照一個固定的方向傳送,如圖6

6、-4(a)所示。 在半雙工制式下,系統(tǒng)的每個通信設(shè)備都由一個發(fā)送器和一個接收器組成,它允許兩個方向的數(shù)據(jù)傳遞,但不能同時傳輸,只能交替進(jìn)行,如圖6-4(b)所示。在全雙工制式下,它允許兩個方向同時進(jìn)行數(shù)據(jù)傳輸,如圖6-4(c)所示。 A 站 發(fā)送器 B 站 接收器 單工通信 A 站 發(fā) 收 發(fā) 收 B 站 發(fā) 收 A 站 (a) 單工制式 (b) 半雙工制式 (c) 全雙工制式 A 站 發(fā) 收 圖6-4 單工、半雙工和全雙工三種制式示意圖7 6.1 串口通信的基本知識串口通信的基本知識 第6章 MCS-51單片機的串口通信6.1.4 串行通信接口標(biāo)準(zhǔn) 1. RS-232C接口 RS-232C是

7、使用最早、應(yīng)用最多的一種異步串行通信總線標(biāo)準(zhǔn)。它是美國電子工業(yè)協(xié)會(EIA)1962年公布,1969年最后修訂而成的。其中,RS表示Recommended Standard,232是該標(biāo)準(zhǔn)的標(biāo)識號,C表示最后一訂。RS-232C主要用來定義計算機系統(tǒng)的一些數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)電路終接設(shè)備(DCE)之間的電氣性能。 (1)機械特性RS-232C接口規(guī)定使用25針連接器,連接器的尺寸及每個插針的排列位置都有明確的定義。然而RS-232C標(biāo)準(zhǔn)在連接器方面沒有嚴(yán)格規(guī)定,在一般應(yīng)用中并不一定用到全部RS-232C標(biāo)準(zhǔn)的全部信號,所以,在實際應(yīng)用中常常使用9針連接器代替25針連接器。連接器的引腳定

8、義如圖6-5所示。圖6-5 DB-25(陽頭)和DB-9(陽頭)連接器定義8 6.1 串口通信的基本知識串口通信的基本知識 第6章 MCS-51單片機的串口通信(2)功能特性RS-232C標(biāo)準(zhǔn)接口的主要引腳定義如表6-1所示。插針序號信號名稱功 能信號方向1PGND保護(hù)接地2(3)TXD發(fā)送數(shù)據(jù)(串行輸出)DTE DCE3(2)RXD接收數(shù)據(jù)(串行輸入)DTE DCE4(7)RTS請求發(fā)送DTE DCE5(8)CTS允許發(fā)送DTE DCE6(6)DSRDCE就緒(數(shù)據(jù)建立就緒)DTE DCE7(5)SGND信號接地8(1)DCD載波檢測DTE DCE20(4)DTRDTE就緒(數(shù)據(jù)終端準(zhǔn)備就緒

9、) DTE DCE22(9)RI振鈴指示DTE DCE9 6.1 串口通信的基本知識串口通信的基本知識 第6章 MCS-51單片機的串口通信(3)電氣特性RS-232C采用負(fù)邏輯電平,規(guī)定DC(-3-15V)為邏輯1,DC(+3+15V)為邏輯0,-3+3V為過渡區(qū),不作定義。RS-232C的邏輯電平與通常的TTL和CMOS電平不兼容,為實現(xiàn)與TTL或CMOS電路的連接,要外加電平轉(zhuǎn)換路。(4)過程特性過程特性規(guī)定了信號之間的時序關(guān)系,以便正確地接收和發(fā)送數(shù)據(jù)RS232示。 M O D E M 計 算 機 計 算 機 M O D E M TXD RXD RTS DSR TXD RXD RTS

10、DSR 電話線 圖6-6 遠(yuǎn)程通信的RS-232C總線連接近程通信時(通信距離15m),可以不用調(diào)制解調(diào)器,其連接如圖6-7所示 10 6.1 串口通信的基本知識串口通信的基本知識 第6章 MCS-51單片機的串口通信 計 算 機 甲 TXD RXD TXD RXD 計 算 機 乙 計 算 機 甲 TXD RXD 4 5 6 20 計 算 機 乙 TXD RXD 4 5 6 20 圖6-7 近程通信的RS-232C總線連接(5)RS-232C電平與TTL電平轉(zhuǎn)換驅(qū)動電路MCS-51單片機串行接口與RS-232C接口不能直接對接,必須進(jìn)行電平轉(zhuǎn)換。常用的電平轉(zhuǎn)換集成電路是傳輸線驅(qū)動器MC1488

11、和傳輸線接收器MC1489,MC1488芯片輸入的是TTL信號,輸出的是RS232信號;MC1489芯片輸入的是RS232信號,輸出的為TTL信號。(6) 采用RS-232C接口存在的問題 傳輸距離短,傳輸速率低。RS-232C總線標(biāo)準(zhǔn)受電容允許值的約束,使用時傳輸距離一般不要超過15米(線路條件好時也不超過幾十米)。最高傳送速率為20kbps。11 6.1 串口通信的基本知識串口通信的基本知識 第6章 MCS-51單片機的串口通信有電平偏移。RS-232C總線標(biāo)準(zhǔn)要求收發(fā)雙方共地。通信距離較大時,收發(fā)雙方的地電位差別較大,在信號地上將有比較大的地電流并降??垢蓴_能力差。 2. RS-422A

12、接口RS-422A輸出驅(qū)動器為雙端平衡驅(qū)動器。如果其中一條線為邏輯“1”狀態(tài),另一條線就為邏輯“0”,比采用單端不平衡驅(qū)動對電壓的放大倍數(shù)大一倍。差分電路能從地線干擾中拾取有效信號,差分接收器可以分辨200mV以上電位差。若傳輸過程中混入了干擾和噪聲,由于差分放大器的作用,可使干擾和噪聲相互抵消。因此可以避免或大大減弱地線干擾和電磁干擾的響。RS-422A傳輸速率(90kbps)時,傳輸距離可達(dá)1200米。 3. RS-485接口RS-485是RS-422A的變型:RS-422A用于全雙工,而RS-485則用于半雙工。RS-485是一種多發(fā)送器標(biāo)準(zhǔn),在通信線路上最多可以使用32 對差分驅(qū)動器/

13、接收器。如果在一個網(wǎng)絡(luò)中連接的設(shè)備超過32個,還可以使用中器。 RS-485的信號傳輸采用兩線間的電壓來表示邏輯1和邏輯0。由于發(fā)送方需要兩根傳輸線,接收方也需要兩根傳輸線。傳輸線采用差動信道,所以它的干擾抑制性極好,又因為它的阻抗低,無接地問題,所以傳輸距離可達(dá)1200米,傳輸速率可達(dá)1Mbps。12 6.2 MCS-51單片機的串口及控制寄存器第6章 MCS-51單片機的串口通信6.2.1 MCS-51串行口結(jié)構(gòu) MCS-51內(nèi)部有兩個獨立的接收、發(fā)送緩沖器SBUF。SBUF屬于特殊功能寄存器。發(fā)送緩沖器只能寫入不能讀出,接收緩沖器只能讀出不能寫入,二者共用一個字節(jié)地址(99H)。串行口的

14、結(jié)構(gòu)如圖6-8所示。 波特率發(fā)生器 TXD 引腳 RXD 引腳 1 發(fā)送 SBUF (99H) SBUF (99H) 接收 控制門 發(fā)送控制器 接收控制器 輸入移位寄存器 串行口中斷 串行控制寄存器 1 TI RI (98H) TI RI 8 8 8 圖6-8 串行口結(jié)構(gòu)示意圖13 6.2 MCS-51單片機的串口及控制寄存器第6章 MCS-51單片機的串口通信6.2.2 MCS-51串行控制寄存器與MCS-51串行口有關(guān)的特殊功能寄存器有SBUF、SCON、PCON。 1. 串行口數(shù)據(jù)緩沖器SBUFSBUF是兩個在物理上獨立的接收、發(fā)送寄存器,一個用于存放接收到的數(shù)據(jù),另一個用于存放欲發(fā)送的

15、數(shù)據(jù),可同時發(fā)送和接收數(shù)據(jù)。兩個緩沖器共用一個地址99H,通過對SBUF的讀、寫指令來區(qū)別是對接收緩沖器還是發(fā)送緩沖器進(jìn)行操作。CPU在寫SBUF時,就是修改發(fā)送緩沖器;讀SBUF,就是接收緩沖器的內(nèi)容。接收或發(fā)送數(shù)據(jù),是通過串行口對外的兩條獨立收發(fā)信號線RXD(P3.0)、TXD(P3.1)來實現(xiàn)的,因此可以同時發(fā)送、接收數(shù)據(jù),其工作方式為全雙工制式。 2. 串行口控制寄存器SCONSCON是一個特殊功能寄存器,用以設(shè)定串行口的工作方式、接收/發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志,可以位尋址,字節(jié)地址為98H。單片機復(fù)位時,為0。 位號 76543210字節(jié)地址:98H SM0SM1SM2RENTB8R

16、B8T1R1SCON14 6.2 MCS-51單片機的串口及控制寄存器第6章 MCS-51單片機的串口通信對各位的說明如下。SM0、SM1:串行方式選擇位,其定義如表6-2所示。SM2:多機通信控制位,用于方式2和方式3中。在方式2和方式3處于接收方式時,若SM2=1,且接收到的第9位數(shù)據(jù)RB8為0時,不激活RI;若SM2=1,且RB8=1時,則置RI=1。在方式2、3處于接收或發(fā)送方式時,若SM2=0,不論接收到的第9位RB8為0還是為1,TI、RI都以正常方式被激活。在方式1處于接收時,若SM2=1,則只有收到有效的停止位后,RI置1SM0。表6-2 串行方式定義 SM0 SM1工作方式功

17、 能波 特 率0 0方式08位同步移位寄存器fosc/120 1方式110位異步收發(fā)器可變1 0方式211位異步收發(fā)器fosc/64或fosc/321 1方式311位異步收發(fā)器可變15 6.2 MCS-51單片機的串口及控制寄存器第6章 MCS-51單片機的串口通信REN:允許串行接收位。它由軟件置位或清零。REN=1時,允許接REN時收。TB8:發(fā)送數(shù)據(jù)的第9位。在方式2和方式3中,由軟件置位或復(fù)位,可做奇偶校驗位。在多機通信中,可作為區(qū)別地址幀或數(shù)據(jù)幀的標(biāo)識位,一般約定地址幀時,TB8為1,數(shù)據(jù)幀時,TB8為0。RB8:接收數(shù)據(jù)的第9位。功能同TB8。TI:發(fā)送中斷標(biāo)志位。在方式0中,發(fā)送

18、完8位數(shù)據(jù)后,由硬件置位;在其他方式中,在發(fā)送停止位之初由硬件置位。因此,TI是發(fā)送完一幀數(shù)據(jù)的標(biāo)志,可以用指令JBC TI, rel來查詢是否發(fā)送結(jié)束。當(dāng)TI=1時,也可向CP后TI。RI:接收中斷標(biāo)志位。在方式0中,接收完8位數(shù)據(jù)后,由硬件置位;在其他方式中,在接收停止位的中間由硬件置位。同TI一樣,也可以通過JBC RI, rel來查詢是否接收完一幀數(shù)據(jù)。當(dāng)RI=1時,也可申請中斷,響應(yīng)中斷后,必須由軟件清除RI。3. 電源控制寄存器PCONPCON主要是為單片機的電源控制設(shè)置的專用寄存器,不可位尋址,字節(jié)地址為87H。位號 76543210字節(jié)地址:87H SMODFCON16 6.2

19、 MCS-51單片機的串口及控制寄存器第6章 MCS-51單片機的串口通信PCON中只有一位SMOD與串行口工作有關(guān),SMOD(PCON.7)為波特率倍增位,在串行口方式1、方式2、方式3時,波特率與SMOD有關(guān),當(dāng)SMOD=1時,波特率提高一倍。復(fù)位時,SMOD=0。17 6.3 串口的工作方式 第6章 MCS-51單片機的串口通信6.3.1 方式0方式0時,串行口為同步移位寄存器的輸入輸出方式。主要用于擴(kuò)展并行輸入或輸出口。數(shù)據(jù)由RXD(P3.0)引腳輸入或輸出,同步移位脈沖由TXD(P3.1)引腳輸出。發(fā)送和接收均為8位數(shù)據(jù),低位在先,高位在后。波特率固定為fosc/12。 1. 方式0

20、輸出當(dāng)一個數(shù)據(jù)寫入串行口發(fā)送緩沖器SBUF時,串行口將8位數(shù)據(jù)以fosc/12的波特率從RXD引腳輸出(低位在前),發(fā)送完置中斷標(biāo)志TI為1,請求中斷。方式0的輸出時序如圖6-9所示。圖6-9 方式0的輸出時序18 6.3 串口的工作方式 第6章 MCS-51單片機的串口通信2. 方式0輸入在滿足REN=1和RI=0的條件下,串行口即開始從RXD端以fosc/12的波特率輸入數(shù)據(jù)(低位在前),當(dāng)接收完8位數(shù)據(jù)后,置中斷標(biāo)志RI為1,請求中斷。在再次接收數(shù)據(jù)之前,必須由軟件清RI為0。方式0的輸入時序如圖6-10所示。圖6-10 方式0輸入時序串行控制寄存器SCON中的TB8和RB8在方式0中未

21、用。值得注意的是,每當(dāng)發(fā)送或接收完8位數(shù)據(jù)后,硬件會自動置TI或RI為1,CPU響應(yīng)TI或RI中斷后,必須由用戶用軟件清0。方式0時,SM2必須為0。19 6.3 串口的工作方式 第6章 MCS-51單片機的串口通信方式1是10位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式如圖6-11所示,其中1位起始位,8位數(shù)據(jù)位,1位停止位。6.3.2 方式1 D1 D0 第 n 字符幀 8 位字符幀 起始位 D7 1 D0 D1 D2 D3 D4 D5 D6 1 0 D7 0 第 n+1 字符幀 停止位 圖6-11 方式1的10位數(shù)據(jù)格式 1. 方式1輸出發(fā)送時,數(shù)據(jù)

22、從TXD端輸出,當(dāng)數(shù)據(jù)寫入發(fā)送緩沖器SBUF后,啟動發(fā)送器發(fā)送。當(dāng)發(fā)送完一幀數(shù)據(jù)后,置中斷標(biāo)志TI為1。方式1所傳送的波特率取決于定時器1的溢出率和PCON中的SMOD位,方式1的輸出時序如圖6-12所示。 20 6.3 串口的工作方式 第6章 MCS-51單片機的串口通信圖6-12 方式1輸出時序2. 方式1輸入接收時,由REN置1,允許接收,串行口采樣RXD,當(dāng)采樣由1到0跳變時,確認(rèn)是起始位“0”,開始接收一幀數(shù)據(jù)。當(dāng)RI=0,且停止位為1或SM2=0時,停止位進(jìn)入RB8位,同時置中斷標(biāo)志RI;否則信息將丟失。所以,方式1接收時,應(yīng)先用軟件清除RI或SM2標(biāo)志。方式1的輸入時序如圖6-1

23、3所示。圖6-13 方式1輸入時序21 6.3 串口的工作方式 第6章 MCS-51單片機的串口通信6.3.3 方式2和方式3方式2或方式3時為11位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳。發(fā)送或接收一幀數(shù)據(jù)包括1位起始位0,8位數(shù)據(jù)位,1位可編程位(用于奇偶校驗)和1位停止位1。除了波特率以外,方式3和方式2完全相同,方式2的波特率固定為晶振頻率的1/64或1/32,方式3的波特率由定時器T1的溢出率決定。傳送一幀數(shù)據(jù)的格式如圖6-14所示。 第 n 字符幀 第 n+1 字符幀 8 位數(shù)據(jù) 起始位 停止位 0/1 1 D0 D1 D2 D3 D4 D5 D6 0/1 0

24、 D7 1 D1 D0 0 圖6-14 方式2、3的11位數(shù)據(jù)格式22 6.3 串口的工作方式 第6章 MCS-51單片機的串口通信 1. 方式2、3輸出發(fā)送時,先根據(jù)通信協(xié)議由軟件設(shè)置TB8,然后用指令將要發(fā)送的數(shù)據(jù)寫入SBUF,啟動發(fā)送器。寫SBUF的指令時,除了將8位數(shù)據(jù)送入SBUF外,同時還將TB8裝入發(fā)送移位寄存器的第9位,并通知發(fā)送控制器進(jìn)行一次發(fā)送。一幀信息即從TXD發(fā)送,在送完一幀信息后,TI被自動置1,在發(fā)送下一幀信息之前,TI必須由中斷服務(wù)程序或查詢程序清0。方式2、3的輸出時序如圖6-15所示。圖6-15 方式2、3的輸出時序2. 方式2、3輸入當(dāng)REN=1時,允許串行口

25、接收數(shù)據(jù)。數(shù)據(jù)由RXD端輸入,接收11位的信息。當(dāng)接收器采樣到RXD端的負(fù)跳變,并判斷起始位有效后,開始接收一幀信息。當(dāng)接收器接收到第9位數(shù)據(jù)后,若同時滿足以下條件:RI=0和SM2=0或接收到的第9位數(shù)據(jù)為1,則接收數(shù)據(jù)有效,8位數(shù)據(jù)送入SBUF,第9位送入RB8,并置RI=1。若不滿足上述條件,則信息丟失。方式2、3的輸入時序如圖6-16所示。23 6.3 串口的工作方式 第6章 MCS-51單片機的串口通信圖6-16 方式2、3的輸入時序6.3.4 波特率的計算在串行通信中,收發(fā)雙方對發(fā)送或接收數(shù)據(jù)的速率要有約定。通過軟件可對單片機串行口編程為四種工作方式,其中方式0和方式2的波特率是固

26、定的,而方式1和方式3的波特率是可變的,由定時器T1的溢出率來決定。串行口的四種工作方式對應(yīng)三種波特率。由于輸入的移位時鐘的來源不同,所以,各種方式的波特率計算公式也不相同。方式0的波特率 = fosc/12方式2的波特率 =(2SMOD/64)fosc 方式1的波特率 =(2SMOD/32)(T1溢出率)方式3的波特率 =(2SMOD/32)(T1溢出率)24 6.3 串口的工作方式 第6章 MCS-51單片機的串口通信當(dāng)T1作為波特率發(fā)生器時,最典型的用法是使T1工作在自動再裝入的8位定時器方式(即方式2,且TCON的TR1=1,以啟動定時器)。這時溢出率取決于TH1中的計數(shù)值。 T1溢出

27、率 = fosc / 12256-(TH1)在單片機的應(yīng)用中,常用的晶振頻率為12MHz和11.0592MHz。所以,選用的波特率也相對固定。常用的串行口波特率以及各參數(shù)的關(guān)系如表6-3所示。表6-3 常用波特率與定時器1的參數(shù)關(guān)系T/C串口工作方式及波特率(b/s)fosc(MHz)SMOD定時器T1工作方式初值方式1、362.5k12102FFH19.2k11.0592102FDH960011.0592002FDH480011.0592002FAH240011.0592002F4H120011.0592002E8H25 6.3 串口的工作方式 第6章 MCS-51單片機的串口通信串行口工作

28、之前,應(yīng)對其進(jìn)行初始化,主要是設(shè)置產(chǎn)生波特率的定時器1、串行口控制和中斷控制。具體步驟如下。(1)確定T1的工作方式(編程TMOD寄存器)。(2)計算T1的初值,裝載TH1、TL1。(3)啟動T1(編程TCON中的TR1位)。(4)確定串行口控制(編程SCON寄存器)。(5)串行口在中斷方式工作時,要進(jìn)行中斷設(shè)置(編程IE、IP寄存器)。 26 6.4 串口的應(yīng)用第6章 MCS-51單片機的串口通信6.4.1 雙機通信如果兩個MCS-51單片機系統(tǒng)距離較近,那么就可以將它們的串行口直接相連,實現(xiàn)雙機通信。1. 硬件連接雙機通信的硬件連接如圖6-17所示。 RXD TXD TXD RXD 805

29、1 應(yīng)用系統(tǒng) (乙機) 8051 應(yīng)用系統(tǒng) (甲機) 圖6-17 雙機通信接口電路27 6.4 串口的應(yīng)用第6章 MCS-51單片機的串口通信2. 雙機通信的軟件編程對于雙機通信的程序,通常采用兩種方法:查詢方式和中斷方式。(1)查詢方式甲機發(fā)送編程將甲單機片外1000H101FH單元的數(shù)據(jù)塊從串行口輸出。定義方式2發(fā)送,TB8為奇偶校驗位。發(fā)送波特率375kb/s,晶振為12MHz,SMOD=1。參考發(fā)送子程序如下:乙機接收編程使乙機接收甲機發(fā)送過來的數(shù)據(jù)塊,并存入片內(nèi)50H6FH單元。接收過程要求判斷RB8,若出錯置F0標(biāo)志為1,正確則置F0標(biāo)志為0,然后返回。在進(jìn)行雙機通信時,兩機應(yīng)采用

30、相同的工作方式和波特率。參考接收子程序如下:28 6.4 串口的應(yīng)用第6章 MCS-51單片機的串口通信在上述查詢方式的雙機通信中,因為發(fā)送雙方單片機的串行口均按方式2工作,所以幀格式是11位的,收發(fā)雙方均是采用奇偶位TB8來進(jìn)行校驗的。傳送數(shù)據(jù)的波特率與定時器無關(guān),所以程序中沒有涉及定時器的編程。(2)中斷方式在很多應(yīng)用中,雙機通信的接收方都采用中斷的方式來接收數(shù)據(jù),以提高CPU的工作效率;發(fā)送方仍然采用查詢方式發(fā)送。甲機發(fā)送上面的通信程序,收發(fā)雙方是采用奇偶位TB8來進(jìn)行校驗的,這里介紹一種用累加和進(jìn)行校驗的方法。編程將甲單機片內(nèi)60H6FH單元的數(shù)據(jù)塊從串行口發(fā)送,在發(fā)送之前將數(shù)據(jù)塊長度

31、發(fā)送給乙機,當(dāng)發(fā)送完16個字節(jié)后,再發(fā)送一個累加校驗和。定義雙機串行口按方式1工作,晶振為11.059MHz,波特率為2400b/s,定時器1按方式2工作。經(jīng)計算或查表6-3得到定時器預(yù)置值為0F4H,SMOD=0。參考發(fā)送子程序如下:29 6.4 串口的應(yīng)用第6章 MCS-51單片機的串口通信乙機接收乙機接收甲機發(fā)送的數(shù)據(jù),并存入以2000H開始的片外數(shù)據(jù)存儲器中。首先接收數(shù)據(jù)長度,接著接收數(shù)據(jù),當(dāng)接收完16個字節(jié)后,接收累加和校驗碼,進(jìn)行校驗。數(shù)據(jù)傳送結(jié)束后,根據(jù)校驗結(jié)果向甲機發(fā)送一個狀態(tài)字,00H表示正確,0FFH表示出錯,出錯則甲機重發(fā)。接收采用中斷方式。設(shè)置兩個標(biāo)志位(7FH,7EH

32、位)來判斷接收到的信息是數(shù)據(jù)塊長度、數(shù)據(jù)還是累加校驗和。參考接收程序如下:6.4.2 多機通信1. 硬件連接MCS-51串行口的方式2和方式3有一個專門的應(yīng)用領(lǐng)域,即多機通信。這一功能通常采用主從式多機通信方式,在這種方式中,要用一臺主機和多臺從機。主機發(fā)送的信息可以傳送到各個從機或指定的從機,各從機發(fā)送的信息只能被主機接收,從機與從機之間不能進(jìn)行通信。圖6-18是多機通信的一種連接示意圖。30 6.4 串口的應(yīng)用第6章 MCS-51單片機的串口通信 TXD RXD TXD RXD 8051 0#從機 8051 1#從機 TXD RXD TXD RXD 8051 n#從機 8051 主機 圖6

33、-18 多機通信連接示意圖2. 通信協(xié)議多機通信的實現(xiàn),主要是依靠主、從機之間正確地設(shè)置與判斷SM2和發(fā)送或接收的第9位數(shù)據(jù)來(TB8或RB8)完成的。我們首先將上述二者的作用總結(jié)如下。在單片機串行口以方式2或方式3接收時,一方面,若SM2=1,表示置多機通信功能位。這時有兩種情況: 接收到第9位數(shù)據(jù)為1,此時數(shù)據(jù)裝入SBUF,并置RI=1,向CPU發(fā)中斷請求。 接收到第9位數(shù)據(jù)為0,此時不產(chǎn)生中斷,信息將被丟失,不能接收。另一方面,若SM2=0,則接收到的第9位信息無論是1還是0,都產(chǎn)生RI=1的中斷標(biāo)志,接收的數(shù)據(jù)裝入SBUF。根據(jù)這個功能,就可以實現(xiàn)多機通信。31 6.4 串口的應(yīng)用第6章 MCS-51單片機的串口通信在編程前,首先要為各從機定義地址編號,如分別為00H、01H、02H等。在主機想發(fā)送一個數(shù)據(jù)塊給某個從機時,它必須先送出一個地址字節(jié),以辨認(rèn)從機。編程實現(xiàn)多機通信的過程如下。(1)主機發(fā)送一幀地址信息,與所需的從機聯(lián)絡(luò)。

溫馨提示

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

最新文檔

評論

0/150

提交評論