51單片機(jī)串口通信.ppt_第1頁(yè)
51單片機(jī)串口通信.ppt_第2頁(yè)
51單片機(jī)串口通信.ppt_第3頁(yè)
51單片機(jī)串口通信.ppt_第4頁(yè)
51單片機(jī)串口通信.ppt_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余114頁(yè)可下載查看

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

1、第9章 串行接口及串行通信技術(shù),教學(xué)目標(biāo) 9.1 串行通信基礎(chǔ)知識(shí) 9.2 AT89C51的串行接口 9.3 AT89C51串行接口的應(yīng)用與編程 9.4 多機(jī)通信 9.5 PC機(jī)與單片機(jī)間的串行通信 9.6 實(shí)訓(xùn)指導(dǎo) 本章小結(jié) 思考題與習(xí)題,教學(xué)目標(biāo),通過(guò)本章教學(xué),要求達(dá)到以下目標(biāo): 串行通信的基本概念:了解并行/串行通信的 概念;理解串行通信中的異步/同步通信的基本概念;理解波特率的概念,學(xué)會(huì)計(jì)算波特率的方法;4了解串行通信的三種制式及校驗(yàn)方法。,AT89C51串行口:串行接口結(jié)構(gòu)及其功能;理解串行數(shù)據(jù)緩沖器SBUF的功能和讀寫方法; 熟悉SCON的結(jié)構(gòu)、控制作用和設(shè)置方法; 了解電源控制寄

2、存器PCON,熟悉SMOD位。 串行口的工作方式: 理解串行通信4種工作 方式的特點(diǎn)和區(qū)別;掌握串行工作方式0的應(yīng) 用; 熟悉串行工作方式1、2、3應(yīng)用程序的 編制方法。,4. 多機(jī)通信原理:理解多機(jī)通信的原理、過(guò)程和編制多機(jī)通信應(yīng)用程序的方法。,計(jì)算機(jī)與外界的信息交換稱為通信。通信的基本方式可分為并行通信和串行通信兩種。 所謂并行通信是指數(shù)據(jù)的各位同時(shí)在多根數(shù)據(jù)線上發(fā)送或接收。 串行通信是數(shù)據(jù)的各位在同一根數(shù)據(jù)線上依次逐位發(fā)送或接收。,9.1 串行通信基礎(chǔ)知識(shí),目前串行通信在單片機(jī)雙機(jī)、多機(jī)以及單片機(jī)與PC機(jī)之間的通信等方面得到了廣泛應(yīng)用。,9.1.1 異步通信和同步通信,串行通信按同步方式

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

4、,異步通信信息幀格式如圖9.4所示。,(1) 起始位: 在沒有數(shù)據(jù)傳送時(shí),通信線上處于邏輯“1”狀態(tài)。當(dāng)發(fā)送端要發(fā)送1個(gè)字符數(shù)據(jù)時(shí),首先發(fā)送1個(gè)邏輯“0”信號(hào),這個(gè)低電平便是幀格式的起始位。其作用是向接收端表示發(fā)送端開始發(fā)送一幀數(shù)據(jù)。接收端檢測(cè)到這個(gè)低電平后,就準(zhǔn)備接收數(shù)據(jù)信號(hào)。,(2) 數(shù)據(jù)位: 在起始位之后,發(fā)送端發(fā)出(或接收端接收)的是數(shù)據(jù)位,數(shù)據(jù)的位數(shù)沒有嚴(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)。,(4

5、) 停止位: 字符幀格式的最后部分是停止位,邏輯“1”電平有效,它可占1/2位、1位或2位。停止位表示傳送一幀信息的結(jié)束,也為發(fā)送下一幀信息作好準(zhǔn)備。,9.1.2 串行通信的波特率,波特率(Baud Rate)是串行通信中一個(gè)重要概念,它是指?jìng)鬏敂?shù)據(jù)的速率, 亦稱比特率。波特率的定義是每秒傳輸二進(jìn)制數(shù)碼的位數(shù)。如:波特率為1200bps是指每秒鐘能傳輸1200位二進(jìn)制數(shù)碼。,波特率的倒數(shù)即為每位數(shù)據(jù)傳輸時(shí)間。例如:波特率為1200bps,每位的傳輸時(shí)間為:,波特率和字符的傳輸速率不同,若采用圖9.4的數(shù)據(jù)幀格式,并且數(shù)據(jù)幀連續(xù)傳送(無(wú)空閑位),則實(shí)際的字符傳輸速率為1200/11=109.09

6、幀/秒。,波特率也不同于發(fā)送時(shí)鐘和接收時(shí)鐘頻率。同步通信的波特率和時(shí)鐘頻率相等,而異步通信的波特率通常是可變的。,9.1.3 串行通信的制式,1. 單工制式(Simplex) 單工制式是指甲乙雙方通信只能單向傳送數(shù)據(jù)。單工制式如圖9.5所示。,在串行通信中,數(shù)據(jù)是在兩個(gè)站之間傳送的。按照數(shù)據(jù)傳送方向,串行通信可分為三種制式。,2. 半雙工制式(Half duplex) 半雙工制式是指通信雙方都具有發(fā)送器和接收器,雙方既可發(fā)送也可接收,但接收和發(fā)送不能同時(shí)進(jìn)行,即發(fā)送時(shí)就不能接收,接收時(shí)就不能發(fā)送。半雙工制式如圖9.6所示。,3. 全雙工制式(Full duplex) 全雙工制式是指通信雙方均設(shè)

