《單片機(jī)技術(shù)及應(yīng)用》課件第6章 串行接口_第1頁
《單片機(jī)技術(shù)及應(yīng)用》課件第6章 串行接口_第2頁
《單片機(jī)技術(shù)及應(yīng)用》課件第6章 串行接口_第3頁
《單片機(jī)技術(shù)及應(yīng)用》課件第6章 串行接口_第4頁
《單片機(jī)技術(shù)及應(yīng)用》課件第6章 串行接口_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第6章MCS-51單片機(jī)的串行接口主要內(nèi)容MCS-51單片機(jī)片內(nèi)集成了一個(gè)全雙工通用異步串行口(UniversalAsynchronousReceive/Transmitter,UART)。MCS-51單片機(jī)與外部設(shè)備進(jìn)行通信有兩種方式:并行通信和串行通信。當(dāng)采用串行通信的方式進(jìn)行通信時(shí),便需要通過串行口來實(shí)現(xiàn)。所謂全雙工通用異步串行口,就是說該口可以同時(shí)進(jìn)行接收數(shù)據(jù)和發(fā)送數(shù)據(jù),由于其內(nèi)部的接收緩沖器和發(fā)送緩沖器都是完全獨(dú)立的。6.1

串行通信概述

2024/12/31第6章MCS-51單片機(jī)的串行接口6.1.1

