版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章89C51串行口及串行通信技術(shù)教學(xué)目標(biāo)串行通信基本知識(shí)串行口及應(yīng)用89C51與89C51點(diǎn)對(duì)點(diǎn)異步通信89C51與PC機(jī)間通信軟件設(shè)計(jì)1/797.1串行通信基本知識(shí)在實(shí)際工作中,計(jì)算機(jī)CPU與外部設(shè)備之間經(jīng)常要進(jìn)行信息交換,一臺(tái)計(jì)算機(jī)與其它計(jì)算機(jī)之間也往往要交換信息,全部這些信息交換均可稱為通信。通信方式有兩種,即并行通信和串行通信。通常依據(jù)信息傳送距離決定采取哪種通信方式。比如,PC機(jī)與外部設(shè)備(如打印機(jī)等)通信時(shí),假如距離小于30m,可采取并行通信方式;當(dāng)距離大于30m時(shí),則要采取串行通信方式。89C51單片機(jī)含有并行和串行二種基本通信方式。2/79并行通信并行通信是指數(shù)據(jù)各位同時(shí)進(jìn)行傳送(發(fā)送或接收)通信方式。優(yōu)點(diǎn):傳送速度快;缺點(diǎn):數(shù)據(jù)有多少位,就需要多少根傳送線。比如,右圖89C51單片機(jī)與外部設(shè)備之間數(shù)據(jù)傳送就屬于并行通信。3/79串行通信串行通信指數(shù)據(jù)是一位(bit)一位按次序傳送通信方式。優(yōu)點(diǎn):只需一對(duì)傳輸線(利用電話線就可作為傳輸線),大大降低了傳送成本,尤其適合用于遠(yuǎn)距離通信;缺點(diǎn):傳送速度較低。假設(shè)并行傳送N位數(shù)據(jù)所需時(shí)間為T,那么串行傳送時(shí)間最少為NT,實(shí)際上總是大于NT。接收設(shè)備發(fā)送設(shè)備D7D6D5D4D3D2D1D04/79串行通信傳輸方式串行通信傳輸方式通常有三種:?jiǎn)蜗颍ɑ騿喂ぃ┓绞?,只允許數(shù)據(jù)向一個(gè)方向傳送;半雙向(或半雙工)方式,允許數(shù)據(jù)向兩個(gè)方向中任一方向傳送,但每次只能有一個(gè)站點(diǎn)發(fā)送;全雙向(或全雙工)方式,允許同時(shí)雙向傳送數(shù)據(jù),所以,全雙工配置是一對(duì)單向配置,它要求兩端通信設(shè)備都含有完整和獨(dú)立發(fā)送和接收能力。5/79串行通信中數(shù)據(jù)傳送方式6/79異步通信和同時(shí)通信串行通信有兩種基本通信方式,即異步通信和同時(shí)通信。異步通信在異步通信中,數(shù)據(jù)是一幀一幀(包含一個(gè)字符代碼或一字節(jié)數(shù)據(jù))傳送。在幀格式中,一個(gè)字符由四個(gè)部分組成:起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停頓位。首先是一個(gè)起始位(0),然后是5~8位數(shù)據(jù)(要求:低位在前,高位在后),接下來是奇偶校驗(yàn)位(可省略),最終是停頓位(1)。7/79異步通信數(shù)據(jù)格式(b)有空閑位8/79異步串行通信協(xié)議起始位(0)信號(hào)只占一位,用來通知接收設(shè)備一個(gè)待接收字符開始抵達(dá)。線路上在不傳送字符時(shí)應(yīng)保持為1。接收端不停檢測(cè)線路狀態(tài),若連續(xù)為1以后又測(cè)到一個(gè)0,就知道發(fā)來一個(gè)新字符,應(yīng)馬上準(zhǔn)備接收。字符起始位還被用作同時(shí)接收端時(shí)鐘,以確保以后接收能正確進(jìn)行。起始位后面緊接著是數(shù)據(jù)位,它能夠是5位(D0-D4)、6位、7位或8位(D0-D7)。若所傳字符為ASCII碼,則常取7位。奇偶校驗(yàn)(D8)只占一位,但在字符中也能夠要求不用奇偶校驗(yàn)位,則這一位可省去。也可用這一位(1/0)來確定這一幀中字符所代表信息性質(zhì)(地址/數(shù)據(jù)等)。停頓位用來表征字符結(jié)束,它一定是高電位(邏輯1)。停頓位能夠是1位、1.5位或2位。接收端收到停頓位后,知道上一字符已傳送完成,同時(shí),也為接收下一個(gè)字符做好準(zhǔn)備。只要再接收到0,就是新字符起始位。若停頓位以后不是緊接著傳送下一個(gè)字符,則使線路電平保持為高電平(邏輯1)。9/79同時(shí)通信同時(shí)通信中,在數(shù)據(jù)開始傳送前用同時(shí)字符來指示(常約定1個(gè)--2個(gè)),并由時(shí)鐘來實(shí)現(xiàn)發(fā)送端和接收端同時(shí),即檢測(cè)到要求同時(shí)字符后,下面就連續(xù)按次序傳送數(shù)據(jù),直到通信告一段落。同時(shí)傳送時(shí),字符與字符之間沒有間隙,也不用起始位和停頓位,僅在數(shù)據(jù)塊開始時(shí)用同時(shí)字符SYNC來指示。10/79同時(shí)通信同時(shí)字符插入能夠是單同時(shí)字符方式或雙同時(shí)字符方式,然后是連續(xù)數(shù)據(jù)塊。同時(shí)字符能夠由用戶約定,也可采取ASCII碼中要求SYNC代碼,即16H。按同時(shí)方式通信時(shí),先發(fā)送同時(shí)字符,接收方檢測(cè)到同時(shí)字符后,即準(zhǔn)備接收數(shù)據(jù)。在同時(shí)傳送時(shí),要求用時(shí)鐘來實(shí)現(xiàn)發(fā)送端與接收端之間同時(shí)。為了確保接收正確無誤,發(fā)送方除了傳送數(shù)據(jù)外,還要同時(shí)傳送時(shí)鐘信號(hào)。同時(shí)傳送能夠提升傳輸速率(達(dá)56kb/s或更高),但硬件比較復(fù)雜。11/79波特率(Baudrate)波特率,即數(shù)據(jù)傳送速率,表示每秒鐘傳送二進(jìn)制代碼位數(shù),它單位是b/s(bitspersecond)。假設(shè)數(shù)據(jù)傳送速率是120字符/s,而每個(gè)字符包含代碼位有:1個(gè)起始位、8個(gè)數(shù)據(jù)位、1個(gè)停頓位。這時(shí),傳送波特率為:
10b/字符×120字符/s=1200b/s每一位代碼傳送時(shí)間Td為波特率倒數(shù)。
Td=1/1200=0.833ms異步通信傳送速率在50b/s~19200b/s之間,慣用于計(jì)算機(jī)到終端機(jī)和打印機(jī)之間通信、直通電報(bào)以及無線電通信數(shù)據(jù)發(fā)送等。12/79串行通信過程1、串←→并轉(zhuǎn)換與設(shè)備同時(shí)兩個(gè)通信設(shè)備在串行線路上成功地實(shí)現(xiàn)通信必須處理兩個(gè)問題:1)串←→并轉(zhuǎn)換,即怎樣把要發(fā)送并行數(shù)據(jù)串行化,把接收串行數(shù)據(jù)并行化;2)設(shè)備同時(shí),即發(fā)送設(shè)備與接收設(shè)備工作節(jié)拍同時(shí),以確保發(fā)送數(shù)據(jù)在接收端被正確讀出。13/791、串←→并轉(zhuǎn)換與設(shè)備同時(shí)1)串←→并轉(zhuǎn)換串行通信是將計(jì)算機(jī)內(nèi)部并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù),將其經(jīng)過一根通信線傳送;并將接收串行數(shù)據(jù)再轉(zhuǎn)換成并行數(shù)據(jù)送到計(jì)算機(jī)中。在計(jì)算機(jī)串行發(fā)送數(shù)據(jù)之前,計(jì)算機(jī)內(nèi)部并行數(shù)據(jù)被送入移位存放器并一位一位地輸出,將并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)。如圖7-5所表示。在接收數(shù)據(jù)時(shí),來自通信線路串行數(shù)據(jù)被壓入移位存放器,滿8位后并行送到計(jì)算機(jī)內(nèi)部。如圖7-6所表示。在串行通信控制電路中,串--并、并--串轉(zhuǎn)換邏輯被集成在串行異步通信控制器芯片中。89C51單片機(jī)串行口和IBM-PC相同。14/79圖7-515/79圖7-616/792)設(shè)備同時(shí)進(jìn)行串行通信兩臺(tái)設(shè)備必須同時(shí)工作才能有效地檢測(cè)通信線路上信號(hào)改變,從而采樣傳送數(shù)據(jù)脈沖。設(shè)備同時(shí)對(duì)通信雙方有兩個(gè)共同要求:通信雙方必須采取統(tǒng)一編碼方法;通信雙方必須能產(chǎn)生相同傳送速率。采取統(tǒng)一編碼方法確定了一個(gè)字符二進(jìn)制表示值位發(fā)送次序和位串長度,當(dāng)然還包含統(tǒng)一邏輯電平要求,即電平信號(hào)高低與邏輯1和邏輯0固定對(duì)應(yīng)關(guān)系。通信雙方只有產(chǎn)生相同傳送速率,才能確保設(shè)備同時(shí),這就要求發(fā)送設(shè)備和接收設(shè)備采取相同頻率時(shí)鐘。發(fā)送設(shè)備在統(tǒng)一時(shí)鐘脈沖上發(fā)出數(shù)據(jù),接收設(shè)備才能正確檢測(cè)出與時(shí)鐘脈沖同時(shí)數(shù)據(jù)信息。17/797.289C51串行口及應(yīng)用89C51單片機(jī)除含有4個(gè)8位并行口外,還含有串行接口。此串行接口是一個(gè)全雙工串行通信接口,即能同時(shí)進(jìn)行串行發(fā)送和接收數(shù)據(jù)。它能夠作UART(通用異步接收和發(fā)送器)用,也能夠作同時(shí)移位存放器用。使用串行接口能夠?qū)崿F(xiàn)89C51單片機(jī)系統(tǒng)之間點(diǎn)對(duì)點(diǎn)單機(jī)通信和89C51與系統(tǒng)機(jī)(如IBM-PC機(jī)等)單機(jī)或多機(jī)通信。18/79串行口結(jié)構(gòu)89C51經(jīng)過引腳RXD(P3.0,串行數(shù)據(jù)接收端)和引腳TXD(P3.1,串行數(shù)據(jù)發(fā)送端)與外界進(jìn)行通信。有兩個(gè)物理獨(dú)立接收、發(fā)送緩沖器SBUF,它們占用同一地址99H,可同時(shí)發(fā)送、接收數(shù)據(jù)。發(fā)送緩沖器只能寫入,不能讀出;接收緩沖器只能讀出,不能寫入。串行發(fā)送與接收速率與移位時(shí)鐘同時(shí)。89C51用定時(shí)器T1作為串行通信波特率發(fā)生器,T1溢出率經(jīng)2分頻(或不分頻)后又經(jīng)16分頻作為串行發(fā)送或接收移位脈沖。移位脈沖速率即是波特率。19/79串行口結(jié)構(gòu)串行口內(nèi)部結(jié)構(gòu)示意簡(jiǎn)圖20/79從圖中可看出,接收器是雙緩沖結(jié)構(gòu),在前一個(gè)字節(jié)被從接收緩沖器SBUF讀出之前,第二個(gè)字節(jié)即開始被接收(串行輸入至移位存放器),不過,在第二個(gè)字節(jié)接收完成而前一個(gè)字節(jié)CPU未讀取時(shí),會(huì)丟失前一個(gè)字節(jié)。(出現(xiàn)溢犯錯(cuò)誤)串行口發(fā)送和接收都是以特殊功效存放器SBUF名義進(jìn)行讀或?qū)憽.?dāng)向SBUF發(fā)“寫”命令時(shí)(執(zhí)行“MOVSBUF,A”指令),即是向發(fā)送緩沖器SBUF裝載并開始由TXD引腳向外發(fā)送一幀數(shù)據(jù),發(fā)送完便使發(fā)送中止標(biāo)志位TI=1。在滿足串行口接收中止標(biāo)志位RI(SCON.0)=0條件下,置允許接收位REN(SCON.4)=1就會(huì)接收一幀數(shù)據(jù)進(jìn)入移位存放器,并裝載到接收SBUF中,同時(shí)使RI=1。當(dāng)發(fā)讀SBUF命令時(shí)(執(zhí)行“MOVA,SBUF”命令),便由接收緩沖器(SBUF)取出信息經(jīng)過89C51內(nèi)部總線送CPU。對(duì)于發(fā)送緩沖器,因?yàn)榘l(fā)送時(shí)CPU是主動(dòng),不會(huì)產(chǎn)生重合錯(cuò)誤,普通不需要用雙緩沖器結(jié)構(gòu)來保持最大傳送速率。21/79串行口控制字及控制存放器89C51串行口是可編程接口,對(duì)它初始化編程只用兩個(gè)控制字分別寫入特殊功效存放器SCON(98H)和電源控制存放器PCON(87H)中即可。(1)SCON(98H)89C51串行通信方式選擇、接收和發(fā)送控制以及串行口狀態(tài)標(biāo)志等均由特殊功效存放器SCON控制和指示。22/79串行口控制存放器SCON23/79SCON(98H)①SM0和SM1(SCON.7,SCON.6)——串行口工作方式選擇位。兩個(gè)選擇位對(duì)應(yīng)4種通信方式,以下表所表示。其中,fosc是振蕩頻率。SM0SM1工作方式說明波特率00方式0同時(shí)移位存放器fosc/1201方式110位異步收發(fā)定時(shí)器T1控制10方式211位異步收發(fā)fosc/32或fosc/6411方式311位異步收發(fā)定時(shí)器T1控制24/79②SM2(SCON.5)——多機(jī)通信控制位,主要用于方式2和方式3。 若置SM2=1,則允許多機(jī)通信。當(dāng)一片89C51(主機(jī))與多片89C51(從機(jī))通信時(shí),全部從機(jī)SM2位都置1。主機(jī)首先發(fā)送一幀數(shù)據(jù)為地址,即從機(jī)機(jī)號(hào),其中第9位為1,全部從機(jī)接收到數(shù)據(jù)后,將其中第9位裝入RB8中。各個(gè)從機(jī)依據(jù)收到第9位數(shù)據(jù)(RB8中)值來決定從機(jī)可否再接收主機(jī)信息。若(RB8)=0,說明是數(shù)據(jù)幀,則使接收中止標(biāo)志位RI=0,信息丟失;若(RB8)=1,說明是地址幀,數(shù)據(jù)裝入SBUF并置RI=1,中止全部從機(jī),被尋址目標(biāo)從機(jī)去除SM2以接收主機(jī)發(fā)來一幀數(shù)據(jù)。其它從機(jī)依然保持SM2=1。若SM2=0,即不屬于多機(jī)通信情況,則接收一幀數(shù)據(jù)后,不論第9位數(shù)據(jù)是0還是1,都置RI=1,接收到數(shù)據(jù)裝入SBUF。依據(jù)SM2這個(gè)功效,可實(shí)現(xiàn)多個(gè)89C51應(yīng)用系統(tǒng)串行通信。在方式1時(shí),若SM2=1,則只有接收到有效停頓位時(shí),RI才置1,方便接收下一幀數(shù)據(jù)。在方式0時(shí),SM2必須是0。25/79③REN(SCON.4)——允許接收控制位。由軟件置1或清0,只有當(dāng)REN=1時(shí)才允許接收,相當(dāng)于串行接收開關(guān);若REN=0,則禁止接收。在串行通信接收控制過程中,假如滿足RI=0和REN=1(允許接收)條件,就允許接收,一幀數(shù)據(jù)就裝載入接收SBUF中。④TB8(SCON.3)——發(fā)送數(shù)據(jù)第9位(D8)裝入TB8中。在方式2或方式3中,依據(jù)發(fā)送數(shù)據(jù)需要由軟件置位或復(fù)位。在許多通信協(xié)議中可用作奇偶校驗(yàn)位,也可在多機(jī)通信中作為發(fā)送地址幀或數(shù)據(jù)幀標(biāo)志位。對(duì)于后者,TB8=1,說明該幀數(shù)據(jù)為地址;TB8=0,說明該幀數(shù)據(jù)為數(shù)據(jù)字節(jié)。在方式0或方式1中,該位未用。26/79⑤RB8(SCON.2)——接收數(shù)據(jù)第9位。在方式2或方式3中,接收到第9位數(shù)據(jù)放在RB8位。它或是約定奇/偶校驗(yàn)位,或是約定地址/數(shù)據(jù)標(biāo)識(shí)位。在方式2和方式3多機(jī)通信中,若SM2=1,假如RB8=1,說明收到數(shù)據(jù)為地址幀。在方式1中,若SM2=0(即不是多機(jī)通信情況),RB8中存放是已接收到停頓位。在方式0中,該位未用。⑥TI(SCON.1)——發(fā)送中止標(biāo)志。在一幀數(shù)據(jù)發(fā)送完時(shí)被置位。在方式0串行發(fā)送第8位結(jié)束或其它方式串行發(fā)送到停頓位開始時(shí)由硬件置位,可用軟件查詢。它同時(shí)也申請(qǐng)中止,TI置位意味著向CPU提供“發(fā)送緩沖器SBUF已空”信息,CPU能夠準(zhǔn)備發(fā)送下一幀數(shù)據(jù)。串行口發(fā)送中止被響應(yīng)后,TI不會(huì)自動(dòng)清0,必須由軟件清0。27/79⑦RI(SCON.0)——接收中止標(biāo)志。在接收到一幀有效數(shù)據(jù)后由硬件置位。在方式0中,當(dāng)接收到數(shù)據(jù)第8位時(shí),由硬件置位;在其它三種方式中,當(dāng)接收到停頓位中間時(shí)由硬件置位。RI=1,申請(qǐng)中止,表示一幀數(shù)據(jù)接收結(jié)束,并已裝入接收SBUF中,要求CPU取走數(shù)據(jù)。CPU響應(yīng)中止,取走數(shù)據(jù)。RI也必須由軟件(指令)清0,去除中止申請(qǐng),并準(zhǔn)備接收下一幀數(shù)據(jù)。串行發(fā)送中止標(biāo)志TI和接收中止標(biāo)志RI是同一個(gè)中止源,CPU事先不知道是發(fā)送中止TI還是接收中止RI產(chǎn)生中止請(qǐng)求,所以,在全雙工通信時(shí),必須由軟件來判別。復(fù)位時(shí),SCON全部位均清0。28/79(2)PCON(87H)電源控制存放器PCON中只有SMOD位與串行口工作相關(guān)。復(fù)位時(shí),SMOD=0。29/79串行通信工作方式依據(jù)實(shí)際需要,89C51串行口可設(shè)置4種工作方式,可有8位、10位或11位幀格式。方式0:以8位數(shù)據(jù)為一幀,不設(shè)起始位和停頓位,先發(fā)送或接收最低位。方式0為同時(shí)移位存放器輸入/輸出方式,慣用于擴(kuò)展I/O口。串行數(shù)據(jù)經(jīng)過RXD輸入或輸出,而TXD用于輸出移位時(shí)鐘,作為外接部件同時(shí)信號(hào)。其幀格式以下:...D0D1D2D3D4D5D6D7...30/79方式0應(yīng)用比如,74LS164可用于擴(kuò)展并行輸出口,74LS165可用于擴(kuò)展輸入口。在這種方式下,收/發(fā)數(shù)據(jù)為8位,低位在前,無起始位、奇偶校驗(yàn)位及停頓位,波特率是固定。31/7974LS164功效概述74LS164是8位串行輸入平行輸出移位存放器;其中:Q0~Q7為并行輸出端;DSA、DSB是串行輸入端。MR是去除端,為0時(shí),輸出清零。CP為時(shí)鐘輸入端。當(dāng)DSA、DSB任一輸入端為低電平時(shí),則禁止新數(shù)據(jù)輸入,在時(shí)鐘端CP脈沖上升沿作用下Q0為低電平。DSA、DSB有一個(gè)為高電平時(shí),則允許另一個(gè)輸入數(shù)據(jù),并在CP脈沖上升沿作用下決定Q0狀態(tài)。兩個(gè)輸入端或者連接在一起,或者把不用輸入端接高電平,一定不要懸空。時(shí)鐘(CP)每次由低變高時(shí),數(shù)據(jù)右移一位,輸入數(shù)據(jù)到Q0,Q0是兩個(gè)數(shù)據(jù)輸入端(DSA和DSB)邏輯與。主復(fù)位(MR)輸入端上一個(gè)低電平將使其它全部輸入端都無效,同時(shí)非同時(shí)地去除存放器,強(qiáng)制全部輸出為低電平。32/79方式1:以10位為一幀傳輸,設(shè)有1個(gè)起始位(0),8個(gè)數(shù)據(jù)位和1個(gè)停頓位(1)。真正用于串行發(fā)送或接收,TXD與RXD分別用于發(fā)送與接收數(shù)據(jù)。在接收時(shí),停頓位進(jìn)入SCONRB8,此方式傳送波特率可調(diào)。其幀格式為:停頓位D7D6D5D4D3D2D1D0起始位33/79方式1發(fā)送過程在TI=0情況下(表示串行口發(fā)送控制電路處于空閑狀態(tài)),任何寫緩沖器SBUF指令,如“MOVSBUF,A”,會(huì)觸發(fā)串行發(fā)送過程:51機(jī)串行口自動(dòng)在8個(gè)數(shù)據(jù)位前、后分別添加1位起始位和停頓位,組成10位信息幀,按設(shè)定波特率依次送出。當(dāng)8位數(shù)據(jù)發(fā)送結(jié)束后(即開始發(fā)送停頓位)時(shí),串行口自動(dòng)將中止標(biāo)志TI置1。TI標(biāo)志可用來查詢發(fā)送過程是否完成。在中止處于開放狀態(tài)下,TI有效時(shí),將產(chǎn)生串行中止。方式1接收過程在接收中止標(biāo)志RI=0(串行口接收緩沖器SBUF處于空閑)情況下,當(dāng)REN位置1時(shí),串行口處于接收狀態(tài)。按設(shè)定波特率依次讀出數(shù)據(jù)位和停頓位。在接收到第9數(shù)據(jù)位(即停頓位時(shí)),接收電路必須同時(shí)滿足兩個(gè)條件:RI=0和SM2=0或接收到停頓位為“1”,才能把接收到內(nèi)容存入接收緩沖器SBUF中,把停頓位送入RB8中,并將RI置1和發(fā)出串行口中止請(qǐng)求(若中止開放)。不然,這次收到數(shù)據(jù)將被舍去,而這是不被允許。RI標(biāo)志可用來查詢接收過程是否完成。在方式1下,SM2應(yīng)設(shè)為0。34/79方式2和方式3(兩種方式唯一區(qū)分是方式2波特率固定,方式2和方式3發(fā)送、接收時(shí)序與方式1類似,只是增加了一位第9位):以11位為1幀傳輸,設(shè)有1位起始位(0),8位數(shù)據(jù)位,1位可編程第9位和1位停頓位(1)。發(fā)送前,第9位數(shù)據(jù)位(D8)存放在TB8中,由軟件置1或清0。也可將奇偶位裝入TB8,從而進(jìn)行奇偶校驗(yàn)。發(fā)送時(shí)串行口能自動(dòng)把TB8取出,并裝入到第9位數(shù)據(jù)位位置,再逐一發(fā)送出去。如指令“SETBTB8”將D8置1。當(dāng)滿足RI=0且SM2=0,或接收到第9位數(shù)據(jù)為1時(shí),前8位數(shù)據(jù)送入SBUF,第9位數(shù)據(jù)位送入SCON中RB8,置RI為1;不然,這次接收無效,也不置位RI。其幀格式為:停頓位D7D6D5D4D3D2D1D0起始位D7D835/79波特率設(shè)計(jì)方式0:波特率=fosc/12,方式2:
SMOD=0時(shí),波特率=fosc/64;SMOD=1時(shí),波特率=fosc/32。方式1,方式3:波特率=T1溢出率/n當(dāng)SMOD=0時(shí),n=32;SMOD=1時(shí),n=16。所以,可用下式確定方式1和方式3波特率:方式1、方式3波特率=2SMOD/32×(T1溢出速率)其中,T1溢出速率取決于T1計(jì)數(shù)速率(計(jì)數(shù)速率=fosc/12)和T1預(yù)置初值。若定時(shí)器T1采取模式2時(shí),波特率公式以下:方式1、方式3波特率=2SMOD/32×(fosc/12)/(256-初值)36/79定時(shí)器T1用作波特率發(fā)生器時(shí),通常選取定時(shí)器模式2(自動(dòng)重裝初值定時(shí)器)比較實(shí)用。要設(shè)置定時(shí)器T1為定時(shí)方式(使C/T=0),讓T1計(jì)數(shù)內(nèi)部振蕩脈沖,即計(jì)數(shù)速率為fosc/12(注意應(yīng)禁止T1中止,以免溢出而產(chǎn)生無須要中止)。先設(shè)定TH1和TL1計(jì)數(shù)初值為X,那么每過“256-X”個(gè)機(jī)器周期,定時(shí)器T1就會(huì)產(chǎn)生一次溢出。所以,T1溢出速率為T1溢出速率=(fosc/12)/(256-X)37/79波特率計(jì)算舉例89C51單片機(jī)時(shí)鐘振蕩頻率為11.0592MHz,選取定時(shí)器T1工作模式2作為波特率發(fā)生器,波特率為2400b/s,求初值。解:設(shè)置波特率控制為(SMOD)=02400=2SMOD/32×(fosc/12)/(256-初值)所以,(TH1)=(TL1)=F4H。38/79串口工作方式波特率fosc
SMOD定時(shí)器T1C/T模式定時(shí)器初值方式01M12MHz----方式2375K12MHz1---187.5K12MHz0---方式1或方式362.5K12MHz102FFH19.2K11.059MHz102FDH9.6K11.059MHz002FDH4.8K11.059MHz002FAH2.4K11.059MHz002F4H1.2K11.059MHz002E8H137.5K11.059MHz0021DH11012MHz001FEEBH方式00.5M6MHz----方式2187.5K6MHz1---方式1或方式319.2K6MHz102FEH9.6K6MHz102FDH4.8K6MHz002FDH2.4K6MHz002FAH1.2K6MHz002F3H0.6K6MHz002E6H1106MHz00273H556MHz002FEEBH慣用波特率與其它參數(shù)選取關(guān)系39/79串行口方式1發(fā)送和接收例2:89C51串行口按全雙工方式收、發(fā)ASCII字符,最高位用來作奇偶校驗(yàn)位,采取奇校驗(yàn)方式,要求傳送波特率為1200b/s。編寫相關(guān)通信程序。解:7位ASCII碼加1位奇校驗(yàn)位共8位數(shù)據(jù),故可采取串行口方式1。89C51單片機(jī)奇偶校驗(yàn)位P:當(dāng)累加器A中1個(gè)數(shù)為奇數(shù)時(shí),P=1,不然,P=0。假如直接把P值放入ASCII碼最高位,恰好成了偶校驗(yàn),與要求不符。所以,要把P值取反后放入ASCII碼最高位,才是要求奇校驗(yàn)。40/79雙工通信要求收、發(fā)能同時(shí)進(jìn)行。實(shí)際上,收、發(fā)操作主要是在串行接口進(jìn)行,CPU只是把數(shù)據(jù)從接收緩沖器讀出和把數(shù)據(jù)寫入發(fā)送緩沖器。數(shù)據(jù)傳送用中止方式進(jìn)行,響應(yīng)中止以后,經(jīng)過檢測(cè)是RI置位還是TI置位來決定CPU是進(jìn)行發(fā)送操作還是接收操作。發(fā)送和接收都經(jīng)過調(diào)用子程序來完成,設(shè)發(fā)送數(shù)據(jù)區(qū)首地址為20H,接收數(shù)據(jù)區(qū)首地址為40H,fosc為6MHz,經(jīng)過查波特率初值(表7-2)可知定時(shí)器初裝值為F3H。定時(shí)器T1采取工作模式2,可防止計(jì)數(shù)溢出后用軟件重裝定時(shí)初值工作。41/79串行口初始化編程步驟在串行口工作之前,應(yīng)對(duì)其進(jìn)行初始化,主要是設(shè)置產(chǎn)生波特率定時(shí)器1,串行口控制存放器SCON和中止控制器IE,步驟以下:確定T1工作方式(編程TMOD存放器)計(jì)算T1初值,裝載TH1、TL1;開啟T1(編程TCON中TR1位)確定串行口控制(編程SCON存放器)串行口工作在中止方式時(shí),要進(jìn)行中止設(shè)置(編程IE、IP存放器)42/79主程序清單:ORG0000HAJMPSTARTORG0023H;串行口中止入口AJMPSBR1;轉(zhuǎn)至中止服務(wù)程序ORG0030HSTART:MOVTMOD,#20H;定時(shí)器1設(shè)為模式2MOVTL1,#0F3H;定時(shí)器初值MOVTH1,#0F3H;8位重裝值SETBTR1;開啟定時(shí)器1MOVSCON,#50H;設(shè)置為方式1, ;REN=1MOVR0,#20H;發(fā)送數(shù)據(jù)區(qū)首址MOVR1,#40H;接收數(shù)據(jù)區(qū)首址ACALLSOUT;先輸出一個(gè)字符SETBESSETBEASJMP$;等候中止
中止服務(wù)子程序ORG0100HSBR1:
JNBRI,SEND;RI=0,為發(fā)送中止ACALLSIN;不然,RI=1,為接;收中止SJMPNEXT;轉(zhuǎn)至統(tǒng)一出口SEND:
ACALLSOUT;調(diào)用發(fā)送子程序NEXT:RETI
;中止返回43/79發(fā)送子程序SOUT:CLRTIMOVA,@R0;取發(fā)送數(shù)據(jù)到AMOVC,P;奇偶標(biāo)識(shí)賦予CCPLC;奇校驗(yàn)MOVACC.7,C;ACC.7補(bǔ)0或1MOVSBUF,A;發(fā)送ASCII碼INCR0;修改發(fā)送數(shù)據(jù)指針RET;返回接收子程序SIN:CLRRIMOVA,SBUF;讀出接收緩沖區(qū)內(nèi)容MOVC,P;取出校驗(yàn)位,P=1CPLC;奇校驗(yàn)JCERRORANLA,#7FH;刪去校驗(yàn)位MOV@R1,A;讀入接收緩沖區(qū)INCRI;修改接收數(shù)據(jù)指針SJMPSIN_1ERROR:…;犯錯(cuò)處理,略SIN_1:RET;返回END44/79采取查詢方式由串行口發(fā)送帶奇偶校驗(yàn)位數(shù)據(jù)塊。例3:設(shè)從內(nèi)部RAM單元30H-4FH取出ASCII碼數(shù)據(jù),在最高位上加偶校驗(yàn)位后由串行口發(fā)出。采取10位異步通信方式,波特率為1200b/s,fosc=11.059MHz。由要求可知,應(yīng)把串行口設(shè)置為方式1,采取定時(shí)器1模式2作為波特率發(fā)生器,預(yù)置值(TH1)=0E8H。45/79主程序; MOVTMOD,#20H ;設(shè)置定時(shí)器1為模式2 MOVTL1,#0E8H ;初值,波特率為1200b/s MOVTH1,#0E8H SETBTR1;開啟T1運(yùn)行 MOVSCON,#01000000B;設(shè)置串行口為方式1 MOVR0,#30H;設(shè)置數(shù)據(jù)塊起始地址 MOVR7,#32;設(shè)置數(shù)據(jù)塊長度LOOP: MOVA,@R0ACALLS-OUT;調(diào)用發(fā)送子程序INCR0DJNZR7,LOOP ……46/79串行口發(fā)送子程序(偶校驗(yàn));S-OUT:
MOVC,PSW.0;設(shè)置偶校驗(yàn)位MOVACC.7,C;ACC.7補(bǔ)0或1MOVSBUF,A;開啟串行口發(fā)送過程JNBTI,$;等候發(fā)送完CLRTI;清TI標(biāo)志,允許再發(fā)送RETEND47/79串行口方式2和方式3發(fā)送和接收串行口方式2與方式3基本一樣(只是波特率設(shè)置不一樣),接收/發(fā)送11位信息:開始為1位起始位(0),中間8位數(shù)據(jù)位,數(shù)據(jù)位之后為1位程控位(由用戶置SCONTB8決定),最終是1位停頓位(1)。只比喻式1多了一位程控位。48/79例4:設(shè)計(jì)一個(gè)發(fā)送程序,將片內(nèi)RAM50H~5FH中數(shù)據(jù)串行發(fā)送;串行口設(shè)定為方式2,TB8作奇偶校驗(yàn)位。在數(shù)據(jù)寫入發(fā)送緩沖器之前,先將數(shù)據(jù)奇偶位P寫入TB8,這時(shí),第9位數(shù)據(jù)作奇偶校驗(yàn)用。49/79程序清單以下:TRT: MOVSCON,#80H;方式2設(shè)定 MOVPCON,#80H;取波特率為fosc/32 MOVR7,#10H;數(shù)據(jù)長度10H→R7LOOP:MOVA,@R0;取數(shù)據(jù)→A MOVC,PSW.0;P→TB8 MOVTB8,C MOVSBUF,A;數(shù)據(jù)→SBUF,開啟發(fā)送WAIT: JBCTI,CONT;判斷是否發(fā)送完 SJMPWAITCONT:INCR0 DJNZR7,LOOP RET50/79例5:編制一個(gè)串行口方式2接收程序,并查對(duì)奇偶標(biāo)志位。解:依據(jù)上面介紹特點(diǎn),在方式2、方式3發(fā)送過程中,將數(shù)據(jù)和附加在TB8中奇偶標(biāo)志位一塊發(fā)向?qū)Ψ?。所以,作為接收一方?yīng)設(shè)法取出該奇偶標(biāo)志位進(jìn)行查對(duì),對(duì)應(yīng)接收程序段為:51/79RRR: MOVSCON,#90H;選方式2,并允許接收(REN=1)LOOP:JBCRI,RECEIV;等候接收數(shù)據(jù)并清RI SJMPLOOPRECEIV:MOVA,SBUF;將接收到字符取出后,送到A。注意, ;傳送指令影響PSW,產(chǎn)生接收端奇偶值 JBPSW.0,ONE;判斷接收端奇偶值 JBRB8,ERR;判斷發(fā)送端奇偶值 SJMPRIGHTONE:JNBRB8,ERRRIGHT:……;接收正確 ……ERR: …… ;接收有誤當(dāng)接收到一個(gè)字符時(shí),從SBUF轉(zhuǎn)移到A中時(shí)會(huì)產(chǎn)生接收端奇偶值,而保留在RB8中值為發(fā)送端奇偶值,兩個(gè)奇偶值應(yīng)相等,不然接收字符有錯(cuò)。發(fā)覺錯(cuò)誤要及時(shí)通知對(duì)方重發(fā)。52/7989C51與89C51點(diǎn)對(duì)點(diǎn)異步通信1通信協(xié)議要想確保通信成功,通信雙方必須有一系列約定,比如:作為發(fā)送方,必須知道什么時(shí)候發(fā)送信息,發(fā)什么,對(duì)方是否收到,收到內(nèi)容有沒有錯(cuò),要不要重發(fā),怎樣通知對(duì)方結(jié)束等等。作為接收方,必須知道對(duì)方是否發(fā)送了信息,發(fā)是什么,收到信息是否有錯(cuò),假如有錯(cuò)怎樣通知對(duì)方重發(fā),怎樣判斷結(jié)束等。這種約定就叫做通信規(guī)程或協(xié)議,它必須在編程之前確定下來。要想使通信雙方能夠正確交換信息和數(shù)據(jù),在協(xié)議中對(duì)什么時(shí)候開始通信,什么時(shí)候結(jié)束通信,何時(shí)交換信息等等都必須作出明確要求。只有雙方恪守這些要求才能順利地進(jìn)行通信。53/792波特率設(shè)置在串行通信中,一個(gè)主要指標(biāo)是波恃率,它反應(yīng)了串行通信速率,也反應(yīng)了對(duì)于傳輸通道要求。波特率越高,要求傳輸通道頻帶越寬。普通異步通信波特率在50b/s—19200b/s之間。因?yàn)楫惒酵ㄐ烹p方各用自己時(shí)鐘源,要確保捕捉到信號(hào)正確,最好采取較高頻率時(shí)鐘。普通選擇時(shí)鐘頻率比波特率高16倍或64倍。若是時(shí)鐘頻率等于波特率,則頻率稍有偏差便會(huì)產(chǎn)生接收錯(cuò)誤。54/79在異步通信中,收、發(fā)雙方必須事先要求兩件事:1、字符格式,即要求字符各部分所占位數(shù)是否采取奇偶校驗(yàn)以及校驗(yàn)方式(偶校驗(yàn)還是奇校驗(yàn))等通信協(xié)議;2、采取波特率以及時(shí)鐘頻率和波特率百分比關(guān)系。89C51串行通信波特率(由圖7-16可知)由定時(shí)器T1溢出率取得(僅指串行口方式1、方式3時(shí)),當(dāng)串行口工作于方式1或方式3時(shí),波特率為:其中,k為定時(shí)器1位數(shù),定時(shí)器模式0,k=13;定時(shí)器模式1,k=16;
定時(shí)器模式2和摸式3,k=8。55/79例6:設(shè)甲機(jī)發(fā)送,乙機(jī)接收。串行接口工作于方式3(每幀數(shù)據(jù)為11位,第9位用于奇偶校驗(yàn)),兩機(jī)均選取6.0000MHz振蕩頻率,波特率為2400b/s。通信功效為:甲機(jī):將片外數(shù)據(jù)存放器4000H-407FH單元內(nèi)容向乙機(jī)發(fā)送,每發(fā)送一幀信息,乙機(jī)對(duì)接收信息進(jìn)行偶校驗(yàn),將P位值放在TB8中。若校驗(yàn)正確,則乙機(jī)向甲機(jī)回發(fā)“數(shù)據(jù)發(fā)送正確”信號(hào)(例中以00H作為應(yīng)答信號(hào))。甲機(jī)收到乙機(jī)“正確”應(yīng)答信號(hào)后再發(fā)送下一個(gè)字節(jié)。若奇偶校驗(yàn)有錯(cuò),則乙機(jī)發(fā)出“數(shù)據(jù)發(fā)送不正確”信號(hào)(例中以FFH作為應(yīng)答信號(hào))。甲機(jī)接收到“不正確”應(yīng)答信號(hào)后,重新發(fā)送原數(shù)據(jù),直至發(fā)送正確。甲機(jī)將該數(shù)據(jù)塊發(fā)送完成后停頓發(fā)送。乙機(jī):接收甲機(jī)發(fā)送數(shù)據(jù),并寫入以4000H為首址片外數(shù)據(jù)存放器中。每接收一幀數(shù)據(jù),乙機(jī)對(duì)所接收數(shù)據(jù)進(jìn)行偶校驗(yàn),并發(fā)出對(duì)應(yīng)應(yīng)答信號(hào),直至接收完全部數(shù)據(jù)。56/79解:(1)計(jì)算定時(shí)器計(jì)數(shù)初值X將已知數(shù)據(jù)fosc=6MHz,波特率=2400b/s代入下式:若取SMOD=0時(shí),X=249.49。因取整數(shù)誤差過大,故設(shè)SMOD=1,則X=242.98≈243=F3H所以,實(shí)際波特率=2403.85b/S。57/79甲機(jī)發(fā)送流程圖乙機(jī)發(fā)送流程圖58/79(3)源程序①甲機(jī)主程序ORG0000HLJMPMAIN;上電,轉(zhuǎn)向主程序ORG0023H;串行口中止入口地址LJMPSERVE1;轉(zhuǎn)向甲機(jī)中止服務(wù)程序ORGH;主程序MAIN:MOVTMOD,#20H;設(shè)T1工作與模式2MOVTH1,#0F3H;賦計(jì)數(shù)初值MOVTL1,#0F3H;賦計(jì)數(shù)值SETBTR1;開啟定時(shí)器T1MOVPCON,#80H;設(shè)SMOD=1MOVSCON,#0D0H;置串行口方式3,允許接收MOVDPTR,#4000H;置數(shù)據(jù)塊首址MOVR0,#80H;置發(fā)送字節(jié)數(shù)初值SETBES;允許串行口中止SETBEA;CPU開中止MOVXA,@DPTR;取第一個(gè)數(shù)據(jù)發(fā)送MOVC,PMOVTB8,C;奇偶標(biāo)志送TB8MOVSBUF,A;發(fā)送數(shù)據(jù)SJMP$;等候中止59/79甲機(jī)中止服務(wù)程序SERVE1:JBCRI,LOOP;是接收中止,去除RI,轉(zhuǎn)入接收乙機(jī)應(yīng)答信息CLRTI;是發(fā)送中止,去除此中止標(biāo)志SJMPENDTLOOP:MOVA,SBUF;取乙機(jī)應(yīng)答信息CLRCSUBBA,#01H;判應(yīng)答信號(hào)是#00嗎?JCLOOP1;是#00H,發(fā)送正確,(#00H-#01H),C=1,轉(zhuǎn)LOOP1LOOP2:MOVXA,@DPTR;不然甲機(jī)重發(fā)MOVC,PMOVTB8,CMOVSBUF,A;甲機(jī)重發(fā)原數(shù)據(jù)SJMPENDTLOOP1:INCDPTR;修改地址指針,準(zhǔn)備發(fā)送下一個(gè)數(shù)據(jù);MOVXA,@DPTR;MOVC,P;MOVTB8,C;MOVSBUF,A;發(fā)送;DJNZR0,ENDT;數(shù)據(jù)塊未發(fā)送完,返回繼續(xù)發(fā)送DJNZR0,LOOP2;數(shù)據(jù)塊未發(fā)送完,開啟發(fā)送下一個(gè)數(shù)據(jù)CLRES;全部發(fā)送完,禁止串行口中止ENDT:RETI;中止返回END60/79①乙機(jī)主程序;ORG0000HLJMPMAIN;上電,轉(zhuǎn)向主程序ORG0023H;串行口中止入口地址LJMPSERVE2;轉(zhuǎn)向乙機(jī)中止服務(wù)程序ORGH;主程序MAIN:MOVTMOD,#20H;設(shè)T1工作于模式2MOVTH1,#0F3H;賦計(jì)數(shù)初值MOVTL1,#0F3H;賦計(jì)數(shù)初值SETBTR1;開啟定時(shí)器T1MOVPCON,#80H;設(shè)SMOD=1MOVSCON,#0D0H;置串行口方式3,允許接收MOVDPTR,#4000H;置數(shù)據(jù)區(qū)首址MOVR0,#80H;置接收字節(jié)數(shù)初值SETBES;允許串行口中止SETBEA;CPU開中止SJMP$;等候中止61/79乙機(jī)中止服務(wù)程序:SERVE2:JBCRI,LOOP;是接收中止,去除此中止標(biāo)志,轉(zhuǎn)LOOP(接收)CLRTI;是發(fā)送中止,去除此中止標(biāo)志,中止返回SJMPENDTLOOP:MOVA,SBUF;接收(讀入)數(shù)據(jù)MOVC,P;奇偶標(biāo)志送CJCLOOP1;為奇數(shù),轉(zhuǎn)LOOP1ORLC,RB8;為偶數(shù),檢測(cè)RB8JCLOOP2;奇偶校驗(yàn)錯(cuò),轉(zhuǎn)LOOP2SJMPLOOP3LOOP1:ANLC,RB8;檢測(cè)RB8JCLOOP3;奇偶校驗(yàn)正確,轉(zhuǎn)LOOP3LOOP2:MOVA,#0FFHMOVSBUF,A;發(fā)送“不正確”應(yīng)答信號(hào)SJMPENDTLOOP3:MOVX@DPTR,A;存放接收數(shù)據(jù)
MOVA,#00HMOVSBUF,A;發(fā)送“正確”應(yīng)答信號(hào)INCDPTR;修改數(shù)據(jù)區(qū)指針DJNZR0,ENDT;數(shù)據(jù)塊未接收完,返回CLRES;全部數(shù)據(jù)接收完成,禁止串行口中止ENDT:RETI;中止返回END62/7989C51與PC機(jī)間通信軟件設(shè)計(jì)一、PC機(jī)通信軟件設(shè)計(jì)1.通信協(xié)議波特率:1200b/s;信息格式:8位數(shù)據(jù)位,1位停頓位,無奇偶檢驗(yàn);傳送方式:PC機(jī)采取查詢方式收發(fā)數(shù)據(jù);89C51采取中止方式接收,查詢方式發(fā)送;校驗(yàn)方式:累加和校驗(yàn);握手信號(hào):采取軟件握手。發(fā)送方在發(fā)送之前先發(fā)一聯(lián)絡(luò)信號(hào)(用“?”號(hào)ASCII碼,接收方接到“?”號(hào)后回送一個(gè)“·”號(hào)作為應(yīng)答信號(hào)),隨即依次發(fā)送數(shù)據(jù)塊長度(字節(jié)數(shù)),發(fā)送數(shù)據(jù),最終發(fā)送校驗(yàn)和。收方在收到發(fā)送方發(fā)過來校驗(yàn)和后與自己所累加校驗(yàn)和相比較,相同則回送一個(gè)“0”,表示正確傳送并結(jié)束此次通信過程;若不相同則回送一個(gè)“F”,并使發(fā)送方重新發(fā)送數(shù)據(jù),直到接收正確為止。63/792.PC機(jī)發(fā)送文件子程序首先介紹經(jīng)過串口發(fā)送一個(gè)文件函數(shù)sendf()。要求欲發(fā)送這個(gè)文件存在當(dāng)前盤上,而且為了便于說明問題,只傳送總字節(jié)小于256個(gè)字符文件。3、PC機(jī)接收文件子程序接收函數(shù)receivef()采取查詢方式從串口接收一個(gè)總字節(jié)數(shù)小于256個(gè)字符文件,接收文件也存于當(dāng)前盤上。64/79PC機(jī)發(fā)送文件子函數(shù)sendf()流程圖PC機(jī)接收文件子函數(shù)receivef()流程圖65/79PC機(jī)發(fā)送文件子函數(shù)sendf()程序清單66/7967/7968/794、PC機(jī)主程序(函數(shù))在有了上述發(fā)送和接收文件兩個(gè)子函數(shù)之后,主函數(shù)編寫就非常簡(jiǎn)單了。主函數(shù)工作只是在完成串口初始化后,依據(jù)鍵入命令來決定是發(fā)送文件還是接收文件。PC機(jī)主函數(shù)以下:69/79PC機(jī)主函數(shù)流程圖70/79這里采取是帶參主函數(shù)main(intargc,char*argv[])。其中,argc是一個(gè)整型變量,argv[]是一個(gè)字符型指針數(shù)組。利用main函數(shù)參數(shù)能夠使主程序從系統(tǒng)得到所需數(shù)據(jù)(也就是說帶參函數(shù)可直接從DOS命令行中得到參數(shù)值,當(dāng)然,這些值是字符串)。當(dāng)程序運(yùn)行時(shí)(在DOS下執(zhí)行.EXE文件),能夠依據(jù)輸入命令行參數(shù)進(jìn)行對(duì)應(yīng)處理。比如,執(zhí)行程序mypro時(shí),若要從當(dāng)前盤上將名為f1.c文件從串口發(fā)送出去,需鍵入下述命令:myprosf1.c其中,mypro是源文件mypro.c經(jīng)編譯連接后生成可執(zhí)行文件mypro.exe。鍵入命令:myprorf2.c能夠從串口接收若干字符,并寫入當(dāng)前盤上名為f2.c文件中去。71/79二、89C51通信軟件設(shè)計(jì)1、單片機(jī)查詢發(fā)送子程序本程序?qū)⑵釸AM從1000H開始小于256B數(shù)據(jù)從串行口發(fā)送出去,發(fā)送數(shù)據(jù)字節(jié)數(shù)在R7中,用R6作累加和存放器。單片機(jī)查詢發(fā)送子程序流程圖72/79SEND:MOVA,#3FHMOVSBUF,AJNBTI,$CLRTI;發(fā)‘?’號(hào),即3FHJNBRI,$CLRRIMOVA,SBUFCJNEA,#2EH,SEND;應(yīng)答信號(hào)是‘.’,即;2EH,則發(fā)字節(jié)數(shù)MOVA,R7MOVR3,A;暫存總字節(jié)數(shù)MOVSBUF,AJNBTI,$CLRTIMOVR6,#00HMOVDPTR,#1000HSEND1:MOVXA,@DPTRMOVSBUF,A;發(fā)送一個(gè)字符JNBTI,$CLRTIADDA,R6;計(jì)算校驗(yàn)和MOVR6,AINCDPTRDJNZR7,SEND1;計(jì)數(shù)器(R7)不為零則轉(zhuǎn)SEND1MOVA,R6MOVSBUF,AJNBTI,$CLRTI;發(fā)送校驗(yàn)和MOVA,SBUFCJNEA,#46H,SEND2;如收到應(yīng)答是‘F’,即46H,則重發(fā)數(shù)據(jù)RETSEND2:MOVDPTR,#1000HMOVR6,#00HMOVA,R3MOVR7,AAJMPSEND173/792、單片即接收中止服務(wù)子程序在中止服務(wù)子程序中
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年安全伴我行安全主題活動(dòng)致辭樣本(4篇)
- 紡織品檢測(cè)課程設(shè)計(jì)思路
- 電容式液位儀課程設(shè)計(jì)
- 水閘工作橋的課程設(shè)計(jì)
- 算法仿真與訓(xùn)練課程設(shè)計(jì)
- 公司項(xiàng)目管理制度匯編
- 穩(wěn)態(tài)課程設(shè)計(jì)變壓器選擇
- 2024幼兒園園務(wù)年度工作總結(jié)(31篇)
- 2024幼兒園消防安全工作計(jì)劃范文(29篇)
- 統(tǒng)計(jì)學(xué)海報(bào)課程設(shè)計(jì)
- 科技創(chuàng)新社團(tuán)活動(dòng)教案課程
- 部編版語文六年級(jí)上冊(cè)作文總復(fù)習(xí)課件
- 專利產(chǎn)品“修理”與“再造”的區(qū)分
- 氨堿法純堿生產(chǎn)工藝概述
- 基礎(chǔ)化工行業(yè)深度:電解液新型鋰鹽材料之雙氟磺酰亞胺鋰(LiFSI)市場(chǎng)潛力可觀新型鋰鹽LiFSI國產(chǎn)化進(jìn)程加速
- 年產(chǎn)10000噸一次性自然降解環(huán)保紙漿模塑餐具自動(dòng)化生產(chǎn)線技改項(xiàng)目環(huán)境影響報(bào)告表
- 實(shí)戰(zhàn)銷售培訓(xùn)講座(共98頁).ppt
- 測(cè)控電路第7章信號(hào)細(xì)分與辨向電路
- 哈爾濱工業(yè)大學(xué)信紙模版
- 氨的飽和蒸汽壓表
- 指揮中心大廳及機(jī)房裝修施工組織方案
評(píng)論
0/150
提交評(píng)論