7、有發(fā)送器和接收器,并且將信道劃分為發(fā)送信道和接收信道,兩端數(shù)據(jù)允許同時(shí)收發(fā),因此通信效率比前兩種高。全雙工制式如圖9.7所示。,9.1.4 串行通信的校驗(yàn),串行通信的目的不只是傳送數(shù)據(jù)信息,更重要的是應(yīng)確保準(zhǔn)確無(wú)誤地傳送。因此必須考慮在通信過(guò)程中對(duì)數(shù)據(jù)差錯(cuò)進(jìn)行校驗(yàn),因?yàn)椴铄e(cuò)校驗(yàn)是保證準(zhǔn)確無(wú)誤地通信的關(guān)鍵。常用差錯(cuò)校驗(yàn)方法有奇偶校驗(yàn)、累加和校驗(yàn)以及循環(huán)冗余碼校驗(yàn)等。,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í),

8、對(duì)1的個(gè)數(shù)進(jìn)行檢驗(yàn),若奇偶性(收、發(fā)雙方)一致則說(shuō)明傳輸正確。奇偶校驗(yàn)只能檢測(cè)到那種影響奇偶位數(shù)的錯(cuò)誤,比較低級(jí)且速度慢,一般只用在異步通信中。,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ù)加。累加和校驗(yàn)的缺點(diǎn)是無(wú)法檢驗(yàn)出字節(jié)或位序的錯(cuò)誤。,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)碼附

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

10、前還有移位寄存器,從而構(gòu)成了串行接收的雙緩沖結(jié)構(gòu),這樣可以避免在數(shù)據(jù)接收過(guò)程中出現(xiàn)幀重疊錯(cuò)誤。發(fā)送數(shù)據(jù)時(shí),由于CPU是主動(dòng)的,不會(huì)發(fā)生幀重疊錯(cuò)誤,因此發(fā)送電路不需要雙重緩沖結(jié)構(gòu)。,在邏輯上,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í)際上是分別訪問上述兩個(gè)不同的寄存器。,2. 串行控制寄存器SCON,串行控制寄存器S

11、CON用于設(shè)置串行口的工作方式、監(jiān)視串行口的工作狀態(tài)、控制發(fā)送與接收的狀態(tài)等。它是一個(gè)既可以字節(jié)尋址又可以位尋址的8位特殊功能寄存器。其格式如圖9.9所示。,(1)SM0 SM1:串行口工作方式選擇位。其狀態(tài)組合所對(duì)應(yīng)的工作方式如表9-1所示。,表9-1 串行口工作方式,(2) 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被激活

12、并產(chǎn)生中斷請(qǐng)求。,(4) 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)位。,(3) REN:串行接受允許控制位。該位由軟件置位或復(fù)位。當(dāng)REN=1,允許接收;當(dāng)REN=0,禁止接收。,(6)TI:發(fā)送中斷標(biāo)志位。TI=1,表示已結(jié)束一幀數(shù)據(jù)發(fā)送,可由軟件查詢TI位標(biāo)志,也可以向CPU申請(qǐng)中斷。 注意:TI在任何工作方式下都必須由軟件清0。,(5) RB8:接收數(shù)據(jù)第9位。在方式2和方式3時(shí),RB8存放接收到

13、的第9位數(shù)據(jù)。RB8也可用作奇偶校驗(yàn)位。在方式1中,若SM2=0,則RB8是接收到的停止位。在方式0中,該位未用。,(7)RI:接收中斷標(biāo)志位。RI=1,表示一幀數(shù)據(jù)接收結(jié)束。可由軟件查詢RI位標(biāo)志,也可以向CPU申請(qǐng)中斷。 注意:RI在任何工作方式下也都必須由軟件清0。 在AT89C51中,串行發(fā)送中斷TI和接收中斷RI的中斷入口地址是同是0023H,因此在中斷程序中必須由軟件查詢TI和RI的狀態(tài)才能確定究竟是接收還是發(fā)送中斷,進(jìn)而作出相應(yīng)的處理。單片機(jī)復(fù)位時(shí),SCON所有位均清0。,圖9.10 電源控制寄存器PCON的格式,SMOD:串行口波特率倍增位。在工作方式1工作方式3時(shí),若SMOD

14、=1,則串行口波特率增加一倍。若SMOD=0,波特率不加倍。系統(tǒng)復(fù)位時(shí),SMOD=0。,2. 電源控制寄存器PCON,9.2.2 串行口工作方式,AT89C51串行通信共有4種工作方式,它們分別是方式0、方式1、方式2和方式3,由串行控制寄存器SCON中的SM0 SM1決定,如表9-1所示。,1. 工作方式0,在方式0下,串行口作為同步移位寄存器使用。此時(shí)SM2、RB8、TB8均應(yīng)設(shè)置為0。,(1)發(fā)送:TI=0時(shí),執(zhí)行“MOV SBUF,A”啟動(dòng)發(fā)送,8位數(shù)據(jù)由低位到高位從RXD引腳送出,TXD發(fā)送同步脈沖。發(fā)送完后,由硬件置位TI。,(2)接收:RI=0,REN=1時(shí)啟動(dòng)接收,數(shù)據(jù)從RXD