計(jì)算機(jī)通信的兩種方式隨著多微機(jī)系統(tǒng)的廣泛應(yīng)用和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的普及,計(jì)算機(jī)的通信功能愈來愈顯得重要。計(jì)算機(jī)通信是將計(jì)算機(jī)技術(shù)與通信技術(shù)相結(jié)合,實(shí)現(xiàn)計(jì)算機(jī)與外部設(shè)備或計(jì)算機(jī)與計(jì)算機(jī)之間的信息的交換。計(jì)算機(jī)通信有兩種方式:并行通信和串行通信。并行通信是將數(shù)據(jù)字節(jié)的各位用多條數(shù)據(jù)線同時(shí)進(jìn)行傳送,其收發(fā)設(shè)備連接線路如圖6-1所示。從圖6-1中可以看到,在進(jìn)行并行通信時(shí),需要傳送的數(shù)據(jù)位有多少位,就需要多少根數(shù)據(jù)線。同時(shí),除了數(shù)據(jù)位以外還需要兩根通信聯(lián)絡(luò)控制線:詢問線和應(yīng)答線。在發(fā)送數(shù)據(jù)前,發(fā)送設(shè)備需要向接收設(shè)備發(fā)送詢問信號(hào):是否準(zhǔn)備就緒;當(dāng)數(shù)據(jù)接收到后,接收設(shè)備同樣需要向發(fā)送設(shè)備發(fā)送應(yīng)答信號(hào):已經(jīng)接收完成。并行通信的特點(diǎn):控制簡(jiǎn)單,傳輸速度快。但是由于傳輸線路比較多,當(dāng)進(jìn)行遠(yuǎn)距離傳輸時(shí)成本較高、線路較復(fù)雜、容易出現(xiàn)錯(cuò)誤。適用于近距離、傳送速度高的場(chǎng)合。當(dāng)傳輸?shù)木嚯x大于30m時(shí),一般情況選擇串行通信。串行通信是將數(shù)據(jù)字節(jié)一位一位的形式在一條傳輸線上逐個(gè)的傳送。其收發(fā)設(shè)備連接線路如圖6-2所示。2024/12/313第6章MCS-51單片機(jī)的串行接口2024/12/314第6章MCS-51單片機(jī)的串行接口在進(jìn)行串行通信中,數(shù)據(jù)發(fā)送設(shè)備先將需要發(fā)送的數(shù)據(jù)由并行形式轉(zhuǎn)換為串行形式,然后再一位一位地放在傳輸線上順序傳送。在接收設(shè)備上,又將接收到的串行形式數(shù)據(jù)轉(zhuǎn)換成并行形式。串行通信具有控制較復(fù)雜、傳輸速度慢等缺點(diǎn),但其傳輸線路少、抗干擾能力強(qiáng)、成本低,適合長距離傳送。對(duì)于串行通信,數(shù)據(jù)信息和控制信息都是通過一條線上進(jìn)行傳送。根據(jù)發(fā)送設(shè)備和接收設(shè)備時(shí)鐘的配置方式可以把串行通信分為:異步通信和同步通信。(1)異步通信異步通信是指發(fā)送設(shè)備和接收設(shè)備在使用的過程中是使用各自的時(shí)鐘控制發(fā)送和接收過程。為使雙方能夠收發(fā)協(xié)調(diào),要求發(fā)送設(shè)備和接收設(shè)備的時(shí)鐘頻率盡可能一致。異步通信是以字符(構(gòu)成的幀)為單位進(jìn)行傳送,字符與字符之間的間隙(時(shí)間間隔)是任意的,但是每個(gè)字符中的各位是以固定的時(shí)間間隔進(jìn)行傳送。通過使傳送的每一個(gè)字符都以起始位“0”開始,以停止位“1”結(jié)束從而讓發(fā)送設(shè)備和接收設(shè)備能夠在收發(fā)數(shù)據(jù)上盡可能的實(shí)現(xiàn)同步(誤差在允許的

范圍內(nèi))。異步通信的幀格式如圖6-3所示。2024/12/3156.1.2串行通信的基本概念第6章MCS-51單片機(jī)的串行接口1串行通信的方式從上圖可以看出,異步通信的每一幀數(shù)據(jù)由四個(gè)部分組成:起始位(1位)、數(shù)據(jù)位(5-8位)、奇偶校驗(yàn)位(1位,也可以沒有校驗(yàn)位)、停止位(1位)。圖中所示的是由1位起始位、6位數(shù)據(jù)位、1位奇偶校驗(yàn)位、1位停止位,總共9位組成了一個(gè)傳輸?shù)淖址?。?shù)據(jù)進(jìn)行傳送時(shí)需要滿足低位在前、高位在后。字符之間允許有不定長度的空閑位。在發(fā)送間隙,即空閑時(shí),通信線路總是處于邏輯“1”狀態(tài)。當(dāng)檢測(cè)到起始位“0”時(shí),便告訴接收設(shè)備傳送字符開始了,后面就是數(shù)據(jù)位和奇偶校驗(yàn)位,最后檢測(cè)到停止位“1”,表示一個(gè)字符已經(jīng)接收完畢。2024/12/316第6章MCS-51單片機(jī)的串行接口2024/12/317第6章MCS-51單片機(jī)的串行接口異步通信的特點(diǎn):不要求收放雙方時(shí)鐘的嚴(yán)格一致,易于實(shí)現(xiàn),但是每個(gè)字符都要求有起始位和停止位,并且字符和字符間有空閑位,傳輸效率不高。(2)同步通信同步通信要求收發(fā)雙方具有同頻同相的同步時(shí)鐘信號(hào),只需在傳送數(shù)據(jù)的最前面附加特定的同步字符,使發(fā)收雙方建立同步,此后便在同步時(shí)鐘的控制下逐位發(fā)送或接收。同步通信的格式如圖6-4所示。為了表示數(shù)據(jù)傳輸?shù)拈_始,發(fā)送設(shè)備先發(fā)送一個(gè)或兩個(gè)特殊字符,該字符稱為同步字符。當(dāng)發(fā)送設(shè)備和接收設(shè)備達(dá)到同步后,就可以一個(gè)字符接一個(gè)字符地發(fā)送一大塊數(shù)據(jù),而不再需要用起始位和停止位了,這樣可以明顯地提高數(shù)據(jù)的傳輸速率。采用同步方式傳送數(shù)據(jù)時(shí),在發(fā)送過程中,收發(fā)雙方還必須用一個(gè)時(shí)鐘進(jìn)行協(xié)調(diào),用于確定串行傳輸中每一位的位置。接收數(shù)據(jù)時(shí),接收設(shè)備可利用同步字符使內(nèi)部時(shí)鐘與發(fā)送設(shè)備保持同步,然后將同步字符后面的數(shù)據(jù)逐位移入,并轉(zhuǎn)換成并行格式,供CPU讀取,直至收到結(jié)束符為止。8第6章MCS-51單片機(jī)的串行接口串行通信根據(jù)數(shù)據(jù)傳輸?shù)姆较蚝蜁r(shí)間關(guān)系可以分為:?jiǎn)喂?、半雙工和全雙工。如圖6-5所示。單工:是指數(shù)據(jù)傳輸僅能沿一個(gè)方向,不能實(shí)現(xiàn)反向傳輸,如圖6-5(a)所示;半雙工:是指數(shù)據(jù)傳輸可以沿兩個(gè)方向,但是要分時(shí)進(jìn)行,如圖6-5(b)所示;全雙工:是指數(shù)據(jù)傳輸可以同時(shí)進(jìn)行雙向傳輸,如圖6-5(c)所示。2024/12/3192串行通信的傳輸方向第6章MCS-51單片機(jī)的串行接口在通信過程中,往往需要對(duì)傳送的數(shù)據(jù)是否正確進(jìn)行校驗(yàn)。常用的校驗(yàn)方法有奇偶校驗(yàn)以及代碼和校驗(yàn)。(1)奇偶校驗(yàn)在傳送的數(shù)據(jù)中,數(shù)據(jù)位尾隨的1位為奇偶校驗(yàn)位。奇校驗(yàn)時(shí),數(shù)據(jù)中“1”的個(gè)數(shù)與校驗(yàn)位“1”的個(gè)數(shù)之和應(yīng)為奇數(shù);偶校驗(yàn)時(shí),數(shù)據(jù)中“1”的個(gè)數(shù)與校驗(yàn)位“1”的個(gè)數(shù)應(yīng)為偶數(shù)。接收字符時(shí),對(duì)“1”的個(gè)數(shù)進(jìn)行校驗(yàn),若發(fā)現(xiàn)與約定的不一致,則說明傳送數(shù)據(jù)過程中出現(xiàn)了差錯(cuò)。(2)代碼和校驗(yàn)代碼和校驗(yàn)是發(fā)送設(shè)備將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或),產(chǎn)生一個(gè)字節(jié)的校驗(yàn)字符附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)同時(shí)對(duì)數(shù)據(jù)塊(除校驗(yàn)字節(jié)外)求和(或各字節(jié)異或),將所得的結(jié)果與發(fā)送設(shè)備的“校驗(yàn)字符”進(jìn)行比較,相符則無差錯(cuò),否則即認(rèn)為傳送過程中出現(xiàn)了差錯(cuò)。2024/12/3110第6章MCS-51單片機(jī)的串行接口3串行通信中的錯(cuò)誤校驗(yàn)2024/12/3111第6章MCS-51單片機(jī)的串行接口4.波特率波特率(也稱為比特率)是指單位時(shí)間內(nèi)傳送的信息量,即每秒鐘傳送的二進(jìn)制位數(shù),單位是位/秒,即bit/s(bps)。波特率越高,傳送速度也就越快。字符的傳輸速率是指每秒鐘內(nèi)所傳送的字符幀數(shù),與字符的格式息息相關(guān)。常見標(biāo)準(zhǔn)的波特率是:110bit/s、300bit/s、600bit/s、1200bit/s、2400bit/s、4800bit/s、9600bit/s等。例如,在異步通信中,字符中包括1位起始位、7位數(shù)據(jù)位、1位奇偶校驗(yàn)位、1位停止位,要求數(shù)據(jù)傳送的速率是每秒30個(gè)字符,那么傳送的波特率為300bps。5.串行通信中的協(xié)議通信協(xié)議就是單片機(jī)之間進(jìn)行信息傳送之前的一些約定,約定的內(nèi)容大致包括:數(shù)據(jù)格式、同步方式、波特率、校驗(yàn)方式等。采用標(biāo)準(zhǔn)接口,可以方便地把計(jì)算機(jī)、外圍設(shè)備和測(cè)量?jī)x器等有機(jī)地聯(lián)系起來,并且能夠?qū)崿F(xiàn)其間的通信。常用的串行通信接口標(biāo)準(zhǔn)有:RS-232C、RS-485、RS-422A等總線接口。1.RS-232C接口RS-232C是美國電子工業(yè)協(xié)會(huì)(ElectricalIndustrialAssociation,EIA)于1993年提出的串行通信接口標(biāo)準(zhǔn),主要用于模擬信道傳輸數(shù)字信號(hào)的場(chǎng)合。RS-232C定義了數(shù)據(jù)終端設(shè)備(DTE)與數(shù)據(jù)通信設(shè)備(DCE)之間的物理接口標(biāo)準(zhǔn)。RS-232C采用負(fù)邏輯,將-3V~-15V規(guī)定為邏輯“1”,+3V~+15V規(guī)定為邏輯“0”,介于-3~+3V之間的電壓無意義,低于-15V或高于+15V的電壓也認(rèn)為無意義,因此,實(shí)際工作時(shí),應(yīng)保證電平在±(3~15)V之間。最高傳輸率為19.2Kbps,傳輸距離一般不超過15米。RS-232C采用標(biāo)準(zhǔn)的DB-25連接器,也可采用DB-9連接器,如圖6-6所示:2024/12/3112第6章MCS-51單片機(jī)的串行接口6.1.3串行通信中常用的接口標(biāo)準(zhǔn)2024/12/3113第6章MCS-51單片機(jī)的串行接口采用RS-232C接口存在的問題:傳輸距離短,傳輸速率低;有電平偏移,通信距離較大時(shí),收發(fā)雙方的地電位差別較大,在信號(hào)地上將有較大的地電流并產(chǎn)生壓降;抗干擾能力差,其在電平轉(zhuǎn)換時(shí)采用單端輸入輸出,在傳輸過程中有干擾和噪聲混在正常的信號(hào)中。2.RS-422A接口RS-422A標(biāo)準(zhǔn)全稱是“平衡電壓數(shù)字接口電路的電氣特性”,它定義了接口電路的特性。由于接收器采用高輸入阻抗和發(fā)送驅(qū)動(dòng)器比RS232C更強(qiáng)的驅(qū)動(dòng)能力,故允許在相同傳輸線上連接多個(gè)接收節(jié)點(diǎn),最多可接256個(gè)節(jié)點(diǎn),即一個(gè)主設(shè)備(Master),其余為從設(shè)備(Slave),從設(shè)備之間不能通信,所以RS-422A支持點(diǎn)對(duì)多的雙向通信。接口示意圖如圖6-7所示。從上圖可以看出,雙向輸出有4根線,實(shí)際上還有一根信號(hào)地線,共5根線。RS-422A輸出驅(qū)動(dòng)器為雙端平衡驅(qū)動(dòng)器。如果其中一條線為邏輯“1”狀態(tài),另一條線就為邏輯“0”,比采用單端不平衡驅(qū)動(dòng)對(duì)電壓的放大倍數(shù)大一倍。差分電路能從地線干擾中獲取有效信號(hào),差分接收器可以分辨200mV以上電位差。若傳輸過程中混入了干擾和噪聲,由于差分放大器的作用,可使干擾和噪聲相互抵消。因此可以避免或大大減弱地線干擾和電磁干擾的影響。RS-422A傳輸速率(90Kbps)時(shí),傳輸距離可達(dá)1200米。RS-422A與RS-232C相比,信號(hào)傳輸距離更遠(yuǎn),速度更快。2024/12/3114第6章MCS-51單片機(jī)的串行接口2024/12/3115第6章MCS-51單片機(jī)的串行接口3.RS-485接口RS-485是RS-422A的變型:RS-422A用于全雙工,而RS-485則用于半雙工。其接口示意圖如圖6-8所示。RS-485是一種多發(fā)送器標(biāo)準(zhǔn),在通信線路上最多可以使用32對(duì)差分驅(qū)動(dòng)器或接收器。如果在一個(gè)網(wǎng)絡(luò)中連接的設(shè)備超過32個(gè),還可以使用中繼器。RS-485有兩線制和四線制兩種接線,四線制只能實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的通信方式,很少使用,現(xiàn)在多采用的是兩線制接線方式。RS-485的信號(hào)傳輸采用兩線間的電壓來表示邏輯1和邏輯0,并且采用差分信號(hào)負(fù)邏輯,+2V~+6V表示“0”,-2V~+6V表示“1”。由于發(fā)送設(shè)備需要兩根傳輸線,接收設(shè)備也需要兩根傳輸線,傳輸線采用差動(dòng)信道,所以它的干擾抑制性極好。又因?yàn)樗淖杩沟?,無接地問題,所以傳輸距離可達(dá)1200米,傳輸速率可達(dá)1Mbps。16第6章MCS-51單片機(jī)的串行接口

