51單片機(jī)串行口教學(xué)課件解析_第1頁(yè)
51單片機(jī)串行口教學(xué)課件解析_第2頁(yè)
51單片機(jī)串行口教學(xué)課件解析_第3頁(yè)
51單片機(jī)串行口教學(xué)課件解析_第4頁(yè)
51單片機(jī)串行口教學(xué)課件解析_第5頁(yè)
已閱讀5頁(yè),還剩58頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 計(jì)算機(jī)與外界的信息交換稱為通信。通信的基本方式可分為并行通信和串行通信兩種。 所謂并行通信是指數(shù)據(jù)的各位同時(shí)在多根數(shù)據(jù)線上發(fā)送或接收。 串行通信是數(shù)據(jù)的各位在同一根數(shù)據(jù)線上依次逐位發(fā)送或接收。串行通信 第1頁(yè),共63頁(yè)。 目前串行通信在單片機(jī)雙機(jī)、多機(jī)以及單片機(jī)與PC機(jī)之間的通信等方面得到了廣泛應(yīng)用。圖8.1 并行通信示意圖 P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0P2.7RDWRRDWRCSD7D6D5D4D3D2D1D0825588C51圖8.2 串行通信示意圖 88C51外設(shè)TXDTXDRXDRXD發(fā)送接收第2頁(yè),共63頁(yè)。一、異步通信和同步通信 串行通信按同步

2、方式可分為異步通信和同步通信兩種基本通信方式。 1. 同步通信(Synchronous Communication) 同步通信是一種連續(xù)傳送數(shù)據(jù)的通信方式,一次通信傳送多個(gè)字符數(shù)據(jù),稱為一幀信息。數(shù)據(jù)傳輸速率較高,通??蛇_(dá)56000bps或更高。其缺點(diǎn)是要求發(fā)送時(shí)鐘和接收時(shí)鐘保持嚴(yán)格同步。第3頁(yè),共63頁(yè)。同步字符數(shù) 據(jù)字符1數(shù) 據(jù)字符2數(shù)據(jù)字符n-1數(shù) 據(jù)字符n校 驗(yàn)字 符(校驗(yàn)字符)圖8.3 同步通信數(shù)據(jù)傳送格式 2. 異步通信(Asynchronous Communication) 在異步通信中,數(shù)據(jù)通常是以字符或字節(jié)為單位組成數(shù)據(jù)幀進(jìn)行傳送的。收、發(fā)端各有一套彼此獨(dú)立,互不同步的通信機(jī)

3、構(gòu),由于收發(fā)數(shù)據(jù)的幀格式相同,因此可以相互識(shí)別接收到的數(shù)據(jù)信息。同步通信的數(shù)據(jù)幀格式如圖8.3所示。第4頁(yè),共63頁(yè)。D0 D1 D2 D3 D4 D5 D6 D7 0/1 1 1 1 1 D7 0/1 1 00 D0 D1第n字符幀空閑位停止位奇偶校驗(yàn)停止位8位數(shù)據(jù)8位數(shù)據(jù)起始位起始位奇偶校驗(yàn)第n-1字符幀第n+1字符幀圖8.4 異步通信幀格式8位數(shù)據(jù) 異步通信信息幀格式如圖8.4所示。第5頁(yè),共63頁(yè)。 (1) 起始位: 在沒(méi)有數(shù)據(jù)傳送時(shí),通信線上處于邏輯“1”狀態(tài)。當(dāng)發(fā)送端要發(fā)送1個(gè)字符數(shù)據(jù)時(shí),首先發(fā)送1個(gè)邏輯“0”信號(hào),這個(gè)低電平便是幀格式的起始位。其作用是向接收端表示發(fā)送端開(kāi)始發(fā)送一

