A8中職電子專業(yè)_第1頁
A8中職電子專業(yè)_第2頁
A8中職電子專業(yè)_第3頁
A8中職電子專業(yè)_第4頁
A8中職電子專業(yè)_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、本章分為三節(jié),主要介紹:6.2 80C51的串行口6.1 計(jì)算機(jī)串行通信根底6.3 單片機(jī)串行口應(yīng)用舉例16.1 計(jì)算機(jī)串行通信根底 隨著多微機(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)中信息的交換多采用串行通信方式。2計(jì)算機(jī)通信是將計(jì)算機(jī)技術(shù)和通信技術(shù)的相結(jié)合,完成計(jì)算機(jī)與外部設(shè)備或計(jì)算機(jī)與計(jì)算機(jī)之間的信息交換 ??梢苑譃閮纱箢悾翰⑿型ㄐ排c串行通信。并行通信通常是將數(shù)據(jù)字節(jié)的各位用多條數(shù)據(jù)線同時進(jìn)行傳送 。并行通信控制簡單、傳輸速度快;由于傳

2、輸線較多,長距離傳送時本錢高且接收方的各位同時接收存在困難。 3串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個地傳送。串行通信的特點(diǎn):傳輸線少,長距離傳送時本錢低,且可以利用 網(wǎng)等現(xiàn)成的設(shè)備,但數(shù)據(jù)的傳送控制比并行通信復(fù)雜。 46.1.1 串行通信的根本概念 一、異步通信與同步通信1、異步通信 異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時鐘盡可能一致。 5 異步通信是以字符(構(gòu)成的幀)為單位進(jìn)行傳輸,字符與字符之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,即字符之間是異步的(字符之間不一定

3、有“位間隔的整數(shù)倍的關(guān)系),但同一字符內(nèi)的各位是同步的(各位之間的距離均為“位間隔的整數(shù)倍)。6異步通信的數(shù)據(jù)格式 :異步通信的特點(diǎn):不要求收發(fā)雙方時鐘的嚴(yán)格一致,實(shí)現(xiàn)容易,設(shè)備開銷較小,但每個字符要附加23位用于起止位,各幀之間還有間隔,因此傳輸效率不高。72、同步通信同步通信時要建立發(fā)送方時鐘對接收方時鐘的直接控制,使雙方到達(dá)完全同步。此時,傳輸數(shù)據(jù)的位之間的距離均為“位間隔的整數(shù)倍,同時傳送的字符間不留間隙,即保持位同步關(guān)系,也保持字符同步關(guān)系。發(fā)送方對接收方的同步可以通過兩種方法實(shí)現(xiàn)。 外同步 自同步8面向字符的同步格式 : 此時,傳送的數(shù)據(jù)和控制信息都必須由規(guī)定的字符集(如ASCII

4、碼)中的字符所組成。圖中幀頭為1個或2個同步字符SYN(ASCII碼為16H)。SOH為序始字符(ASCII碼為01H),表示標(biāo)題的開始,標(biāo)題中包含源地址、目標(biāo)地址和路由指示等信息。STX為文始字符(ASCII碼為02H),表示傳送的數(shù)據(jù)塊開始。數(shù)據(jù)塊是傳送的正文內(nèi)容,由多個字符組成。數(shù)據(jù)塊后面是組終字符ETB(ASCII碼為17H)或文終字符ETX(ASCII碼為03H)。然后是校驗(yàn)碼。典型的面向字符的同步規(guī)程如IBM的二進(jìn)制同步規(guī)程BSC。 9面向位的同步格式 : 此時,將數(shù)據(jù)塊看作數(shù)據(jù)流,并用序列作為開始和結(jié)束標(biāo)志。為了防止在數(shù)據(jù)流中出現(xiàn)序列時引起的混亂,發(fā)送方總是在其發(fā)送的數(shù)據(jù)流中每出

