第6章--串行接口及串行通信技術(shù)_第1頁
第6章--串行接口及串行通信技術(shù)_第2頁
第6章--串行接口及串行通信技術(shù)_第3頁
第6章--串行接口及串行通信技術(shù)_第4頁
第6章--串行接口及串行通信技術(shù)_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第6章 串行接口及串行通信技術(shù),6.1 串行通信基礎(chǔ)知識 6.2 AT89C51的串行接口 6.3 AT89C51串行接口的應(yīng)用與編程 習(xí)題與思考題,6.1 串行通信基礎(chǔ)知識,一、串行通信基本概念 1.并行通信和串行通信 1)并行通信 并行通信是指構(gòu)成信息的二進(jìn)制字符的各位數(shù)據(jù)采用多條數(shù)據(jù)線同時傳送的通信方法,如圖6.1所示。 特點:傳輸控制簡單、速度快。但距離長時傳輸線多,成本高。 2)串行通信 串行通信是指構(gòu)成信息的二進(jìn)制字符的各位數(shù)據(jù)一位一位順序地傳送的通信方式,如圖6.2所示。 特點:傳輸控制復(fù)雜、速度慢,但傳輸線少,成本低。,圖6.1 并行通信示意圖,圖6.2 串行通信示意圖,2.

2、異步通信和同步通信 串行通信又分為兩種基本通信方式,即異步通信和同步通信。 1) 異步通信 在異步通信中,被傳送的信息通常是一個字符代碼或一個字節(jié)數(shù)據(jù),它們都以規(guī)定的相同傳送格式(字符幀格式)一幀一幀地發(fā)送或接收。 字符幀格式由四部分組成:起始位,數(shù)據(jù)位,奇偶校驗位和停止位,如圖6.3所示。下面介紹各部分的功能。,圖6.3 異步通信幀格式,(1) 起始位:在沒有數(shù)據(jù)傳送時,通信線上處于邏輯“1”狀態(tài),當(dāng)信號變?yōu)?時表示起始位。 (2) 數(shù)據(jù)位:在起始位之后,發(fā)送端發(fā)出(接收端接收)的是數(shù)據(jù)位,數(shù)據(jù)的位數(shù)沒有嚴(yán)格限制,如5位、6位、7位或8位等。由低位到高位逐位傳送。 (3) 奇偶校驗位:數(shù)據(jù)位

3、發(fā)送完(接收完)之后,可發(fā)送奇偶校驗位,它只占幀格式的一位,用于傳送數(shù)據(jù)的有限差錯檢測或表示數(shù)據(jù)的一種性質(zhì),是發(fā)送和接收雙方預(yù)先約定好的一種檢驗(檢錯)方式。,(4) 停止位:字符幀格式的最后部分為停止位,邏輯“1”電平有效,位數(shù)可以是1位、1/2位或2位。表示一個字符幀信息的結(jié)束,也為發(fā)送下一個字符幀信息做好準(zhǔn)備。 異步通信的特點:不要收發(fā)雙方時鐘嚴(yán)格一致,易于實現(xiàn),但每個字符要附加23位的起止位,各幀之間還有間隔,因此傳輸效率不高。,2)同步通信 同步通信是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳輸一幀信息。這里的信息幀和異步通信的字符幀不同,通常有若干個數(shù)據(jù)字符,如圖6.4所示。其格

4、式由同步字符、數(shù)據(jù)字符和校驗字符CRC三部分組成。在同步通信中,同步字符可以采用統(tǒng)一的標(biāo)準(zhǔn)格式,也可以由用戶約定。 同步通信時要建立發(fā)送方時鐘對接收方時鐘的直接控制,使數(shù)據(jù)傳送完全同步。其特點是傳輸速率高,但硬件復(fù)雜。,圖6.4 同步通信數(shù)據(jù)傳送格式,3. 串行通信的制式 1)單工(Half duplex)制式 在單工方式下,通信線的A端只有發(fā)送器,B端只有接收器,信息數(shù)據(jù)只能單方向傳送,即只能由A端傳送到B端而不能反傳。如圖6.5所示。,圖6.5 單工方式,2)半雙工( Half duplex)制式 半雙工方式中,通信線路兩端的設(shè)備都有一個發(fā)送器和一個接收器,如圖6.6所示。數(shù)據(jù)可雙方向傳送

