版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
80C51單片微機(jī)的串行口
原理及應(yīng)用
通常把電腦與外界的數(shù)據(jù)傳送稱為通信,隨著80C51應(yīng)用範(fàn)圍的不斷拓寬,單臺(tái)儀器儀錶或控制器往往會(huì)帶有不止一個(gè)的單片微機(jī),而多個(gè)智能儀器儀錶或控制器在單片微機(jī)應(yīng)用系統(tǒng)中又常常會(huì)構(gòu)成一個(gè)分佈式採集、控制系統(tǒng),上層由PC進(jìn)行集中管理等。單片微機(jī)的通信功能也隨之得到發(fā)展。7.1串行數(shù)據(jù)通信概述
⒈並行傳送方式與串行傳送方式電腦的數(shù)據(jù)傳送共有兩種方式∶並行數(shù)據(jù)傳送和串行數(shù)據(jù)傳送。
⑴並行傳送方式
在數(shù)據(jù)傳輸時(shí),如果一個(gè)數(shù)據(jù)編碼字元的所有各位都同時(shí)發(fā)送、並排傳輸,又同時(shí)被接收,則將這種傳送方式稱為並行傳送方式。並行傳送方式要求物理通道為並行內(nèi)匯流排或者並行外匯流排。
並行數(shù)據(jù)傳送方式的特點(diǎn)是傳送速度快、效率高。但由於需要的傳送數(shù)據(jù)線多,因而傳輸成本高。並行數(shù)據(jù)傳輸?shù)木嚯x通常小於30米。而在電腦內(nèi)部的數(shù)據(jù)傳送都是並行傳送的。
⑵串行傳送方式
在數(shù)據(jù)傳輸時(shí),如果一個(gè)數(shù)據(jù)編碼字元的所有各位不是同時(shí)發(fā)送,而是按一定順序,一位接著一位在通道中被發(fā)送和接收,則將這種傳送方式稱為串行傳送方式。串行傳送方式的物理通道為串行匯流排。串行數(shù)據(jù)傳送方式的特點(diǎn)是成本低,但速度慢。電腦與外界的數(shù)據(jù)傳送大多是串行的,其傳送距離可以從幾米直到幾千公里。
⒉單工方式、半雙工方式、全雙工方式
按照信號(hào)傳輸?shù)姆较蚝屯瑫r(shí)性,一般把傳送方式分為單工方式、半雙工方式和全雙工方式三種。
⑴單工方式
信號(hào)(不包括聯(lián)絡(luò)信號(hào))在通道中只能沿一個(gè)方向傳送,而不能沿相反方向傳送的工作方式稱為單工方式。
⑵半雙工方式
通信的雙方均具有發(fā)送和接收資訊的能力,通道也具有雙向傳輸性能,但是,通信的任何一方都不能同時(shí)既發(fā)送資訊又接收資訊,即在指定的時(shí)刻,只能沿某一個(gè)方向傳送資訊。這樣的傳送方式稱為半雙工方式。半雙工方式大多採用雙線制。
⑶全雙工方式
若信號(hào)在通信雙方之間沿兩個(gè)方向同時(shí)傳送,任何一方在同一時(shí)刻既能發(fā)送又能接
收資訊,這樣的方式稱為全雙工方式。
⒊非同步傳輸和同步傳輸 在數(shù)據(jù)通信中,要保證發(fā)送的信號(hào)在接收端能被正確地接收,必須採用同步技術(shù)。常用的同步技術(shù)有兩種方式,一種稱為非同步傳輸也稱起止同步方式,另一種稱為同步傳輸也稱同步字元同步方式。
⑴非同步傳輸
非同步傳輸以字元為單位進(jìn)行數(shù)據(jù)傳輸,每個(gè)字元都用起始位、停止位包裝起來,在字元間允許有長短不一的間隙。 在單片微機(jī)中使用的串行通信都是非同步方式。
⑵同步傳輸
同步傳輸用來對數(shù)據(jù)塊進(jìn)行傳輸,一個(gè)數(shù)據(jù)塊中包含著許多連續(xù)的字元,在字元之間沒有空閒。同步傳輸可以方便地實(shí)現(xiàn)某一通信協(xié)議要求的幀格式。
⒋串列傳輸速率(BAUDRATE)
串行通信的傳送速率用於說明數(shù)據(jù)傳送的快慢,串列傳輸速率表示串行通信時(shí)每秒鐘傳送”位”的數(shù)目,比如1s傳送1bit,就是1波特。即1波特=1bit/s(位/秒)
串行通信常用的標(biāo)準(zhǔn)串列傳輸速率在RS-232C標(biāo)準(zhǔn)中已有規(guī)定,如串列傳輸速率為600、1200、2400、4800、9600、19200等等。 假若數(shù)據(jù)傳送速率為120字元/s,而每一個(gè)字元幀已規(guī)定為10個(gè)數(shù)據(jù)位,則傳輸速率為120×10=1200bit/s,即串列傳輸速率為1200,每一位數(shù)據(jù)傳送的時(shí)間為串列傳輸速率的倒數(shù):
T=1÷1200=0.833ms
7.280C51串行口及控制
7.2.180C51串行口結(jié)構(gòu)
串行數(shù)據(jù)通信主要有兩個(gè)技術(shù)問題,一個(gè)是數(shù)據(jù)傳送,另一個(gè)是數(shù)據(jù)轉(zhuǎn)換。數(shù)據(jù)傳送主要解決傳送中的標(biāo)準(zhǔn)、數(shù)據(jù)幀格式及工作方式等。數(shù)據(jù)轉(zhuǎn)換要解決把數(shù)據(jù)進(jìn)行串、並行的轉(zhuǎn)換,這種轉(zhuǎn)換通常由通用非同步接收發(fā)送器(UART)電路來完成。數(shù)據(jù)發(fā)送端,要把並行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù),而在數(shù)據(jù)接收端,要把串行數(shù)據(jù)轉(zhuǎn)換為並行數(shù)據(jù)。80C51中已集成有UART,有的型號(hào)在內(nèi)部還集成了兩個(gè)UART。而在其他一些型號(hào)中又增加了新的串行口,如8XC552中就增加了具有I2C匯流排功能的串行口。
80C51中的串行口是一個(gè)全雙工的非同步串行通信介面,它可作UART(通用非同步接收和發(fā)送器)用,也可作同步移位寄存器用。 所謂全雙工的非同步串行通信介面,是說該介面可以同時(shí)進(jìn)行接收和發(fā)送數(shù)據(jù),口內(nèi)的接收緩衝器和發(fā)送緩衝器在物理上是隔離的,即是完全獨(dú)立的??梢酝ㄟ^訪問特殊功能寄存器SBUF,來訪問接收緩衝器和發(fā)送緩衝器。接收緩衝器具有雙緩衝的功能,即它在接收第一個(gè)數(shù)據(jù)位元組後,能接收笫二個(gè)數(shù)據(jù)位元組。但是在接收完第二個(gè)位元組後,若笫一個(gè)數(shù)據(jù)字節(jié)還未取走,那麼該數(shù)據(jù)字節(jié)將丟失。
80C51串行口基本結(jié)構(gòu)如圖7–1所示。主要由兩大部分組成。
⒈串列傳輸速率發(fā)生器:
主要由T1、T2及內(nèi)部的一些控制開關(guān)和分頻器所組成。它提供串行口的時(shí)鐘信號(hào)為
TXCLOCK(發(fā)送時(shí)鐘)和
RXCLOCK(接收時(shí)鐘)。相應(yīng)的控制串列傳輸速率發(fā)生器的特殊功能寄存器有
TMOD、TCON、T2CON、PCON、TL1、TH1、TL2、TH2等。
⒉串行口的內(nèi)部
⑴串行數(shù)據(jù)緩衝寄存器SBUF
有接收緩衝器SBUF和發(fā)送緩衝器SBUF,以便80C51能以全雙工方式進(jìn)行通信。它們在物理上是隔離的,但是佔(zhàn)用同一個(gè)地址(99H)。
⑵串行口控制寄存器SCON ⑶串行數(shù)據(jù)輸入/輸出引腳 接收方式下,串行數(shù)據(jù)從RXD(P3.0)引腳輸入,串行口內(nèi)部在接收緩衝器之前還有移位寄存器,從而構(gòu)成了串行接收的雙緩衝結(jié)構(gòu),可以避免在數(shù)據(jù)接收過程中出現(xiàn)幀重疊錯(cuò)誤,即在下一幀數(shù)據(jù)來時(shí),前一幀數(shù)據(jù)還沒有讀走。 在發(fā)送方式下,串行數(shù)據(jù)通過TXD(P3.1)引腳輸出。
⑷串行口控制邏輯
·接受來自串列傳輸速率發(fā)生器的時(shí)鐘信號(hào)——TXCLOCK(發(fā)送時(shí)鐘)和RXCLOCK(接收時(shí)鐘);
·控制內(nèi)部的輸入移位寄存器將外部的串行數(shù)據(jù)轉(zhuǎn)換為並行數(shù)據(jù);
·控制內(nèi)部的輸出移位寄存器將內(nèi)部的並行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)輸出;
·控制串行中斷(RI和TI)。
7.2.280C51串行口控制
⒈串行口狀態(tài)控制寄存器SCON
串行口狀態(tài)控制寄存器SCON用來控制串行通信的方式選擇、接收,指示串行口的中斷狀態(tài)。寄存器SCON既可位元組尋址也可位尋址,位元組地址為98H,位地址為98H~9FH。其格式如下:位地址
9FH
9EH9DH9CH
9BH9AH99H
98H位功能SM0SM1SM2REN
TB8
RB8
TI
RI⑴SM0(SCON.7),SM1(SCON.6)——串行口工作方式選擇位。其功能見表7–1。⑵SM2(SCON.5)—允許方式2、3中的多處理機(jī)通信位。 方式0時(shí),SM2=0。 方式1時(shí),若SM2=l,只有接收到有效的停止位,接收中斷RI才置1。 方式2和方式3時(shí),若SM2=1,則只有當(dāng)接收到的第9位數(shù)據(jù)(RB8)為1時(shí),才將接收到的前8位數(shù)據(jù)送入緩衝器SBUF中,並把RI置1、同時(shí)向CPU申請中斷;如果接收到的第9位數(shù)據(jù)(RB8)為0,RI置0,將接收到的前8位數(shù)據(jù)丟棄。 而當(dāng)SM2=0時(shí),則不論接收到的笫九位數(shù)據(jù)是0或1,都將前8位數(shù)據(jù)裝入SBUF中,並申請中斷。
⑶REN(SCON.4)——允許串行接收位。
REN=1時(shí),允許串行接收;REN=0時(shí),禁止串行接收。 用軟體置位/清除。⑷TB8(SCON.3)——方式2和方式3中要發(fā)送的第9位數(shù)據(jù)。 在通信協(xié)議中,常規(guī)定TB8作為奇偶校驗(yàn)位。在80C51多機(jī)通信中,TB8=0用來表示數(shù)據(jù)幀;TB8=1表示是地址幀。 用軟體置位/清除。⑸RB8(SCON.2)——方式2和方式3中接收到的第9位數(shù)據(jù)。
方式1中接收到的是停止位。方式0中不使用這一位。
⑹TI(SCON.1)——發(fā)送中斷標(biāo)誌位。 方式0中,在發(fā)送第8位末尾置位;在其他方式時(shí),在發(fā)送停止位開始時(shí)設(shè)置。 由硬體置位,用軟體清除。⑺RI(SCON.0)——接收中斷標(biāo)誌位。 方式0中,在接收第8位末尾置位;在其他方式時(shí),在接收停止位中間設(shè)置。 由硬體置位,用軟體清除。 系統(tǒng)複位後,SCON中所有位都被清除。 ⒉電源控制寄存器PCON
其中最高位SMOD與串行口控制有關(guān),其他位與掉電方式有關(guān)。其格式如下:
D7
D6
D5
D4
D3
D2
D1
D0SMOD———
GF1
GF0
PD
IDL
SMOD(PCON.7)——串行通信串列傳輸速率係數(shù)控制位。
當(dāng)SMOD=1時(shí),使串列傳輸速率加倍。複位後,SMOD=0。
⒊串行數(shù)據(jù)寄存器SBUF
包含在物理上是隔離的兩個(gè)8位寄存器:發(fā)送數(shù)據(jù)寄存器和接收數(shù)據(jù)寄存器,它們共用一個(gè)地址——99H。其格式如下:
D7
D6
D5
D4
D3
D2
D1
D0SD7
SD6
SD5
SD4
SD3
SD2
SD1
SD0
讀SBUF(MOV A,SBUF),訪問接收數(shù)據(jù)寄存器;寫SBUF(MOVSBUF,A),訪問發(fā)送數(shù)據(jù)寄存器。
7.3串行口的工作方式
在串行口控制寄存器SCON中,SM0和SM1位決定串行口的工作方式。80C51串行口共有四種工作方式。
7.3.1串行口方式0—同步移位寄存器方式
當(dāng)SM0=0、SM1=0時(shí),串行口選擇方式0。這種工作方式實(shí)質(zhì)上是一種同步移位寄器方式。
·數(shù)據(jù)傳輸串列傳輸速率固定為(1/12)fosc。
·由RXD(P3.0)引腳輸入或輸出數(shù)據(jù),
·由TXD(P3.1)引腳輸出同步移位時(shí)鐘。
·接收/發(fā)送的是8位數(shù)據(jù),傳輸時(shí)低位在前。幀格式如下:
…D0D1D2D3D4D5D6D7…方式0時(shí)的工作原理圖如圖7-2所示。
⑴發(fā)送 當(dāng)執(zhí)行任何一條寫SBUF的指令(MOVSBUF,A)時(shí),就啟動(dòng)串行數(shù)據(jù)的發(fā)送。 在執(zhí)行寫入SBUF的指令時(shí),選通內(nèi)部D觸發(fā)器置1,構(gòu)成發(fā)送移位寄存器的第9位, 並使發(fā)送控制器開始發(fā)送。當(dāng)發(fā)送脈衝有效之後,移位寄存器的內(nèi)容由RXD(P3.0)引腳串行移位輸出;移位脈衝由TXD(P3.l)引腳輸出。
在發(fā)送有效的期間,每個(gè)機(jī)器週期,發(fā)送移位寄存器右移一位,在其左邊補(bǔ)0。當(dāng)數(shù)據(jù)最高位移到移位寄存器的輸出位時(shí),原寫入第9位的
l正好移到最高位的左邊一位,由此向左的所有位均為
0,零檢測器通知發(fā)送控制器要進(jìn)行最後一次移位,並撤銷發(fā)送有效,同時(shí)使發(fā)送中斷標(biāo)誌TI置位。至此,完成了一幀數(shù)據(jù)發(fā)送的全過程。若CPU回應(yīng)中斷,則執(zhí)行從0023H開始的串行口發(fā)送中斷服務(wù)程式。
⑵接收 當(dāng)REN=1(允許接收)且RI位清除時(shí),就會(huì)啟動(dòng)一次接收過程。 在下一機(jī)器週期的S6P2時(shí)刻,接收控制器將11111110寫入接收移位寄存器,並在下一時(shí)鐘週期S1P1使接收控制器的接收有效,打開“與非門”,同時(shí)由TXD引腳輸出移位脈衝。在移位脈衝控制下,接收移位寄存器的內(nèi)容每一個(gè)機(jī)器週期左移一位,同時(shí)由RXD引腳接收一位輸入信號(hào)。 每當(dāng)接收移位寄存器左移一位,原寫入的11111110也左移一位。當(dāng)最右邊的0移到最左邊時(shí),標(biāo)誌著接收控制器要進(jìn)行最後一次移位。在最後一次移位即將結(jié)束時(shí),接收移位寄存器的內(nèi)容送入接收數(shù)據(jù)緩衝寄存器SBUF,然後在啟動(dòng)接收的第10個(gè)機(jī)器週期的S1P1時(shí),清除接收信號(hào),置位SCON中的RI,發(fā)出中斷申請。完成一幀數(shù)據(jù)的接收過程。若CPU回應(yīng)中斷,則執(zhí)行從0023H開始的串行口接收中斷服務(wù)程式7.3.2串行口方式1-8位UART
當(dāng)SM0=0、SM1=l時(shí),串行口選擇方式1。
·數(shù)據(jù)傳輸串列傳輸速率由T1和T2的溢出決定,可用程式設(shè)定。當(dāng)T2CON寄存器中的RCLK和TCLK置位時(shí),採用T2作為串行口接收和發(fā)送的串列傳輸速率發(fā)生器。而當(dāng)RCLK和TCLK都為零時(shí),採用T1作為串行口接收和發(fā)送的串列傳輸速率發(fā)生器。
·由TXD(P3.1)引腳發(fā)送數(shù)據(jù)。
·由RXD(P3.0)引腳接收數(shù)據(jù)。
·發(fā)送或接收一幀資訊為10位:1位起始位(0)、8位數(shù)據(jù)位(低位在前)和l位停止位(1)。幀格式如下:
起始D0D1D2D3D4D5D6D7停止⑴發(fā)送:方式1時(shí),發(fā)送的工作原理圖如圖7-3所示。
當(dāng)執(zhí)行任何一條寫SBUF的指令時(shí),就啟動(dòng)串行數(shù)據(jù)的發(fā)送。在執(zhí)行寫入SBUF的指令時(shí),也將1寫入發(fā)送移位寄存器的第9位(由SBUF和1個(gè)獨(dú)立的D觸發(fā)器構(gòu)成),並通知發(fā)送控制器有發(fā)送請求。實(shí)際上發(fā)送過程開始於16分頻計(jì)數(shù)器下次滿度翻轉(zhuǎn)(由全1變?nèi)?)後的那個(gè)機(jī)器週期的開始。每位的發(fā)送過程與16分頻計(jì)數(shù)器同步,而不是與“寫SBUF”同步。
開始發(fā)送後的一個(gè)位週期,發(fā)送信號(hào)有效,開始將起始位送TXD引腳。一位時(shí)間後,數(shù)據(jù)信號(hào)有效。發(fā)送移位寄存器將數(shù)據(jù)由低位到高位順序輸出至TXD引腳。一位時(shí)間後,第一個(gè)移位脈衝出現(xiàn)將最低數(shù)據(jù)位從右邊移出,同時(shí)0從左邊擠入。當(dāng)最高數(shù)據(jù)位移至發(fā)送移位寄存器的出端時(shí),先前裝入的第9位的l,正好在最高數(shù)據(jù)位的左邊,而它的右邊全部為0。這種狀態(tài)被零檢測器檢測到,在第10個(gè)位週期(16分頻計(jì)數(shù)器回0時(shí)),發(fā)送控制器進(jìn)行最後一次移位,清除發(fā)送信號(hào),同時(shí)使SCON寄存器中TI置位,完成了一幀數(shù)據(jù)發(fā)送的全過程。若CPU回應(yīng)中斷,則執(zhí)行從0023H開始的串行口發(fā)送中斷服務(wù)程式。
⑵接收方式1時(shí),接收的工作原理圖如圖7-4所示。
當(dāng)REN=1且清除RI後,若在RXD引腳上檢測到一個(gè)1到0的跳變,立即啟動(dòng)一次接收。同時(shí),複位16分頻計(jì)數(shù)器,使輸入位的邊沿與時(shí)鐘對齊,並將1FFH(即9個(gè)l)寫入接收移位寄存器。接收控制器以串列傳輸速率的16倍的速率繼續(xù)對RXD(P3.0)引腳進(jìn)行檢測,
計(jì)數(shù)器的16個(gè)狀態(tài)把每一位的時(shí)間分為16份,對每一位時(shí)間的第7、8、9個(gè)計(jì)數(shù)狀態(tài),位檢測器對RXD端的值採樣,這三個(gè)狀態(tài)理論上對應(yīng)於每
一位的中央值。若發(fā)送端與接收端的串列傳輸速率有差異,就會(huì)發(fā)生偏移,只要這種差異在允許範(fàn)圍內(nèi),就不至於發(fā)生錯(cuò)位或漏碼。在上述三個(gè)狀態(tài)下,取得三個(gè)採樣值,其中至少有兩個(gè)值是一致的,即採用3取2的多數(shù)表決法,,可抑制雜訊。
如果在第1個(gè)時(shí)鐘週期中接收到的不是0,說明它不是一幀數(shù)據(jù)的起始位,則複位接收電路,繼續(xù)檢測RXD引腳上l到0的跳變。如果接收到的是起始位,就將其移入接收移位寄存器,然後接收該幀的其他位。接收到的位從右邊移入,原來寫入的1,從左邊移出,當(dāng)起始位移到最左邊時(shí),接收控制器將控制進(jìn)行最後一次移位,把接收到的9位數(shù)據(jù)送入接收數(shù)據(jù)緩衝器SBUF和RB8,而且置位RI。
在進(jìn)行最後一次移位時(shí),能將數(shù)據(jù)送入接收數(shù)據(jù)緩衝器SBUF和RB8,而且置位RI的條件是:
·RI=0即上一幀數(shù)據(jù)接收完成時(shí)發(fā)出的中斷請求已被回應(yīng),SBUF中數(shù)據(jù)已被取走。
·
SM2=0或接收到的停止位=1。
若以上兩個(gè)條件中有一個(gè)不滿足,將不可恢復(fù)地丟失接收到的這一幀資訊。
7.3.3串行口方式2和3—9位UART
當(dāng)SM0=1、SM1=0時(shí),串行口選擇方式2;當(dāng)SM1=1、SM0=1時(shí),串行口選擇方式3。
·由TXD(P3.l)引腳發(fā)送數(shù)據(jù)。
·由RXD(P3.0)引腳接收數(shù)據(jù)。
·發(fā)送或接收一幀資訊為11位:1位起始位(0)、8位數(shù)據(jù)位(低位在前)、1位可編程位和1位停止位(l)。發(fā)送時(shí)可編程位TB8可設(shè)置為1或0,接收時(shí)可編程位進(jìn)入SCON寄存器的RB8位。
·方式2的串列傳輸速率是固定的,為振盪器頻率的1/32或1/64。方式3的串列傳輸速率則由T1和T2的溢出決定,可用程式設(shè)定。
幀格式如下:
起始D0D1D2D3D4D5D6D7D8
停止方式2時(shí)的工作原理圖如圖7-5所示。⑴發(fā)送
當(dāng)執(zhí)行任何一條寫SBUF的指令時(shí),就啟動(dòng)串行數(shù)據(jù)的發(fā)送。在執(zhí)行寫入SBUF的指令時(shí),也將
1寫入發(fā)送移位寄存器的第
9位,並通知發(fā)送控制器有發(fā)送請求。實(shí)際上發(fā)送過程開始於16分頻計(jì)數(shù)器下次滿度翻轉(zhuǎn)(由全1變?nèi)?)後的那個(gè)機(jī)器週期的開始。所以每位的發(fā)送過程與16分頻計(jì)數(shù)器同步,而不是與“寫SBUF”同步。
開始發(fā)送後的一個(gè)位週期,發(fā)送信號(hào)有效,開始將起始位送TXD引腳。一位時(shí)間後,數(shù)據(jù)信號(hào)有效。發(fā)送移位寄存器將數(shù)據(jù)由低位到高位順序輸出至
TXD引腳。一位時(shí)間後,第一個(gè)移位脈衝出現(xiàn)將最低數(shù)據(jù)位從右邊移出,同時(shí)0從左邊擠入。當(dāng)最高數(shù)據(jù)位移至發(fā)送移位寄存器的輸出端時(shí),先前裝入的第
9位的
1,正好在最高數(shù)據(jù)位的左邊,而它的右邊全部為0。在第10個(gè)位週期間
(16分頻計(jì)數(shù)器回0時(shí)),發(fā)送控制器進(jìn)行最後一次移位,清除發(fā)送信號(hào),同時(shí)使TI置位。
⑵接收 當(dāng)REN=l且清除RI後,若在RXD引腳上檢測到一個(gè)l到0的跳變,立即啟動(dòng)一次接收。同時(shí),複位16分頻計(jì)數(shù)器,使輸入位的邊沿與時(shí)鐘對齊,並將1FFH(即9個(gè)1)寫入接收移位寄存器。接收控制器以串列傳輸速率的16倍的速率繼續(xù)對RXD引腳進(jìn)行檢測,對每一位時(shí)間的第7、8、9個(gè)計(jì)數(shù)狀態(tài)的採樣值用多數(shù)表決法,當(dāng)兩次或兩次以上的採樣值相同時(shí),採樣值予以接受。
如果在第1個(gè)時(shí)鐘週期中接收到的不是0,就複位接收電路,繼續(xù)檢測RXD引腳上
1到
0的跳變。如果接收到的是起始位,就將其移入接收移位寄存器,然後接該幀的其他位。接收到的位從右邊移入,原來寫入的1,從左邊移出,當(dāng)起始位移到最左邊時(shí),接收控制器將控制進(jìn)行最後一次移位,把接收到的9位數(shù)據(jù)送入接收數(shù)據(jù)緩衝器SBUF和RB8,而且置位RI。
在進(jìn)行最後一次移位時(shí),能將數(shù)據(jù)送入接收數(shù)據(jù)緩衝器SBUF和RB8,而且置位RI的條件是:
·RI=0;
·SM2=0或接收到的停止位=1。
若以上兩個(gè)條件中有一個(gè)不滿足,將不可恢復(fù)地丟失接收到的這一幀資訊。
7.4多處理機(jī)通信方式
某些應(yīng)用系統(tǒng)中,往往需要對多個(gè)對象進(jìn)行控制,採用一個(gè)單片微機(jī)來控制系統(tǒng)中一個(gè)對象,然後採用多處理機(jī)通信方式實(shí)現(xiàn)應(yīng)用系統(tǒng)的整個(gè)功能。 在串行口控制寄存器SCON中,設(shè)有多處理機(jī)通信位SM2(SCON.5)。 當(dāng)串行口以方式2或方式3接收時(shí),若SM2=1,只有當(dāng)接收到的第9位數(shù)據(jù)(RB8)為1時(shí),才將數(shù)據(jù)送入接收緩衝器SBUF,並使RI置1,申請中斷,否則數(shù)據(jù)將丟失;若SM2=0,則無論第9位數(shù)據(jù)(RB8)是1還是0,都能將數(shù)據(jù)裝入SBUF,並且發(fā)中斷。利用這一特性,便可實(shí)現(xiàn)主機(jī)與多個(gè)從機(jī)之間的串行通信。圖7-6為多機(jī)通信連線示意圖,系統(tǒng)中左邊的80C51為主機(jī),其餘的為1~n號(hào)從機(jī),並保證每臺(tái)從機(jī)在系統(tǒng)中的編號(hào)是惟一的。
系統(tǒng)初始化時(shí),將所有從機(jī)中的SM2位均設(shè)置為1,並處於允許串行口中斷接收狀態(tài)。 主機(jī)欲與某從機(jī)通信,先向所有從機(jī)發(fā)出所選從機(jī)的地址,從機(jī)地址符合後,接著才發(fā)送命令或數(shù)據(jù)。
·在主機(jī)發(fā)地址時(shí),置第9位數(shù)據(jù)(RB8)為1,表示主機(jī)發(fā)送的是地址幀;
·當(dāng)主機(jī)呼叫某從機(jī)聯(lián)絡(luò)正確後,主機(jī)發(fā)送命令或數(shù)據(jù)幀時(shí),將第9位數(shù)據(jù)(RB8)清0。
各從機(jī)由於SM2置1,將回應(yīng)主機(jī)發(fā)來的第9位數(shù)據(jù)(RB8)為1的地址資訊。從機(jī)回應(yīng)中斷後,有兩種不同的操作:
·若從機(jī)的地址與主機(jī)點(diǎn)名的地址不相同,則該從機(jī)將繼續(xù)維持SM2為l,從而拒絕接收主機(jī)後面發(fā)來的命令或數(shù)據(jù)資訊,等待主機(jī)的下一次點(diǎn)名。
·若從機(jī)的地址與主機(jī)點(diǎn)名的地址相同,該從機(jī)將本機(jī)的SM2清0,繼續(xù)接收主機(jī)發(fā)來的命令或數(shù)據(jù),回應(yīng)中斷。
7.5串行口的應(yīng)用
7.5.1串行口的串列傳輸速率發(fā)生器及串列傳輸速率計(jì)算
串行口的串列傳輸速率發(fā)生器如圖7-7所示。
·方式0時(shí)的串列傳輸速率由振盪器的頻率(fosc)所確定:串列傳輸速率為fosc/12。
·方式2時(shí)的串列傳輸速率由振盪器的頻率(fosc)和SMOD位(PCON.7)所確定:
當(dāng)SMOD位=1時(shí),串列傳輸速率=fosc/32;當(dāng)SMOD=0時(shí),串列傳輸速率=fosc/64。
·方式1和3時(shí)的串列傳輸速率由定時(shí)器T1和T2的溢出率和SMOD(PCON.7)所確定。
(1)用定時(shí)器T1(=0)產(chǎn)生串列傳輸速率
定時(shí)器T1的溢出率與它的工作方式有關(guān):
·定時(shí)器T1工作於方式0:此時(shí)定時(shí)器T1相當(dāng)於一個(gè)13位的計(jì)數(shù)器。
式中:TC——13位計(jì)數(shù)器初值;
X——中斷服務(wù)程式的機(jī)器週期數(shù),在中斷服務(wù)程式中重新對定時(shí)器置數(shù)。
·定時(shí)器T1工作於方式1:此時(shí)定時(shí)器T1相當(dāng)於一個(gè)16位的計(jì)數(shù)器。式中:TC——16位計(jì)數(shù)器初值;
X——中斷服務(wù)程式的機(jī)器週期數(shù),在中斷服務(wù)程式中重新對定時(shí)器置數(shù)。
·定時(shí)器Tl工作於方式2:此時(shí)定時(shí)器T1工作於一個(gè)8位可重裝的方式,用TL1計(jì)數(shù),用TH1裝初值。
(2)用T2產(chǎn)生串列傳輸速率
(RCAP2H,RCAP2L)為16位寄存器的初值(定時(shí)常數(shù))。
7.5.2方式0的編程和應(yīng)用
應(yīng)用方式0可以擴(kuò)展並行I/O口。
例:
使用74LS164的並行輸出瑞接8只發(fā)光二極體,利用它的串入並出功能,把發(fā)光二極體從左向右依次點(diǎn)亮,並不斷迴圈之。電路連接圖見圖7-8。
MOV SCON,#00H ;設(shè)串行口為方式0,
CLR ES ;禁止串行口中斷
MOV A,#80H ;先顯示最左邊發(fā)光二極體LED: MOV SBUF,A ;串行輸出
JNB TI,$ ;輸出等待
CLR TI ACALL DELAY ;輪顯間隔
RR A ;發(fā)光右移
AJMP LED ;迴圈7.5.3方式1的編程和應(yīng)用
例:試編寫雙機(jī)通信程式。甲、乙雙機(jī)均為串行口方式1,並以定時(shí)器T1的方式2為串列傳輸速率發(fā)生器,串列傳輸速率為2400。 串列傳輸速率的計(jì)算:這裏使用6MHz晶振,以T1的方式2制定串列傳輸速率。此時(shí)T1相當(dāng)於一個(gè)8位的計(jì)數(shù)器。 計(jì)算定時(shí)器T1的計(jì)數(shù)初值:
2smodfosc 1
串列傳輸速率= ×
× 3212 28-TH1
TH1=28-(2SMOD×fosc)÷(串列傳輸速率×32×12) =256-(20×6×106)÷(2400×32×12) =256-6.5=249.5=FAH
⑴甲機(jī)發(fā)送: 將以片內(nèi)RAM的78H及77H的內(nèi)容為首地址、以76H及75H的內(nèi)容減1為末地址的數(shù)據(jù)塊內(nèi)容,通過串行口傳至乙機(jī)。 例:(78H)=20H ;首地址高位 (77H)=00H
(76H)=20H ;末地址高位 (75H)=20H
即要求程式將片外RAM的2000H~20lFH中的內(nèi)容輸出到串行口。對數(shù)據(jù)塊首、末地址的傳送以查詢方式進(jìn)行,而數(shù)據(jù)的傳送以中斷方式進(jìn)行。
ORG 0000H SJMP TRANS ORG 0023H ;串行口中斷入口
AJMPSINT
ORG 0030HTRANS:MOVTMOD,#20H ;置T1為定時(shí)器方式2 MOV TL1,#0FAH ;置T1定時(shí)常數(shù)
MOVTH1,#0FAH SETBEA ;允許中斷
CLRES ;關(guān)串行口中斷
MOV PCON,#00H ;串列傳輸速率不倍增
CLRTI ;清發(fā)送中斷
MOV PCON,#00H ;串列傳輸速率不倍增
MOVSCON,#40H ;置串行口方式1 MOVSBUF,78H ;輸出首地址WAIT1:JNBTI,WAITI;查詢等待發(fā)送結(jié)束
CLR TI MOV SBUF,77HWAIT2:JNBTI,WAIT2;查詢等待發(fā)送結(jié)束
CLRTI
MOVSBUF,76H ;輸出末地址WAIT3:JNBTI,WAIT3 CLRTI MOVSBUF,75HWAIT4:JNBTI,WAIT4 CLRTI SETBES ;允許串行口中斷
MOVDPH,78H ;輸出數(shù)據(jù)塊中第1個(gè)數(shù)據(jù)
MOVDPL,77H MOVXA,@DPTR CLRTI MOVSBUF,A SJMP $ ;中斷等待
ORG 0200H ;串行口中斷服務(wù)程式SINT:PUSH DPL ;保護(hù)現(xiàn)場
PUSH DPH PUSH A
INC 77H ;地址加1
MOV A,77H JNZ JP1 INC 78HJP1:MOV A,78H CJNEA,76H,END1 ;判數(shù)據(jù)傳送是否結(jié)束,未 ;結(jié)束則轉(zhuǎn)END1 MOVA,77H CJNEA,75H,END1 CLRES ;結(jié)束,關(guān)串行口中斷ESCOM:POPA ;恢復(fù)現(xiàn)場
POPDPH POPDPL RETI
END1:MOVDPH,78H;數(shù)據(jù)輸出未結(jié)束,則繼續(xù)發(fā)送
MOVDPL,77H MOVXA,@DPTR CLRTI MOVSBUF,A RETI
⑵乙機(jī)接收
乙機(jī)通過RXD引腳接收甲機(jī)發(fā)來的數(shù)據(jù),接收串列傳輸速率與甲機(jī)一樣。接收的第1、2位元組是數(shù)據(jù)塊的首地址,第3、4位元組是數(shù)據(jù)塊的末地址減1,第5位元組開始是數(shù)據(jù),接收到的數(shù)據(jù)依次存入數(shù)據(jù)塊首地址開始的記憶體中。
ORG 0000H SJMP RECEIVE ;乙機(jī)接收
ORG 0023H AJMP RSINT ;串行口中斷入口
ORG 0030HRECEIVE:MOVTMOD,#20H
;設(shè)T1為定時(shí)器方式2
MOV TL1,#0FAH ;置T1定時(shí)常數(shù)
MOVTH1,#0FAH
SETBEA ;允許中斷
CLRES ;關(guān)串行口中斷
CLRTI ;清發(fā)送中斷
MOVSCON,#50H ;置串行口方式1、接收
CLR20H ;置地址標(biāo)誌(20H=0,為 ;地址;20H=1,為數(shù)據(jù))
MOV70H,#78H SJMP $ ;中斷等待
ORG 0200HRSINT:PUSHDPL;保護(hù)現(xiàn)場
PUSHDPH PUSHACC MOVA,R0 PUSHACC JB20H,DATA;判別接收的是地址還是數(shù)據(jù),是數(shù) ;據(jù),轉(zhuǎn)移
MOVR0,70H ;是地址,分別送入78H~75H中去
MOVA,SBUFMOV@R0,A DEC70H CLRRI MOVA,#74H CJNEA,70H,RETURN;是地址,轉(zhuǎn)結(jié)束
SETB20H ;地址已接收完,置接收數(shù)據(jù)標(biāo)誌
RETURN:POPACC;恢復(fù)現(xiàn)場
MOVR0,A
POPACC
POPDPH POPDPL RETI
DATA:MOVDPH,78H ;接收數(shù)據(jù)
MOVDPL,77H
MOVA,SBUF MOVX@DPTR,A ;將數(shù)據(jù)送入片外RAM CLRRI INC77H ;地址加1
MOVA,77H JNZDATA1 INC78H
DATA1∶MOVA,76H CJNZA,78H,RETURN MOV A,75H CJNEA,77H,RETURN CLRES ;結(jié)束,關(guān)串行口中斷
AJMPRETURN
例:通過串行口發(fā)送帶奇偶校驗(yàn)位的數(shù)據(jù)塊
ASCII碼由7位組成,其最高位可作為奇偶校驗(yàn)位用。數(shù)據(jù)塊通過串行口發(fā)送和接收,採用8位非同步通信,串列傳輸速率為1200,已知fosc=11.0592MHz。
從內(nèi)部RAM單元20H~3FH中取出ASCII碼加上奇偶校驗(yàn)位之後發(fā)出。設(shè)串行口為方式1,定時(shí)器/計(jì)數(shù)器T1為方式2作為串行口的串列傳輸速率發(fā)生器?!逽MOD=0 ∴TH1=232=E8H
ORG 0000H MOV TMOD,#20H ;設(shè)T1為方式2
MOV TL1,#0E8H ;T1定時(shí)常數(shù)MOV TH1,#0E8H SETB TR1 ;啟動(dòng)T1 MOV SCON,#01000000B ;設(shè)串行口為方式1
MOV R0,#20H ;設(shè)發(fā)送數(shù)據(jù)區(qū)首址
MOV R7,#32 ;發(fā)送32個(gè)ASCII碼數(shù)據(jù)LOOP:MOVA,@R0 ;取ASCII碼數(shù)據(jù)
ACALLSP-OUT ;調(diào)用串行口發(fā)送副程式
INC R0 ;未發(fā)送完,則繼續(xù)
DJNZ R7,LOOP
…
串行口發(fā)送副程式SP-OUT:MOVC,P ;設(shè)奇校驗(yàn)位 CPL C MOV ACC.7,C MOV SBUF,A ;帶校驗(yàn)位發(fā)送
JNB TI,$ ;發(fā)送等待
CLR TI RET
例通過串行口接收帶奇偶校驗(yàn)位的數(shù)據(jù)塊。把接收到的32個(gè)位元組數(shù)據(jù)存放到20H~3FH中,串列傳輸速率仍為1200,若奇校驗(yàn)出錯(cuò),將進(jìn)位標(biāo)誌C置1。
ORG 0000H MOV TMOD,#20H ;設(shè)T1為定時(shí)器方式2 MOV TL1,#0E8H ;設(shè)T1時(shí)間常數(shù)
MOV TH1,#0E8H SETB TR1 ;啟動(dòng)T1 MOV R0,#20H ;接收緩衝區(qū)首址
MOV R7,#32 ;接收位元組計(jì)數(shù)器LOOP:ACALL SP-IN ;調(diào)用帶奇校驗(yàn)的串行口接 ;收副程式
JC ERROR ;校驗(yàn)錯(cuò),轉(zhuǎn)出錯(cuò)處理
MOV @R0,A ;存入
INC R0 DJNZ R7,LOOP ;未接收完,則繼續(xù)
ERROR:… ;校驗(yàn)錯(cuò),處理SP-IN:MOVSCON,#01010000B ;設(shè)串行口為方式1,啟動(dòng)接收
JNB RI,$ CLR RI MOV A,SBUF ;接收一個(gè)位元組
MOV C,P ;檢查奇校驗(yàn)位,若出錯(cuò),C=1 CPL C ANL A,#7FH ;去掉校驗(yàn)位後的ASCII碼數(shù)據(jù)
RET7.5.4方式2和3的編程和應(yīng)用
方式2接收/發(fā)送的一幀資訊是11位:第0位是起始位(0);第1~8位是數(shù)據(jù)位;第9位是程式控制位,可由用戶置TB8決定;第10位是停止位。
· 方式2的串列傳輸速率為: 串列傳輸速率=振盪器頻率/n其中:當(dāng)SMOD=0時(shí),n=64;
當(dāng)SMOD=l時(shí),n=32。由於方式2和方式3基本一樣,僅串列傳輸速率設(shè)置不同,所以具體使用方法見方式3的編程。
例:試編寫串行介面以工作方式2發(fā)送數(shù)據(jù)的中斷服務(wù)程式。
串行介面發(fā)送數(shù)據(jù)時(shí)由TXD端輸出;工作方式2發(fā)送的一幀資訊為11位:1位起始位,8位數(shù)據(jù)位,1位可編程為1或0的第9位(可用作奇偶校驗(yàn)位或數(shù)據(jù)/地址標(biāo)誌位)和1位停止位。在串行數(shù)據(jù)傳送時(shí),設(shè)工作寄存器區(qū)2的R0作為發(fā)送數(shù)據(jù)區(qū)的地址指示器。奇偶校驗(yàn)位的發(fā)送是在將發(fā)送數(shù)據(jù)寫入發(fā)送緩衝器SBUF之前,先將奇偶標(biāo)誌寫入SCON的TB8位。程式設(shè)計(jì)如下:
ORG 0023H AJMP SPINT
SPINT:CLR0AFH ;關(guān)中斷(EA) PUSHPSW ;保護(hù)現(xiàn)場
PUSHACC SETB0AFH ;開中斷
SETBPSW.4 ;切換寄存器工作組
CLRTI ;清除發(fā)送中斷請求標(biāo)誌
MOVA,@R0 ;取數(shù)據(jù),置奇偶標(biāo)誌位
MOVC,P ;奇偶標(biāo)誌位P送TB8 MOVTB8,C MOVSBUF,A ;數(shù)據(jù)寫入發(fā)送緩衝器,啟動(dòng)發(fā)送
INCR0 ;數(shù)據(jù)地址指針加1
CLR 0AFH ;恢復(fù)現(xiàn)場
POP ACC POP PSW SETB0AFH CLRPSW.4 ;切換寄存器工作組
RETI ;中斷返回
例:方式3和方式1的不同在於接收/發(fā)送的資訊位數(shù)不同,而與方式2的不同僅在於串列傳輸速率設(shè)置不同。 這裏以雙機(jī)通信為例。串行口以方式3進(jìn)行接收和發(fā)送,以T1為串列傳輸速率發(fā)生器,選擇定時(shí)器方式2。
程式首先發(fā)送數(shù)據(jù)存放地址,而地址的高位存放在78H中,地址的低位存放在77H中;然後發(fā)送00H,01H,02H,…,F(xiàn)EH,共255個(gè)數(shù)據(jù)以後結(jié)束。
甲機(jī)的發(fā)送程式:
ORG 0023H CLRTI RETITRANSFER:MOVTMOD,#20H ;置定時(shí)器T1為定時(shí) ;方式2
MOVTL1,#0F0H ;置T1定時(shí)常數(shù)
MOVTH1,#0F0H SETBEA ;允許中斷
CLRES ;禁止串行口中斷
CLRET1 ;禁止定時(shí)器T1中斷
MOVSCON,#0E0H ;置串行口方式3
SETBTB8 ;表示發(fā)送的是地址
MOVSBUF,78H ;發(fā)送地址
JNBTI,$
CLRTI MOVSBUF,77H JNB TI,$ CLR TI MOVIE,#90H ;允許串行口中斷
CLRSM2 ;以後發(fā)送的是數(shù)據(jù)
MOVA,#00H ;發(fā)送數(shù)據(jù)
LOOP:MOV SBUF,A INC A JNB TI,$ CLR TI CJNZA,#0FFH,LOOP ;判是否結(jié)束
CLRES ;禁止串行口中斷
CLREA ;關(guān)中斷HERE:AJMPHERE
乙機(jī)接收程式:把接收到的頭兩個(gè)位元組作為存放數(shù)據(jù)的首地址,再接收到的255個(gè)位元組的數(shù)據(jù)存放入相應(yīng)的單元中。
ORG 0023H AJMP SINT ;串行口中斷入口RECEIVE:MOVTL1,#0F0H;置定時(shí)常數(shù)
MOVTH1,#0F0H MOVTMOD,#20H;置定時(shí)方式2
SETBES ;允許串行口中斷
CLRET1 ;禁止定時(shí)器T1中斷
SETBEA ;開中斷
MOVSCON,#0F0H;置串行口方式3接收
MOVR0,#0FEH ;數(shù)據(jù)個(gè)數(shù)
RWAIT:AJMPRWAIT ORG 1000H SINT:MOVC,SM2 JNCPD+2 ;輸入是否為地址
INCR0 NOP MOVA,R0 JZPD MOVDPH,SBUF ;輸入的是高位地址
AJMPPD+1PD:
MOVDPL,SBUF ;輸入的是低位地址
CLRSM2 ;下一次輸入是數(shù)據(jù)PD+l:CLR RI RETIPD+2: MOVA,SBUF ;是數(shù)據(jù)
MOVX@DPTR,A INCDPTR CLRRI CJNZA,#0FEH,RETURN;判是否結(jié)束
CLRES;結(jié)束,關(guān)中斷RETURN:RETI
例:多機(jī)通信 在集散式分佈系統(tǒng)中,往往採用一臺(tái)主機(jī)和多臺(tái)從機(jī)。系統(tǒng)連接圖請參考圖7-6。主機(jī)串行幀的第9數(shù)據(jù)位為1,表示地址幀;若為0,表示命令/數(shù)據(jù)幀。 多機(jī)通信過程簡述如下:
①所有從機(jī)的SM2=1,只回應(yīng)主機(jī)的地址幀。
②主機(jī)發(fā)送地址幀,
③所有從機(jī)接收到地址幀後,均中斷各自CPU,並與本從機(jī)地址比較。
④被尋址的從機(jī),清其SM2,其餘從機(jī)SM2仍為1,對主機(jī)發(fā)出的命令/數(shù)據(jù)幀不予理睬。
⑤
主機(jī)與被尋址的從機(jī)進(jìn)行命令或數(shù)據(jù)的傳送。通信結(jié)束後,該從機(jī)又重設(shè)SM2=1。
本例只規(guī)定以下幾條:
①系統(tǒng)中允許接有255臺(tái)從機(jī),它們的地址分別為00H—FEH。
②地址FFH是對所有從機(jī)都起作用的一條控制命令:命令各從機(jī)恢復(fù)SM2=1的狀態(tài)。
③主機(jī)發(fā)送的控制命令代碼為:
00H–要求從機(jī)接收數(shù)據(jù)塊
01H–要求從機(jī)發(fā)送數(shù)據(jù)塊 其他–非法命令
④數(shù)據(jù)塊長度、16個(gè)位元組
⑤
從機(jī)狀態(tài)字格式為:
D7D6D5D4D3D2D1D0ERR00000TRDYRRDY其中:若ERR=1,從機(jī)接收到非法命令 若TRDY=1,從機(jī)發(fā)送準(zhǔn)備就緒 若RRDY=1,從機(jī)接收準(zhǔn)備就緒
主機(jī)在接收或發(fā)送完一個(gè)數(shù)據(jù)塊後可返回主程序,完成其他任務(wù)。從機(jī)部分以串行口中斷服務(wù)程式的方式給出。若從機(jī)未作好接收或發(fā)送數(shù)據(jù)的準(zhǔn)備,就從中斷程式中返回,在主程序中作好準(zhǔn)備。系統(tǒng)採用T1作為串列傳輸速率發(fā)生器,主機(jī)和從機(jī)中對定時(shí)器初始化的程式從略。圖7-9是多機(jī)串行通信主機(jī)程式的流程圖,圖7-10是多機(jī)串行通信從機(jī)程式的流程圖。
⑴主機(jī)串行通信副程式
入口參數(shù): (R0)——主機(jī)發(fā)送的數(shù)據(jù)塊首址
(R1)——主機(jī)接收的數(shù)據(jù)塊首址
(R2)——被尋址從機(jī)地址
(R3)——主機(jī)命令
(R4)一一數(shù)據(jù)塊長度MSIO:MOVSCON,#0D8H;設(shè)串行口模式3,允許接收, ;TB8置1MSIO1:MOVA,R2 ;發(fā)送地址幀
MOV SBUF,A JNB RI,$ ;等待從機(jī)應(yīng)答
CLRRI
MOV A,SBUF XRL A,R2 ;判應(yīng)答地址是否相符
JZ MSIO3MSIO2:MOVSBUF,#0FFH ;重新聯(lián)絡(luò)
SETBTB8 SJMP MSIO_1MSIO3:CLRTB8 ;地址符合,準(zhǔn)備送命令
MOV SBUF,R3 ;送命令
JNB RI,$ ;等待從機(jī)應(yīng)答
CLR RI MOVA,SBUF
JNB ACC.7,MSI04 ;判命令是否出錯(cuò)
SJMP MSIO2 ;若從機(jī)接收命令出錯(cuò),重 ;新聯(lián)絡(luò)MSIO4:CJNER3,#00,MSIO_5;不是要求從機(jī)接收數(shù)據(jù), ;則跳轉(zhuǎn)
JNB ACC.0,MSIO2 ;從機(jī)接收數(shù)據(jù)準(zhǔn)備就緒否?LP–TX:MOVSBUF,@R0 ;主機(jī)發(fā)送數(shù)據(jù)塊
JNB TI,$ ;等待發(fā)送完一幀
CLRTI INC R0 DJNZR4,LP–TX RETMSIO5:JNBACC.1,MSIO2 ;從機(jī)發(fā)送數(shù)據(jù)準(zhǔn)備就緒否?LP–RX:JNBRI,$ ;主機(jī)接收數(shù)據(jù)塊
CLRRI MOV A,SBUF MOV @R1,A INC R1 DJNZR4,LP–RX RET
若主機(jī)向10號(hào)從機(jī)發(fā)送數(shù)據(jù)塊,數(shù)據(jù)塊放置在內(nèi)部RAM
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國Mini LED行業(yè)開拓第二增長曲線戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國搬家行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國風(fēng)電設(shè)備行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025年網(wǎng)絡(luò)工程師工作計(jì)劃(共5篇)
- 廣東省2024屆高三下學(xué)期三模英語試題
- 高端智能專用車制造項(xiàng)目環(huán)境影響報(bào)告書批前
- 年產(chǎn)100萬立方建筑用砂巖新建項(xiàng)目資金申請報(bào)告
- 二年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)1000題匯編集錦
- 2023屆江蘇省蘇州市高三二??记澳M地理卷(一)附答案
- 手工制瓷技藝2
- 對外投資合作國別(地區(qū))指南 -泰國
- 2023年-2024年崗位安全教育培訓(xùn)試題及答案通用
- 口腔修復(fù)學(xué)(全套課件290p)課件
- 小學(xué)生心理問題的表現(xiàn)及應(yīng)對措施【全國一等獎(jiǎng)】
- 小學(xué)生科普人工智能
- 初中學(xué)段勞動(dòng)任務(wù)清單(七到九年級(jí))
- 退耕還林監(jiān)理規(guī)劃
- GB/T 1335.2-2008服裝號(hào)型女子
- GB 31247-2014電纜及光纜燃燒性能分級(jí)
- DCC20網(wǎng)絡(luò)型監(jiān)視與報(bào)警
- 項(xiàng)目實(shí)施路徑課件
評(píng)論
0/150
提交評(píng)論