15、輸入,TXD輸出同步脈沖。8位數(shù)據(jù)接收完,由硬件置位RI??赏ㄟ^(guò)“MOV A,SBUF”讀取數(shù)據(jù)。,方式0的波特率為fosc/12,即一個(gè)機(jī)器周期發(fā)送或接收一位數(shù)據(jù)。,應(yīng)當(dāng)指出:方式0并非是同步通信方式。它的主要用途是外接同步移位寄存器,以擴(kuò)展并行I/O口。,2. 工作方式1,方式1是一幀10位的異步串行通信方式,包括1個(gè)起始位(0),8個(gè)數(shù)據(jù)位和一個(gè)停止位(1),其幀格式如下:,圖9.11 方式1數(shù)據(jù)幀格式,(1) 數(shù)據(jù)發(fā)送,當(dāng)TI=0時(shí),執(zhí)行“MOV SBUF,A”指令后開始發(fā)送,由硬件自動(dòng)加入起始位和停止位,構(gòu)成一幀數(shù)據(jù),然后由TXD端串行輸出。發(fā)送完后,TXD輸出線維持在“1”狀態(tài)下,

16、并將SCON中的TI置1,表示一幀數(shù)據(jù)發(fā)送完畢。,(2) 數(shù)據(jù)接收,RI=0,REN=1時(shí),接收電路以波特率的16倍速度采樣RXD引腳,如出現(xiàn)由“1”變“0”跳變,認(rèn)為有數(shù)據(jù)正在發(fā)送。,在接收到第9位數(shù)據(jù)(即停止位)時(shí),必須同時(shí)滿足以下兩個(gè)條件:RI=0和SM2=0或接收到的停止位為“1”,才把接收到的數(shù)據(jù)存入SBUF中,停止位送RB8,同時(shí)置位RI。若上述條件不滿足,接收到的數(shù)據(jù)不裝入SBUF被舍棄。在方式1下,SM2應(yīng)設(shè)定為0。,(3) 波特率,波特率=2SMOD(T1溢出率)/32,3. 工作方式2和方式3,工作方式2和方式3都是11位異步收發(fā)串行通信方式,兩者的差異僅在波特率上有所不同

17、。,方式2:波特率=2SMODfosc/64(SMOD=0或1),(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ā)送。一幀數(shù)據(jù)發(fā)送完畢后,CPU自動(dòng)將TI置1,其過(guò)程與方式1相同。,(2) 數(shù)據(jù)接收,REN=1,RI=0時(shí),啟動(dòng)接收 若SM2=0,接收到的8位數(shù)據(jù)送SBUF,第9位數(shù) 據(jù)送RB8。 若SM2=1,接收到的第9位數(shù)據(jù)為0,數(shù)據(jù)不送SBUF;接收到的第9位數(shù)據(jù)為1,數(shù)據(jù)送SBUF,第9位送RB8。,對(duì)波特率需要說(shuō)明的是,當(dāng)串行口

18、工作在方式1或方式3,且要求波特率按規(guī)范取1200、2400、4800、9600時(shí),若采用晶振12MHz和6MHz,按上述公式算出的T1定時(shí)初值將不是一個(gè)整數(shù),因此會(huì)產(chǎn)生波特率誤差而影響串行通信的同步性能。解決的方法只有調(diào)整單片機(jī)的晶振頻率fosc,為此有一種頻率為11.0592MHz的晶振,這樣可使計(jì)算出的T1初值為整數(shù)。表9-2列出了串行方式1或方式3在不同晶振時(shí)的常用波特率和誤差。,表9.2 常用波特率和誤差,9.3.1 工作方式0的應(yīng)用,串行口工作方式0主要用于擴(kuò)展并行I/O接口。擴(kuò)展成并行輸出口時(shí),需要外接一片8位串行輸入并行輸出的同步移位寄存器74LS164或CD4094。擴(kuò)展成并

19、行輸入口時(shí),需要外接一片并行輸入串行輸出的同步移位寄存器74LS165或CD4014。,9.3 AT89C51串行接口的應(yīng)用與編程,例9.1 利用串行口工作在方式0,外擴(kuò)一片74LS164構(gòu)成一個(gè)3位LED動(dòng)態(tài)顯示器,并將片內(nèi)RAM顯示單元65H、66H和67H單元中的段碼輸出顯示。其硬件電路如圖9.12所示。,ORG 0100H STPRT:MOV SCON,#00H ;串口工作方式0 SETB P1.2 ;消去最高顯示位 SETB P1.1 ;消去次高顯示位 MOV SBUF, 65H ;傳送最低顯示位 JNB TI, $ ;等待發(fā)送 CLR P1.0 ;最低位顯示 CLR TI ;清中斷

20、標(biāo)志位 LCALL DSSJ ;調(diào)延時(shí)子程序 SETB P1.0 ;消去最低顯示位 MOV SBUF, 66H ;傳送中間顯示位,JNB TI, $ ;等待傳送結(jié)束 CLR P1.1 ;顯示中間位 CLR TI ;清中斷標(biāo)志位 LCALL DSSJ ;調(diào)延時(shí)子程序 SETB P1.1 ;消去中間顯示位 MOV SBUF, 67H ;傳送最高顯示位 JNB TI, $ ;等待傳送結(jié)束 CLR P1.2 ;顯示最高位 CLR TI ;清中斷標(biāo)志位 LCALL DSSJ SETB P1.2 RET,點(diǎn)擊觀看仿真演示,例9.2 A、B兩臺(tái)單片機(jī),均采用11.0592MHz晶振。A機(jī)以2400bps波特