MCS-51單片機(jī)內(nèi)的串行通信接口是一個(gè)全雙工通用異步串行口(UART)。還可以作為同步移位寄存器使用,其幀長度可以是8位、10位或11位,通過TXD和RXD兩個(gè)引腳與外界進(jìn)行通信。6.2.1

MCS-51串行口結(jié)構(gòu)2024/12/3117第6章MCS-51單片機(jī)的串行接口6.2串行口結(jié)構(gòu)及控制MCS-51單片機(jī)串行口內(nèi)部結(jié)構(gòu)如圖6-9所示。從上圖可以看出,結(jié)構(gòu)里包含兩個(gè)物理上獨(dú)立的發(fā)送緩沖器SBUF和接收緩沖器SBUF,兩者共用同一地址99H,可以同時(shí)進(jìn)行發(fā)送數(shù)據(jù)和接收數(shù)據(jù)。CPU通過不同的操作指令來區(qū)分兩個(gè)寄存器,而不會(huì)由于同一地址出現(xiàn)混亂。發(fā)送緩沖器SBUF只能寫入,不能讀出;接收緩沖器SBUF只能讀出,不能寫入。此時(shí),定時(shí)器/計(jì)數(shù)器T1作為波特率發(fā)生器使用,T1的溢出率先進(jìn)行2分頻或不分頻再進(jìn)行16分頻得到系統(tǒng)的移位時(shí)鐘。串行口的啟動(dòng)由CPU對(duì)SBUF進(jìn)行讀或?qū)憽.?dāng)CPU向SBUF發(fā)出“讀”信號(hào)時(shí),執(zhí)行一條MOVA,SBUF指令,此時(shí)接收控制器在接收脈沖的作用下,對(duì)RXD引腳進(jìn)行檢測(cè),直到檢測(cè)到起始位后,就連續(xù)接收一幀數(shù)據(jù)并且自動(dòng)的去掉起始位,將有效的數(shù)據(jù)位逐位的移進(jìn)移位寄存器中,控制接收器將RI置1,通知CPU數(shù)據(jù)已經(jīng)移入到移位寄存器中了,再將數(shù)據(jù)送入接收緩沖器SBUF中,最后再將其送給累加器A中。當(dāng)CPU向SBUF發(fā)出“寫”信號(hào)時(shí),執(zhí)行一條MOVSBUF,A指令,此時(shí)CPU將準(zhǔn)備好的數(shù)據(jù)寫入發(fā)送緩沖器SBUF中,通過TXD引腳發(fā)送一幀數(shù)據(jù)。發(fā)送完后,使得發(fā)送中斷標(biāo)志位TI置1,通知CPU數(shù)據(jù)已經(jīng)發(fā)送完畢。2024/12/3118第6章MCS-51單片機(jī)的串行接口MCS-51單片機(jī)串行口的控制是通過對(duì)兩個(gè)寄存器的編程來實(shí)現(xiàn):串行口控制寄存器SCON和電源選擇寄存器PCON。1.串行口控制寄存器SCONSCON是一個(gè)特殊功能控制器,字節(jié)地址為98H,能夠進(jìn)行位尋址(位地址98H-9FH)。SCON是用來設(shè)定串行口的工作方式、接收/發(fā)送控制位以及設(shè)置狀態(tài)標(biāo)志位。其格式如圖6-10所示。2024/12/3119第6章MCS-51單片機(jī)的串行接口6.2.2