5、現(xiàn)5個連續(xù)的1就插入一個附加的0;接收方則每檢測到5個連續(xù)的1并且其后有一個0時,就刪除該0。 典型的面向位的同步協(xié)議如ISO的高級數(shù)據(jù)鏈路控制規(guī)程HDLC和IBM的同步數(shù)據(jù)鏈路控制規(guī)程SDLC。 同步通信的特點(diǎn)是以特定的位組合“01111110作為幀的開始和結(jié)束標(biāo)志,所傳輸?shù)囊粠瑪?shù)據(jù)可以是任意位。所以傳輸?shù)男瘦^高,但實(shí)現(xiàn)的硬件設(shè)備比異步通信復(fù)雜。 10二、串行通信的傳輸方向1、單工單工是指數(shù)據(jù)傳輸僅能沿一個方向,不能實(shí)現(xiàn)反向傳輸。2、半雙工半雙工是指數(shù)據(jù)傳輸可以沿兩個方向,但需要分時進(jìn)行。3、全雙工全雙工是指數(shù)據(jù)可以同時進(jìn)行雙向傳輸。 單工 半雙工 全雙工11三、信號的調(diào)制與解調(diào) 利用調(diào)制

6、器(Modulator)把數(shù)字信號轉(zhuǎn)換成模擬信號,然后送到通信線路上去,再由解調(diào)器(Demodulator)把從通信線路上收到的模擬信號轉(zhuǎn)換成數(shù)字信號。由于通信是雙向的,調(diào)制器和解調(diào)器合并在一個裝置中,這就是調(diào)制解調(diào)器MODEM。12四、串行通信的錯誤校驗(yàn) 1、奇偶校驗(yàn)在發(fā)送數(shù)據(jù)時,數(shù)據(jù)位尾隨的1位為奇偶校驗(yàn)位(1或0)。奇校驗(yàn)時,數(shù)據(jù)中“1的個數(shù)與校驗(yàn)位“1的個數(shù)之和應(yīng)為奇數(shù);偶校驗(yàn)時,數(shù)據(jù)中“1的個數(shù)與校驗(yàn)位“1的個數(shù)之和應(yīng)為偶數(shù)。接收字符時,對“1的個數(shù)進(jìn)行校驗(yàn),假設(shè)發(fā)現(xiàn)不一致,則說明傳輸數(shù)據(jù)過程中出現(xiàn)了過失。3、循環(huán)冗余校驗(yàn)這種校驗(yàn)是通過某種數(shù)學(xué)運(yùn)算實(shí)現(xiàn)有效信息與校驗(yàn)位之間的循環(huán)校驗(yàn),

7、常用于對磁盤信息的傳輸、存儲區(qū)的完整性校驗(yàn)等。這種校驗(yàn)方法糾錯能力強(qiáng),廣泛應(yīng)用于同步通信中。2、代碼和校驗(yàn)代碼和校驗(yàn)是發(fā)送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或),產(chǎn)生一個字節(jié)的校驗(yàn)字符(校驗(yàn)和)附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)同時對數(shù)據(jù)塊(除校驗(yàn)字節(jié)外)求和(或各字節(jié)異或),將所得的結(jié)果與發(fā)送方的“校驗(yàn)和進(jìn)行比較,相符則無過失,否則即認(rèn)為傳送過程中出現(xiàn)了過失。13五、傳輸速率與傳輸距離 1、傳輸速率比特率是每秒鐘傳輸二進(jìn)制代碼的位數(shù),單位是:位秒(bps)。如每秒鐘傳送240個字符,而每個字符格式包含10位(1個起始位、1個停止位、8個數(shù)據(jù)位),這時的比特率為: 10位240個/秒 = 2400