4、幀數(shù)據(jù)。接收端檢測(cè)到這個(gè)低電平后,就準(zhǔn)備接收數(shù)據(jù)信號(hào)。第6頁(yè),共63頁(yè)。 (2) 數(shù)據(jù)位: 在起始位之后,發(fā)送端發(fā)出(或接收端接收)的是數(shù)據(jù)位,數(shù)據(jù)的位數(shù)沒(méi)有嚴(yán)格的限制,58位均可。由低位到高位逐位傳送。 (3) 奇偶校驗(yàn)位: 數(shù)據(jù)位發(fā)送完(接收完)之后,可發(fā)送一位用來(lái)檢驗(yàn)數(shù)據(jù)在傳送過(guò)程中是否出錯(cuò)的奇偶校驗(yàn)位。奇偶校驗(yàn)是收發(fā)雙方預(yù)先約定好的差錯(cuò)檢驗(yàn)方式之一。有時(shí)也可不用奇偶校驗(yàn)。第7頁(yè),共63頁(yè)。 (4) 停止位: 字符幀格式的最后部分是停止位,邏輯“1”電平有效,它可占1/2位、1位或2位(在串行通信時(shí)每位的傳送時(shí)間是固定的)。停止位表示傳送一幀信息的結(jié)束,也為發(fā)送下一幀信息作好準(zhǔn)備。第8頁(yè)

5、,共63頁(yè)。二、串行通信的波特率 波特率(Baud Rate)是串行通信中一個(gè)重要概念,它是指?jìng)鬏敂?shù)據(jù)的速率, 亦稱比特率。波特率的定義是每秒傳輸二進(jìn)制數(shù)碼的位數(shù)。如:波特率為1200bps是指每秒鐘能傳輸1200位二進(jìn)制數(shù)碼。 波特率的倒數(shù)即為每位數(shù)據(jù)傳輸時(shí)間。例如:波特率為1200bps,每位的傳輸時(shí)間為:1)(833.01200msdT=第9頁(yè),共63頁(yè)。 波特率和字符幀的傳輸速率不同,若采用圖8.4的數(shù)據(jù)幀格式,并且數(shù)據(jù)幀連續(xù)傳送(無(wú)空閑位),則實(shí)際的字符傳輸速率為1200/11=108.08幀/秒。 第10頁(yè),共63頁(yè)。三、 串行通信的制式 1. 單工制式(Simplex) 單工制式

6、是指甲乙雙方通信只能單向傳送數(shù)據(jù)。單工制式如圖8.5所示。 在串行通信中,數(shù)據(jù)是在兩個(gè)站之間傳送的。按照數(shù)據(jù)傳送方向,串行通信可分為三種制式。發(fā)送器A接收器B圖8.5 單工制式第11頁(yè),共63頁(yè)。 2. 半雙工制式(Half duplex) 半雙工制式是指通信雙方都具有發(fā)送器和接收器,雙方既可發(fā)送也可接收,但接收和發(fā)送不能同時(shí)進(jìn)行,即發(fā)送時(shí)就不能接收,接收時(shí)就不能發(fā)送。半雙工制式如圖8.6所示。發(fā)送接收發(fā)送接收A端B端圖8.6 半雙工制式第12頁(yè),共63頁(yè)。 3. 全雙工制式(Full duplex) 全雙工制式是指通信雙方均設(shè)有發(fā)送器和接收器,并且將信道劃分為發(fā)送信道和接收信道,兩端數(shù)據(jù)允許

7、同時(shí)收發(fā),因此通信效率比前兩種高。全雙工制式如圖8.7所示。發(fā)送接收接收發(fā)送A端B端圖8.7 全雙工制式第13頁(yè),共63頁(yè)。四、 串行通信的校驗(yàn) 串行通信的目的不只是傳送數(shù)據(jù)信息,更重要的是應(yīng)確保準(zhǔn)確無(wú)誤地傳送。因此必須考慮在通信過(guò)程中對(duì)數(shù)據(jù)差錯(cuò)進(jìn)行校驗(yàn),校驗(yàn)方法有奇偶校驗(yàn)、累加和校驗(yàn)以及循環(huán)冗余碼校驗(yàn)等。第14頁(yè),共63頁(yè)。1. 奇偶校驗(yàn) 奇偶校驗(yàn)的特點(diǎn)是按字符校驗(yàn),即在發(fā)送每個(gè)字符數(shù)據(jù)之后都附加一位奇偶校驗(yàn)位(1或0),當(dāng)設(shè)置為奇校驗(yàn)時(shí),數(shù)據(jù)中1的個(gè)數(shù)與校驗(yàn)位1的個(gè)數(shù)之和應(yīng)為奇數(shù);反之則為偶校驗(yàn)。收、發(fā)雙方應(yīng)具有一致的差錯(cuò)檢驗(yàn)設(shè)置,當(dāng)接收1幀字符時(shí),對(duì)1的個(gè)數(shù)進(jìn)行檢驗(yàn),若奇偶性(收、發(fā)雙方

8、)一致則說(shuō)明傳輸正確。奇偶校驗(yàn)只能檢測(cè)到那種影響奇偶位數(shù)的錯(cuò)誤,比較低級(jí),一般只用在異步通信中。第15頁(yè),共63頁(yè)。2. 累加和校驗(yàn) 累加和校驗(yàn)是指發(fā)送方將所發(fā)送的數(shù)據(jù)塊求和,并將“校驗(yàn)和”附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)時(shí)也是先對(duì)數(shù)據(jù)塊求和,將所得結(jié)果與發(fā)送方的“校驗(yàn)和”進(jìn)行比較,若兩者相同,表示傳送正確,若不同則表示傳送出了差錯(cuò)?!靶r?yàn)和”的加法運(yùn)算可用邏輯加,也可用算術(shù)加。第16頁(yè),共63頁(yè)。3. 循環(huán)冗余碼校驗(yàn)(CRC) 循環(huán)冗余碼校驗(yàn)的基本原理是將一個(gè)數(shù)據(jù)塊看成一個(gè)位數(shù)很長(zhǎng)的二進(jìn)制數(shù),然后用一個(gè)特定的數(shù)去除它,將余數(shù)作校驗(yàn)碼附在數(shù)據(jù)塊之后一起發(fā)送。接收端收到該數(shù)據(jù)塊和校驗(yàn)碼后,進(jìn)行同

