學(xué)習(xí)情景五AS串行通信-oweroin_第1頁(yè)
學(xué)習(xí)情景五AS串行通信-oweroin_第2頁(yè)
學(xué)習(xí)情景五AS串行通信-oweroin_第3頁(yè)
學(xué)習(xí)情景五AS串行通信-oweroin_第4頁(yè)
學(xué)習(xí)情景五AS串行通信-oweroin_第5頁(yè)
已閱讀5頁(yè),還剩51頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

學(xué)習(xí)情景五AT89S52串行通信

學(xué)習(xí)目標(biāo):了解串行通信的基本知識(shí)掌握串行口的工作方式掌握波特率的設(shè)計(jì)掌握串行口工作方式的應(yīng)用掌握程序調(diào)試的基本方法和技巧。技能目標(biāo):會(huì)對(duì)串行口進(jìn)行初始化。會(huì)計(jì)算串行口通信波特率。能夠?qū)崿F(xiàn)單片機(jī)與單片機(jī)之間、單片機(jī)和PC機(jī)之間的通信。項(xiàng)目一單片機(jī)點(diǎn)對(duì)點(diǎn)通信第一部分項(xiàng)目要求利用AT89S52實(shí)現(xiàn)單片機(jī)點(diǎn)對(duì)點(diǎn)通信。要求將存放在甲機(jī)的數(shù)據(jù)存儲(chǔ)器20H—27H單元中數(shù)據(jù),首先在甲機(jī)上顯示,然后發(fā)送到PC機(jī),進(jìn)而再發(fā)送到乙機(jī),以實(shí)現(xiàn)單片機(jī)與PC機(jī)和單片機(jī)與單片機(jī)之間的通信。

第二部分相關(guān)知識(shí)

一、串行通信基本知識(shí)

(一)串行通信的基本概念單工形式:數(shù)據(jù)只能單方向從一端向另一端傳送;如:有線電視節(jié)目。發(fā)送端接收端數(shù)據(jù)線地線半雙工形式:數(shù)據(jù)可以雙向傳送,但任一時(shí)刻只能向一個(gè)方向傳送。既可分時(shí)雙向傳送數(shù)據(jù)。如:某些對(duì)講機(jī)單工發(fā)送端接收端接收端發(fā)送端數(shù)據(jù)線地線半雙工全雙工形式:同時(shí)雙向傳送數(shù)據(jù),因此,全雙工配置是一對(duì)單向配置,它要求兩端的通信設(shè)備都具有完整和獨(dú)立的發(fā)送和接收能力。通信效率最高,適合于計(jì)算機(jī)之間的通信。

發(fā)送端接收端接收端發(fā)送端數(shù)據(jù)線地線全雙工數(shù)據(jù)線(二)串行通信基本通信方式通信雙方要正確的進(jìn)行數(shù)據(jù)傳輸,需要解決何時(shí)開(kāi)始傳輸、何時(shí)結(jié)束傳輸,以及數(shù)據(jù)傳輸速率等問(wèn)題,這就是數(shù)據(jù)傳輸中的同步問(wèn)題。通常,實(shí)現(xiàn)數(shù)據(jù)同步有兩種方式:異步通信和同步通信。

1.異步通信:

數(shù)據(jù)一幀一幀地傳送。發(fā)送端和接收端可以由各自的時(shí)鐘控制數(shù)據(jù)的發(fā)送和接收,兩個(gè)時(shí)鐘源彼此獨(dú)立,互不同步。數(shù)據(jù)的一幀:由一個(gè)字符代碼組成。幀格式:一個(gè)字符由四部分組成:起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位。起始位(0):位于字符幀的開(kāi)頭,占用一位,用來(lái)通知接收設(shè)備一個(gè)待接收的字符開(kāi)始到達(dá)。數(shù)據(jù)位:緊跟起始位后,5~8位數(shù)據(jù)(規(guī)定低位在前,高位在后)奇偶校驗(yàn)位(可省略),占一位,用于對(duì)字符傳送作正確性檢查,因此奇偶校驗(yàn)位是可選擇的,共有三種可能,即奇偶校驗(yàn)、偶校驗(yàn)和無(wú)校驗(yàn),由用戶根據(jù)需要選定。停止位(1)停止位用來(lái)表征字符的結(jié)束。停止位可以是1位、1.5位或2位。接收端收到停止位后,知道上一字符已傳送完畢2.同步通信