8、bps波特率表示每秒鐘調(diào)制信號變化的次數(shù),單位是:波特(Baud)。 波特率和比特率不總是相同的,對于將數(shù)字信號1或0直接用兩種不同電壓表示的所謂基帶傳輸,比特率和波特率是相同的。所以,我們也經(jīng)常用波特率表示數(shù)據(jù)的傳輸速率。142、傳輸距離與傳輸速率的關(guān)系 串行接口或終端直接傳送串行信息位流的最大距離與傳輸速率及傳輸線的電氣特性有關(guān)。當(dāng)傳輸線使用每0.3m(約1英尺)有50PF電容的非平衡屏蔽雙絞線時,傳輸距離隨傳輸速率的增加而減小。當(dāng)比特率超過1000 bps 時,最大傳輸距離迅速下降,如9600 bps 時最大距離下降到只有76m(約250英尺)。156.1.2 串行通信接口標(biāo)準(zhǔn) 一、RS

9、-232C接口 RS-232C是EIA(美國電子工業(yè)協(xié)會)1969年修訂RS-232C標(biāo)準(zhǔn)。RS-232C定義了數(shù)據(jù)終端設(shè)備(DTE)與數(shù)據(jù)通信設(shè)備(DCE)之間的物理接口標(biāo)準(zhǔn)。1、機(jī)械特性RS-232C接口規(guī)定使用25針連接器,連接器的尺寸及每個插針的排列位置都有明確的定義。(陽頭)162、功能特性174、過程特性 過程特性規(guī)定了信號之間的時序關(guān)系,以便正確地接收和發(fā)送數(shù)據(jù) 。遠(yuǎn)程通信連接 18近程通信連接 195、RS-232C電平與TTL電平轉(zhuǎn)換驅(qū)動電路206、采用RS-232C接口存在的問題1、傳輸距離短,傳輸速率低 RS-232C總線標(biāo)準(zhǔn)受電容允許值的約束,使用時傳輸距離一般不要超過

10、15米(線路條件好時也不超過幾十米)。最高傳送速率為20Kbps。2、有電平偏移 RS-232C總線標(biāo)準(zhǔn)要求收發(fā)雙方共地。通信距離較大時,收發(fā)雙方的地電位差異較大,在信號地上將有比較大的地電流并產(chǎn)生壓降。3、抗干擾能力差 RS-232C在電平轉(zhuǎn)換時采用單端輸入輸出,在傳輸過程中當(dāng)干擾和噪聲混在正常的信號中。為了提高信噪比,RS-232C總線標(biāo)準(zhǔn)不得不采用比較大的電壓擺幅。21二、RS-422A接口 RS-422A輸出驅(qū)動器為雙端平衡驅(qū)動器。如果其中一條線為邏輯“1狀態(tài),另一條線就為邏輯“0,比采用單端不平衡驅(qū)動對電壓的放大倍數(shù)大一倍。差分電路能從地線干擾中拾取有效信號,差分接收器可以分辨200

11、mV以上電位差。假設(shè)傳輸過程中混入了干擾和噪聲,由于差分放大器的作用,可使干擾和噪聲相互抵消。因此可以防止或大大減弱地線干擾和電磁干擾的影響。RS-422A傳輸速率(90Kbps)時,傳輸距離可達(dá)1200米。 22三、RS-485接口 RS-485是RS-422A的變型:RS-422A用于全雙工,而RS-485則用于半雙工。RS-485是一種多發(fā)送器標(biāo)準(zhǔn),在通信線路上最多可以使用32 對差分驅(qū)動器/接收器。如果在一個網(wǎng)絡(luò)中連接的設(shè)備超過32個,還可以使用中繼器。 RS-485的信號傳輸采用兩線間的電壓來表示邏輯1和邏輯0。由于發(fā)送方需要兩根傳輸線,接收方也需要兩根傳輸線。傳輸線采用差動信道,所

