單片機(jī)電子教案第章2_第1頁
單片機(jī)電子教案第章2_第2頁
單片機(jī)電子教案第章2_第3頁
單片機(jī)電子教案第章2_第4頁
單片機(jī)電子教案第章2_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

本章分為三節(jié),主要介紹:6.280C51的串行口6.1計(jì)算機(jī)串行通信基礎(chǔ)6.3單片機(jī)串行口應(yīng)用舉例6.1計(jì)算機(jī)串行通信基礎(chǔ)

隨著多微機(jī)系統(tǒng)的廣泛應(yīng)用和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的普及,計(jì)算機(jī)的通信功能愈來愈顯得重要。計(jì)算機(jī)通信是指計(jì)算機(jī)與外部設(shè)備或計(jì)算機(jī)與計(jì)算機(jī)之間的信息交換。通信有并行通信和串行通信兩種方式。在多微機(jī)系統(tǒng)以及現(xiàn)代測控系統(tǒng)中信息的交換多采用串行通信方式。計(jì)算機(jī)通信是將計(jì)算機(jī)技術(shù)和通信技術(shù)的相結(jié)合,完成計(jì)算機(jī)與外部設(shè)備或計(jì)算機(jī)與計(jì)算機(jī)之間的信息交換??梢苑譃閮纱箢悾翰⑿型ㄐ排c串行通信。并行通信通常是將數(shù)據(jù)字節(jié)的各位用多條數(shù)據(jù)線同時(shí)進(jìn)行傳送。并行通信控制簡單、傳輸速度快;由于傳輸線較多,長距離傳送時(shí)成本高且接收方的各位同時(shí)接收存在困難。

串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個(gè)地傳送。串行通信的特點(diǎn):傳輸線少,長距離傳送時(shí)成本低,且可以利用電話網(wǎng)等現(xiàn)成的設(shè)備,但數(shù)據(jù)的傳送控制比并行通信復(fù)雜。

6.1.1串行通信的基本概念

一、異步通信與同步通信1、異步通信

異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時(shí)鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時(shí)鐘盡可能一致。

異步通信是以字符(構(gòu)成的幀)為單位進(jìn)行傳輸,字符與字符之間的間隙(時(shí)間間隔)是任意的,但每個(gè)字符中的各位是以固定的時(shí)間傳送的,即字符之間是異步的(字符之間不一定有“位間隔”的整數(shù)倍的關(guān)系),但同一字符內(nèi)的各位是同步的(各位之間的距離均為“位間隔”的整數(shù)倍)。異步通信的數(shù)據(jù)格式:異步通信的特點(diǎn):不要求收發(fā)雙方時(shí)鐘的嚴(yán)格一致,實(shí)現(xiàn)容易,設(shè)備開銷較小,但每個(gè)字符要附加2~3位用于起止位,各幀之間還有間隔,因此傳輸效率不高。2、同步通信同步通信時(shí)要建立發(fā)送方時(shí)鐘對(duì)接收方時(shí)鐘的直接控制,使雙方達(dá)到完全同步。此時(shí),傳輸數(shù)據(jù)的位之間的距離均為“位間隔”的整數(shù)倍,同時(shí)傳送的字符間不留間隙,即保持位同步關(guān)系,也保持字符同步關(guān)系。發(fā)送方對(duì)接收方的同步可以通過兩種方法實(shí)現(xiàn)。

外同步自同步面向字符的同步格式:此時(shí),傳送的數(shù)據(jù)和控制信息都必須由規(guī)定的字符集(如ASCII碼)中的字符所組成。圖中幀頭為1個(gè)或2個(gè)同步字符SYN(ASCII碼為16H)。SOH為序始字符(ASCII碼為01H),表示標(biāo)題的開始,標(biāo)題中包含源地址、目標(biāo)地址和路由指示等信息。STX為文始字符(ASCII碼為02H),表示傳送的數(shù)據(jù)塊開始。數(shù)據(jù)塊是傳送的正文內(nèi)容,由多個(gè)字符組成。數(shù)據(jù)塊后面是組終字符ETB(ASCII碼為17H)或文終字符ETX(ASCII碼為03H)。然后是校驗(yàn)碼。典型的面向字符的同步規(guī)程如IBM的二進(jìn)制同步規(guī)程BSC。

面向位的同步格式:此時(shí),將數(shù)據(jù)塊看作數(shù)據(jù)流,并用序列01111110作為開始和結(jié)束標(biāo)志。為了避免在數(shù)據(jù)流中出現(xiàn)序列01111110時(shí)引起的混亂,發(fā)送方總是在其發(fā)送的數(shù)據(jù)流中每出現(xiàn)5個(gè)連續(xù)的1就插入一個(gè)附加的0;接收方則每檢測到5個(gè)連續(xù)的1并且其后有一個(gè)0時(shí),就刪除該0。

典型的面向位的同步協(xié)議如ISO的高級(jí)數(shù)據(jù)鏈路控制規(guī)程HDLC和IBM的同步數(shù)據(jù)鏈路控制規(guī)程SDLC。同步通信的特點(diǎn)是以特定的位組合“01111110”作為幀的開始和結(jié)束標(biāo)志,所傳輸?shù)囊粠瑪?shù)據(jù)可以是任意位。所以傳輸?shù)男瘦^高,但實(shí)現(xiàn)的硬件設(shè)備比異步通信復(fù)雜。