21、率將內(nèi)部RAM中30H至39H的10個(gè)字節(jié)及校驗(yàn)和經(jīng)串行口發(fā)送給B機(jī),B機(jī)正確接收后存入片內(nèi)RAM的30H至39H單元,并同時(shí)顯示其中的前8位數(shù)據(jù)。,A、B兩機(jī)的RXD、TXD交叉相連并共地。兩機(jī)串行口均設(shè)置為方式1,定時(shí)器T1定時(shí)初值為F4H,兩機(jī)采用查詢控制方式程序如下:,9.3.2 工作方式1的應(yīng)用,;A機(jī)發(fā)送程序: ORG 0 MOV R0,#30H ;R0指向數(shù)據(jù)塊首址 MOV R7,#0AH ;循環(huán)次數(shù)為10次 MOV A,#1 ;初值為1 MAIN:MOV R0,A ;設(shè)置數(shù)據(jù)初值為1A INC R0 INC A DJNZ R7,MAIN MOV TMOD,#20H;T1定時(shí)方式

22、2,MOV TL1,#0F4H ;波特率為1200bps MOV TH1,#0F4H SETB TR1 ;啟動(dòng)T1 MOV SCON,#40H ;串口方式1 MOV R0,#30H ;R0指向發(fā)送數(shù)據(jù)塊首址 MOV R1,#0AH ;數(shù)據(jù)塊長(zhǎng)度為10 MOV 70H,#00H ;校驗(yàn)和清0 DWFP:MOV A,R0 ;數(shù)據(jù)送A MOV SBUF,A ;啟動(dòng)串口發(fā)送 ADD A,70H ;求校驗(yàn)和,MOV 70H,A JNB TI,$ ;等待發(fā)送完畢 CLR TI ;清發(fā)送中斷標(biāo)志 INC R0 ;R0指向下一字節(jié)數(shù)據(jù) DJNZ R1,DWFP ;10個(gè)字節(jié)數(shù)據(jù)發(fā)送完? MOV SBUF,A

23、;發(fā)送校驗(yàn)和 JNB TI,$ ;等待發(fā)送完畢 CLR TI ;清發(fā)送中斷標(biāo)志 SJMP $ ;停機(jī) END,;B機(jī)接收并顯示程序 ORG 0 ;*主程序* MOV TMOD,#20H ;T1定時(shí)方式2 MOV TL1,#0F4H ;串口波特率為2400bps MOV TH1,#0F4H SETB TR1 ;啟動(dòng)T1 MOV SCON,#50H ;串口方式1,允許接收 MOV R0,#30H ;R0指存放接收數(shù)據(jù)首地址 MOV R1,#0AH ;接收數(shù)據(jù)塊長(zhǎng)度為10,MOV 70H,#00H ;校驗(yàn)和清0 DWFP:JNB RI,$ ;等待接收 MOV A,SBUF ;讀取接收數(shù)據(jù) MOV R

24、0,A ;保存至接收數(shù)據(jù)塊單元 ADD A,70H ;求校驗(yàn)和 MOV 70H,A CLR RI ;清接收中斷標(biāo)志 INC R0 ;R0指向下一單元地址 DJNZ R1,DWFP ;10個(gè)數(shù)據(jù)接收完? JNB RI,$ ;等待接收校驗(yàn)和,MOV A,SBUF ;讀取校驗(yàn)和 CLR REN ;禁止接收數(shù)據(jù) CJNE A,70H,PEND ;校驗(yàn)和不正確轉(zhuǎn)PEND LOP: LCALL DISP ;校驗(yàn)和正確則調(diào)顯示 SJMP LOP PEND:SJMP $ ;*顯示子程序(分兩屏顯示)* DISP: MOV R0,#30H DISP1:MOV R1,#08H MOV R2,#01H MOV DP

25、TR,#TAB,LOOP:MOV A,R2 MOV P2,A RL A MOV R2,A MOV A,R0 MOVC A,A+DPTR MOV P1,A INC R0 LCALL DELY DJNZ R1,LOOP RET,;*延時(shí)子程序* DELY:MOV R7,#10 DEL1:MOV R6,#100 DJNZ R6,$ DJNZ R7,DEL1 RET TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H DB 0F8H,80H,90H,88H,83H,0C6H,0A1H DB 86H,8EH,0BFH,8CH,0CH,0FFH END,點(diǎn)擊觀看仿真演示,9.3.

26、3 工作方式2與工作方式3的應(yīng)用,方式2與方式3都是11位異步通信方式,這兩種方式的區(qū)別僅在于波特率不同。方式2的波特率只有固定的兩種,而方式3的波特率則可由用戶自行設(shè)定。,例9.3 利用串行口方式2編制一發(fā)送程序,將片內(nèi)RAM中60H6FH單元的數(shù)據(jù)串行發(fā)送出去,第9數(shù)據(jù)位TB8作偶校驗(yàn)位。 根據(jù)要求,將串行口設(shè)置為方式2、單工發(fā)送,則SCON控制字為80H。波特率選為fosc/64。,采用中斷方式發(fā)送的主程序和中斷程序如下: ORG 0000H AJMP MAIN ;轉(zhuǎn)主程序 ORG 0023H ;串口中斷服務(wù)程序 INC R0 ;發(fā)送數(shù)據(jù)地址增1 MOV A, R0 ;取出待發(fā)數(shù)據(jù) MO