9、樣的運(yùn)算來(lái)校驗(yàn)傳送是否出錯(cuò)。目前CRC已廣泛用于數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)通信中,并在國(guó)際上形成規(guī)范,市面上已有不少現(xiàn)成的CRC軟件算法。第17頁(yè),共63頁(yè)。五、8051單片機(jī)的串行接口 8051內(nèi)部有一個(gè)可編程全雙工串行通信接口。該部件不僅能同時(shí)進(jìn)行數(shù)據(jù)的發(fā)送和接收,也可作為一個(gè)同步移位寄存器使用。 下面將對(duì)其內(nèi)部結(jié)構(gòu)、工作方式以及波特率進(jìn)行介紹。第18頁(yè),共63頁(yè)。 1、串行接口的結(jié)構(gòu)及寄存器第19頁(yè),共63頁(yè)。 (1). 串行數(shù)據(jù)緩沖器SBUF SBUF是串行口緩沖寄存器,包括發(fā)送寄存器和接收寄存器,以便能以全雙工方式進(jìn)行通信。此外,在接收寄存器之前還有移位寄存器,從而構(gòu)成了串行接收的雙緩沖結(jié)構(gòu),這

10、樣可以避免在數(shù)據(jù)接收過(guò)程中出現(xiàn)幀重疊錯(cuò)誤。發(fā)送數(shù)據(jù)時(shí),由于CPU是主動(dòng)的,不會(huì)發(fā)生幀重疊錯(cuò)誤,因此發(fā)送電路不需要雙重緩沖結(jié)構(gòu)。第20頁(yè),共63頁(yè)。 在邏輯上,SBUF只有一個(gè),它既表示發(fā)送寄存器,又表示接收寄存器,具有同一個(gè)單元地址99H。但在物理結(jié)構(gòu)上,則有兩個(gè)完全獨(dú)立的SBUF,一個(gè)是發(fā)送緩沖寄存器SBUF,另一個(gè)是接收緩沖寄存器SBUF。如果CPU寫SBUF,數(shù)據(jù)就會(huì)被送入發(fā)送寄存器準(zhǔn)備發(fā)送;如果CPU讀SBUF,則讀入的數(shù)據(jù)一定來(lái)自接收緩沖器。即CPU對(duì)SBUF的讀寫,實(shí)際上是分別訪問(wèn)上述兩個(gè)不同的寄存器。第21頁(yè),共63頁(yè)。(2). 串行控制寄存器SCON 串行控制寄存器SCON用于