12、以它的干擾抑制性極好,又因?yàn)樗淖杩沟?無接地問題,所以傳輸距離可達(dá)1200米,傳輸速率可達(dá)1Mbps。23 RS-485是一點(diǎn)對多點(diǎn)的通信接口,一般采用雙絞線的結(jié)構(gòu)。普通的PC機(jī)一般不帶RS485接口,因此要使用RS-232C/RS-485轉(zhuǎn)換器。對于單片機(jī)可以通過芯片MAX485來完成TTL/RS-485的電平轉(zhuǎn)換。在計(jì)算機(jī)和單片機(jī)組成的RS-485通信系統(tǒng)中,下位機(jī)由單片機(jī)系統(tǒng)組成,上位機(jī)為普通的PC機(jī),負(fù)責(zé)監(jiān)視下位機(jī)的運(yùn)行狀態(tài),并對其狀態(tài)信息進(jìn)行集中處理,以圖文方式顯示下位機(jī)的工作狀態(tài)以及工業(yè)現(xiàn)場被控設(shè)備的工作狀況。系統(tǒng)中各節(jié)點(diǎn)(包括上位機(jī))的識別是通過設(shè)置不同的站地址來實(shí)現(xiàn)的。246

13、.2 80C51的串行口 有兩個物理上獨(dú)立的接收、發(fā)送緩沖器SBUF,它們占用同一地址99H ;接收器是雙緩沖結(jié)構(gòu) ;發(fā)送緩沖器,因?yàn)榘l(fā)送時CPU是主動的,不會產(chǎn)生重疊錯誤。 6.2.1 80C51串行口的結(jié)構(gòu) 25 SCON 是一個特殊功能存放器,用以設(shè)定串行口的工作方式、接收/發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志: 6.2.2 80C51串行口的控制存放器 SM0和SM1為工作方式選擇位,可選擇四種工作方式: 26SM2,多機(jī)通信控制位,主要用于方式2和方式3。當(dāng)接收機(jī)的SM2=1時可以利用收到的RB8來控制是否激活RI(RB80時不激活RI,收到的信息丟棄;RB81時收到的數(shù)據(jù)進(jìn)入SBUF,并激活R

14、I,進(jìn)而在中斷效勞中將數(shù)據(jù)從SBUF讀走)。當(dāng)SM2=0時,不管收到的RB8為0和1,均可以使收到的數(shù)據(jù)進(jìn)入SBUF,并激活RI(即此時RB8不具有控制RI激活的功能)。通過控制SM2,可以實(shí)現(xiàn)多機(jī)通信。在方式0時,SM2必須是0。在方式1時,假設(shè)SM2=1,則只有接收到有效停止位時,RI才置1。REN,允許串行接收位。由軟件置REN=1,則啟動串行口接收數(shù)據(jù);假設(shè)軟件置REN=0,則禁止接收。27TB8,在方式2或方式3中,是發(fā)送數(shù)據(jù)的第九位,可以用軟件規(guī)定其作用??梢杂米鲾?shù)據(jù)的奇偶校驗(yàn)位,或在多機(jī)通信中,作為地址幀/數(shù)據(jù)幀的標(biāo)志位。在方式0和方式1中,該位未用。RB8,在方式2或方式3中,

15、是接收到數(shù)據(jù)的第九位,作為奇偶校驗(yàn)位或地址幀/數(shù)據(jù)幀的標(biāo)志位。在方式1時,假設(shè)SM2=0,則RB8是接收到的停止位。28TI,發(fā)送中斷標(biāo)志位。在方式0時,當(dāng)串行發(fā)送第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行發(fā)送停止位的開始時,由內(nèi)部硬件使TI置1,向CPU發(fā)中斷申請。在中斷效勞程序中,必須用軟件將其清0,取消此中斷申請。RI,接收中斷標(biāo)志位。在方式0時,當(dāng)串行接收第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行接收停止位的中間時,由內(nèi)部硬件使RI置1,向CPU發(fā)中斷申請。也必須在中斷效勞程序中,用軟件將其清0,取消此中斷申請。29PCON中只有一位SMOD與串行口工作有關(guān) : SMOD(PCON.7) 波特率倍