27、V C,PSW.0 ;將奇偶位送TB8 MOV TB8, C MOV SBUF, A ;發(fā)送數(shù)據(jù) DJNZ R7, SSJS ;判斷數(shù)據(jù)是否發(fā)送完,CLR ES ;發(fā)送完關(guān)中斷 SSJS:CLR TI ;清中斷標(biāo)志 RETI MAIN:ORG 0100H ;主程序 MOV SP,#20H ;置堆棧指針 MOV SCON, #80H ;串口設(shè)置為方式2 MOV PCON, #00H ;波特率選為fosc/64 MOV R0, #60H ;數(shù)據(jù)塊首址送R0 MOV R7, #10H ;數(shù)據(jù)塊長(zhǎng)度送R7 SETB EA ;開總中斷 SETB ES ;開串行口中斷,MOV A, R0 ;取出待發(fā)數(shù)據(jù)

28、MOV C, PSW.0 ;將奇偶位送TB8 MOV TB8, C MOV SBUF, A ;發(fā)送數(shù)據(jù) SJMP $ ;等待中斷 END,例9.4 試編制串行口在方式3下接收數(shù)據(jù)塊的程序。設(shè)單片機(jī)晶振為11.0592MHz,波特率為2400 b/s,接收的數(shù)據(jù)存在片內(nèi)RAM的40H起始單元的一段區(qū)間內(nèi),數(shù)據(jù)塊長(zhǎng)度由發(fā)送方先發(fā)送過(guò)來(lái)(不超過(guò)允許值),每接收一個(gè)數(shù)據(jù)都核對(duì)其奇偶校驗(yàn)位,正確則存儲(chǔ)數(shù)據(jù),否則給出出錯(cuò)標(biāo)志。 解:根據(jù)要求,設(shè)置T1工作于方式2,當(dāng)SMOD=0時(shí),T1計(jì)數(shù)初值為F4H。,查詢法源程序如下: START:MOV TMOD, #20H ;T1定時(shí)方式2 MOV TL1, #0

29、F4H ;置T1計(jì)數(shù)初值 MOV TH1, #0F4H SETB TR1 ;啟動(dòng)T1 MOV SCON, #0D0H ;串口方式3,允許接收 MOV PCON, #00H ;設(shè)SMOD=0 MOV R0, #40H ;接收數(shù)據(jù)區(qū)首址送R0 JNB RI,$ ;等待接收數(shù)據(jù)塊長(zhǎng)度 CLR RI ;接收后清RI,MOV A, SBUF ;數(shù)據(jù)塊長(zhǎng)度存R7中 MOV R7,A MAR0: JNB RI, $ ;等待接收數(shù)據(jù) CLR RI ;清RI MOV A, SBUF ;將接收字符讀入A JB PSW.0,MAR1 ;進(jìn)行奇偶位校驗(yàn) JB RB8, MAR3 SJMP MAR2 MAR1: JNB

30、 RB8, MAR3 MAR2: MOV R0, A ;校驗(yàn)正確保存數(shù)據(jù),INC R0 ;存儲(chǔ)單元地址增1 CLR PSW.5 ;設(shè)置正確的標(biāo)志 DJNZ R7,MAR0 ;未接收完,繼續(xù) SJMP $ ;接收完停機(jī) MAR3: SETB PSW.5 ;置校驗(yàn)出錯(cuò)標(biāo)志 SJMP $ ; 停機(jī) END,9.4 多機(jī)通信,雙機(jī)通信時(shí),兩臺(tái)單片機(jī)地位是平等的,此時(shí),兩臺(tái)單片機(jī)的串行口均可工作于方式1。多機(jī)通信是指一臺(tái)主機(jī)和多臺(tái)從機(jī)之間的通信。而在多機(jī)通信中,有主機(jī)和從機(jī)之分,多機(jī)通信時(shí),主機(jī)發(fā)送的信息可以傳送到各個(gè)從機(jī),而各從機(jī)發(fā)送的信息只能被主機(jī)接收,其中的主要問題是怎樣識(shí)別地址和怎樣維持主機(jī)與指

31、定從機(jī)之間的通信。,1. 多機(jī)通信連接電路,在串行方式2或方式3條件下,可實(shí)現(xiàn)一臺(tái)主機(jī)和多臺(tái)從機(jī)之間的通信,其連接電路如圖9.13所示。,2. 多機(jī)通信原理,多機(jī)通信時(shí),主機(jī)向從機(jī)發(fā)送的信息分為地址幀和數(shù)據(jù)幀兩類,以第9位可編程TB8作區(qū)分標(biāo)志,TB8=0,表示數(shù)據(jù);TB8=1,表示地址。多機(jī)通信充分利用了89C51串行控制寄存器SCON中的多機(jī)通信控制位SM2的特性。當(dāng)SM2=1時(shí),CPU接收的前8位數(shù)據(jù)是否送入SBUF取決于接收的第9位RB8的狀態(tài):若RB8=1,將接收到的前8位數(shù)據(jù)送入SBUF,并置位RI產(chǎn)生中斷請(qǐng)求;若,RB8=0,則接收到的前8位數(shù)據(jù)丟棄。即當(dāng)從機(jī)SM2=1時(shí),從機(jī)只