5、但不能同時傳送,即A端送B端收或B端送A端收,A、B兩端的發(fā)送/接收只能通過半雙工通信協(xié)議切換交替工作。,圖6.6 半雙工方式,3)全雙工(Full duplex)制式 在全雙工方式下,通信線路A、B兩端都有發(fā)送器和接收器,A、B之間有兩個獨立通信的回路,兩端數(shù)據(jù)不是交替發(fā)送和接收,而是同時發(fā)送和接收。因此通信效率比前兩種要高。該方式下所需的傳輸線至少要有三條,一條用于發(fā)送,一條用于接收,一條用于公用信號地,如圖6.7所示。,圖6.7 全雙工方式,4. 信號的調(diào)制與解調(diào) 計算機的通信要求傳送的是數(shù)字信號。在遠(yuǎn)程數(shù)據(jù)通信時,通常要借用現(xiàn)存的公用電話網(wǎng)。但是電話網(wǎng)是為300 - 3 400 Hz的

6、音頻模擬信號設(shè)計的,對二進(jìn)制數(shù)據(jù)的傳輸是不合適的。為此在發(fā)送時需要對二進(jìn)制數(shù)據(jù)進(jìn)行調(diào)制生成模擬信號,使之適合在電話網(wǎng)上傳輸。在接收時,需要進(jìn)行解調(diào)以將模擬信號還原成數(shù)字信號。 1)調(diào)制器 把數(shù)字信號轉(zhuǎn)換成模擬信號,然后送到通信線路上去。 2)解調(diào)器 把從通信線路上收到的模擬信號轉(zhuǎn)換成數(shù)字信號。 由于通信是雙向的,調(diào)制器和解調(diào)器合并在一個裝置中,這就是調(diào)制解調(diào)器MODEM,如圖6.8所示。由圖可見,調(diào)制器和解調(diào)器是進(jìn)行數(shù)據(jù)通信所需的設(shè)備,因此把它叫做數(shù)據(jù)通信設(shè)備(DCE)。通信線路是電話線,也可以是專用線。,圖6.8 調(diào)制解調(diào)通信圖,5. 串行通信數(shù)據(jù)的校驗 在通信過程中往往要對數(shù)據(jù)傳送的正確與

7、否進(jìn)行校驗。以保證準(zhǔn)確無誤的傳輸數(shù)據(jù)。常用的校驗方法有奇偶校驗及代碼和校驗。 1)奇偶校驗 奇偶校驗的特點是按字符校驗,即在數(shù)據(jù)發(fā)送時,在每一個字符的最高位之后都附加一個奇偶校驗位“1”或“0”,使被傳送字符(包括奇偶校驗位)中含“1”的位數(shù)都為偶數(shù)(偶校驗)或都為奇數(shù)(奇校驗)。 例:當(dāng)約定為奇校驗時,數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之和應(yīng)為奇數(shù);當(dāng)約定為偶校驗時,數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之和應(yīng)為偶數(shù)。接收方與發(fā)送方的校驗裝置和方式應(yīng)一致。接收字符時,對“1”的個數(shù)進(jìn)行校驗,若二者不一致,則說明傳輸數(shù)據(jù)過程中出現(xiàn)了差錯。,2)代碼和校驗 所謂和校驗是發(fā)送方將所發(fā)數(shù)據(jù)塊求和