11、設(shè)置串行口的工作方式、檢測(cè)串行口的工作狀態(tài)、控制發(fā)送與接收的狀態(tài)等。它是一個(gè)既可以字節(jié)尋址又可以位尋址的8位特殊功能寄存器。其格式如圖8.8所示。第22頁(yè),共63頁(yè)。見(jiàn)表8-1圖8.8 串行口控制寄存器SCONRITIRB8TB8RENSM2SM1SM0SCON98H99H9AH9BH9CH9DH9EH9FH位地址0:雙機(jī)1:多機(jī)多機(jī)通信0:禁止1:允許接收控制發(fā)送數(shù)據(jù)第9位接收數(shù)據(jù)第9位發(fā)送中斷標(biāo)志接收中斷標(biāo)志第23頁(yè),共63頁(yè)。 SM0 SM1:串行口工作方式選擇位。其狀態(tài)組合所對(duì)應(yīng)的工作方式如表8-1所示。SM0 SM1工作方式功 能說(shuō) 明0 00同步移位寄存器輸入/輸出,波特率固定為f

12、osc/120 1110位異步收發(fā),波特率可變(T1溢出率/n,n=32或16) 1 0211位異步收發(fā),波特率固定為fosc/n,n=64或32) 1 1311位異步收發(fā),波特率可變(T1溢出率/n,n=32或16) 表8-1 串行口工作方式第24頁(yè),共63頁(yè)。 SM2:多機(jī)通信控制器位。在方式0中,SM2必須設(shè)成0。在方式1中,當(dāng)處于接收狀態(tài)時(shí),若SM2=1,則只有接收到有效的停止位“1”時(shí),RI才能被激活成“1”(產(chǎn)生中斷請(qǐng)求)。在方式2和方式3中,若SM2=0,串行口以單機(jī)發(fā)送或接收方式工作,TI和RI以正常方式被激活并產(chǎn)生中斷請(qǐng)求;若SM2=1,RB8=1時(shí),RI被激活并產(chǎn)生中斷請(qǐng)求

13、。第25頁(yè),共63頁(yè)。 TB8:方式2和方式3中要發(fā)送的第9位數(shù)據(jù)。該位由軟件置位或復(fù)位。在方式2和方式3時(shí),TB8是發(fā)送的第9位數(shù)據(jù)。在多機(jī)通信中,以TB8位的狀態(tài)表示主機(jī)發(fā)送的是地址還是數(shù)據(jù):TB8=1表示地址,TB8=0表示數(shù)據(jù)。TB8還可用作奇偶校驗(yàn)位。REN:串行接受允許控制位。該位由軟件置位或復(fù)位。當(dāng)REN=1,允許接收;當(dāng)REN=0,禁止接收。第26頁(yè),共63頁(yè)。 TI:發(fā)送中斷標(biāo)志位。TI=1,表示已結(jié)束一幀數(shù)據(jù)發(fā)送,可由軟件查詢TI位標(biāo)志,也可以向CPU申請(qǐng)中斷。注意:TI在任何工作方式下都必須由軟件清0。 RB8:接收數(shù)據(jù)第9位。在方式2和方式3時(shí),RB8存放接收到的第9位

14、數(shù)據(jù)。RB8也可用作奇偶校驗(yàn)位。在方式1中,若SM2=0,則RB8是接收到的停止位。在方式0中,該位未用。第27頁(yè),共63頁(yè)。 RI:接收中斷標(biāo)志位。RI=1,表示一幀數(shù)據(jù)接收結(jié)束??捎绍浖樵僐I位標(biāo)志,也可以向CPU申請(qǐng)中斷。 注意:RI在任何工作方式下也都必須由軟件清0。 在8051中,串行發(fā)送中斷TI和接收中斷RI的中斷入口地址是同是0023H,因此在中斷程序中必須由軟件查詢TI和RI的狀態(tài)才能確定究竟是接收還是發(fā)送中斷,進(jìn)而作出相應(yīng)的處理。單片機(jī)復(fù)位時(shí),SCON所有位均清0。第28頁(yè),共63頁(yè)。定時(shí)器T1工作方式的選擇TMOD : GATE C/T M1 M0 GATE C/T M1