32、能接收主機(jī)發(fā)送的地址幀(RB8=1),對(duì)數(shù)據(jù)幀(RB8=0)不予理睬。當(dāng)從機(jī)SM2=0時(shí),從機(jī)可接收主機(jī)發(fā)送的所有信息。,通信開始時(shí),主機(jī)首先發(fā)送地址幀。由于各從機(jī)的SM2=1和RB8=1,所以各從機(jī)均分別發(fā)出串行接收中斷請(qǐng)求,通過(guò)串行中斷服務(wù)程序來(lái)判斷主機(jī)發(fā)送的地址與本從機(jī)地址是否相符。如果相符,則把自身的SM2清0,以準(zhǔn)備接收隨后傳,送來(lái)的數(shù)據(jù)幀。其余從機(jī)由于地址不符,則仍保持SM2=1狀態(tài),因而不能接收主機(jī)傳送來(lái)的數(shù)據(jù)幀。這就是多機(jī)通信中主、從機(jī)一對(duì)一的通信情況。這種通信只能在主、從機(jī)之間進(jìn)行,如果想在兩個(gè)從機(jī)之間進(jìn)行通信,則要通過(guò)主機(jī)作中介才能實(shí)現(xiàn)。,3. 多機(jī)通信過(guò)程,主、從機(jī)工作于

33、方式2或方式3,主機(jī)置 SM2=0,REN=1;從機(jī)置SM2=1,REN=1。 (2) 主機(jī)置位TB8=1,向從機(jī)發(fā)送尋址地址幀,各從機(jī)因滿足接收條件(SM2=1,RB8=1),從而接收到主機(jī)發(fā)來(lái)的地址,并與本機(jī)地址進(jìn)行比較。 (3) 地址一致的從機(jī)(被尋址機(jī))將SM2清0,并向主機(jī)返回地址,供主機(jī)核對(duì)。地址不一致的從機(jī)(未被尋址機(jī))保持SM2=1。,(4) 主機(jī)核對(duì)返回的地址,若與此前發(fā)出的地址一致則準(zhǔn)備發(fā)送數(shù)據(jù);若不一致則返回(2)重新發(fā)送地址幀。 (5) 主機(jī)向從機(jī)發(fā)送數(shù)據(jù),此時(shí)主機(jī)的TB8=0,只有被選中的那臺(tái)從機(jī)能接收到該數(shù)據(jù)。其他從機(jī)則舍棄該數(shù)據(jù)。 (6) 本次通信結(jié)束后,從機(jī)重新

34、置SM2=1,等待下次通信。,例9.5 按照?qǐng)D9.13,編寫主機(jī)向從機(jī)1發(fā)送數(shù)據(jù)的程序,波特率為1200bps,從機(jī)1的地址為01H,晶振fosc為11.0592MHz。,分析:按照波特率的要求,主、從機(jī)串行口均應(yīng)工作于方式3,定時(shí)器T1工作于方式2,定時(shí)初值為E8H。初始化時(shí),主機(jī)置SM2=0,TB8=1,REN=1。從機(jī)置SM2=1,REN=1。主機(jī)發(fā)送的數(shù)據(jù)位于30H單元,從機(jī)接收后存于30H區(qū)域內(nèi)。 主機(jī)程序框圖及源程序如下:,圖9.14 例9.5程序框圖,;主程序 ORG 0000H LJMP START ORG 0020H START:MOV TMOD,#20H ;T1定時(shí)方式2

35、MOV TH1,#0E8H ;波特率為1200bps MOV TL1,#0E8H SETB TR1 ;啟動(dòng)T1 MOV SCON,#0D8H ;SM2=0,REN=1,TB8=1 MOV PCON,#00H ;波特率不加倍,MOV R0,#30H ;發(fā)送數(shù)據(jù)單元地址送R0 MOV R1,#01H ;從機(jī)地址送R1 ACALL TRAN ;調(diào)發(fā)送數(shù)據(jù)子程序 ;其他功能程序段 SJMP $ ;停機(jī) ;發(fā)送數(shù)據(jù)子程序 TRAN:MOV A,R1 ;從機(jī)地址送A SETB TB8 ;TB8置1,發(fā)送地址幀 MOV SBUF,A ;啟動(dòng)發(fā)送 JNB TI,$ ;等待發(fā)送完 CLR TI ;軟件清TI,J

36、NB RI,$ ;等待接收從機(jī)發(fā)回確認(rèn)地址 CLR RI ;軟件清RI MOV A,SBUF ;讀取地址 XRL A,R1 ;核對(duì)地址是否相同 JZ TRA1 ;相同,轉(zhuǎn) SJMP TRAN ;地址不同,轉(zhuǎn)重發(fā)地址 TRA1:CLR TB8 ;TB8清0,發(fā)送數(shù)據(jù)幀 MOV A,R0 ;讀取待發(fā)送數(shù)據(jù) MOV SBUF,A ;啟動(dòng)發(fā)送 JNB TI,$ ;等待數(shù)據(jù)發(fā)送完 CLR TI ;軟件清發(fā)送中斷標(biāo)志 RET ;返回,從機(jī)源程序如下:,;主程序 ORG 0000H LJMP START ORG 0023H ;串口中斷入口地址 LJMP SEVT0 ORG 0030H START:MOV T

37、MOD,#20H ;T1定時(shí)方式2 MOV TH1,#0E8H ;波特率為1200bps MOV TL1,#0E8H SETB TR1 ;啟動(dòng)T1,MOV SCON,#0F8H ;SM2=1,REN=1,TB8=1 MOV PCON,#00H ;波特率不加倍 MOV R0,#30H ;R0指向數(shù)據(jù)存放單元 SETB EA ;開串口中斷 SETB ES SJMP $ ;停機(jī) ;串口中斷服務(wù)程序 SEVT0:JB RI, SEVT1 ;是接收中斷轉(zhuǎn)SEVT1 CLR TI ;是發(fā)送中斷,清TI RETI ;返回,SEVT1:CLR RI ;清RI MOV A,SBUF ;讀取數(shù)據(jù) JB RB8,S