8、(或各字節(jié)異或),產(chǎn)生一個字節(jié)的校驗字符(校驗和)附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)同時對數(shù)據(jù)塊(除校驗字節(jié)外)求和(或各字節(jié)異或),將所得的結(jié)果與發(fā)送方的“校驗和”進(jìn)行比較,相符則無差錯,否則即認(rèn)為傳送過程中出現(xiàn)了差錯。,6.傳輸速率與傳輸距離 1) 波特率 波特率(也叫比特率),即數(shù)據(jù)傳輸?shù)乃俾?。它表示每秒鐘傳送二進(jìn)制代碼的位數(shù)。其單位是b /s。 在串行通信中,發(fā)送設(shè)備和接收設(shè)備之間除了采用相同的字符幀格式(異步通信)或相同的同步字符(同步通信)來協(xié)調(diào)同步工作外,兩者之間發(fā)送數(shù)據(jù)的速度和接收數(shù)據(jù)的速度也必須相同,這樣才能保證被傳送數(shù)據(jù)的成功傳送。 波特率是串行通信的重要指標(biāo),對數(shù)據(jù)的成功傳

9、送至關(guān)重要。,舉例:設(shè)數(shù)據(jù)的傳送率是240字符/s,而每個字符格式包含10 bit(1個起始位、1個停止位、8個數(shù)據(jù)位),這時傳送的波特率是: 10b240= 2400 b/s 標(biāo)準(zhǔn)波特率為:110bps、300bps、600bps、1200bps、2400bps、9600kbps,19.2kbps、56kbps等。,2)傳輸距離與傳輸速率的關(guān)系 傳輸距離與波特率及傳輸線的電氣特性有關(guān)。通常傳輸距離隨波特率的增加而減小。 當(dāng)傳輸線使用每0.3 m(約1英尺)有50 pF電容的非平衡屏蔽雙絞線時,傳輸距離是隨波特率增加而減小。當(dāng)波特率超過1 000 bit/s時,最大傳輸距離迅速下降,如9600

10、 bit/s時最大距離下降到只有76 m(約250英尺)。,二、串行通信的標(biāo)準(zhǔn)接口 RS-232C通信接口是一種標(biāo)準(zhǔn)的串行接口,它定義了數(shù)據(jù)終端設(shè)備(DTE)與數(shù)據(jù)通信設(shè)備(DCE)之間的物理接口標(biāo)準(zhǔn)。普遍用于計算機之間及計算機與外設(shè)之間的串行通信。由于它符合EIA(電子工業(yè)協(xié)會)規(guī)格要求,在國際上得到了廣泛的應(yīng)用。 RS-232C接口具有如下特點:信號線少,在某些場合,完成雙工通信只需使用幾根線就即可;有多種可供選擇的信息傳輸速率:110、150、300、600、1 200、2 400、4 800、 9 600和19 200 bps。 RS-232C接口特性包括電氣特性、機械特性、功能特性和

11、過程特性四個方面內(nèi)容。,1. 機械特性 RS-232C接口規(guī)定使用25針連接器,稱為DB-25插頭或插座。如圖6.9所示。 RS-232C接口對標(biāo)準(zhǔn)的25針接口定義了22條可以與外界連接的信號線,并對它們的功能作了具體的規(guī)定。 實際用戶并不一定用到RS- 232C標(biāo)準(zhǔn)的全部信號線,常常使用9針非標(biāo)準(zhǔn)連接器替代25針連接器,稱為DB-9。,圖6.9 RS-232C引腳圖,2.功能特性 RS-232C接口的主要信號線定義如表6-1。,3.電氣特性 RS-232C的每一個引腳的信號性質(zhì)和電平均由標(biāo)準(zhǔn)規(guī)定,采用負(fù)邏輯電平,如: 1) 規(guī)定DC(-3 -15 V)為邏輯1,DC(+3 +15 V)為邏輯