15、 M0方式1(M1=0,M0=1)定時(shí)器計(jì)滿溢出時(shí),自動(dòng)進(jìn)入中斷服務(wù)程序,需手動(dòng)再次給定時(shí)器賦初值,導(dǎo)致定時(shí)器溢出速率不準(zhǔn)確方式2(M1=1,M0=0)定時(shí)器計(jì)數(shù)溢滿時(shí),單片機(jī)自動(dòng)為其裝初值,且無(wú)需進(jìn)入中斷服務(wù)程序進(jìn)行任何處理,這樣定時(shí)器溢出速率絕對(duì)穩(wěn)定。所以選擇定時(shí)器T1的工作方式2M0,M1選擇方式2=TL1,TH1裝入初值=啟動(dòng)定時(shí)器=TL1加一計(jì)數(shù),TL1計(jì)滿后,cpu把TH1中的數(shù)裝入TL1中。(TH1,TL1中的值相等)第29頁(yè),共63頁(yè)。 圖8.10 電源控制寄存器PCON的格式PCOND7D6D5D4D3D2D1D0位名稱SMODGF1GF0PDIDL SMOD:串行口波特率倍

16、增位。在工作方式1工作方式3時(shí),若SMOD=1,則串行口波特率增加一倍。若SMOD=0,波特率不加倍。系統(tǒng)復(fù)位時(shí),SMOD=0。2. 電源控制寄存器PCON第30頁(yè),共63頁(yè)。六、串行口工作方式 8051串行通信共有4種工作方式,它們分別是方式0、方式1、方式2和方式3,由串行控制寄存器SCON中的SM0 SM1決定,如表8-1所示。第31頁(yè),共63頁(yè)。 1. 工作方式0 在方式0下,串行口作為同步移位寄存器使用。此時(shí)SM2、RB8、TB8均應(yīng)設(shè)置為0,用來(lái)擴(kuò)展并行輸入輸出口。 (1)發(fā)送:TI=0時(shí),執(zhí)行“MOV SBUF,A”啟動(dòng)發(fā)送,8位數(shù)據(jù)由低位到高位從RXD引腳送出,TXD發(fā)送同步脈

17、沖。發(fā)送完后,由硬件置位TI。 (2)接收:RI=0,REN=1時(shí)啟動(dòng)接收,數(shù)據(jù)從RXD輸入,TXD輸出同步脈沖。8位數(shù)據(jù)接收完,由硬件置位RI??赏ㄟ^(guò)“MOV A,SBUF”讀取數(shù)據(jù)。方式0的波特率為fosc/12,即一個(gè)機(jī)器周期發(fā)送或接收一位數(shù)據(jù)。第32頁(yè),共63頁(yè)。2. 工作方式1 方式1是一幀10位的異步串行通信方式,包括1個(gè)起始位(0),8個(gè)數(shù)據(jù)位和一個(gè)停止位(1),其幀格式如下: 起始位0D0D1D2D3D4D5D6D7 停止位1 圖8.11 方式1數(shù)據(jù)幀格式第33頁(yè),共63頁(yè)。(1) 數(shù)據(jù)發(fā)送 當(dāng)TI=0時(shí),執(zhí)行“MOV SBUF,A”指令后開(kāi)始發(fā)送,由硬件自動(dòng)加入起始位和停止位

18、,構(gòu)成一幀數(shù)據(jù),然后由TXD端串行輸出。發(fā)送完后,TXD輸出線維持在“1”狀態(tài)下,并將SCON中的TI置1,表示一幀數(shù)據(jù)發(fā)送完畢。(2) 數(shù)據(jù)接收 RI=0,REN=1時(shí),接收電路采樣RXD引腳,如出現(xiàn)由“1”變“0”跳變,認(rèn)為有數(shù)據(jù)正在送來(lái)第34頁(yè),共63頁(yè)。(3) 波特率(波特率發(fā)生器用T1來(lái)做,工作在方式2 )波特率=2SMOD(T1溢出率)/32T1溢出率=1/T1定時(shí)時(shí)間波特率=3212(28-T初)2SMODfosc第35頁(yè),共63頁(yè)。串口方式1,波特率9600,晶振11.0592,求TH1,TL1的初值x?(SMOD=0,即使用正常的波特率)定時(shí)器每計(jì)(256-x)個(gè)數(shù)溢出計(jì)1個(gè)