38、EVT2;是地址幀,轉(zhuǎn)SEVT2 MOV R0,A ;數(shù)據(jù)存于R0所指單元 SETB SM2 ;一次通信完成,重置SM2 RETI ;返回 SEVT2:XRL A,#01H ;核對(duì)是否本機(jī)地址 JZ SEVT3 ;是本機(jī)地址,轉(zhuǎn) SETB SM2 ;不是本機(jī)地址,SM2置1 RETI,SEVT3: CLR SM2 ;是本機(jī)地址,SM2清0 MOV A,#01H ;向主機(jī)發(fā)確認(rèn)地址 MOV SBUF,A RETI,在實(shí)際應(yīng)用中,上面介紹的這種多機(jī)通信因受單片機(jī)功能和通信距離短等的限制,很少被采用。在一些較大的測(cè)控系統(tǒng)中,常將單片機(jī)作為從機(jī)(下位機(jī))直接用于被控對(duì)象的數(shù)據(jù)采集與控制,而把PC機(jī)作為

39、主機(jī)(上位機(jī))用于數(shù)據(jù)處理和對(duì)從機(jī)的管理,它們之間的信息交換主要采用串行通信總線結(jié)構(gòu)。,9.5 PC機(jī)與單片機(jī)間的串行通信,近年來(lái),在智能儀器儀表、數(shù)據(jù)采集、嵌入式自動(dòng)控制等場(chǎng)合,越來(lái)越普遍應(yīng)用單片機(jī)作核心控制部件。但當(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),PC機(jī)對(duì)遠(yuǎn)端單片機(jī)進(jìn)行控制。因此,實(shí)現(xiàn)單片機(jī)與PC機(jī)之間的遠(yuǎn)程通信更具有實(shí)際意義。 單片機(jī)中的數(shù)據(jù)信號(hào)電平都是TTL電平,這種電平采用正邏輯

40、標(biāo)準(zhǔn),即約定2.4V表示邏輯1,而0.5V表示邏輯0,這種信號(hào)只適用于通信距離很短的場(chǎng)合,若用于遠(yuǎn)距離傳輸必然會(huì)使信號(hào)衰減和畸變。因此,在實(shí)現(xiàn)PC機(jī)與單片機(jī)之間通信或單片機(jī)與單片機(jī)之間遠(yuǎn)距離通信時(shí),通常采用標(biāo)準(zhǔn)串行總線通信接口,比如RS-232C、,RS-422、RS-423、RS-485等。其中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),它適用于短距離或帶調(diào)制解調(diào)器的通信場(chǎng)合。,9.4.1 RS-232C總線標(biāo)準(zhǔn),RS-232C實(shí)際

41、上是串行通信的總線標(biāo)準(zhǔn)。該總線標(biāo)準(zhǔn)定義了25條信號(hào)線,使用25個(gè)引腳的連接器。各信號(hào)引腳的定義見表9.3。,表9.3 RS-23C引腳信號(hào)定義,除信號(hào)定義外,RS-232C標(biāo)準(zhǔn)的其它規(guī)定還有: (1) RS-232C 是一種電壓型總線標(biāo)準(zhǔn),它采用負(fù)邏輯標(biāo)準(zhǔn):+3V+25V表示邏輯0(space);-3V-25V表示邏輯1(mark)。噪聲容限為2V。 (2) 標(biāo)準(zhǔn)數(shù)據(jù)傳送速率有:50,75,110,150,300,600,1200,2400,4800,9600,19200bit/s。 (3) 采用標(biāo)準(zhǔn)的25芯插頭座(DB-25)進(jìn)行連接,因此該插頭座也稱之為RS-232C連接器。,表9.3 R

42、S-232C標(biāo)準(zhǔn)中許多信號(hào)是為通信業(yè)務(wù)或信息控制而定義的,在計(jì)算機(jī)串行通信中主要使用了如下信號(hào): (1) 數(shù)據(jù)傳送信號(hào):發(fā)送數(shù)據(jù)(TXD);接收數(shù)據(jù)(RXD)。 (2) 調(diào)制解調(diào)器控制信號(hào):請(qǐng)求發(fā)送(RTS);清除發(fā)送(CTS);數(shù)據(jù)通信設(shè)備準(zhǔn)備就緒(DSR);數(shù)據(jù)終端準(zhǔn)備就緒(DTR)。 (3) 定位信號(hào):接收時(shí)鐘(RXC);發(fā)送時(shí)鐘(TXC)。 (4) 信號(hào)地GND。,圖9.15 微機(jī)9針D形串口連接器,9.4.2 RS-232C接口電路,由于RS-232C信號(hào)電平(EIA)與AT89C51單片機(jī)信號(hào)電平(TTL)不一致,因此,必須進(jìn)行信號(hào)電平轉(zhuǎn)換。實(shí)現(xiàn)這種電平轉(zhuǎn)換的電路稱為RS-232C

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