16、增位。在串行口方式1、方式2、方式3時,波特率與SMOD有關(guān),當(dāng)SMOD=1時,波特率提高一倍。復(fù)位時,SMOD=0。306.2.3 80C51串行口的工作方式 一、方式0 方式0時,串行口為同步移位存放器的輸入輸出方式。主要用于擴(kuò)展并行輸入或輸出口。數(shù)據(jù)由RXD(P3.0)引腳輸入或輸出,同步移位脈沖由TXD(P3.1)引腳輸出。發(fā)送和接收均為8位數(shù)據(jù),低位在先,高位在后。波特率固定為fosc/12。 1、方式0輸出31 2、方式0輸入 方式0接收和發(fā)送電路32二、方式1 方式1是10位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式如下圖。其中1位起始位,8

17、位數(shù)據(jù)位,1位停止位。 1、方式1輸出33 2、方式1輸入 用軟件置REN為1時,接收器以所選擇波特率的16倍速率采樣RXD引腳電平,檢測到RXD引腳輸入電平發(fā)生負(fù)跳變時,則說明起始位有效,將其移入輸入移位存放器,并開始接收這一幀信息的其余位。接收過程中,數(shù)據(jù)從輸入移位存放器右邊移入,起始位移至輸入移位存放器最左邊時,控制電路進(jìn)行最后一次移位。當(dāng)RI=0,且SM2=0(或接收到的停止位為1)時,將接收到的9位數(shù)據(jù)的前8位數(shù)據(jù)裝入接收SBUF,第9位(停止位)進(jìn)入RB8,并置RI=1,向CPU請求中斷。34三、方式2和方式3 方式2或方式3時為11位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD

18、為數(shù)據(jù)接收引腳 。 方式2和方式3時起始位1位,數(shù)據(jù)9位(含1位附加的第9位,發(fā)送時為SCON中的TB8,接收時為RB8),停止位1位,一幀數(shù)據(jù)為11位。方式2的波特率固定為晶振頻率的1/64或1/32,方式3的波特率由定時器T1的溢出率決定。 351、方式2和方式3輸出 發(fā)送開始時,先把起始位0輸出到TXD引腳,然后發(fā)送移位存放器的輸出位(D0)到TXD引腳。每一個移位脈沖都使輸出移位存放器的各位右移一位,并由TXD引腳輸出。 第一次移位時,停止位“1移入輸出移位存放器的第9位上 ,以后每次移位,左邊都移入0。當(dāng)停止位移至輸出位時,左邊其余位全為0,檢測電路檢測到這一條件時,使控制電路進(jìn)行最

19、后一次移位,并置TI=1,向CPU請求中斷。 362、方式2和方式3輸入 接收時,數(shù)據(jù)從右邊移入輸入移位存放器,在起始位0移到最左邊時,控制電路進(jìn)行最后一次移位。當(dāng)RI=0,且SM2=0(或接收到的第9位數(shù)據(jù)為1)時,接收到的數(shù)據(jù)裝入接收緩沖器SBUF和RB8(接收數(shù)據(jù)的第9位),置RI=1,向CPU請求中斷。如果條件不滿足,則數(shù)據(jù)喪失,且不置位RI,繼續(xù)搜索RXD引腳的負(fù)跳變。37四、波特率的計(jì)算 在串行通信中,收發(fā)雙方對發(fā)送或接收數(shù)據(jù)的速率要有約定。通過軟件可對單片機(jī)串行口編程為四種工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可變的,由定時器T1的溢出率來決定。

20、 串行口的四種工作方式對應(yīng)三種波特率。由于輸入的移位時鐘的來源不同,所以,各種方式的波特率計(jì)算公式也不相同。方式0的波特率 = fosc/12方式2的波特率 =(2SMOD/64) fosc 方式1的波特率 =(2SMOD/32)(T1溢出率)方式3的波特率 =(2SMOD/32)(T1溢出率)38 當(dāng)T1作為波特率發(fā)生器時,最典型的用法是使T1工作在自動再裝入的8位定時器方式(即方式2,且TCON的TR1=1,以啟動定時器)。這時溢出率取決于TH1中的計(jì)數(shù)值。 T1 溢出率 = fosc /12256 (TH1) 在單片機(jī)的應(yīng)用中,常用的晶振頻率為:12MHz和11.0592MHz。所以,選