19、數(shù)一個(gè)機(jī)器周期(=12個(gè)時(shí)鐘周期)1個(gè)時(shí)鐘周期為1/11.0592MHz (s)所以計(jì)一個(gè)數(shù)用12/11.0592MHz (s)溢出一次的時(shí)間為t=(256-x)*12/11.0592MHz (s)定時(shí)器T1的溢出率為1/t方式1的波特率=(1/32)*(T1溢出率)即 9600=1/32*11059200/(256-x)*12即x=2530 xFD第36頁(yè),共63頁(yè)。 對(duì)波特率需要說(shuō)明的是,當(dāng)串行口工作在方式1或方式3(波特率 可變),且要求波特率按規(guī)范取1200、2400、4800、9600時(shí),若采用晶振12MHz和6MHz,按上述公式算出的T1定時(shí)初值將不是一個(gè)整數(shù),因此會(huì)產(chǎn)生波特率誤差

20、而影響串行通信的同步性能。解決的方法只有調(diào)整單片機(jī)的晶振頻率fosc,為此有一種頻率為11.0592MHz的晶振,這樣可使計(jì)算出的T1初值為整數(shù)。表8-2列出了串行方式1或方式3在不同晶振時(shí)的常用波特率和誤差。 第37頁(yè),共63頁(yè)。表8.2 常用波特率和誤差 晶振頻率(MHZ)波特率 (HZ)SMODT1方式2定時(shí)初值 實(shí)際波特率 誤差(%) 12.0096001F8H8823712.0048000F8H4460712.0024000F3H24040.1612.0012000E6H12020.1611.0592192001FDH19200011.059296000FDH9600011.0589

21、248000EAH4800011.0589224000F4H2400011.0589212000E8H12000第38頁(yè),共63頁(yè)。3. 工作方式2和方式3 工作方式2和方式3都是11位異步收發(fā)串行通信方式,兩者的差異僅在波特率上有所不同。方式2:波特率=2SMODfosc/64(SMOD=0或1)方式3:(與方式1相同)波特率=3212(28-T初)2SMODfosc第39頁(yè),共63頁(yè)。(1) 數(shù)據(jù)發(fā)送 TI=0,發(fā)送數(shù)據(jù)前,先由軟件設(shè)置TB8,可使用如下指令完成: SETB TB8 ; 將TB8位置1 CLR TB8 ; 將TB8位置0 然后再向SBUF寫入8位數(shù)據(jù),并以此來(lái)啟動(dòng)串行發(fā)送。

22、一幀數(shù)據(jù)發(fā)送完畢后,CPU自動(dòng)將TI置1,其過(guò)程與方式1相同。第40頁(yè),共63頁(yè)。 (2) 數(shù)據(jù)接收 REN=1,RI=0時(shí),允許接收 若SM2=0,接收到的8位數(shù)據(jù)送SBUF,第9位數(shù) 據(jù)(無(wú)論0還是1)送RB8,RI置1。 若SM2=1,接收到的第9位數(shù)據(jù)為0,數(shù)據(jù)無(wú)效,不送SBUF;接收到的第8位數(shù)據(jù)為1,數(shù)據(jù)送SBUF,第9位送RB8。第41頁(yè),共63頁(yè)。串口通訊程序分析void init(void)EA=1;/開(kāi)啟總中斷TMOD=0X20;/設(shè)置定時(shí)器1為模式2,做為波特率發(fā)生器TL1=0 xF3;/2400波特率的初值,板子使用12M晶振,初值=256-12000000/32/12

23、/2400TH1=0 xF3;TR1=1;/啟動(dòng)定時(shí)器1,啟動(dòng)波特率發(fā)生SCON=0 x50;/串口方式1,SM0=0,SM1=1,REN=1第42頁(yè),共63頁(yè)。串行通信口主程序分析void main(void) unsigned char ldat;while(1) if(RI)/查詢是否有數(shù)據(jù)接收l(shuí)dat=SBUF;/數(shù)據(jù)暫存于變量中RI=0;/重新清0等待接收SBUF=ldat;/將接收到的數(shù)據(jù)發(fā)送出去while(!TI);/等待發(fā)送完成TI=0; 第43頁(yè),共63頁(yè)。 PC機(jī)與單片機(jī)間的串行通信 近年來(lái),在智能儀器儀表、數(shù)據(jù)采集、嵌入式自動(dòng)控制等場(chǎng)合,越來(lái)越普遍應(yīng)用單片機(jī)作核心控制部件