二、串行通通信的傳輸輸方向1、單工單工是指數(shù)據(jù)傳傳輸僅能沿沿一個(gè)方向,不能實(shí)現(xiàn)現(xiàn)反向傳輸輸。2、半雙工工半雙工是指數(shù)據(jù)傳傳輸可以沿沿兩個(gè)方向,但需要分分時(shí)進(jìn)行。。3、全雙工工全雙工是指數(shù)據(jù)可可以同時(shí)進(jìn)行雙雙向傳輸。單工半雙工全全雙工三、信號(hào)的的調(diào)制與解解調(diào)利用調(diào)制器器(Modulator)把數(shù)字信號(hào)號(hào)轉(zhuǎn)換成模模擬信號(hào),然后送到到通信線路路上去,再再由解調(diào)器器(Demodulator)把從通通信線路上上收到的模擬信號(hào)轉(zhuǎn)轉(zhuǎn)換成數(shù)字字信號(hào)。由于通信信是雙向的的,調(diào)制器器和解調(diào)器器合并在一一個(gè)裝置中中,這就是是調(diào)制解調(diào)調(diào)器MODEM。四、、串串行行通通信信的的錯(cuò)錯(cuò)誤誤校校驗(yàn)驗(yàn)1、、奇偶偶校校驗(yàn)驗(yàn)在發(fā)發(fā)送送數(shù)數(shù)據(jù)據(jù)時(shí)時(shí),,數(shù)數(shù)據(jù)據(jù)位位尾尾隨隨的的1位位為為奇奇偶偶校校驗(yàn)驗(yàn)位位((1或或0))。。奇奇校校驗(yàn)驗(yàn)時(shí)時(shí),,數(shù)數(shù)據(jù)據(jù)中中““1””的的個(gè)個(gè)數(shù)數(shù)與與校校驗(yàn)驗(yàn)位位““1””的的個(gè)個(gè)數(shù)數(shù)之之和和應(yīng)應(yīng)為為奇奇數(shù)數(shù);;偶偶校校驗(yàn)驗(yàn)時(shí)時(shí),,數(shù)數(shù)據(jù)據(jù)中中““1””的的個(gè)個(gè)數(shù)數(shù)與與校校驗(yàn)驗(yàn)位位““1””的的個(gè)個(gè)數(shù)數(shù)之之和和應(yīng)應(yīng)為為偶偶數(shù)數(shù)。。接接收收字字符符時(shí)時(shí),,對(duì)對(duì)““1””的的個(gè)個(gè)數(shù)數(shù)進(jìn)進(jìn)行行校校驗(yàn)驗(yàn),,若若發(fā)發(fā)現(xiàn)現(xiàn)不不一一致致,,則則說說明明傳傳輸輸數(shù)數(shù)據(jù)據(jù)過過程程中中出出現(xiàn)現(xiàn)了了差差錯(cuò)錯(cuò)。。3、、循環(huán)環(huán)冗冗余余校校驗(yàn)驗(yàn)這種種校校驗(yàn)驗(yàn)是是通通過過某某種種數(shù)數(shù)學(xué)學(xué)運(yùn)運(yùn)算算實(shí)實(shí)現(xiàn)現(xiàn)有有效效信信息息與與校校驗(yàn)驗(yàn)位位之之間間的的循循環(huán)環(huán)校校驗(yàn)驗(yàn),,常常用用于于對(duì)對(duì)磁磁盤盤信信息息的的傳傳輸輸、、存存儲(chǔ)儲(chǔ)區(qū)區(qū)的的完完整整性性校校驗(yàn)驗(yàn)等等。。這這種種校校驗(yàn)驗(yàn)方方法法糾糾錯(cuò)錯(cuò)能能力力強(qiáng)強(qiáng),,廣廣泛泛應(yīng)應(yīng)用用于于同同步步通通信信中中。。2、、代碼碼和和校校驗(yàn)驗(yàn)代碼碼和和校校驗(yàn)驗(yàn)是是發(fā)發(fā)送送方方將將所所發(fā)發(fā)數(shù)數(shù)據(jù)據(jù)塊塊求求和和((或或各各字字節(jié)節(jié)異異或或)),,產(chǎn)產(chǎn)生生一一個(gè)個(gè)字字節(jié)節(jié)的的校校驗(yàn)驗(yàn)字字符符((校校驗(yàn)驗(yàn)和和))附附加加到到數(shù)數(shù)據(jù)據(jù)塊塊末末尾尾。。接接收收方方接接收收數(shù)數(shù)據(jù)據(jù)同同時(shí)時(shí)對(duì)對(duì)數(shù)數(shù)據(jù)據(jù)塊塊((除除校校驗(yàn)驗(yàn)字字節(jié)節(jié)外外))求求和和((或或各各字字節(jié)節(jié)異異或或)),,將將所所得得的的結(jié)結(jié)果果與與發(fā)發(fā)送送方方的的““校校驗(yàn)驗(yàn)和和””進(jìn)進(jìn)行行比比較較,,相相符符則則無無差差錯(cuò)錯(cuò),,否否則則即即認(rèn)認(rèn)為為傳傳送送過過程程中中出出現(xiàn)現(xiàn)了了差差錯(cuò)錯(cuò)。。五、傳傳輸速速率與與傳輸輸距離離1、傳傳輸速速率比特率率是每秒鐘鐘傳輸輸二進(jìn)進(jìn)制代代碼的的位數(shù)數(shù),單位位是::位//秒((bps))。如如每秒秒鐘傳傳送240個(gè)字字符,,而每每個(gè)字字符格格式包包含10位位(1個(gè)起起始位位、1個(gè)停停止位位、8個(gè)數(shù)數(shù)據(jù)位位),,這時(shí)時(shí)的比比特率率為::10位位×240個(gè)/秒=2400bps波特率率表示每秒鐘鐘調(diào)制制信號(hào)號(hào)變化化的次次數(shù),單位位是::波特特(Baud))。波特率率和比比特率率不總總是相相同的的,對(duì)于將將數(shù)字字信號(hào)號(hào)1或或0直直接用用兩種種不同同電壓壓表示示的所所謂基基帶傳傳輸,,比特特率和和波特特率是是相同同的。。所以,,我們們也經(jīng)經(jīng)常用用波特特率表表示數(shù)數(shù)據(jù)的的傳輸輸速率率。2、傳傳輸距距離與與傳輸輸速率率的關(guān)關(guān)系串行接接口或或終端端直接接傳送送串行行信息息位流流的最最大距距離與與傳輸輸速率率及傳傳輸線線的電電氣特特性有有關(guān)。。當(dāng)傳傳輸線線使用用每0.3m((約1英尺尺)有有50PF電容容的非非平衡衡屏蔽蔽雙絞絞線時(shí)時(shí),傳傳輸距距離隨隨傳輸輸速率率的增增加而而減小小。當(dāng)當(dāng)比特特率超超過1000bps時(shí)時(shí),,最大大傳輸輸距離離迅速速下降降,如如9600bps時(shí)時(shí)最大大距離離下降降到只只有76m(約約250英英尺))。6.1.2串串行行通信信接口口標(biāo)準(zhǔn)準(zhǔn)一、RS-232C接口口RS-232C是EIA((美國國電子子工業(yè)業(yè)協(xié)會(huì)會(huì))1969年年修訂訂RS-232C標(biāo)標(biāo)準(zhǔn)。。RS-232C定定義了了數(shù)據(jù)據(jù)終端端設(shè)備備(DTE)與與數(shù)據(jù)據(jù)通信信設(shè)備備(DCE)之之間的的物理理接口口標(biāo)準(zhǔn)準(zhǔn)。1、機(jī)機(jī)械特特性RS-232C接口口規(guī)定定使用用25針連連接器器,連連接器器的尺尺寸及及每個(gè)個(gè)插針針的排排列位位置都都有明明確的的定義義。((陽頭頭)2、功功能特特性4、過過程特特性過程特特性規(guī)規(guī)定了了信號(hào)號(hào)之間間的時(shí)時(shí)序關(guān)關(guān)系,,以便便正確確地接接收和和發(fā)送送數(shù)據(jù)據(jù)。遠(yuǎn)程通通信連連接近程通通信連連接5、RS-232C電平平與TTL電平平轉(zhuǎn)換換驅(qū)動(dòng)動(dòng)電路路6、、采采用用RS-232C接接口口存存在在的的問問題題1、、傳輸輸距距離離短短,,傳傳輸輸速速率率低低RS-232C總總線線標(biāo)標(biāo)準(zhǔn)準(zhǔn)受受電電容容允允許許值值的的約約束束,,使使用用時(shí)時(shí)傳傳輸輸距距離離一一般般不不要要超超過過15米米((線線路路條條件件好好時(shí)時(shí)也也不不超超過過幾幾十十米米))。。最最高高傳傳送送速速率率為為20Kbps。。2、、有電電平平偏偏移移RS-232C總總線線標(biāo)標(biāo)準(zhǔn)準(zhǔn)要要求求收收發(fā)發(fā)雙雙方方共共地地。。通通信信距距離離較較大大時(shí)時(shí),,收收發(fā)發(fā)雙雙方方的的地地電電位位差差別別較較大大,,在在信信號(hào)號(hào)地地上上將將有有比比較較大大的的地地電電流流并并產(chǎn)產(chǎn)生生壓壓降降。。3、、抗干干擾擾能能力力差差RS-232C在在電電平平轉(zhuǎn)轉(zhuǎn)換換時(shí)時(shí)采采用用單單端端輸輸入入輸輸出出,,在在傳傳輸輸過過程程中中當(dāng)當(dāng)干干擾擾和和噪噪聲聲混混在在正正常常的的信信號(hào)號(hào)中中。。為為了了提提高高信信噪噪比比,,RS-232C總總線線標(biāo)標(biāo)準(zhǔn)準(zhǔn)不不得得不不采采用用比比較較大大的的電電壓壓擺擺幅幅。。二、、RS-422A接接口口RS-422A輸出出驅(qū)驅(qū)動(dòng)動(dòng)器器為為雙雙端端平平衡衡驅(qū)驅(qū)動(dòng)動(dòng)器器。如如果果其其中中一一條條線線為為邏邏輯輯““1””狀狀態(tài)態(tài),,另另一一條條線線就就為為邏邏輯輯““0””,,比比采采用用單單端端不不平平衡衡驅(qū)驅(qū)動(dòng)動(dòng)對(duì)對(duì)電電壓壓的的放放大大倍倍數(shù)數(shù)大大一一倍倍。。差分分電電路路能從從地地線線干干擾擾中中拾拾取取有有效效信信號(hào)號(hào),,差差分分接接收收器器可可以以分分辨辨200mV以以上上電電位位差差。。若若傳傳輸輸過過程程中中混混入入了了干干擾擾和和噪噪聲聲,,由由于于差差分分放放大大器器的的作作用用,,可可使使干干擾擾和和噪噪聲聲相相互互抵抵消消。。因因此此可可以以避避免免或或大大大大減減弱弱地地線線干干擾擾和和電電磁磁干干擾擾的的影影響響。。RS-422A傳傳輸輸速速率率((90Kbps))時(shí)時(shí),,傳傳輸輸距距離離可可達(dá)達(dá)1200米米。。三、RS-485接接口RS-485是是RS-422A的變變型:RS-422A用于全全雙工,,而RS-485則用用于半雙雙工。RS-485是是一種多發(fā)送器器標(biāo)準(zhǔn),在在通信線線路上最最多可以以使用32對(duì)對(duì)差分驅(qū)驅(qū)動(dòng)器/接收器器。如果果在一個(gè)個(gè)網(wǎng)絡(luò)中中連接的的設(shè)備超超過32個(gè),還還可以使使用中繼繼器。RS-485的的信號(hào)傳傳輸采用用兩線間間的電壓壓來表示示邏輯1和邏輯輯0。由由于發(fā)送送方需要要兩根傳輸輸線,接收方方也需要要兩根傳傳輸線。。傳輸線線采用差差動(dòng)信道道,所以以它的干干擾抑制制性極好好,又因因?yàn)樗牡淖杩沟偷?,無接接地問題題,所以以傳輸距離離可達(dá)1200米,傳輸速速率可達(dá)達(dá)1Mbps。。RS-485是是一點(diǎn)對(duì)對(duì)多點(diǎn)的的通信接接口,一一般采用用雙絞線的結(jié)構(gòu)。。普通的的PC機(jī)機(jī)一般不不帶RS485接口,,因此要要使用RS-232C/RS-485轉(zhuǎn)換換器。對(duì)對(duì)于單片片機(jī)可以以通過芯芯片MAX485來完完成TTL/RS-485的的電平轉(zhuǎn)轉(zhuǎn)換。在在計(jì)算機(jī)機(jī)和單片片機(jī)組成成的RS-485通信信系統(tǒng)中中,下位位機(jī)由單單片機(jī)系系統(tǒng)組成成,上位位機(jī)為普普通的PC機(jī),,負(fù)責(zé)監(jiān)監(jiān)視下位位機(jī)的運(yùn)運(yùn)行狀態(tài)態(tài),并對(duì)對(duì)其狀態(tài)態(tài)信息進(jìn)進(jìn)行集中中處理,,以圖文文方式顯顯示下位位機(jī)的工工作狀態(tài)態(tài)以及工工業(yè)現(xiàn)場場被控設(shè)設(shè)備的工工作狀況況。系統(tǒng)統(tǒng)中各節(jié)節(jié)點(diǎn)(包包括上位位機(jī))的的識(shí)別是是通過設(shè)設(shè)置不同同的站地地址來實(shí)實(shí)現(xiàn)的。。6.280C51的串串行口有兩個(gè)物物理上獨(dú)獨(dú)立的接接收、發(fā)發(fā)送緩沖沖器SBUF,,它們占占用同一一地址99H;;接收收器是雙雙緩沖結(jié)結(jié)構(gòu);;發(fā)送緩緩沖器,,因?yàn)榘l(fā)發(fā)送時(shí)CPU是是主動(dòng)的的,不會(huì)會(huì)產(chǎn)生重重疊錯(cuò)誤誤。6.2.180C51串行行口的結(jié)結(jié)構(gòu)SCON是一一個(gè)特殊殊功能寄寄存器,,用以設(shè)設(shè)定串行行口的工工作方式式、接收收/發(fā)送送控制以以及設(shè)置置狀態(tài)標(biāo)標(biāo)志:6.2.280C51串行行口的控控制寄存存器SM0和和SM1為工作作方式選選擇位,,可選擇擇四種工工作方式式:●SM2,,多機(jī)通通信控制制位,主要用用于方式式2和方方式3。。當(dāng)接收機(jī)的的SM2=1時(shí)時(shí)可以利利用收到到的RB8來控控制是否否激活RI(RB8=0時(shí)時(shí)不激活活RI,,收到的的信息丟丟棄;RB8==1時(shí)收收到的數(shù)數(shù)據(jù)進(jìn)入入SBUF,并并激活RI,進(jìn)進(jìn)而在中中斷服務(wù)務(wù)中將數(shù)數(shù)據(jù)從SBUF讀走))。當(dāng)SM2=0時(shí)時(shí),不論論收到的的RB8為0和和1,均均可以使使收到的的數(shù)據(jù)進(jìn)進(jìn)入SBUF,,并激活活RI(即此時(shí)時(shí)RB8不具有有控制RI激活活的功能能)。通通過控制制SM2,可以以實(shí)現(xiàn)多多機(jī)通信信。在方式0時(shí),SM2必必須是0。在方方式1時(shí)時(shí),若SM2=1,則則只有接接收到有有效停止止位時(shí),,RI才才置1。?!馬EN,,允許串串行接收收位。由軟件件置REN=1,則啟啟動(dòng)串行行口接收收數(shù)據(jù);;若軟件件置REN=0,則禁禁止接收收?!馮B8,,在方式式2或方方式3中中,是發(fā)發(fā)送數(shù)據(jù)據(jù)的第九九位,可以用用軟件規(guī)規(guī)定其作作用??煽梢杂米髯鲾?shù)據(jù)的的奇偶校校驗(yàn)位,,或在多多機(jī)通信信中,作作為地址址幀/數(shù)數(shù)據(jù)幀的的標(biāo)志位位。在方式0和方式式1中,,該位未未用?!馬B8,,在方式式2或方方式3中中,是接接收到數(shù)數(shù)據(jù)的第第九位,作為奇奇偶校驗(yàn)驗(yàn)位或地地址幀/數(shù)據(jù)幀幀的標(biāo)志志位。在在方式1時(shí),若若SM2=0,,則RB8是接接收到的的停止位位?!馮I,發(fā)發(fā)送中斷斷標(biāo)志位位。在方式式0時(shí),,當(dāng)串行行發(fā)送第第8位數(shù)數(shù)據(jù)結(jié)束束時(shí),或或在其它它方式,,串行發(fā)發(fā)送停止止位的開開始時(shí),,由內(nèi)部部硬件使使TI置置1,向向CPU發(fā)中斷斷申請(qǐng)。。在中斷斷服務(wù)程程序中,,必須用用軟件將將其清0,取消消此中斷斷申請(qǐng)。?!馬I,接接收中斷斷標(biāo)志位位。在方式式0時(shí),,當(dāng)串行行接收第第8位數(shù)數(shù)據(jù)結(jié)束束時(shí),或或在其它它方式,,串行接接收停止止位的中中間時(shí),,由內(nèi)部部硬件使使RI置置1,向向CPU發(fā)中斷斷申請(qǐng)。。也必須須在中斷斷服務(wù)程程序中,,用軟件件將其清清0,取取消此中中斷申請(qǐng)請(qǐng)。PCON中只有有一位SMOD與串行行口工作作有關(guān):SMOD(PCON.7)波波特特率倍增增位。在在串行口口方式1、方式式2、方方式3時(shí)時(shí),波特特率與SMOD有關(guān),,當(dāng)SMOD=1時(shí),,波特率率提高一一倍。復(fù)復(fù)位時(shí),,SMOD=0。6.2.380C51串行行口的工工作方式式一、方式式0方式0時(shí)時(shí),串行行口為同同步移位位寄存器器的輸入入輸出方方式。主主要用于于擴(kuò)展并并行輸入入或輸出出口。數(shù)數(shù)據(jù)由RXD((P3.0)引引腳輸入入或輸出出,同步步移位脈脈沖由TXD((P3.1)引引腳輸出出。發(fā)送送和接收收均為8位數(shù)據(jù)據(jù),低位位在先,,高位在在后。波波特率固固定為fosc/12。1、方式式0輸出出2、方式式0輸入入方式0接接收和發(fā)發(fā)送電路路二、方式式1方式1是是10位位數(shù)據(jù)的的異步通通信口。。TXD為數(shù)據(jù)據(jù)發(fā)送引引腳,RXD為為數(shù)據(jù)接接收引腳腳,傳送送一幀數(shù)數(shù)據(jù)的格格式如圖圖所示。。其中1位起始始位,8位數(shù)據(jù)據(jù)位,1位停止止位。1、方式式1輸出出2、方式式1輸入入用軟件置置REN為1時(shí)時(shí),接收收器以所所選擇波波特率的的16倍倍速率采采樣RXD引腳腳電平,,檢測到到RXD引腳輸輸入電平平發(fā)生負(fù)負(fù)跳變時(shí)時(shí),則說說明起始始位有效效,將其其移入輸輸入移位位寄存器器,并開開始接收收這一幀幀信息的的其余位位。接收收過程中中,數(shù)據(jù)據(jù)從輸入入移位寄寄存器右右邊移入入,起始始位移至至輸入移移位寄存存器最左左邊時(shí),,控制電電路進(jìn)行行最后一一次移位位。當(dāng)RI=0,且SM2=0(或或接收到到的停止止位為1)時(shí),,將接收收到的9位數(shù)據(jù)據(jù)的前8位數(shù)據(jù)據(jù)裝入接接收SBUF,,第9位位(停止止位)進(jìn)進(jìn)入RB8,并并置RI=1,,向CPU請(qǐng)求求中斷。。三、方式式2和方方式3方式2或或方式3時(shí)為11位數(shù)數(shù)據(jù)的異異步通信信口。TXD為為數(shù)據(jù)發(fā)發(fā)送引腳腳,RXD為數(shù)數(shù)據(jù)接收收引腳。方式2和和方式3時(shí)起始始位1位位,數(shù)據(jù)據(jù)9位((含1位位附加的的第9位位,發(fā)送送時(shí)為SCON中的TB8,,接收時(shí)時(shí)為RB8),,停止位位1位,,一幀數(shù)數(shù)據(jù)為11位。。方式2的波特特率固定定為晶振振頻率的的1/64或1/32,方式式3的波波特率由由定時(shí)器器T1的的溢出率率決定。。1、方式式2和方方式3輸輸出發(fā)送開始始時(shí),先先把起始始位0輸輸出到TXD引引腳,然然后發(fā)送送移位寄寄存器的的輸出位位(D0)到TXD引引腳。每每一個(gè)移移位脈沖沖都使輸輸出移位位寄存器器的各位位右移一一位,并并由TXD引腳腳輸出。。第一次移移位時(shí),,停止位位“1””移入輸輸出移位位寄存器器的第9位上,,以后后每次移移位,左左邊都移移入0。。當(dāng)停止止位移至至輸出位位時(shí),左左邊其余余位全為為0,檢檢測電路路檢測到到這一條條件時(shí),,使控制制電路進(jìn)進(jìn)行最后后一次移移位,并并置TI=1,,向CPU請(qǐng)求求中斷。。2、方式式2和方方式3輸輸入接收時(shí),,數(shù)據(jù)從從右邊移移入輸入入移位寄寄存器,,在起始始位0移移到最左左邊時(shí),,控制電電路進(jìn)行行最后一一次移位位。當(dāng)RI=0,且SM2=0(或或接收到到的第9位數(shù)據(jù)據(jù)為1))時(shí),接接收到的的數(shù)據(jù)裝裝入接收收緩沖器器SBUF和RB8((接收數(shù)數(shù)據(jù)的第第9位)),置RI=1,向CPU請(qǐng)請(qǐng)求中斷斷。如果果條件不不滿足,,則數(shù)據(jù)據(jù)丟失,,且不置置位RI,繼續(xù)續(xù)搜索RXD引引腳的負(fù)負(fù)跳變。。四、波特特率的計(jì)計(jì)算在串行通通信中,,收發(fā)雙雙方對(duì)發(fā)發(fā)送或接接收數(shù)據(jù)據(jù)的速率率要有約約定。通通過軟件件可對(duì)單單片機(jī)串串行口編編程為四四種工作作方式,,其中方方式0和和方式2的波特特率是固固定的,,而方式式1和方方式3的的波特率率是可變變的,由由定時(shí)器器T1的的溢出率率來決定定。串行口的的四種工工作方式式對(duì)應(yīng)三種波特特率。由于輸輸入的移移位時(shí)鐘鐘的來源源不同,,所以,,各種方方式的波波特率計(jì)計(jì)算公式式也不相相同。方式0的的波特率率=fosc/12方式2的的波特率率=((2SMOD/64))·fosc方式1的的波特率率=((2SMOD/32))·(T1溢出出率)方式3的的波特率率=((2SMOD/32))·(T1溢出出率)當(dāng)T1作作為波特特率發(fā)生生器時(shí),,最典型型的用法法是使T1工作作在自動(dòng)動(dòng)再裝入入的8位位定時(shí)器器方式((即方式式2,且且TCON的TR1=1,以以啟動(dòng)定定時(shí)器))。這時(shí)時(shí)溢出率率取決于于TH1中的計(jì)計(jì)數(shù)值。。T1溢溢出率=fosc/{12××[256--(TH1)]}在單片機(jī)機(jī)的應(yīng)用用中,常常用的晶晶振頻率率為:12MHz和11.0592MHz。所以以,選用用的波特特率也相相對(duì)固定定。常用用的串行行口波特特率以及及各參數(shù)數(shù)的關(guān)系系如表所所示。串行口工工作之前前,應(yīng)對(duì)對(duì)其進(jìn)行行初始化化,主要要是設(shè)置置產(chǎn)生波波特率的的定時(shí)器器1、串串行口控控制和中中斷控制制。具體體步驟如如下:確定T1的工工作方式式(編程TMOD寄存器器);計(jì)算T1的初初值,裝載TH1、、TL1;啟動(dòng)T1(編程TCON中的TR1位位);確定串行口控控制(編程SCON寄存器器);串行口在在中斷方方式工作作時(shí),要要進(jìn)行中中斷設(shè)置置(編程程IE、IP寄存器))。6.3單單片機(jī)串串行口應(yīng)應(yīng)用舉例例在計(jì)算機(jī)機(jī)分布式式測控系系統(tǒng)中,,經(jīng)常要要利用串串行通信信方式進(jìn)進(jìn)行數(shù)據(jù)據(jù)傳輸。。80C51單單片機(jī)的的串行口口為計(jì)算算機(jī)間的的通信提提供了極極為便利利的條件件。利用用單片機(jī)機(jī)的串行行口還可可以方便便地?cái)U(kuò)展展鍵盤和和顯示器器,對(duì)于于簡單的的應(yīng)用非非常便利利。這里里僅介紹紹單片機(jī)機(jī)串行口口在通信信方面的的應(yīng)用,,關(guān)于鍵鍵盤和顯顯示器的的擴(kuò)展將將在下一一章介紹紹。6.3.1單片機(jī)與與單片機(jī)機(jī)的通信信一、點(diǎn)對(duì)對(duì)點(diǎn)的通通信1、硬硬件連連接二、應(yīng)應(yīng)用程程序設(shè)1號(hào)號(hào)機(jī)是是發(fā)送送方,,2號(hào)號(hào)機(jī)是是接收收方。。當(dāng)1號(hào)號(hào)機(jī)發(fā)送時(shí)時(shí),先發(fā)發(fā)送一一個(gè)““E1”聯(lián)聯(lián)絡(luò)信信號(hào),,2號(hào)號(hào)機(jī)收收到后后回答答一個(gè)個(gè)“E2””應(yīng)答答信號(hào)號(hào),表表示同同意接接收。。當(dāng)1號(hào)機(jī)機(jī)收到到應(yīng)答答信號(hào)號(hào)“E2””后,開開始發(fā)發(fā)送數(shù)數(shù)據(jù),,每發(fā)發(fā)送一一個(gè)數(shù)數(shù)據(jù)字字節(jié)都都要計(jì)計(jì)算““校驗(yàn)驗(yàn)和””,假假定數(shù)數(shù)據(jù)塊塊長度度為16個(gè)個(gè)字節(jié)節(jié),起起始地地址為為40H,,一個(gè)個(gè)數(shù)據(jù)據(jù)塊發(fā)發(fā)送完完畢后后立即即發(fā)送送“校校驗(yàn)和和”。。2號(hào)機(jī)機(jī)接收收數(shù)據(jù)據(jù)并轉(zhuǎn)存存到數(shù)數(shù)據(jù)緩緩沖區(qū)區(qū),起起始地地址也也為40H,每每接收收到一一個(gè)數(shù)數(shù)據(jù)字字節(jié)便便計(jì)算算一次次“校校驗(yàn)和和”,,當(dāng)收收到一一個(gè)數(shù)數(shù)據(jù)塊塊后,,再接接收1號(hào)機(jī)機(jī)發(fā)來來的““校驗(yàn)驗(yàn)和””,并并將它它與2號(hào)機(jī)機(jī)求出出的校校驗(yàn)和和進(jìn)行行比較較。若若兩者者相等等,說說明接接收正正確,,2號(hào)號(hào)機(jī)回回答00H;若若兩者者不相相等,,說明明接收收不正正確,,2號(hào)號(hào)機(jī)回回答0FFH,,請(qǐng)求求重發(fā)發(fā)。1號(hào)機(jī)接到到00H后后結(jié)束發(fā)送送。若收到的的答復(fù)非零零,則重新新發(fā)送數(shù)據(jù)據(jù)一次。雙雙方約定采采用串行口方式式1進(jìn)行通信,,一幀信息為為10位,,其中有1個(gè)起始位位、8個(gè)數(shù)數(shù)據(jù)位和一一個(gè)停止位位;波特率率為2400波特,,T1工作作在定時(shí)器器方式2,,振蕩頻率率選用11.0592MHZ,查表可可得TH1=TL1=0F4H,PCON寄存存器的SMOD位為為0。發(fā)送程序清清單如下::ASTART:CLREAMOVTMOD,#20H;;定定時(shí)器1置置為方式2MOVTH1,,#0F4H;;裝載定時(shí)時(shí)器初值,,波特率2400MOVTL1,,#0F4HMOVPCON,#00HSETBTR1;;啟啟動(dòng)定時(shí)器器MOVSCON,#50H;;設(shè)設(shè)定串口方方式1,且且準(zhǔn)備接收收應(yīng)答信號(hào)號(hào)ALOOP1:MOVSBUF,,#0E1H;;發(fā)聯(lián)聯(lián)絡(luò)信號(hào)JNBTI,$;;等等待一幀發(fā)發(fā)送完畢CLRTI;;允許許再發(fā)送JNBRI,$;;等等待2號(hào)機(jī)機(jī)的應(yīng)答信信號(hào)CLRRI;;允許再再接收MOVA,SBUF;;2號(hào)機(jī)機(jī)應(yīng)答后,,讀至AXRLA,#0E2H;;判斷斷2號(hào)機(jī)是是否準(zhǔn)備完完畢JNZALOOP1;;2號(hào)機(jī)未未準(zhǔn)備好,,繼續(xù)聯(lián)絡(luò)絡(luò)ALOOP2:MOVR0,#40H;;2號(hào)機(jī)準(zhǔn)備備好,設(shè)定定數(shù)據(jù)塊地地址指針初初值MOVR7,#10H;;設(shè)定數(shù)數(shù)據(jù)塊長度度初值MOVR6,#00H;;清校驗(yàn)驗(yàn)和單元ALOOP3:MOVSBUF,,@R0;;發(fā)送送一個(gè)數(shù)據(jù)據(jù)字節(jié)MOVA,R6ADDA,@R0;;求校驗(yàn)和和MOVR6,A;;保存校校驗(yàn)和INCR0JNBTI,,$CLRTIDJNZR7,,ALOOP3;;整整個(gè)個(gè)數(shù)數(shù)據(jù)據(jù)塊塊是是否否發(fā)發(fā)送送完完畢畢MOVSBUF,,R6;;發(fā)發(fā)送送校校驗(yàn)驗(yàn)和和JNBTI,,$CLRTIJNBRI,,$;;等等待待2號(hào)號(hào)機(jī)機(jī)的的應(yīng)應(yīng)答答信信號(hào)號(hào)CLRRIMOVA,,SBUF;;2號(hào)號(hào)機(jī)機(jī)應(yīng)應(yīng)答答,,讀讀至至AJNZALOOP2;;2號(hào)號(hào)機(jī)機(jī)應(yīng)應(yīng)答答““錯(cuò)錯(cuò)誤誤””,,轉(zhuǎn)轉(zhuǎn)重重新新發(fā)發(fā)送送RET;;2號(hào)號(hào)機(jī)機(jī)應(yīng)應(yīng)答答““正正確確””,,返返回回接收收程程序序清清單單如如下下::BSTART::CLREAMOVTMOD,,#20HMOVTH1,,#0F4HMOVTL1,,#0F4HMOVPCON,,#00HSETBTR1MOVSCON,,#50H;;設(shè)設(shè)定定串串口口方方式式1,,且且準(zhǔn)準(zhǔn)備備接接收收BLOOP1::JNBRI,,$;;等等待待1號(hào)號(hào)機(jī)機(jī)的的聯(lián)聯(lián)絡(luò)絡(luò)信信號(hào)號(hào)CLRRIMOVA,,SBUF;;收收到到1號(hào)號(hào)機(jī)機(jī)信信號(hào)號(hào)XRLA,,#0E1H;;判判是是否否為為1號(hào)號(hào)機(jī)機(jī)聯(lián)聯(lián)絡(luò)絡(luò)信信號(hào)號(hào)JNZBLOOP1;;不不是是1號(hào)號(hào)機(jī)機(jī)聯(lián)聯(lián)絡(luò)絡(luò)信信號(hào)號(hào),,再再等等待待MOVSBUF,,#0E2H;;是是1號(hào)號(hào)機(jī)機(jī)聯(lián)聯(lián)絡(luò)絡(luò)信信號(hào)號(hào),,發(fā)發(fā)應(yīng)應(yīng)答答信信號(hào)號(hào)JNBTI,,$CLRTIMOVR0,,#40H;;設(shè)設(shè)定定數(shù)數(shù)據(jù)據(jù)塊塊地地址址指指針針初初值值MOVR7,,#10H;;設(shè)設(shè)定定數(shù)數(shù)據(jù)據(jù)塊塊長長度度初初值值MOVR6,,#00H;;清清校校驗(yàn)驗(yàn)和和單單元元BLOOP2:JNBRI,$CLRRIMOVA,SBUFMOV@R0,,A;;接收數(shù)據(jù)據(jù)轉(zhuǎn)儲(chǔ)INCR0ADDA,R6;;求校驗(yàn)和和MOVR6,ADJNZR7,,BLOOP2;;判判數(shù)據(jù)塊是是否接收完完畢JNBRI,$;;完畢畢,接收1號(hào)機(jī)發(fā)來來的校驗(yàn)和和CLRRIMOVA,SBUFXRLA,R6;;比較校校驗(yàn)和JZEND1;;校驗(yàn)驗(yàn)和相等,,跳至發(fā)正正確標(biāo)志MOVSBUF,#0FFH;;校校驗(yàn)和不相相等,發(fā)錯(cuò)錯(cuò)誤標(biāo)志JNBTI,$;;轉(zhuǎn)重重新接收CLRTIEND1::MOVSBUF,#00HRET二、多機(jī)通通信1、硬件連連接單片機(jī)構(gòu)成成的多機(jī)系系統(tǒng)常采用用總線型主主從式結(jié)構(gòu)構(gòu)。所謂主主從式,即即在數(shù)個(gè)單單片機(jī)中,,有一個(gè)是是主機(jī),其其余的是從從機(jī),從機(jī)機(jī)要服從主主機(jī)的調(diào)度度、支配。。80C31單片機(jī)機(jī)的串行口口方式2和和方式3適適于這種主主從式的通通信結(jié)構(gòu)。。當(dāng)然采用用不同的通通信標(biāo)準(zhǔn)時(shí)時(shí),還需進(jìn)進(jìn)行相應(yīng)的的電平轉(zhuǎn)換換,有時(shí)還還要對(duì)信號(hào)號(hào)進(jìn)行光電電隔離。在在實(shí)際的多多機(jī)應(yīng)用系系統(tǒng)中,常常采用RS-485串行標(biāo)準(zhǔn)準(zhǔn)總線進(jìn)行行數(shù)據(jù)傳輸輸。2、通信協(xié)協(xié)議所有從機(jī)的的SM2位位置1,處處于接收地地址幀狀態(tài)態(tài)。主機(jī)發(fā)送一一地址幀,,其中8位位是地址,,第9位為為地址/數(shù)數(shù)據(jù)的區(qū)分分標(biāo)志,該該位置1表表示該幀為為地址幀。。所有從機(jī)收收到地址幀幀后,都將將接收的地地址與本機(jī)機(jī)的地址比比較。對(duì)于于地址相符符的從機(jī),,使自己的的SM2位位置0(以以接收主機(jī)機(jī)隨后發(fā)來來的數(shù)據(jù)幀幀),并把把本站地址址發(fā)回主機(jī)機(jī)作為應(yīng)答答;對(duì)于地地址不符的的從機(jī),仍仍保持SM2=1,,對(duì)主機(jī)隨隨后發(fā)來的的數(shù)據(jù)幀不不予理睬。。從機(jī)發(fā)送數(shù)數(shù)據(jù)結(jié)束后后,要發(fā)送送一幀校驗(yàn)驗(yàn)和,并置置第9位((TB8))為1,作作為從機(jī)數(shù)數(shù)據(jù)傳送結(jié)結(jié)束的標(biāo)志志。主機(jī)接收數(shù)數(shù)據(jù)時(shí)先判判斷數(shù)據(jù)接接收標(biāo)志((RB8)),若RB8=1,,表示數(shù)據(jù)據(jù)傳送結(jié)束束,并比較較此幀校驗(yàn)驗(yàn)和,若正正確則回送送正確信號(hào)號(hào)00H,,此信號(hào)命命令該從機(jī)機(jī)復(fù)位(即即重新等待待地址幀));若校驗(yàn)驗(yàn)和出錯(cuò),,則發(fā)送0FFH,,命令該從從機(jī)重發(fā)數(shù)數(shù)據(jù)。若接接收幀的RB8=0,則存數(shù)數(shù)據(jù)到緩沖沖區(qū),并準(zhǔn)準(zhǔn)備接收下下幀信息。。主機(jī)收到從從機(jī)應(yīng)答地地址后,確確認(rèn)地址是是否相符,,如果地址址不符,發(fā)發(fā)復(fù)位信號(hào)號(hào)(數(shù)據(jù)幀幀中TB8=1);;如果地址址相符,則則清TB8,開始發(fā)發(fā)送數(shù)據(jù)。。從機(jī)收到復(fù)復(fù)位命令后后回到監(jiān)聽聽地址狀態(tài)態(tài)(SM2=1)。。否則開始始接收數(shù)據(jù)據(jù)和命令。。3、應(yīng)用程程序主機(jī)發(fā)送的的地址聯(lián)絡(luò)絡(luò)信號(hào)為::00H,,01H,,02H,,………(即從機(jī)機(jī)設(shè)備地址址),地址址FFH為為命令各從從機(jī)復(fù)位,,即恢復(fù)SM2=1。主機(jī)命令編編碼為:01H,主主機(jī)命令從從機(jī)接收數(shù)數(shù)據(jù);02H,主機(jī)機(jī)命令從機(jī)機(jī)發(fā)送數(shù)據(jù)據(jù)。其它都都按02H對(duì)待。RRDY=1:表示示從機(jī)準(zhǔn)備備好接收。。TRDY=1:表示示從機(jī)準(zhǔn)備備好發(fā)送。。ERR=1:表示示從機(jī)接收收的命令是是非法的。。程序分為主主機(jī)程序和和從機(jī)程序序。約定一一次傳遞數(shù)數(shù)據(jù)為16個(gè)字節(jié),,以01H地址的從從機(jī)為例。主機(jī)程序清清單:設(shè)從機(jī)地址址號(hào)存于40H單元元,命令存存于41H單元。MAIN::MOVTMOD,#20H;;T1方式2MOVTH1,,#0FDH;;初始始化波特率率9600MOVTL1,,#0FDHMOVPCON,#00HSETBTR1MOVSCON,#0F0H;;串串口方式3,多機(jī),,準(zhǔn)備接收收應(yīng)答LOOP1:SETBTB8MOVSBUF,40H;;發(fā)發(fā)送預(yù)通信信從機(jī)地址址JNBTI,$CLRTIJNBRI,$;;等待待從機(jī)對(duì)聯(lián)聯(lián)絡(luò)應(yīng)答CLRRIMOVA,SBUF;;接收應(yīng)答答,讀至AXRLA,40H;;判應(yīng)答答的地址是是否正確JZAD_OKAD_ERR:MOVSBUF,,#0FFH;;應(yīng)應(yīng)答錯(cuò)誤,,發(fā)命令FFHJNBTI,$CLRTISJMPLOOP1;;返返回重新發(fā)發(fā)送聯(lián)絡(luò)信信號(hào)AD_OK:CLRTB8;;應(yīng)答答正確MOVSBUF,41H;;發(fā)送命命令字JNBTI,$CLRTIJNBRI,$;;等待待從機(jī)對(duì)命命令應(yīng)答CLRRIMOVA,SBUF;;接收收應(yīng)答,讀讀至AXRLA,#80H;;判斷應(yīng)答答是否正確確JNZCO_OKSETBTB8SJMPAD_ERR;;錯(cuò)錯(cuò)誤處理CO_OK:MOVA,,SBUF;;應(yīng)答答正確,判判是發(fā)送還還是接收命命令XRLA,#01HJZSE_DATA;;從機(jī)機(jī)準(zhǔn)備好接接收,可以以發(fā)送MOVA,SBUFXRLA,#02HJZRE_DATA;;從機(jī)機(jī)準(zhǔn)備好發(fā)發(fā)送,可以以接收LJMPSE_DATARE_DATA:MOVR6,#00H;;清校驗(yàn)和和接收16個(gè)字節(jié)數(shù)數(shù)據(jù)MOVR0,#30HMOVR7,#10HLOOP2:JNBRI,$CLRRIMOVA,SBUFMOV@R0,,AINCR0ADDA,R6MOVR6,ADJNZR7,,LOOP2JNBRI,$CLRRIMOVA,SBUF;;接收校校驗(yàn)和并判判斷XRLA,R6JZXYOK;;校驗(yàn)正確確MOVSBUF,#0FFH;;校驗(yàn)錯(cuò)誤誤JNBTI,$CLRTILJMPRE_DATAXYOK::MOVSBUF,#00H;;校校驗(yàn)和正確確,發(fā)00HJNBTI,$CLRTISETBTB8;;置地址址標(biāo)志LJMPRETENDSE_DATA:MOVR6,#00H;;發(fā)送送16個(gè)字字節(jié)數(shù)據(jù)MOVR0,#30HMOVR7,#10HLOOP3:MOVA,@R0MOVSBUF,AJNBTI,$CLRTIINCR0ADDA,R6MOVR6,ADJNZR7,,LOOP3MOVA,R6MOVSBUF,A;;發(fā)發(fā)校驗(yàn)和JNBTI,$CLRTIJNBRI,$CLRRIMOVA,SBUFXRLA,#00HJZRET_END;;從從機(jī)接收正正確SJMPSE_DATA;;從機(jī)接收收不正確,,重新發(fā)送送RET_END:RET從機(jī)程序清清單:設(shè)本機(jī)號(hào)存存于40H單元,41H單元元存放“發(fā)發(fā)送”命令令,42H單元存放放“接收””命令。MAIN::MOVTMOD,#20H;;初始化串串行口MOVTH1,,#0FDHMOVTL1,,#0FDHMOVPCON,#00HSETBTR1MOVSCON,#0F0HLOOP1:SETBEA;;開中斷斷SETBESSETBRRDY;;發(fā)送與與接收準(zhǔn)備備就緒SETBTRDYSJMPLOOP1SERVE:PUSHPSW;;中斷服服務(wù)程序PUSHACCCLRESCLRRIMOVA,SBUFXRLA,40H;;判斷是是否本機(jī)地地址JZSER_OKLJMPENDI;;非非本機(jī)機(jī)地址址,繼繼續(xù)監(jiān)監(jiān)聽SER_OK::CLRSM2;;是是本機(jī)機(jī)地址址,取取消監(jiān)監(jiān)聽狀狀態(tài)MOVSBUF,40H;;本機(jī)機(jī)地址址發(fā)回回JNBTI,$CLRTIJNBRI,$CLRRIJBRB8,ENDII;;是復(fù)復(fù)位命命令,,恢復(fù)復(fù)監(jiān)聽聽MOVA,,SBUF;;不是是復(fù)位位命令令,判判是““發(fā)送送”還還是““接收收”XRLA,41HJZSERISE;;收到到“發(fā)發(fā)送””命令令,發(fā)發(fā)送處處理MOVA,,SBUFXRLA,,42HJZSERIRE;;收收到““接收收”命命令,,接收收處理理SJMPFFML;;非法法命令令,轉(zhuǎn)轉(zhuǎn)非法法處理理SERISE::JBTRDY,SEND;;從從機(jī)發(fā)發(fā)送是是否準(zhǔn)準(zhǔn)備好好MOVSBUF,#00HSJMPWAIT01SEND::MOVSBUF,,#02H;;返返回““發(fā)送送準(zhǔn)備備好””WAIT01::JNBTI,$CLRTIJNBRI,,$CLRRIJBRB8,,ENDII;;主主機(jī)接接收是是否準(zhǔn)準(zhǔn)備就就緒LCALLSE_DATA;;發(fā)送送數(shù)據(jù)據(jù)LJMPENDFFML::MOVSBUF,,#80H;;發(fā)非非法命命令,,恢復(fù)復(fù)監(jiān)聽聽JNBTI,,$CLRTILJMPENDIISERIRE::JBRRDY,,RECE;;從機(jī)機(jī)接收收是否否準(zhǔn)備備好MOVSBUF,#00HSJMPWAIT02RECE::MOVSBUF,,#01H;;返返回““接收收準(zhǔn)備備好””WEIT02::JNBTI,,$CLRTIJNBRI,$CLRRIJBRB8,ENDII;;主機(jī)機(jī)發(fā)送送是否否就緒緒LCALLRE_DATA;;接接收數(shù)數(shù)據(jù)LJMPENDENDII:SETBSM2ENDI::SETBESEND:POPACCPOPPSWRETISE_DATA:CLRTRDY;;發(fā)發(fā)送數(shù)數(shù)據(jù)塊塊子程程序MOVR6,#00HMOVR0,#30HMOVR7,#10HLOOP2:MOVA,@R0MOVSBUF,AJNBTI,$CLRTIINCR0ADDA,,R6MOVR6,ADJNZR7,,LOOP2;;數(shù)據(jù)據(jù)塊發(fā)發(fā)送完完畢??MOVA,,R6MOVSBUF,AJNBTI,$;;發(fā)送送校驗(yàn)驗(yàn)和CLRTIJNBRI,$CLRRIMOVA,,SBUFXRLA,#00H;;判發(fā)送是是否正確JZSEND_OKSJMPSE_DATA;;發(fā)送錯(cuò)錯(cuò)誤,重發(fā)發(fā)SEND_OK:SETBSM2;;發(fā)送正正確,繼續(xù)續(xù)監(jiān)聽SETBESRETRE_DATA:CLRRRDY;;接收收數(shù)據(jù)塊子子程序MOVR6,#00HMOVR0,#30HMOVR7,#10HLOOP3:JNBRI,$CLRRIMOVA,SBUFMOV@R0,,AINCR0ADDA,R6MOVR6,ADJNZR7,,LOOP3;;接收數(shù)據(jù)據(jù)塊完畢??JNBRI,$;;接收收校驗(yàn)和CLRRIMOVA,SBUFXRLA,R6;;判斷校校驗(yàn)和是否否正確JZRECE_OKMOVSBUF,#0FFH;;校驗(yàn)和錯(cuò)錯(cuò)誤,發(fā)FFHJNBTI,$CLRTILJMPRE_DATA;;重新新接收RECE_OK:MOVA,#00H;;校驗(yàn)和和正確,發(fā)發(fā)00HMOVSBUF,AJNBTI,$CLRTISETBSM2;;繼繼續(xù)監(jiān)聽SETBESRET6.3.2單片片機(jī)與PC機(jī)的通信信在工控系統(tǒng)統(tǒng)(尤其是是多點(diǎn)現(xiàn)場場工控系統(tǒng)統(tǒng))設(shè)計(jì)實(shí)實(shí)踐中,單單片機(jī)與PC機(jī)組合合構(gòu)成分布布式控制系系統(tǒng)是一個(gè)個(gè)重要的發(fā)發(fā)展方向。。分布式系系統(tǒng)主從管管理,層層層控制。主主控計(jì)算機(jī)機(jī)監(jiān)督管理理各子系統(tǒng)統(tǒng)分機(jī)的運(yùn)運(yùn)行狀況。。子系統(tǒng)與與子系統(tǒng)可可以平等信信息交換,,也可以有有主從關(guān)系系。分布式式系統(tǒng)最明明顯的特點(diǎn)點(diǎn)是可靠性性高,某個(gè)個(gè)子系統(tǒng)的的故障不會(huì)會(huì)影響其它它子系統(tǒng)的的正常工作作。1臺(tái)PC機(jī)機(jī)即可以與與1個(gè)80C31單單片機(jī)應(yīng)用用系統(tǒng)通信信,也可以以

溫馨提示

  • 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)論