MCS-51串行口的控制SM0、SM1:串行口工作方式選擇位。根據(jù)編碼共有四種工作方式可供選擇,如表6-1所示。SM2:多處理機(jī)通信允許位。用于方式2和方式3。方式0下,SM2=0。方式1下,SM2=1,此時(shí)只有接收到有效的停止位,RI才置1。方式2和方式3下,SM2=1,允許多機(jī)通信,此時(shí)接收機(jī)處于地址篩選的狀態(tài)。可以利用接收到的第9位數(shù)據(jù)(RB8)來對(duì)地址進(jìn)行篩選:當(dāng)RB8=1時(shí),說明接收到的這一幀數(shù)據(jù)是地址幀,地址信息可以進(jìn)入接收數(shù)據(jù)緩沖器SBUF中,同時(shí)使RI=1,從而在中斷服務(wù)程序中對(duì)其與地址號(hào)進(jìn)行比較;當(dāng)RB8=0時(shí),說明接收到的這一幀數(shù)據(jù)不是地址幀,直接丟棄,RI仍舊為0。2024/12/3120第6章MCS-51單片機(jī)的串行接口SM0SM1工作方式說明波特率00方式08位同步移位寄存器01方式110位UART可變,T1或T2提供10方式211位UART、可多機(jī)或

11方式311位UART、可多機(jī)可變,T1或T2提供SM2=0時(shí),不允許進(jìn)行多機(jī)通信。不管接收到的第9位數(shù)據(jù)(RB8)是0還是1,都可以將數(shù)據(jù)送入接收數(shù)據(jù)緩沖器SBUF中,同時(shí)使RI=1,一般這種情況總是將第9位數(shù)據(jù)作為檢驗(yàn)位來使用。REN:允許串行接收位。當(dāng)REN=1時(shí),允許串行接收;當(dāng)REN=0時(shí),禁止串行接收??捎密浖梦缓颓?。TB8:方式2和方式3中發(fā)送數(shù)據(jù)的第9位??梢杂米髌媾夹r?yàn)位也可以作為地址幀/數(shù)據(jù)幀的標(biāo)志位。方式0和方式1不使用此位。RB8:方式2和方式3中接收數(shù)據(jù)的第9位。可以用作奇偶校驗(yàn)位也可以作為地址幀/數(shù)據(jù)幀的標(biāo)志位。方式0下,不用RB8(SM2=0);方式1下,也不用RB8(SM2=0,進(jìn)入RB8的是停止位)。TI:發(fā)送中斷標(biāo)志位。在方式0中,當(dāng)串行發(fā)送第8位數(shù)據(jù)結(jié)束時(shí),或者在其它三種方式下,串行發(fā)送停止位時(shí),由硬件使TI位置1,向CPU發(fā)出中斷申請(qǐng)。在中斷服務(wù)程序中,必須用軟件對(duì)其清0,取消中斷申請(qǐng)。RI:接收中斷標(biāo)志位。在方式0中,當(dāng)串行接收第8位數(shù)據(jù)結(jié)束時(shí),或者在其它三種方式下,串行接收停止位時(shí),由硬件使RI位置1,向CPU發(fā)出中斷申請(qǐng)。在中斷服務(wù)程序中,必須用軟件對(duì)其清0,取消中斷申請(qǐng)。2024/12/3121第6章MCS-51單片機(jī)的串行接口2.電源控制寄存器PCONPCON主要是為單片機(jī)的電源控制而設(shè)置的專用寄存器,其字節(jié)地址為87H,不能進(jìn)行位尋址,其中只有一位SMOD與串行口有關(guān),格式如圖6-11所示。SMOD:波特率加倍位。當(dāng)SMOD=0,波特率不加倍;當(dāng)SMOD=1,波特率加倍。在方式1、方式2、方式3下,波特率與SMOD有關(guān)。復(fù)位時(shí),SMOD=0。GF1、GF0:兩個(gè)通用工作標(biāo)志位,用戶可以自由使用。PD:掉電模式設(shè)定位。當(dāng)PD=0時(shí),單片機(jī)處于正常工作狀態(tài);當(dāng)PD=1時(shí),單片機(jī)處于掉電模式,可由外部中斷或硬件復(fù)位模式喚醒,進(jìn)入掉電模式后,外部晶振停振,CPU、定時(shí)器、串行口全部停止工作,只有外部中斷工作。在該模式下,只有硬件復(fù)位和上電能夠喚醒單片機(jī)。IDL:空閑模式設(shè)定位。當(dāng)IDL=0時(shí),單片機(jī)處于正常工作狀態(tài);當(dāng)IDL=1時(shí),單片機(jī)進(jìn)入空閑模式,除CPU不工作外,其余仍繼續(xù)工作,在空閑模式下可以由任何一個(gè)中斷或硬件復(fù)位喚醒。2024/12/3122第6章MCS-51單片機(jī)的串行接口6.3串行口的工作方式