44、轉(zhuǎn)換,只要在外部接入相應(yīng)的電解電容即可;管腳710和管腳1114構(gòu)成兩組TTL信號(hào)電平與RS-232信號(hào)電平的轉(zhuǎn)換電路,對(duì)應(yīng)管腳可直接與單片機(jī)串行口的TTL電平引腳和PC機(jī)的RS-232電平引腳相連。具體連線如圖9.17所示。,圖9.16 MAX232引腳圖,2. PC機(jī)與89C51單片機(jī)串行通信電路,用MAX232芯片實(shí)現(xiàn)PC機(jī)與AT89C51單片機(jī)串行通信的典型電路如圖9.16所示。圖中外接電解電容C1、C2、C3、C4用于電源電壓變換,可提高抗干擾能力,它們可取相同容量的電容,一般取1.0F/16V。電容C5的作用是對(duì)+5V電源的噪聲干擾進(jìn)行濾波,一般取0.1F。選用兩組中的任意一組電平

45、轉(zhuǎn)換電路實(shí)現(xiàn)串行通信,如圖,中選Tlin、Rlout分別與AT89C51的TXD、RXD相連,Tlout、Rlin分別與PC機(jī)中R232接口的RXD、TXD相連。這種發(fā)送與接收的對(duì)應(yīng)關(guān)系不能接錯(cuò),否則將不能正常工作。,圖9.17 用MAX232實(shí)現(xiàn)串行通信接口電路圖,3. PC機(jī)與多個(gè)單片機(jī)間的串行通信,一臺(tái)PC機(jī)與多個(gè)單片機(jī)間的串行通信電路如圖9.18所示。這種通信系統(tǒng)一般為主從結(jié)構(gòu),PC機(jī)為主機(jī),單片機(jī)為從機(jī)。主從機(jī)間的信號(hào)電平轉(zhuǎn)換由MAX232芯片實(shí)現(xiàn)。 這種小型分布式控制系統(tǒng),充分發(fā)揮了單片機(jī)體積小、功能強(qiáng)、抗干擾性好、面向被控對(duì)象等優(yōu)點(diǎn),將單片機(jī)采集到的數(shù)據(jù)傳送給PC機(jī)。同時(shí)也利用了

46、PC機(jī)數(shù)據(jù)處理能力強(qiáng)的特點(diǎn),可將多,個(gè)控制對(duì)象的信息加以綜合分析、處理,然后向各單片機(jī)發(fā)出控制信息,以實(shí)現(xiàn)集中管理和最優(yōu)控制,并還能將各種數(shù)據(jù)信息顯示和打印出來(lái)。,圖9.18 PC機(jī)與多個(gè)單片機(jī)間的串行通信電路,4、RS-485總線接口 RS-232接口標(biāo)準(zhǔn)出現(xiàn)較早,難免會(huì)有不足之處:(1)接口的信號(hào)電平值較高,易損壞接口電路的芯片;(2)傳輸速率較低,在異步傳輸時(shí),波特率最大20kbps;(3)接口使用一根信號(hào)線和一根信號(hào)返回線而構(gòu)成共地的傳輸形式,這種共地傳輸容易產(chǎn)生共模干擾;(4)傳輸距離有限,實(shí)際最大傳輸距離30m左右。,RS-485/422接口采用不同的方式:每個(gè)信號(hào)都采用雙絞線傳送

47、,兩條線間的電壓差用于表示數(shù)字信號(hào)。例如,把雙絞線中的一根標(biāo)為A(正),另一根標(biāo)為B(負(fù)),當(dāng)A為正電壓(通常為+5V),B為負(fù)電壓時(shí)(通常為0),表示信號(hào)1;反之,A為負(fù)電壓,B為正電壓時(shí)表示信號(hào)0。RS-485/422允許通信距離可達(dá)到1.2km,實(shí)際上可達(dá)3km,采用合適的電壓可達(dá)到2.5Mbps的傳輸速率。,RS-422與RS-485采用相同的通信協(xié)議,但有所不同。RS-422通常作為RS-232通信的擴(kuò)展,它采用兩對(duì)雙絞線,數(shù)據(jù)可以同時(shí)雙向傳送(全雙工)。RS-485則采用一對(duì)雙絞線,輸入輸出不能同時(shí)進(jìn)行(半雙工)。,RS-485串行總線接口標(biāo)準(zhǔn)以差分平衡方式傳輸信號(hào),具有很強(qiáng)的抗共

48、模干擾的能力。邏輯“1”以兩線間的電壓差為+2V+6V表示;邏輯“0”以兩線間的電壓差為-2V-6V表示。接口信號(hào)電平比RS-232降低了,不容易損壞接口電路芯片。 RS-485總線標(biāo)準(zhǔn)可采用MAX485芯片實(shí)現(xiàn)電平轉(zhuǎn)換。MAX-485芯片引腳排列如圖9.19所示。,MAX485輸入/輸出信號(hào)不能同時(shí)進(jìn)行(半雙工),其發(fā)送和接收功能的轉(zhuǎn)換是由芯片的RE和DE端控制的。RE=0時(shí),允許接收;RE=1時(shí),接收端R高阻。DE=1時(shí),允許發(fā)送;DE=0時(shí),發(fā)送端A和B高阻。在單片機(jī)系統(tǒng)中常把RE和DE接在一起用單片機(jī)的一個(gè)I/O線控制收發(fā)。,9.6 實(shí)訓(xùn)指導(dǎo),1. 實(shí)訓(xùn)目的 (1)掌握串行口工作方式的程序設(shè)計(jì),掌握單片機(jī)通信程序編制方法。 (2)了解實(shí)現(xiàn)串行通信的硬環(huán)境,數(shù)據(jù)格式的協(xié)議,數(shù)據(jù)交換

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論