24、。但當(dāng)需要處理較復(fù)雜數(shù)據(jù)或要對(duì)多個(gè)采集的數(shù)據(jù)進(jìn)行綜合處理以及需要進(jìn)行集散控制時(shí),單片機(jī)的算術(shù)運(yùn)算和邏輯運(yùn)算能力都顯得不足,這時(shí)往往需要借助計(jì)算機(jī)系統(tǒng)。將單片機(jī)采集的數(shù)據(jù)通過(guò)串行口傳送給PC機(jī),由PC機(jī)高級(jí)語(yǔ)言或數(shù)據(jù)庫(kù)語(yǔ)言對(duì)數(shù)據(jù)進(jìn)行處理,或者實(shí)現(xiàn)第44頁(yè),共63頁(yè)。 PC機(jī)對(duì)遠(yuǎn)端單片機(jī)進(jìn)行控制。因此,實(shí)現(xiàn)單片機(jī)與PC機(jī)之間的遠(yuǎn)程通信更具有實(shí)際意義。 第45頁(yè),共63頁(yè)。 單片機(jī)中的輸入輸出數(shù)據(jù)信號(hào)電平都是TTL電平,這種電平采用正邏輯標(biāo)準(zhǔn), TTL電平標(biāo)準(zhǔn)輸出 L: 2.4V。輸入 L: 2.0V PC機(jī)配置的串口是RS-232C接口,兩者電氣特性不匹配,為了實(shí)現(xiàn)兩者之間的通信,需要解決電平轉(zhuǎn)換

25、問(wèn)題。第46頁(yè),共63頁(yè)。 一、RS-232C總線標(biāo)準(zhǔn) RS-232C原本是美國(guó)電子工業(yè)協(xié)會(huì)(Electronic Industry Association,簡(jiǎn)稱EIA)的推薦標(biāo)準(zhǔn),現(xiàn)已在全世界范圍內(nèi)廣泛采用,RS-232C是在異步串行通信中應(yīng)用最廣的總線標(biāo)準(zhǔn)之一。 該總線標(biāo)準(zhǔn)定義了25條信號(hào)線,使用25個(gè)引腳的連接器。各信號(hào)引腳的定義見(jiàn)表8.3。第47頁(yè),共63頁(yè)。表8.3 RS-23C引腳信號(hào)定義 引腳定義(助記符)引腳定義(助記符)1保護(hù)地(PG)14輔助通道發(fā)送數(shù)據(jù)(STXD)2發(fā)送數(shù)據(jù)(TXD)15發(fā)送時(shí)鐘(TXC)3接收數(shù)據(jù)(RXD)16輔助通道接收數(shù)據(jù)(SRXD)4請(qǐng)求發(fā)送(RT

26、S)17接收時(shí)鐘(RXC)5清除發(fā)送(CTS)18未定義6數(shù)據(jù)準(zhǔn)備好(DSR)18輔助通道請(qǐng)求發(fā)送(SRTS)7信號(hào)地(GND)20數(shù)據(jù)終端準(zhǔn)備就緒(DTR)8接收線路信號(hào)檢測(cè)(DCD)21信號(hào)質(zhì)量檢測(cè)8未定義22音響指標(biāo)(RI)10未定義23數(shù)據(jù)信號(hào)速率選擇11未定義24發(fā)送時(shí)鐘12輔助通道接收線路信號(hào)檢測(cè)(SDCD)25未定義13輔助通道允許發(fā)送(SCTS)第48頁(yè),共63頁(yè)。 除信號(hào)定義外,RS-232C標(biāo)準(zhǔn)的其它規(guī)定還有: (1) RS-232C 是一種電壓型總線標(biāo)準(zhǔn),它采用負(fù)邏輯標(biāo)準(zhǔn):邏輯1,-15V-5V;邏輯0,+5V+15V,噪聲容限為2V。 (2) 標(biāo)準(zhǔn)數(shù)據(jù)傳送速率有:50,