6.3.1方式0當(dāng)SM0、SM1設(shè)置為00時(shí),串行口工作在方式0下,這種方式串行口是作為8位同步移位寄存器,數(shù)據(jù)傳輸?shù)牟ㄌ芈使潭閒osc/12。數(shù)據(jù)由RXD引腳輸入或輸出,同步移位時(shí)鐘由TXD引腳輸出。發(fā)送/接收的數(shù)據(jù)都是8位,數(shù)據(jù)傳輸時(shí)遵循的原則:低位在前,高位在后。其傳輸?shù)淖址麕袷饺鐖D6-12所示:正如前面已經(jīng)提到的,MCS-51單片機(jī)串行口的工作方式由SM0和SM1位決定,可設(shè)置成方式0、方式1、方式2、方式3共四種工作方式。2024/12/3123第6章MCS-51單片機(jī)的串行接口1.發(fā)送過程當(dāng)CPU執(zhí)行一條將數(shù)據(jù)寫入數(shù)據(jù)緩沖器SBUF的指令MOVSBUF,A時(shí),啟動(dòng)串行口的發(fā)送過程。寫入指令后,經(jīng)過一個(gè)完整的機(jī)器周期Tcy,當(dāng)發(fā)送脈沖有效后,移位寄存器的內(nèi)容逐個(gè)送到RXD(P3.0)引腳串行移位輸出。移位脈沖由TXD(P3.1)引腳輸出,它使得RXD引腳上輸出的數(shù)據(jù)能夠移入外部移位寄存器中。當(dāng)數(shù)據(jù)最高位移出移位寄存器的輸出位時(shí),再移位一次就完成了一個(gè)字節(jié)的輸出,此時(shí)使得中斷標(biāo)志位TI置1。如果還要發(fā)送下一個(gè)字節(jié)數(shù)據(jù),就要用軟件將TI清0。方式0發(fā)送過程的時(shí)序如圖6-13所示。2024/12/3124第6章MCS-51單片機(jī)的串行接口串行口要擴(kuò)展并行輸出時(shí),需要“串入并出”的移位寄存器的配合,比如74HC164或CD4094。74HC164與單片機(jī)的線路連接如圖6-14所示。從圖中可以看出,單片機(jī)的串行口工作在方式0下,可以通過外接串行輸入并行輸出的移位寄存器來實(shí)現(xiàn)“串入并出”擴(kuò)展串行口。TXD作為移位脈沖輸出口,RXD作為串行數(shù)據(jù)的輸出口。DSA和DSB是互為選通控制的串行輸入端:數(shù)據(jù)通過兩個(gè)輸入端之一串行輸入,任一輸入端可以用作高電平使能端,控制另一輸入端的數(shù)據(jù)輸入;兩個(gè)輸入端或者鏈接在一起,或者把不用的輸入端接高電平,一定不能懸空。MR引腳為主復(fù)位輸入端,低電平有效。2.接收過程當(dāng)REN=1,且接收中斷標(biāo)志位RI=0時(shí),啟動(dòng)接收過程。經(jīng)過一個(gè)完整的機(jī)器周期Tcy后,當(dāng)發(fā)送脈沖有效后,數(shù)據(jù)由RXD(P3.0)引腳輸入,移位脈沖由TXD(P3.1)輸出。在最后一次移位即將結(jié)束時(shí),將接收移位寄存器的內(nèi)容送入接收數(shù)據(jù)緩沖器SBUF中,并且使接收中斷標(biāo)志位RI置1。如果還要接收下一個(gè)字節(jié)數(shù)據(jù),就要用軟件將RI清0。方式0接收過程的時(shí)序如圖6-15所示。2024/12/3125第6章MCS-51單片機(jī)的串行接口串行口要擴(kuò)展并行輸入串行輸出時(shí),需要“并入串出”的移位寄存器的配合,比如74HC165。74HC165與單片機(jī)的線路連接如圖6-16所示。QH為串行移位輸出引腳:74HC165移出的串行數(shù)據(jù)QH經(jīng)由RXD端串行輸入,同時(shí)由TXD端提供移位時(shí)鐘脈沖CP。SH/LD是移位/置數(shù)引腳:當(dāng)SH/LD=0時(shí),允許并行輸入;當(dāng)SH/LD=1時(shí),允許串行移位。2024/12/3126第6章MCS-51單片機(jī)的串行接口6.3.1方式12024/12/3127第6章MCS-51單片機(jī)的串行接口當(dāng)SM0、SM1設(shè)置為01時(shí),串行口工作在方式1。在這種方式下,串行口作為10位異步通信口,數(shù)據(jù)傳輸?shù)牟ㄌ芈视蒚1的溢出率決定。TXD引腳和RXD引腳分別用來發(fā)送數(shù)據(jù)和接收數(shù)據(jù)。發(fā)送/接收的數(shù)據(jù)都是10位:1位起始位(0)、8位數(shù)據(jù)位、1位停止位(1)。數(shù)據(jù)傳輸時(shí)遵循的原則:低位在前,高位在后。其傳輸?shù)淖址麕袷饺鐖D6-17所示:1.發(fā)送過程當(dāng)CPU執(zhí)行一條將數(shù)據(jù)寫入數(shù)據(jù)緩沖器SBUF的指令MOVSBUF,A時(shí),啟動(dòng)串行口的發(fā)送過程。當(dāng)發(fā)送移位脈沖的同步下,從TXD引腳發(fā)送10位的數(shù)據(jù),先送出的是起始位,然后是8位的數(shù)據(jù)位,最后發(fā)送1位停止位。當(dāng)10位數(shù)據(jù)發(fā)送完畢后,由軟件使TI置1。方式1下,發(fā)送過程的時(shí)序如圖6-18所示。2024/12/3128第6章MCS-51單片機(jī)的串行接口2.接收過程當(dāng)REN=1,且接收中斷標(biāo)志位RI=0時(shí),啟動(dòng)接收過程。接收器以選擇波特率的16倍速率采樣RXD引腳的電平,對(duì)每一位時(shí)間的第7、8、9個(gè)計(jì)數(shù)狀態(tài)的采樣值用多數(shù)表決法,當(dāng)兩次或兩次以上的采樣值相同時(shí),采樣值接收,當(dāng)檢測(cè)到RXD引腳輸入電平發(fā)生負(fù)跳變時(shí),說明起始位有效,將其移入輸入移位寄存器中,開始接收這一幀信息。當(dāng)一幀信息接收完畢,必須同時(shí)滿足以下兩個(gè)條件,說明此次的接收才是有效的。RI=0;SM2=0或者接收到的停止位為1。方式1接收過程的時(shí)序如圖6-19所示。接收過程中,接收到的位從右邊移入,當(dāng)起始位移到最左邊時(shí),接收控制器將控制進(jìn)行最后一次移位,把接收到的9位數(shù)據(jù)送入接收數(shù)據(jù)緩沖器SBUF和RB8中,并且使接收中斷標(biāo)志位RI置1。當(dāng)RI=1時(shí),向CPU發(fā)出中斷申請(qǐng)信號(hào),請(qǐng)求CPU把數(shù)據(jù)及時(shí)讀走。3.波特率當(dāng)串行口工作在方式1下,其波特率是由定時(shí)器/計(jì)數(shù)器T1的溢出率和PCON的SMOD位決定。方式1的波特率為:2024/12/3129第6章MCS-51單片機(jī)的串行接口定時(shí)器/計(jì)數(shù)器T1的溢出率就是溢出周期的倒數(shù)。當(dāng)定時(shí)器/計(jì)數(shù)器T1作為波特率發(fā)生器使用時(shí),通常使其工作在方式2下,方式2是8位自動(dòng)重裝定時(shí)器/計(jì)數(shù)器,更加精確。T1產(chǎn)生的各種常用的溢出率如表6-2所示。那么此時(shí),溢出周期為:(6-2)1.發(fā)送過程其中,fosc是時(shí)鐘頻率,X為定時(shí)器/計(jì)數(shù)器T1的計(jì)數(shù)初值。每過256-X個(gè)機(jī)器周期,T1就溢出一次。所以方式1的波特率為:2024/12/3130第6章MCS-51單片機(jī)的串行接口波特率(Kbit/s)(MHz)SMOD定時(shí)器T1的工作方式重新裝入初值56.811.059212FFH19.2Kbit/s11.059212FDH9.6Kbit/s11.059202FDH4.8Kbit/s11.059202FAH2.4Kbit/s11.059202F4H1.2Kbit/s11.059202E8H0.6Kbit/s11.059202D0H