12、0。 (簡稱EIA電平) 2)其邏輯電平與通常的TTL和MOS電平(用0V0.8V表示0,2V+5V表示“1”)不兼容。因此為了實現(xiàn)TTL或MOS電路的連接,要外加電路(如MAX232)實現(xiàn)電平轉(zhuǎn)換。 由于RS - 232C發(fā)送端和接收端之間的信號采用多芯信號線,而多芯信號線的總負(fù)載電容不能超過2 500 pF,所以RS-232C的信號傳輸距離僅為幾十米,傳輸速率小于20kbps。,4. 過程特性 過程特性規(guī)定了信號之間的時序關(guān)系,以便正確地接收和發(fā)送數(shù)據(jù)。如果通信雙方均具備RS-232C接口,則二者可以直接連接,不必考慮電平轉(zhuǎn)換問題。 但是對于單片機與計算機通過RS-232C的連接,必須考慮

13、電平轉(zhuǎn)換問題,因為MCS-51系列單片機串行口不是標(biāo)準(zhǔn)RS-232C接口 。 遠(yuǎn)程RS - 232C通信需要調(diào)制解調(diào)器,如圖6.10所示。近程通信RS-232C(通信距離15 m內(nèi))可以不使用調(diào)制解調(diào)器,其連接方法可有以下幾種,如圖6.11所示。,圖6.10 遠(yuǎn)程RS-232C通信連接,圖6.11 近程RS-232C通信連接,5. RS-232C電平與TTL電平轉(zhuǎn)換驅(qū)動電路 單片機與計算機通過RS-232C的連接,必須考慮電平轉(zhuǎn)換問題。早期常用的電平轉(zhuǎn)換芯片為MC1488、MC1489。近年來多采用片內(nèi)帶有自升壓電路的芯片。如MAXM232,它僅需+5V電源,內(nèi)置電子升壓泵將+5V轉(zhuǎn)換成-10

14、V+10V。該芯片內(nèi)含2個發(fā)送器,2個接收器,且與TTL/CMOS電平兼容,使用非常方便。,6. 采用RS-232C接口存在的問題 1)傳輸距離短、速率低 RS-232C標(biāo)準(zhǔn)受電容允許值的約束,傳輸距離一般不超過15米。最高傳輸速率為20bps。 2)有電平偏移 RS-232C接口收發(fā)雙方共地的情況下,當(dāng)通信距離較遠(yuǎn)時,兩端的地電位差別較大,信號地上會有較大的地電流并產(chǎn)生壓降,一方輸出的邏輯電平到達(dá)對方時,其邏輯電平可能偏移較大,嚴(yán)重時會發(fā)生邏輯錯誤。,3)抗干擾能力差 RS-232C采用單端輸入輸出,傳輸過程中的干擾和噪聲會混在正常的信號中。為了提高信噪比, RS-232C標(biāo)準(zhǔn)不得不采用較大

15、的電壓擺幅。 針對RS-232C總線標(biāo)準(zhǔn)存在的問題,EIA協(xié)會制定了新的串行通信標(biāo)準(zhǔn)RS-422A和RS-485。它們是平衡型電壓數(shù)字接口電路的電氣標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)改善了串行通信的傳輸特性。,6.2 AT89C51的串行接口,一、 串行接口的結(jié)構(gòu)及功能 AT89C51串行口的結(jié)構(gòu)框圖如圖6.12所示,主要由發(fā)送器、接收器和串行控制寄存器組成。,圖6.12 AT89C51串行口結(jié)構(gòu)框圖,圖中有兩個物理上獨立的接收、發(fā)送緩沖器 SBUF,它們占用同一地址99H,可同時發(fā)送、接收數(shù)據(jù)。發(fā)送緩沖器只能寫入,不能讀出;接收緩沖器只能讀出,不能寫入。 接收器主要由接收緩沖寄存器SBUF,接收移位寄存器和接收