27、75,110,150,300,600,1200,2400,4800,9600,19200bit/s。 (3) 實(shí)際上RS-232-C的25條引線中有許多是很少使用的,一般只使用39條引線,常用3條接口線,即發(fā)送數(shù)據(jù)、接收數(shù)據(jù)和 信號(hào)地 。目前COM1 和COM2使用的是9針D形連接器DB9 。第49頁(yè),共63頁(yè)。圖8.15 微機(jī)9針D形串口連接器第50頁(yè),共63頁(yè)。 二、 RS-232C接口電路 由于RS-232C信號(hào)電平(EIA)與8051單片機(jī)信號(hào)電平(TTL)不一致,因此,必須進(jìn)行信號(hào)電平轉(zhuǎn)換。實(shí)現(xiàn)這種電平轉(zhuǎn)換的電路稱為RS-232C接口電路。一般有兩種形式:一種是采用運(yùn)算放大器、晶體管

28、、光電隔離器等器件組成的電路來(lái)實(shí)現(xiàn);另一種是采用專門集成芯片(如MC1488、MC1488、MAX232等)來(lái)實(shí)現(xiàn)。下面介紹由專門集成芯片MAX232構(gòu)成的接口電路。第51頁(yè),共63頁(yè)。1. MAX232 MAX232芯片是MAXIM公司生產(chǎn)的具有兩路接收器和驅(qū)動(dòng)器的IC芯片,其內(nèi)部有一個(gè)電源電壓變換器,可以將輸入+5V的電壓變換成RS-232C輸出電平所需的12V電壓。所以采用這種芯片來(lái)實(shí)現(xiàn)接口電路特別方便,只需單一的+5V電源即可。第52頁(yè),共63頁(yè)。 MAX232芯片的引腳結(jié)構(gòu)如圖8.16所示。其中管腳16(C1+、V+、C1-、C2+、C2-、V-)用于電源電壓轉(zhuǎn)換,只要在外部接入相應(yīng)

29、的電解電容即可;管腳710和管腳1114構(gòu)成兩組TTL信號(hào)電平與RS-232信號(hào)電平的轉(zhuǎn)換電路,對(duì)應(yīng)管腳可直接與單片機(jī)串行口的TTL電平引腳和PC機(jī)的RS-232電平引腳相連。具體連線如圖8.17所示。第53頁(yè),共63頁(yè)。圖8.16 MAX232引腳圖R2outT1inT2inR1outR1inT1outGND12346587151614131011128C1+V+C1-C2+C2-V-T2outR2inVCC第54頁(yè),共63頁(yè)。2. max232實(shí)現(xiàn)PC機(jī)與8051單片機(jī)串行通信電路 用MAX232芯片實(shí)現(xiàn)PC機(jī)與8051單片機(jī)串行通信的典型電路如圖8.16所示。圖中外接電解電容C1、C2、

30、C3、C4用于電源電壓變換,可提高抗干擾能力,它們可取相同容量的電容,一般取1.0F/16V。電容C5的作用是對(duì)+5V電源的噪聲干擾進(jìn)行濾波,一般取0.1F。選用兩組中的任意一組電平轉(zhuǎn)換電路實(shí)現(xiàn)串行通信,如圖第55頁(yè),共63頁(yè)。 中選Tlin、Rlout分別與8051的TXD、RXD相連,Tlout、Rlin分別與PC機(jī)中R232接口的RXD、TXD相連。這種發(fā)送與接收的對(duì)應(yīng)關(guān)系不能接錯(cuò),否則將不能正常工作。第56頁(yè),共63頁(yè)。C1+C1-C2+C2-AT88C51GNDGNDIBM-PCTXDTXDRXDRXDT1outT1inR1inR1outGNDV+V-VCCMAX232C4C1C2C3C5+5V+圖8.17 用MAX232實(shí)現(xiàn)串行通信接口電路圖第57頁(yè),共63頁(yè)。 4、RS-485總線接口 RS-232接口標(biāo)準(zhǔn)出現(xiàn)較早,難免會(huì)有不足之處:(1)接口的信號(hào)電平值較高,易損

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論