【例6-1】

若時(shí)鐘頻率為11.059MHz,串行口工作于方式1,波特率為4800bit/s,寫出用T1作為波特率發(fā)生器的方式控制字和計(jì)數(shù)初值。解:設(shè)T1為方式2定時(shí),并且選擇SMOD=0那么T1作為波特率發(fā)生器的方式控制字:GATE=0,C/T=0,M1M0=10。方式控制寄存器TMOD:20H。根據(jù)方式1的波特率求解公式及已知條件有:從中解得X==FAH。只要把FAH裝入TH1和TL1,則能使其波特率為4800bit/s。2024/12/3131第6章MCS-51單片機(jī)的串行接口當(dāng)SM0、SM1設(shè)置為10時(shí),串行口工作在方式2下,這種方式串行口是作為11位異步通信口,數(shù)據(jù)傳輸?shù)牟ㄌ芈蕿閒osc/32或fos/64。TXD引腳和RXD引腳分別用來發(fā)送數(shù)據(jù)和接收數(shù)據(jù)。發(fā)送/接收的數(shù)據(jù)都是11位:1位起始位(0)、8位數(shù)據(jù)位、1位附加位(發(fā)送時(shí)為SCON中的TB8,接收時(shí)為SCON中的RB8)、1位停止位(1)。數(shù)據(jù)傳輸時(shí)遵循的原則:低位在前,高位在后。其傳輸?shù)淖址麕袷饺鐖D6-20所示:2024/12/3132第6章MCS-51單片機(jī)的串行接口6.3.3方式21.發(fā)送過程當(dāng)CPU執(zhí)行一條將數(shù)據(jù)寫入數(shù)據(jù)緩沖器SBUF的指令時(shí),啟動(dòng)串行口的發(fā)送過程。開始發(fā)送后一個(gè)機(jī)器周期,移位脈沖有效時(shí),從TXD引腳發(fā)送11位的數(shù)據(jù),先送出的是起始位,然后是9位的數(shù)據(jù)位,最后發(fā)送1位停止位。第一次移位時(shí),停止位“1”移入輸出移位寄存器的第9位上