16、控制器組成。接收器是雙緩沖結(jié)構(gòu),在前一個字節(jié)被從接收緩沖器讀出之前,第二個字節(jié)即開始被接收(串行輸入至移位寄存器),但是在第二個字節(jié)接收完畢而前一個字節(jié)CPU未讀取時,會丟失前一個字節(jié)的內(nèi)容。 發(fā)送器主要由發(fā)送緩沖寄存器SBUF和發(fā)送控制器組成。對于發(fā)送緩沖器,因為發(fā)送時CPU是主動的,不會產(chǎn)生重疊錯誤。,二、串行口控制寄存器 串行口控制寄存器SCON(字節(jié)地址為98H)用于設(shè)置串行口的工作方式、監(jiān)視串行口工作狀態(tài)、發(fā)送與接收的狀態(tài)控制等。它是一個既可字節(jié)尋址又可位尋址的特殊功能寄存器。其格式如圖6.13所示。,圖6.13 控制寄存器SCON的格式,SCON寄存器各位的功能如下: (1) SM

17、0、SM1:串行口工作方式選擇位,可構(gòu)成四種工作方式,如表6-2所示。 (2) SM2:在方式2和方式3中多機通信的控制位。 (3) REN:串行接收允許位。由軟件置REN = 1,則啟動串行口接收數(shù)據(jù);若軟件置REN = 0,則禁止接收。 (4) TB8:在方式2或方式3中,是將要發(fā)送的第九位數(shù)據(jù),由軟件置位或清零,它可作為數(shù)據(jù)奇偶校驗位,也可在多機通信中作為地址幀或數(shù)據(jù)幀的標(biāo)志位使用。,表6-2 串行口工作方式選擇,(5) RB8:在方式2或方式3中,是已接收到的第九位數(shù)據(jù),可作為奇偶校驗位。 (6) TI:發(fā)送中斷標(biāo)志位。在方式0當(dāng)串行發(fā)送第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行發(fā)送停止位的

18、開始時,由內(nèi)部硬件使TI置1,向CPU發(fā)中斷申請。在中斷服務(wù)程序中,必須用軟件將其清0,取消此中斷申請。 (7) RI:接收中斷標(biāo)志位。方式0中,在接收完第8位數(shù)據(jù)時由硬件置位。在方式0當(dāng)串行接收第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行接收停止位的中間時,由內(nèi)部硬件使RI置1,向CPU發(fā)中斷申請。也必須在中斷服務(wù)程序中,用軟件將其清0,取消此中斷申請 (8) SMOD:為波特率選擇位。電源控制寄存器PCON中的第八位也與串行口有關(guān),如圖6.14所示。當(dāng)SMOD=1時,波特率提高一倍,復(fù)位時,SMOD=0。,圖6.14 電源控制寄存器PCON的格式,三、 串行通信的工作方式 1工作方式0 在方式0下

19、,串行口是作為同步移位寄存器使用的。其波特率固定為單片機振蕩頻率(fosc)的1/12,串行傳送數(shù)據(jù)8位為一幀(沒有起始、停止、奇偶校驗位)。 數(shù)據(jù)由RXD端輸出或輸入,低位在前,高位在后。TXD端輸出同步移位脈沖,可以作為外部擴展的移位寄存器的移位時鐘,因而串行口方式0常用于擴展外部并行I/O口。,1)工作原理 (1)發(fā)送(輸出) 執(zhí)行指令(如MOV SBUF, A),就啟動發(fā)送。 在發(fā)送過程中由RXD端將寫入SBUF寄存器中的數(shù)據(jù)依照從低位到高位的次序按位送出,同時由TXD端輸出移位時鐘脈沖。 一個字節(jié)的數(shù)據(jù)發(fā)送完畢,串行口自動停止發(fā)送數(shù)據(jù)和移位時鐘脈沖,并置位TI申請中斷。TI必須由軟件