21、用的波特率也相對固定。常用的串行口波特率以及各參數(shù)的關(guān)系如表所示。39 串行口工作之前,應(yīng)對其進(jìn)行初始化,主要是設(shè)置產(chǎn)生波特率的定時器1、串行口控制和中斷控制。具體步驟如下:確定T1的工作方式(編程TMOD存放器);計(jì)算T1的初值,裝載TH1、TL1;啟動T1(編程TCON中的TR1位);確定串行口控制(編程SCON存放器);串行口在中斷方式工作時,要進(jìn)行中斷設(shè)置(編程IE、IP存放器)。406.3 單片機(jī)串行口應(yīng)用舉例 在計(jì)算機(jī)分布式測控系統(tǒng)中,經(jīng)常要利用串行通信方式進(jìn)行數(shù)據(jù)傳輸。80C51單片機(jī)的串行口為計(jì)算機(jī)間的通信提供了極為便利的條件。利用單片機(jī)的串行口還可以方便地?cái)U(kuò)展鍵盤和顯示器,對

22、于簡單的應(yīng)用非常便利。這里僅介紹單片機(jī)串行口在通信方面的應(yīng)用,關(guān)于鍵盤和顯示器的擴(kuò)展將在下一章介紹。416.3.1 單片機(jī)與單片機(jī)的通信 一、點(diǎn)對點(diǎn)的通信 1、硬件連接 42二、應(yīng)用程序 43 設(shè)1號機(jī)是發(fā)送方,2號機(jī)是接收方。當(dāng)1號機(jī)發(fā)送時,先發(fā)送一個“E1聯(lián)絡(luò)信號,2號機(jī)收到后答復(fù)一個“E2應(yīng)答信號,表示同意接收。當(dāng)1號機(jī)收到應(yīng)答信號“E2后,開始發(fā)送數(shù)據(jù),每發(fā)送一個數(shù)據(jù)字節(jié)都要計(jì)算“校驗(yàn)和,假定數(shù)據(jù)塊長度為16個字節(jié),起始地址為40H,一個數(shù)據(jù)塊發(fā)送完畢后立即發(fā)送“校驗(yàn)和。2號機(jī)接收數(shù)據(jù)并轉(zhuǎn)存到數(shù)據(jù)緩沖區(qū),起始地址也為40H,每接收到一個數(shù)據(jù)字節(jié)便計(jì)算一次“校驗(yàn)和,當(dāng)收到一個數(shù)據(jù)塊后,再

23、接收1號機(jī)發(fā)來的“校驗(yàn)和,并將它與2號機(jī)求出的校驗(yàn)和進(jìn)行比較。假設(shè)兩者相等,說明接收正確,2號機(jī)答復(fù)00H;假設(shè)兩者不相等,說明接收不正確,2號機(jī)答復(fù)0FFH,請求重發(fā)。1號機(jī)接到00H后結(jié)束發(fā)送。假設(shè)收到的答復(fù)非零,則重新發(fā)送數(shù)據(jù)一次。雙方約定采用串行口方式1進(jìn)行通信,一幀信息為10位,其中有1個起始位、8個數(shù)據(jù)位和一個停止位;波特率為2400波特,T1工作在定時器方式2,振蕩頻率選用11.0592MHZ,查表可得TH1=TL1=0F4H,PCON存放器的SMOD位為0。 44發(fā)送程序清單如下: ASTART:CLR EA MOV TMOD,#20H ;定時器1置為方式2 MOV TH1,#