,以后每次移位,左邊都移入0。當(dāng)停止位移至輸出位時(shí),左邊其余位全為0,當(dāng)檢測(cè)電路檢測(cè)到這一條件時(shí),使控制電路進(jìn)行最后一次移位,并置TI=1,向CPU請(qǐng)求中斷。方式2下,發(fā)送過程的時(shí)序如圖6-21所示。2024/12/3133第6章MCS-51單片機(jī)的串行接口2.接收過程當(dāng)REN=1,且接收中斷標(biāo)志位RI=0時(shí),啟動(dòng)接收過程。接收器以選擇波特率的16倍速率采樣RXD引腳的電平,對(duì)每一位時(shí)間的第7、8、9個(gè)計(jì)數(shù)狀態(tài)的采樣值用多數(shù)表決法,當(dāng)兩次或兩次以上的采樣值相同時(shí),采樣值接收,當(dāng)檢測(cè)到RXD引腳輸入電平發(fā)生負(fù)跳變時(shí),說明起始位有效,將其移入輸入移位寄存器中,開始接收這一幀信息。當(dāng)一幀信息接收完畢,必須同時(shí)滿足以下兩個(gè)條件,說明此次的接收才是有效的。RI=0,接收緩沖器SUBF是空的;SM2=0或者接收到的停止位為1。方式2接收過程的時(shí)序如圖6-22所示。2024/12/3134第6章MCS-51單片機(jī)的串行接口當(dāng)SM0、SM1設(shè)置為11時(shí),串行口工作在方式3下。這種方式下串行口被作為11位的異步通信口,其發(fā)送過程和接收過程與方式2一樣。與方式2不同,方式3的波特率是可變的,是由定時(shí)器/計(jì)數(shù)器T1的溢出率和PCON的SMOD位決定的,即:2024/12/3135第6章MCS-51單片機(jī)的串行接口6.3.4方式3由于定時(shí)器T1是可編程的,可選擇的波特率范圍比較大,因此,串行口的方式1和方式3是最常用的工作方式。MCS-51單片機(jī)的串行口控制器SCON中設(shè)有多處理機(jī)通信位SM2(SCON.5),通過這一特性可以實(shí)現(xiàn)主機(jī)與多個(gè)從機(jī)之間的串行通信。圖6-23為多機(jī)通信的線路連接圖,左邊的MCS-51為主機(jī),其余剩下的都是從機(jī),所有從機(jī)統(tǒng)一編號(hào),每臺(tái)從機(jī)被賦予唯一的一個(gè)地址。2024/12/3136第6章MCS-51單片機(jī)的串行接口6.3.5多機(jī)通信方式從圖中可以看出,主機(jī)的TXD與所有從機(jī)的RXD連接,從機(jī)所有的TXD都與主機(jī)的RXD連接。從機(jī)的地址分別為01H、02H、03H。系統(tǒng)中只有一個(gè)主機(jī),其余都是從機(jī)。主機(jī)發(fā)送的信息可以被所有從機(jī)接收,任何一個(gè)從機(jī)發(fā)送的信息只能由主機(jī)接收。從機(jī)和從機(jī)之間不能進(jìn)行相互的直接通信,從機(jī)和從機(jī)之間的通信只能經(jīng)過主機(jī)才能實(shí)現(xiàn)。當(dāng)多處理機(jī)通信位SM2=1時(shí),則表示進(jìn)行多機(jī)通信。如果從機(jī)接收到的第9位數(shù)據(jù)(RB8)為1,則將發(fā)來數(shù)據(jù)的前8位送入接收數(shù)據(jù)緩沖器SBUF中,并且使中斷標(biāo)志RI=1,向CPU發(fā)出中斷申請(qǐng);如果接收到的第9位數(shù)據(jù)為0,直接將數(shù)據(jù)丟棄。當(dāng)SM2=0時(shí),無論接收到的第9位數(shù)據(jù)(RB8)為0還是1,都將數(shù)據(jù)送入接收數(shù)據(jù)緩沖器SBUF中,并且使RI=1,發(fā)出中斷申請(qǐng)。根據(jù)單片機(jī)串口的這一特性,主機(jī)和從機(jī)之間的通信過程如下:(1)各從機(jī)初始化程序允許從機(jī)的串行口中斷,將串行口編程為方式2或方式3接收,即11位異步通信方式,且SM2=1和REN=1,從機(jī)處于只處于多機(jī)通信且接收地址幀的狀態(tài)。(2)在主機(jī)和某個(gè)從機(jī)通信之前,先將從機(jī)地址發(fā)送給各個(gè)從機(jī),接收才傳送數(shù)據(jù)。主機(jī)給從機(jī)發(fā)送地址時(shí),其中第9位數(shù)據(jù)位置1,數(shù)據(jù)(命令)幀的第9位為0。當(dāng)主機(jī)向從機(jī)發(fā)送地址幀時(shí),所有從機(jī)在SM2=1、RB8=1和RI=0時(shí),接收主機(jī)發(fā)來的從機(jī)地址,進(jìn)入相應(yīng)的中斷服務(wù)程序,在中斷服務(wù)程序中,各從機(jī)將接收的地址與本機(jī)的地址比較,以便確認(rèn)是否為被尋址的從機(jī)。若為本機(jī)地址,被尋址從機(jī)通過指令將SM2清0,以便正常接收主機(jī)的數(shù)據(jù)幀;若地址不相符,則保持SM2=1的狀態(tài)。2024/12/3137第6章MCS-51單片機(jī)的串行接口(3)接收主機(jī)發(fā)送數(shù)據(jù)(命令)幀,數(shù)據(jù)幀的第9位為0,此時(shí)各從機(jī)接收的RB8=0,只有地址相符合的從機(jī)(即SM2=0的從機(jī))才能激活中斷標(biāo)志位RI位,從而進(jìn)入中斷服務(wù)程序,在中斷服務(wù)程序中接收主機(jī)發(fā)送來的數(shù)據(jù)(命令)。與主機(jī)發(fā)來的地址不相符的從機(jī),其SM2=1,又RB8=0,因此不能激活中斷標(biāo)志RI位,也就不能接收主機(jī)發(fā)送來的數(shù)據(jù)幀,從而保證主機(jī)與從機(jī)之間通信的正確性。此時(shí)主機(jī)與建立聯(lián)系的從機(jī)已經(jīng)設(shè)置為單機(jī)通信方式,即在進(jìn)行通信過程中,通信的雙方都要保持發(fā)送數(shù)據(jù)的第9位(TB8=0),防止其他從機(jī)誤接收數(shù)據(jù)幀。(4)結(jié)束數(shù)據(jù)通信并為下一次的多機(jī)通信做好準(zhǔn)備,在多機(jī)通信系統(tǒng)中每個(gè)從機(jī)都被設(shè)置唯一的一個(gè)地址。2024/12/3138第6章MCS-51單片機(jī)的串行接口在使用串行口之前,都需要對(duì)其進(jìn)行初始化編程,主要的過程如下:(1)確定T1的工作方式,對(duì)工作方式寄存器TMOD進(jìn)行編程;(2)根據(jù)定時(shí)時(shí)間或者計(jì)數(shù)值,計(jì)算T1的計(jì)數(shù)初值,并且將其送入TH1和TL1中;(3)啟動(dòng)T1,對(duì)控制寄存器TCON中的TR1位進(jìn)行編程;(4)確定串行口的工作方式,對(duì)串行口控制寄存器SCON進(jìn)行編程;(5)當(dāng)串行口工作在中斷方式下時(shí),需要對(duì)中斷控制寄存器IE和IP進(jìn)行設(shè)置。2024/12/3139第6章MCS-51單片機(jī)的串行接口6.3.6串行口初始化編程步驟在實(shí)際應(yīng)用中,單片機(jī)與PC機(jī)之間的通信非常普遍。這個(gè)過程中,單片機(jī)系統(tǒng)主要的任務(wù)是采集現(xiàn)場(chǎng)的物理參數(shù),并且將采集到的數(shù)據(jù)發(fā)送給PC機(jī);PC機(jī)的主要任務(wù)就是對(duì)接收到的數(shù)據(jù)進(jìn)行顯示、統(tǒng)計(jì)或者存檔,以供后期使用。PC機(jī)上至少有一個(gè)標(biāo)準(zhǔn)的RS-232C串行接口,用于與另一臺(tái)PC機(jī)通信或者與具有標(biāo)準(zhǔn)RS-232C的串行接口的外圍設(shè)備通信。那么為了與具有標(biāo)準(zhǔn)RS-232C串行接口的PC機(jī)進(jìn)行通信,單片機(jī)芯片的引腳電平必須用電平轉(zhuǎn)換器轉(zhuǎn)換成RS-232C的電平,比如MAX232,并且用9針的標(biāo)準(zhǔn)連接器輸出。單片機(jī)的TXD與RXD引腳由連接器連接時(shí),有兩種連接方式:直通連接方式、交叉連接方式。如圖6-24所示。2024/12/3140第6章MCS-51單片機(jī)的串行接口6.4串行口應(yīng)用舉例6.4.1單片機(jī)與PC通信設(shè)計(jì)2024/12/3141第6章MCS-51單片機(jī)的串行接口【例6-2】