在一個(gè)數(shù)據(jù)塊的開(kāi)頭使用同步字符。數(shù)據(jù)傳送時(shí)使用同一頻率的脈沖來(lái)實(shí)現(xiàn)發(fā)送端與接收端的嚴(yán)格時(shí)間同步。二、串行通信總線標(biāo)準(zhǔn)及其接口傳輸距離不同,可以選擇不同的總線標(biāo)準(zhǔn)。89S5289S5289S5289S52如果是長(zhǎng)距離傳送,可采用RS-485標(biāo)準(zhǔn)。短距離傳送,只需要TX、RX和GND三根線。距離在15米左右,采用RS-232標(biāo)準(zhǔn)接口。(一一))RS-232標(biāo)標(biāo)準(zhǔn)準(zhǔn)RS-232C標(biāo)準(zhǔn)準(zhǔn)是是美美國(guó)國(guó)EIA((電電子子工工業(yè)業(yè)聯(lián)聯(lián)合合會(huì)會(huì)))與與BELL等等公公司司一一起起開(kāi)開(kāi)發(fā)發(fā)的的于于1969年年公1.RS-232C的的電電氣氣特特性性數(shù)據(jù)據(jù)線線上上的的信信號(hào)號(hào)電電平平mark(邏邏輯輯1)=-3~~-15Vspace(邏邏輯輯0)=+3~~+15V(2)控控制制和和狀狀態(tài)態(tài)ON(邏輯0)=+3~+15V(接通)OFF(邏輯1)=-3~-15V(斷開(kāi))電平平轉(zhuǎn)轉(zhuǎn)換換RS-232C接口口采采用用雙雙極極性性信信號(hào)號(hào)、、公公共共地地線線和和負(fù)負(fù)邏邏輯輯;;不能和TTL電電平直直接相相連,,使用用時(shí)必必須進(jìn)進(jìn)行電電平轉(zhuǎn)轉(zhuǎn)換,,否則則將使使TTL電電路燒燒壞,,實(shí)際際應(yīng)用用時(shí)必必須注注意!!在實(shí)實(shí)際應(yīng)應(yīng)用時(shí)時(shí),必必須通通過(guò)專專用電電平轉(zhuǎn)轉(zhuǎn)換芯芯片進(jìn)進(jìn)行電電平轉(zhuǎn)轉(zhuǎn)換。。電平轉(zhuǎn)轉(zhuǎn)換芯芯片MC1488、、MC1489、MAX232MC1488可可實(shí)現(xiàn)現(xiàn)TTL→→RS-232的電電平轉(zhuǎn)轉(zhuǎn)換;;MC1489可可實(shí)現(xiàn)現(xiàn)RS-232→TTL的電電平轉(zhuǎn)轉(zhuǎn)換。。MAX232芯芯片可可完成成TTL到到EIA雙雙向電電平的的轉(zhuǎn)換換89S5289S52通過(guò)MAX232實(shí)現(xiàn)RS-232C電平轉(zhuǎn)換TTL到EIMAX232管管腳說(shuō)說(shuō)明如如下::①C1+、、C1-、、C2+、、C2-是是外外接接電電容容端端;;②R1IN、、R2IN則則是是2路路RS-232C電電平平信信號(hào)號(hào)接接收收輸輸入入端端;;③R1OUT、、R2OUT是是2路路轉(zhuǎn)轉(zhuǎn)換換后后的的TTL電電平平接接收收信信號(hào)號(hào)輸輸出出端端,,送送80④T1IN、T2IN是2路TTL電平發(fā)送輸入端,接80S52的TxD發(fā)送端;⑤T1OUT、T2OUT是2路轉(zhuǎn)換后的發(fā)送RS-232C電平信號(hào)輸出端,接傳輸線;⑥V+經(jīng)電容接電源十5V;⑦V-經(jīng)電容接地。PC機(jī)機(jī)與與AT89S52單單片片機(jī)機(jī)串串行行通通信信電電路路圖中外接電電解電容C1、C2、C3、、C4用于于電源電壓壓變換,提提高抗干擾擾能力,它它們可以取取相同數(shù)值值電容1.0μF/16V。電容容C5用于于對(duì)+5V電源的的噪聲干擾擾進(jìn)行濾波波,其值一一般為0.1μFAT89S52TXDRXDGNDC1+C1-C2+C2-++C1C2T1inT1outR1inR1outV-GNDVCCV+MAX232++C3C5C4+5VGNDTXDRS232RXDIBM-PC2.信號(hào)號(hào)接口引腳信號(hào)名功能1DCD載波檢測(cè)2RXD接收數(shù)據(jù)3TXD發(fā)送數(shù)據(jù)4DTR數(shù)據(jù)終端準(zhǔn)備就緒5GND信號(hào)地線6DSR數(shù)據(jù)準(zhǔn)備完成7RTS發(fā)送請(qǐng)求8CTS發(fā)送清除9RI振鈴指示(二)AT89S52串行口口結(jié)構(gòu)與控控制1.串行行口的結(jié)構(gòu)構(gòu)SM0、SM1:串行口工作作方式控制制位,兩位位對(duì)應(yīng)四四種工作方方式,如下下表所示((fosc是晶振頻頻率)。2.串行行口控制(1)串SM2:多機(jī)通信控控制位,主主要用于方方式2和方方式3當(dāng)串行口以以方式2或或方式3接接收時(shí),如如SM2=1,則只只有當(dāng)接收收到的第9位數(shù)據(jù)((RB8))為1,才才將接收到到的前8位位數(shù)據(jù)送入入SBUF,并置位位RI產(chǎn)生生中斷請(qǐng)求求,否則將將接收到的的前8位數(shù)數(shù)據(jù)丟棄。。SM2=0,不論第第9位數(shù)據(jù)據(jù)為0還是是為1,都都將前8位位數(shù)據(jù)裝入入SBUF中,并產(chǎn)產(chǎn)生中斷申申請(qǐng)。在方式0時(shí)時(shí),SM2=0。REN:REN=1,允許接收;REN=0,禁止接收。TB8:發(fā)送數(shù)據(jù)第第9位方式0,方式1,此位未使用方式2和方式3:TB8=1,說(shuō)明該發(fā)送幀為地址幀。TB8=0,說(shuō)明該發(fā)送幀為數(shù)據(jù)幀RB8:接收數(shù)據(jù)第9位方式2和方式3:RB8存放接收到的第9位數(shù)據(jù),代表接收數(shù)據(jù)的某種特征。若SM2=1,RB8=1,說(shuō)明收到幀為地址幀。TI:發(fā)送中斷標(biāo)標(biāo)志在一幀數(shù)據(jù)據(jù)發(fā)送完時(shí)時(shí)置位。RI:接收中斷標(biāo)志在接收到一幀有效數(shù)據(jù)后,由硬件置位。RI=1,申請(qǐng)中斷。RI不能自動(dòng)清零,必須由軟件清零。(2)電源源控制寄存存器PCONSMOD—串行口波特率的倍增位當(dāng)SMOD=1時(shí),串行口波特率加倍。系統(tǒng)復(fù)位時(shí),SMOD=0。三、AT89S52串行口工工作方式(一)串行行口波特率率設(shè)計(jì)1.波特特率波特率的定定義是每秒鐘傳傳送二進(jìn)制制數(shù)碼的位位數(shù)(亦稱稱比特?cái)?shù)),單位是是b/s。。假設(shè)數(shù)據(jù)傳傳送速率是是120字符/s,而每個(gè)字字符格式包包含10個(gè)個(gè)代碼(1個(gè)起始位位、1個(gè)終終止位、8個(gè)數(shù)據(jù)位位)。這時(shí)時(shí),傳送的的波特率為為(10b//字符符)××120字字符//s=1200b/s每一位位代碼的的傳送送時(shí)間間Td為波特率率的倒倒數(shù)。2.波波特特率設(shè)設(shè)計(jì)方式0波特率率方式0波特率率=fosc/12方式2波特率率方式2波特率率=(2SMOD/64)××foscSMOD為0時(shí),波波特率率等于于振蕩蕩器頻頻率的的1/64SMOD為1時(shí),波波特率率等于于振蕩蕩器頻頻率的的1/32。方式1和方式式3的波特特率串行口口方式式1和方式式3的波波特率=2smod/32×(定時(shí)器1溢出率)

例如振蕩頻頻率fosc=11.0596MHZ,若若SMOD=0,通通信波波特率率為9600波波特,,則X=256-[11.0596××106×(1+0)]/(9600××384)=253=FDH初始化化程序序如下下:MOVTMOD,#20H;;設(shè)T1為為定時(shí)時(shí)方式式2MOVTHl,,#0FDH;;設(shè)定定波特特率為為9600bit//sMOVTLl,,#0FDHSETBTRl;;啟啟動(dòng)定定時(shí)器器MOVPCON,#00H;;SMOD=0MOVSCON,#50H;;串串行口口工作作在方方式1(二))串行行口工工作方方式1.工工作作方式式0當(dāng)SM0SMl=00時(shí),串串行接接口選選擇工工作方方式0,為同同步移移位寄寄存器器輸入發(fā)送完置中斷標(biāo)志TI為1,請(qǐng)求中斷。在再次發(fā)送數(shù)據(jù)之前,必須由軟件清TI為0。接收前前置REN=1和RI=0,,當(dāng)8位數(shù)數(shù)據(jù)接接收結(jié)結(jié)束,,RI被置置“1”,,可通通過(guò)指指令MOVA,SBUF將將數(shù)據(jù)據(jù)讀入入。下圖采采用一一個(gè)串串入并并出移移位寄寄存器器,TXD連接接串行行口輸輸出移移位寄寄存器器164的的時(shí)鐘鐘端,,RXD連連接164的輸輸入端端,P1.0連連接164的CLR選通通端。。89S5274LS164根據(jù)硬硬件連連接,,方式式0發(fā)發(fā)送數(shù)數(shù)據(jù)程程序如如下::SETBPMOVSCON,#00H;串口工作在方式0MOVA,#DATAMOVSBUF,A;發(fā)送數(shù)據(jù)JNBTI,$ ;等待發(fā)送完?CLRTI ;清除TI中斷標(biāo)志CLRP1.0 ;關(guān)閉74LS1642.工工作作方式式1工作方方式1,SM0SMl=01,為可可變波波特率率的8位異步步通信信方式式。發(fā)送數(shù)數(shù)據(jù)由由TXD端輸出出,接接收數(shù)數(shù)據(jù)由由RXD端輸入入。方式1以10位為一一幀傳傳輸,,設(shè)有有1個(gè)起始始位(0),8個(gè)數(shù)據(jù)據(jù)位和和1個(gè)停止位位(1)。其幀格格式起始始位(0),8個(gè)數(shù)據(jù)位位和1個(gè)停止位位(1)。發(fā)送時(shí),,數(shù)據(jù)從從TXD端輸出,,當(dāng)數(shù)據(jù)據(jù)寫(xiě)入發(fā)發(fā)送緩沖沖器SBUF后,啟動(dòng)動(dòng)發(fā)送器器發(fā)送。。當(dāng)發(fā)送送完一幀幀數(shù)據(jù)后后,置中中斷標(biāo)志志TI為1。方式1所傳送的的波特率率取決于于定時(shí)器器1的溢出率率和PCON中的SMOD位。接收時(shí),,由REN置1,允許接【例5.1】89S52串行行口按雙雙工方式式收發(fā)ASCII字符符,甲機(jī)機(jī)發(fā)送的的字符從從外部RAM的的1000H開(kāi)開(kāi)始,檢檢測(cè)到結(jié)結(jié)束字符符0AH就結(jié)束束發(fā)送,,乙機(jī)將將接收的的字符放放在內(nèi)部部RAM的30H開(kāi)始始的空間間。要求求通信的的波特率率為9600波波特,用用中斷方方式編寫(xiě)寫(xiě)通信程程序。主程序::MOVTMOD,#20H;;定時(shí)時(shí)器1設(shè)設(shè)為工作作方式2MOVTLl,,#0FDH;;定時(shí)器器初值MOVTHl,,#0FDH;;8位重重裝值SETBTRl;;啟啟動(dòng)定時(shí)時(shí)器1MOVSCON,#50H;;將串串行口設(shè)設(shè)置為方方式1,,REN=lMOVDPTR,#DPTRMOVR0,#30H;接收數(shù)據(jù)區(qū)首址送R0SETBESSETB EA;開(kāi)中斷ACALL SEND;先發(fā)送一個(gè)字符L00P:SJMP$;等待中斷發(fā)送子程程序SEND:CLRTIMOVA,@DPTR;;取發(fā)發(fā)送數(shù)據(jù)據(jù)到AINCDPTR;;修改發(fā)發(fā)送數(shù)據(jù)據(jù)指針MOVSBUF,A;;發(fā)發(fā)送ASCII碼CJNEA,,#0AH,SEN1;是否是是結(jié)束字字符CLRES;;關(guān)閉串串口中斷斷SEN1:RET;;返回回中斷服務(wù)務(wù)程序ORG0023H;;串串行口中中斷入口口AJMPRSI;;轉(zhuǎn)至中中斷服務(wù)務(wù)程序ORG0100HRSI::JNBRI,SEN;;TI=1,為為發(fā)送中中斷ACALLREV;;RI=1,,為接收收中斷SJMPNEXT;;轉(zhuǎn)至至統(tǒng)一的的出口SEN::ACALLSEND;;調(diào)用發(fā)發(fā)送子程程序NEXT:RETI;;中斷返返回接收子程程序REV::CLRRIMOVA,SBUF;讀出接接收緩沖沖區(qū)內(nèi)容容MOV@R0,A;讀讀入接收收緩沖區(qū)區(qū)INCR0;;修改改接收數(shù)數(shù)據(jù)指針針CJNEA,#0AH,RES;;是否是是結(jié)束字字符CLRES;;關(guān)閉閉串口中中斷RES::RET;;返回3.工工作方式式2SM1SM0=10,串行接接口選擇擇工作方方式2。方式2是是11位位異步通通信方式式,每幀幀數(shù)據(jù)由由1個(gè)起起始位““0”、、9個(gè)數(shù)數(shù)據(jù)位和和1個(gè)停停止位““1”共共11構(gòu)構(gòu)成。其其中發(fā)送送的第9位由SCON的TB8提供供,接收收的第9位存在在SCON的RB8位位。其波波特率是是固定的的為fosc/32或或fosc/64。方式2發(fā)發(fā)送:CPU執(zhí)執(zhí)行一條條寫(xiě)入SBUF的指令令就啟動(dòng)動(dòng)串行口口的發(fā)送送,并把把TB8的內(nèi)容容裝入發(fā)發(fā)送寄存存器的第第9位。。首先發(fā)發(fā)送起始始位0,,此后每每經(jīng)過(guò)一一個(gè)時(shí)鐘鐘周期產(chǎn)產(chǎn)生一個(gè)個(gè)移位脈脈沖,并并且由TXD輸輸出一個(gè)個(gè)數(shù)據(jù)位位,當(dāng)11位數(shù)數(shù)據(jù)全部部發(fā)送后后,使TI置1。方式2接接收:接接收過(guò)程程和方式式1類似似,當(dāng)REN=1時(shí),,允許串串行口接接收數(shù)據(jù)據(jù)。數(shù)據(jù)據(jù)由RXD端輸輸入,接接收11位數(shù)據(jù)據(jù)。在方方式2的的接收中中,若RI=0,SM2=0或接接收到的的第9位位數(shù)據(jù)為為1,成成立則RI=1,8位位數(shù)據(jù)進(jìn)進(jìn)入SBUF,,第九位位進(jìn)入RB8。。若不滿足足上述兩兩個(gè)條件件則接收收到的信信息將丟丟失,不不再恢復(fù)復(fù),也不不置位RI。【例5.2】設(shè)設(shè)計(jì)一個(gè)個(gè)發(fā)送程程序,將將片內(nèi)RAM30H~3FH中的數(shù)數(shù)據(jù)串行行發(fā)送,,串行口口設(shè)定為為方式2狀態(tài),,TB8作奇偶偶校驗(yàn)位位。在數(shù)數(shù)據(jù)寫(xiě)入入發(fā)送緩緩沖器之之前,先先將數(shù)據(jù)據(jù)的奇偶偶位P寫(xiě)寫(xiě)入TB8,這這時(shí)第9位數(shù)據(jù)據(jù)作奇偶偶校驗(yàn)用用。程序清單單如下::TRT::MOVSCON,##80H;;方方式2設(shè)設(shè)定MOVPCON,##80H;;取波特特率為fosc/32MOVR0,,#30HMOVR7,,#10H;;數(shù)據(jù)長(zhǎng)長(zhǎng)度10HLOOP:MOVA,@R0;;取數(shù)據(jù)據(jù)送AMOVC,,PSW.0;;MOVTB8,CMOVSBUF,,A;;數(shù)據(jù)據(jù)送SBUF,,啟動(dòng)發(fā)發(fā)送WAIT:JBCTI,CONT;;判斷斷發(fā)送結(jié)結(jié)束否SJMPWAITCONT:INCR0DJNZR7,LOOPRET四、串行行口通信信應(yīng)用舉舉例(一)雙雙機(jī)通信信應(yīng)用舉舉例1.通通信雙方方的協(xié)議議(1)通通信雙方方的波特特率均為為9600波特特,均工工作在串串口方式式1。甲甲機(jī)發(fā)送送,乙機(jī)機(jī)接收。。(2)甲機(jī)機(jī)開(kāi)始發(fā)送送時(shí),先發(fā)發(fā)一個(gè)呼叫叫信號(hào)“0FH”,,乙機(jī)接收收后,若同同意接收數(shù)數(shù)據(jù)就發(fā)一一個(gè)應(yīng)答信信號(hào)“01H”。(3)當(dāng)甲甲機(jī)接到““01H””后,開(kāi)始始發(fā)送數(shù)據(jù)據(jù)。假設(shè)發(fā)發(fā)送的數(shù)據(jù)據(jù)塊首地址址是片內(nèi)RAM40H,數(shù)數(shù)據(jù)塊長(zhǎng)度度64H。。數(shù)據(jù)塊發(fā)發(fā)送結(jié)束后后,發(fā)送累累加校驗(yàn)和和。累加校校驗(yàn)和是指指數(shù)據(jù)塊中中每個(gè)字節(jié)節(jié)的算術(shù)累累加和。(4)乙機(jī)機(jī)接收數(shù)據(jù)據(jù)并存在數(shù)數(shù)據(jù)緩沖區(qū)區(qū)。假設(shè)數(shù)數(shù)據(jù)緩沖區(qū)區(qū)的首地址址是片內(nèi)RAM40H。乙乙機(jī)在接收收過(guò)程中對(duì)對(duì)接收的數(shù)數(shù)據(jù)塊也作作算術(shù)累加加和,并與與甲機(jī)發(fā)送送的累加和和作比較,,若相等則則表示接收收正確,給給甲機(jī)發(fā)““00H””;若不等等則表示接接收不正確確,給甲機(jī)機(jī)發(fā)“FFH”,請(qǐng)請(qǐng)求重發(fā)。。(5)甲甲機(jī)收到到“00H”后后,結(jié)束束發(fā)送,,否則將將數(shù)據(jù)重重發(fā)一次次。2.查詢?cè)兎绞较孪碌耐ㄐ判懦绦蚣讬C(jī)發(fā)送送子程序序:ATX::MOVTMOD,,#20H;;設(shè)設(shè)T1為為定時(shí)方方式2MOVTHl,#0FDH;;設(shè)定波波特率為為9600bit/sMOVTLl,#0FDHMOVPCON,,#00HSETBTRl;;啟啟動(dòng)定時(shí)時(shí)器T1MOVSCON,,#50H;;串串行口初初始化ATXl:MOVA,#0FH;;發(fā)送呼呼叫信號(hào)號(hào)MOVSUBF,,AATWl:JBCTI,ATRlSJMPATWl;;等等待發(fā)送送出去ATR1:JBCRI,,ATR2;;等待乙乙機(jī)應(yīng)答答SJMPATRlATR2:MOVA,SBUF;;接收應(yīng)應(yīng)答信號(hào)號(hào)XRLA,#01HJNZATX1;乙機(jī)機(jī)未準(zhǔn)備備好,繼繼續(xù)呼叫叫ATX2:MOVR0,#40H;數(shù)數(shù)據(jù)塊首首地址送送R0MOVR2,#64H;;數(shù)數(shù)據(jù)塊長(zhǎng)長(zhǎng)度送R2MOVR3,,#00H;;清清校驗(yàn)和和寄存器器ATX3:MOVA,@R0;;發(fā)送送一個(gè)數(shù)數(shù)據(jù)字節(jié)節(jié)MOVSBUF,AMOVA,R3ADDA,@R0;;求求校驗(yàn)和和MOVR3,AINCR0;;修改改地址指指針ATW2:JBCTI,,ATX4SJMPATW2ATX4:DJNZR2,ATX3;判數(shù)數(shù)據(jù)塊發(fā)發(fā)送完否否MOVA,R3;;發(fā)發(fā)送校驗(yàn)驗(yàn)和MOVSBUF,AATW3:JBCTI,ATR3SJMPATW3ATR3:JBCRI,ATR4;等等待乙機(jī)機(jī)應(yīng)答SJMPATR3ATR4:MOVA,SBUFJNZATX2;;若乙乙機(jī)回答答出錯(cuò),,則重發(fā)發(fā)RET接收子程程序:BRXD:MOVTMOD,#20H;;設(shè)T1為定定時(shí)方式式2MOVTHl,#0FDH;;設(shè)設(shè)定波特特率為9600bit/sMOVTLl,#0FDHMOVPCON,,#00HSETBTRl;;啟動(dòng)定定時(shí)器T1MOVSCON,,#50H;;串串行行口口設(shè)設(shè)為為方方式式1BRXl::JBCRI,,BRX2;;等等待待甲甲機(jī)機(jī)呼呼叫叫信信號(hào)號(hào)SJMPBRXlBRX2::MOVA,,SBUFXRLA,,#0FHJNZBRXl;;判呼呼叫信信號(hào)是是否正正確BTXl::MOVA,,#01H;;發(fā)應(yīng)應(yīng)答信信號(hào)MOVSBUF,ABWl:JBCTI,,BRX3SJMPBWlBRX3::MOVR0,,#40H;;R0指向向接收收數(shù)據(jù)據(jù)緩沖沖區(qū)首首址MOVR2,#64H;;數(shù)數(shù)據(jù)塊塊長(zhǎng)度度送R2MOVR3,#00H;;校驗(yàn)驗(yàn)和單單元清清零BRX4::JBCRI,,BRX5SJMPBRX4BRX5::MOVA,SBUFMOV@R0,,A;;接收收的數(shù)數(shù)據(jù)轉(zhuǎn)轉(zhuǎn)存INCR0ADDA,,R3;;求校校驗(yàn)和和MOVR3,ADJNZR2,,BRX4;;判判數(shù)據(jù)據(jù)塊接接收完完否BW2:JBCRI,,BRX6;;接接收甲甲機(jī)校校驗(yàn)和和SJMPBW2BRX6::MOVA,SBUFXRLA,,R3;;比比較校校驗(yàn)和和JZBENDMOVA,,#0FFH;;校校驗(yàn)和和不等等,發(fā)發(fā)錯(cuò)誤誤標(biāo)志志MOVSBUF,ABW3:JBCTI,,AGAIN;;轉(zhuǎn)重重

溫馨提示

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