20、清零。以便下一次傳送。 從寫SBUF到TI置位,相隔9個機器周期,完成了發(fā)送1幀數(shù)據(jù)的全過程。如圖6.15所示。,圖6.15 方式0數(shù)據(jù)輸出時序,圖6.16 方式0擴展并行輸出口,串行發(fā)送時,外部可擴展一片(或幾片)串入并出的移位寄存器 (如74LS164),如圖6.16所示。,(2)接收(輸入) 當(dāng)REN= 1,RI=0時,就啟動串行口接收。 在接收過程中,由TXD端輸出移位時鐘脈沖,控制外圍設(shè)備將8位數(shù)據(jù)按位移入串行口的RXD端,并通過串行口內(nèi)部的輸入移位寄存器將數(shù)據(jù)存入SBUF接收寄存器。 當(dāng)串行口控制電路檢測到最后一次移位結(jié)束后,接收過程告終,并置位RI申請中斷。RI也必須由軟件清零。

21、從啟動接收到RI置位,相隔9個機器周期,完成了接收1幀數(shù)據(jù)的全過程。 時序圖如圖6.17所示。,圖6.17 方式0數(shù)據(jù)輸入時序,圖6.18 方式0擴展并行輸入口,串行接收時,外部可擴展一片(或幾片)并入串出的移位寄存器(如74LS165),如圖6.18所示。,2工作方式1 在方式1下,串行口工作在10位幀格式,發(fā)送或接收一幀信息中,除8位數(shù)據(jù)移位外,還包含一個起始位(0)和一個停止位(1),其格式如圖6.19所示。 工作方式1的波特率是可變的,由定時器T1的計數(shù)溢出率決定。相應(yīng)的公式為: 波特率= 定時器T1溢出率,圖6.19 串行口方式1的幀格式,定時器T1的計數(shù)溢出率計算公式為:,定時器T

22、1溢出率=,式中,K為定時器T1的位數(shù),與定時器T1的工作方 式有關(guān)(見第5章介紹),則波特率計算公式為:,波特率=,1) 發(fā)送 發(fā)送時,數(shù)據(jù)從TXD端輸出,當(dāng)數(shù)據(jù)寫入發(fā)送緩沖器SBUF后,啟動發(fā)送器發(fā)送。當(dāng)發(fā)送完一幀數(shù)據(jù)后,置中斷標(biāo)志TI為1。方式1所傳送的波特率取決于定時器1的溢出率和PCON中的SMOD位。 2) 接收 接收時,由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時串行

23、口的發(fā)送和接收時序如圖6.20所示。,圖6.20 串行口方式1的時序圖,3方式2和方式3 在方式2和方式3下,串行口工作在11位異步通信方式。一幀信息包含一個起始位“0”,八個數(shù)據(jù)位,一個可編程第九數(shù)據(jù)位和一個停止位“1”。其中可編程位是SCON中的TB8位,在八個數(shù)據(jù)位之后,可作奇偶校驗位或地址/數(shù)據(jù)幀的標(biāo)志位使用,由使用者確定。其幀格式如圖6.21所示。 區(qū)別:方式2的波特率固定為晶振頻率的1/64或1/32 ;方式3的波特率由定時器T1的計數(shù)溢出率決定,確定方法與工作方式1中的完全一樣。,圖6.21 串行口方式2、3幀格式圖,1)方式2和方式3輸出 當(dāng)CPU向發(fā)送SBUF寫入一個數(shù)據(jù)時,

24、串行口發(fā)送過程就被啟動了。TB8寫入輸出移位寄存器的第9位,8位數(shù)據(jù)裝入SBUF。 發(fā)送開始時,先把起始位0輸出到TXD端。經(jīng)一位時間后,發(fā)送移位寄存器的輸出位(D0)到TXD端。之后,每一個移位脈沖都使輸出移位寄存器的各位右移一位,并由TXD端輸出。 結(jié)束時,控制電路進(jìn)行最后一次移位,并置T11,向CPU請求中斷。 2)方式2和方式3輸入 軟件使接收允許位REN為1后,接收開始啟動。 接收時,數(shù)據(jù)從右邊移入輸入移位寄存器,1從左邊移出,在起始位0移到最左邊時,控制電路進(jìn)行最后一次移位。 當(dāng)RI0,且SM2=0時,接收到的數(shù)據(jù)裝入接收SBUF和RB8,置RI = 1,向CPU請求中斷。如果條件