編程實(shí)現(xiàn)單片機(jī)向PC機(jī)傳送32字節(jié)的數(shù)據(jù),起始地址為50H。協(xié)議:采用串行口方式1實(shí)現(xiàn)通信,每幀信息為10bit;波特率為1200bps;T1工作在定時(shí)器方式2;晶振的振蕩頻率采用11.0592MHz;PCON控制器的SMOD位為0。啟動(dòng)發(fā)送的條件:當(dāng)PC機(jī)向單片機(jī)發(fā)送“E1”命令,請(qǐng)求單片機(jī)傳送數(shù)據(jù),單片機(jī)正確接收到“E1”命令后,將數(shù)據(jù)緩沖區(qū)的內(nèi)容傳送給PC機(jī)。分析:當(dāng)T1工作在定時(shí)器方式2下,晶體振蕩頻率為11.0592MHz,波特率為1200bps,SMOD位為0,查表6-2,可知此時(shí)T1的初值:TH1=TL1=0E8H。程序如下:

單片機(jī)端程序: ORG 0000H JMP MAIN ORG 0023H JMP SINT ORG 0040H2024/12/3142第6章MCS-51單片機(jī)的串行接口MAIN: MOV SP,#4FH ;重新給堆棧指針設(shè)初值(SP)=4FH MOV TMOD,#20H ;設(shè)置T0,GATE=0、C/T=0、M1M0=10 MOV SCON,#50H ;設(shè)置串行口控制寄存器SCON MOV TH1,#0E8H ;設(shè)置T1的初值 MOV TL1,#0E8H SETB TR1 ;啟動(dòng)定時(shí)器 MOV R3,#00H ;置測(cè)試初值 SETB ES ;開放串行口中斷允許位 SETB EA ;開放CPU總中斷 SJMP $SINT: PUSH ACC ;保護(hù)現(xiàn)場(chǎng) PUSH PSW JNB RI,QUIT ;判斷接收完否? CLR RI MOV A,SUBF ;接收聯(lián)絡(luò)信號(hào) CJNE A,#0E1H,QUIT ;判斷聯(lián)絡(luò)信號(hào)是否為E1 CALL UPDATA ;調(diào)用UPDATA,緩沖區(qū)更新 CALL TX16 ;更新完,發(fā)送數(shù)據(jù)QUIT: POP PSW POP ACC RETI2024/12/3143第6章MCS-51單片機(jī)的串行接口TX16: MOV R7,#32 ;共發(fā)送32個(gè)數(shù)據(jù) MOV R0,#50H ;設(shè)置32個(gè)數(shù)據(jù)的首地址L1: MOV SBUF,@R0 ;發(fā)送數(shù)據(jù) JNB TI,$ ;發(fā)送完否? CLR TI INC R0 DJNZ R7,L1 ;32個(gè)數(shù)據(jù)發(fā)送完畢? RETUPDATA:MOVR7,#32 MOV R0,#50H MOV A,R4L2: MOV @R0,A INC A INC R0 INC R4 DJNZ R7,L2 RET END2024/12/3144第6章MCS-51單片機(jī)的串行接口1.同步方式應(yīng)用

當(dāng)MCS-51單片機(jī)的串行口工作在方式0時(shí),串行口是以同步方式進(jìn)行操作。通過外接“串入并出”或者“并入串出”的器件,可以實(shí)現(xiàn)串行口的擴(kuò)展輸入/輸出口?!纠?-3】

利用MCS-51單片機(jī)串行口外接74HC164“串入并出”移位寄存器擴(kuò)展8位的并行輸出口,外接74HC165“并入串出”移位寄存器擴(kuò)展8位并行輸入口。下圖6-21中74HC164的8位并行輸出口的每一位都接一個(gè)發(fā)光二極管,74HC165的8個(gè)并行輸入口的每一位都接一個(gè)開關(guān),試編程實(shí)現(xiàn)從8位并行輸入口讀入開關(guān)的狀態(tài)值,使閉合開關(guān)對(duì)應(yīng)的發(fā)光二極管點(diǎn)亮。2024/12/3145第6章MCS-51單片機(jī)的串行接口6.4.2單片機(jī)串行口的其他設(shè)計(jì)解:分析:對(duì)于74HC164來說,P1.0與TXD通過或門和CP連接,那么當(dāng)P1.0=0,TXD引腳發(fā)出時(shí)鐘脈沖信號(hào)起作用,此時(shí)將數(shù)據(jù)緩沖器SBUF里的數(shù)據(jù)移入74HC164。對(duì)于74HC165來說,當(dāng)P1.0=0,TXD引腳發(fā)出時(shí)鐘脈沖信號(hào)起作用;當(dāng)P1.2=0,74HC165將并行輸入口開關(guān)上的信號(hào)裝載到寄存器內(nèi);當(dāng)P1.2=1時(shí),此時(shí)74HC165將寄存器內(nèi)的數(shù)據(jù)串行輸出。啟動(dòng)接收過程:使74HC165串行輸出;當(dāng)P1.0=0,使74HC164同時(shí)串行輸入。啟動(dòng)發(fā)送過程:使74HC164串行輸入。

具體匯編程序如下:ORG 0000H ;定位程序從0000H開始存放LJMP MAIN ;跳轉(zhuǎn)到主程序ORG 0023H ;串行口中斷服務(wù)的起始地址LJMP S_SRV ;跳轉(zhuǎn)到串行口中斷服務(wù)程序MAIN:

MOV SP,#0CFH ;設(shè)置堆棧指針SETB P1.0 ;禁止74HC164CLR P1.1 ;運(yùn)行74HC165CLR P1.2 ;并行裝載74HC165SETB P1.2 ;74HC165中數(shù)據(jù)串行輸出MOV SCON,#10H ;串行口口方式0,允許接收SETBES ;開串行口中斷SETB EA ;開總中斷SJMP $ ;等待中斷S_SRV:JNB RI,SEND ;當(dāng)RI=0時(shí),跳轉(zhuǎn)到SENDCLR RI;MOV A,SBUF ;啟動(dòng)接收過程CLR P1.0 ;允許74HC164SETB P1.1 ;禁止74HC1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論