24、0F4H ;裝載定時器初值,波特率2400 MOV TL1,#0F4H MOV PCON,#00H SETB TR1 ;啟動定時器 MOV SCON,#50H ;設(shè)定串口方式1,且準(zhǔn)備接收應(yīng)答信號 ALOOP1:MOV SBUF,#0E1H ;發(fā)聯(lián)絡(luò)信號 JNB TI,$ ;等待一幀發(fā)送完畢 CLR TI ;允許再發(fā)送 JNB RI,$ ;等待2號機(jī)的應(yīng)答信號 CLR RI ;允許再接收 MOV A,SBUF ;2號機(jī)應(yīng)答后,讀至A XRL A,#0E2H ;判斷2號機(jī)是否準(zhǔn)備完畢 JNZ ALOOP1 ;2號機(jī)未準(zhǔn)備好,繼續(xù)聯(lián)絡(luò) ALOOP2:MOV R0,#40H ;2號機(jī)準(zhǔn)備好,設(shè)定數(shù)據(jù)

25、塊地址指針初值 MOV R7,#10H ;設(shè)定數(shù)據(jù)塊長度初值 MOV R6,#00H ;清校驗(yàn)和單元45 ALOOP3:MOV SBUF,R0 ;發(fā)送一個數(shù)據(jù)字節(jié) MOV A,R6 ADD A,R0 ;求校驗(yàn)和 MOV R6,A ;保存校驗(yàn)和 INC R0 JNB TI,$ CLR TI DJNZ R7,ALOOP3 ;整個數(shù)據(jù)塊是否發(fā)送完畢 MOV SBUF,R6 ;發(fā)送校驗(yàn)和 JNB TI,$ CLR TI JNB RI,$ ;等待2號機(jī)的應(yīng)答信號 CLR RI MOV A,SBUF ;2號機(jī)應(yīng)答,讀至A JNZ ALOOP2 ;2號機(jī)應(yīng)答“錯誤,轉(zhuǎn)重新發(fā)送 RET ;2號機(jī)應(yīng)答“正確,返

26、回46接收程序清單如下: BSTART:CLR EA MOV TMOD,#20H MOV TH1,#0F4H MOV TL1,#0F4H MOV PCON,#00H SETB TR1 MOV SCON,#50H ;設(shè)定串口方式1,且準(zhǔn)備接收 BLOOP1:JNB RI,$ ;等待1號機(jī)的聯(lián)絡(luò)信號 CLR RI MOV A,SBUF ;收到1號機(jī)信號 XRL A,#0E1H ;判是否為1號機(jī)聯(lián)絡(luò)信號 JNZ BLOOP1 ;不是1號機(jī)聯(lián)絡(luò)信號,再等待 MOV SBUF,#0E2H ;是1號機(jī)聯(lián)絡(luò)信號,發(fā)應(yīng)答信號 JNB TI,$ CLR TI MOV R0,#40H ;設(shè)定數(shù)據(jù)塊地址指針初值 MOV R7,#10H ;設(shè)定數(shù)據(jù)塊長度初值 MOV R6,#00H ;清校驗(yàn)和單元47BLOOP2:JNB RI,$ CLR RI MOV A,SBUF MOV R0,A ;接收數(shù)據(jù)轉(zhuǎn)儲 INC R0 ADD A,R6 ;求校驗(yàn)和 MOV R6,A DJNZ R7,BLOOP2 ;判數(shù)據(jù)塊是否接收完畢 JNB RI,$ ;完畢,接收1號機(jī)發(fā)來的校驗(yàn)和 CLR RI MOV A,SBUF XRL A,R6 ;比較校驗(yàn)和 JZ END1 ;校驗(yàn)和相等,跳至發(fā)正確標(biāo)志 MOV SBUF,#0FFH ;校驗(yàn)和不相等,發(fā)錯誤標(biāo)志 JNB TI,$ ;轉(zhuǎn)重新接收 CLR TIEND1:M

溫馨提示

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

評論

0/150

提交評論