25、不滿足,則數(shù)據(jù)丟失,且不置位RI,一位時間后繼續(xù)搜索RXD端的負(fù)跳變。 時序如圖6.22所示 。,圖6.22 串行口方式2、3時序圖,四、串行口波特率確定和初始化 1. 波特率計算 串行口的四種工作方式對應(yīng)三種波特率。由于輸入的移位時鐘的來源不同,所以,各種方式的波特率計算公式也不相同。 具體如下:,2. 波特率的選擇 實際應(yīng)用中,波特率要選擇為標(biāo)稱值,又由于TH1的初值是整數(shù),為了減小波特率計算誤差,晶振頻率要選擇為11.0592MHZ。所以方式1和方式3波特率與TH1初值的對應(yīng)基本上是確定的,如表6-3所示。,表6-3 方式1、3常用波特率與TH1的初值關(guān)系表,注: 此時,T1工作在方式2

26、,晶振頻率為11.0592MHZ。,3.串行口的初始化 具體步驟如下: 1)確定定時器1的工作方式(編程TMOD寄存器); 2)計算定時器1的初值,裝載TH1、TL1; 3)啟動定時器1(編程TCON中的TRl位); 4)確定串行口控制(編程SCON寄存器) 5)串行口在中斷方式工作時,須開CPU的中斷源(編程IE、 IP寄存器)。,6.3 AT89C51串行接口的應(yīng)用與編程,一、利用單片機串行口擴展并行I/O口 串行口工作方式0主要用于擴展并行I/O口,擴展成并行輸出口時,需要外接一片8位串行輸入并行輸出的同步移位寄存器74HC164。擴展成并行輸入口時,需要外接一片或幾片并行輸入串行輸出的

27、同步移位寄存器74HC165。,數(shù)據(jù)的串行輸出或輸入可采用中斷方式,也可采用查詢標(biāo)志位TI、RI的方法,在移位初始化時,要進(jìn)行相應(yīng)的設(shè)置。 例 利用串行口工作在方式0,外擴一片74HC164構(gòu)成一個三位LED動態(tài)顯示器,并將內(nèi)部RAM顯示單元65H、66H、67H中的內(nèi)容輸出顯示。如圖6.24所示。,圖6.24 串行動態(tài)顯示圖,主程序如下: ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV SCON,#00H ;串行口初始化為方式0 SETB P1.2 ;消去最高顯示位 SETB P1.1 MOV SBUF,65H ;傳送最低顯示位 JNB TI,$ ;傳送沒結(jié)束,

28、等待,CLR P1.0 ;最低位顯示 CLR TI ;清中斷標(biāo)志位 LCALL D10ms ;調(diào)延時子程序,維持狀態(tài) SETB P1.0 ;消去最低顯示位 MOV SBUF,66H ;傳送中間顯示位 JNB TI,$ ;等待傳送結(jié)束 CLR P1.1 ;顯示中間位 CLR TI ;清中斷標(biāo)志位,LCALL D10ms ;調(diào)延時子程序,維持狀態(tài) SETB P1.1 ;消去中間顯示位 MOV SBUF,67H ;傳送最高顯示位 JNB TI,$ ;等待傳送結(jié)束 CLR P1.2 ;顯示最高顯示位 CLR TI ;清中斷標(biāo)志位 D10ms: MOV R5, #10 D1ms: MOV R4,#249

29、 DL: NOP NOP DJNZ R4,DL DJNZ R5,D1ms RET END,二、單片機與單片機的通信 有兩個單片機子系統(tǒng),它們均能獨立地完成主系統(tǒng)的某一功能,且這兩個子系統(tǒng)具有一定的信息交換需求,這時就可以用串行通信的方式將兩個子系統(tǒng)連接起來。 1. 硬件連接 若兩個單片機系統(tǒng)距離近,只要將兩個單片機系統(tǒng)的TXD和RXD引出線交叉相連即可;若兩個單片機系統(tǒng)距離較遠(yuǎn),要采用RS-232C接口進(jìn)行連接,如圖6.25所示。,圖6.25 雙機通信連接圖,2.通信協(xié)議 采用方式1進(jìn)行通信,每幀信息為10位,波特率為2400bps,T1作定時器用,工作在方式2,晶振頻率用11.0592MHZ

30、,查表6.3得TH1=TL1=0F4H,PCON寄存器的SMOD位為0。 通信時,首先A機發(fā)送“E1H”請求傳輸數(shù)據(jù)。B機收到后回答一個”E2H”應(yīng)答信號,表示同意接收。當(dāng)A機收到應(yīng)答信號”E2H“后,開始發(fā)送數(shù)據(jù),每發(fā)送一個數(shù)據(jù)字節(jié)都要計算”校驗和“,假定數(shù)據(jù)塊長度為15個字節(jié),起始地址為40H,數(shù)據(jù)塊發(fā)送完畢后立即發(fā)送”校驗和“。 然后B機接收數(shù)據(jù)并轉(zhuǎn)存到數(shù)據(jù)緩沖區(qū),起始地址也為40H,每接收到一個數(shù)據(jù)字節(jié)便計算一次”校驗和“,當(dāng)收完數(shù)據(jù)塊后,再接收A機發(fā)來的”校驗和“,并將它與B機求出的校驗和進(jìn)行比較。若兩者相等,說明接收正確,B機回答00H;若兩者不等,說明接收不正確,B機回答FFH,

31、請求重發(fā)。A機收到答復(fù)為00H則結(jié)束發(fā)送。若答復(fù)非0,則重新發(fā)送數(shù)據(jù)。,3.程序及流程圖 A機程序: ORG 0000H LJMP AMAIN ORG 0030H AMAIN:MOV SP,#5FH MOV TMOD, # 20H ;初始化定時器1為模式2 MOV TH1, #0F4H;裝載定時器初值 MOV TLl,#0F4H MOV SCON,#50H MOV PCON, # 00H SETB TR1;啟動定時器 CALL INIT;生成調(diào)試用數(shù)據(jù) DIALOG: MOV A,#0E1H;發(fā)聯(lián)絡(luò)信號 CALL TXBYTE CALL RXBYTE;接收B機返回信號 CJNE A,#0E2H

32、,DIALOG ;B機允許發(fā)送? RETX: CALL TXDATA CALL RXBYTE CJNE A,#00H,DIALOG ;B機接收正確? AJMP DIALOG,TXBYTE: MOV SBUF,A;發(fā)送子程序 JNB TI,$ CLR TI RET RXBYTE: JNB RI,$;接收子程序 MOV A,SBUF CLR RI RET TXDATA: MOV R7,#15;發(fā)送數(shù)據(jù)塊子程序 MOV R0,#40H MOV R6,#00H LDATA: MOV A,R0 CALL TXBYTE MOV A,R6 ADD A,R0;求校驗和 MOV R6,A;保存校驗和 INC R0 DJNZ R7,LDATA;數(shù)據(jù)塊傳送完否?,MOV A,R6;發(fā)送校驗和 CALL TXBYTE RET INIT: MOV R0,#40H;測試數(shù)據(jù) MOV R7,#15 MOV A,#30H L0: MOV R0,A INC A INC R0 DJNZ R7,L0 RET END,B機程序: ORG 0000H LJMP BMAIN ORG 0030H BMAIN:MOV SP,#5FH MOV TMOD, # 20H;初始化定時器1為模式2 MOV TH1, #0F4H;裝載定時器初值 MOV TLl,# 0F4H MOV SCON,#50H MOV PCON,

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論