1引言
隨著科學(xué)技術(shù)的快速發(fā)展,超聲波將在測距儀中的應(yīng)用越來越廣。但就目前技術(shù)水平來說,人們可以具體利用的測距技術(shù)還十分有限,因此,這是一個正在蓬勃發(fā)展而又有無限前景的技術(shù)及產(chǎn)業(yè)領(lǐng)域。展望未來,超聲波測距儀作為一種新型的非常重要有用的工具在各方面都將有很大的發(fā)展空間,它將朝著更加高定位高精度的方向發(fā)展,以滿足日益發(fā)展的社會需求,如聲納的發(fā)展趨勢基本為:研制具有更高定位精度的被動測距聲納,以滿足水中武器實(shí)施全隱蔽攻擊的需要;繼續(xù)發(fā)展采用低頻線譜檢測的潛艇拖曳線列陣聲納,實(shí)現(xiàn)超遠(yuǎn)程的被動探測和識別;研制更適合于淺海工作的潛艇聲納,特別是解決淺海水中目標(biāo)識別問題;大力降低潛艇自噪聲,改善潛艇聲納的工作環(huán)境。無庸置疑,未來的超聲波測距儀將與自動化智能化接軌,與其他的測距儀集成和融合,形成多測距儀。隨著測距儀的技術(shù)進(jìn)步,測距儀將從具有單純判斷功能發(fā)展到具有學(xué)習(xí)功能,zui終發(fā)展到具有創(chuàng)造力。在新的世紀(jì)里,面貌一新的測距儀將發(fā)揮更大的作用。
隨著科技的發(fā)展,人們生活水平的提高,城市發(fā)展建設(shè)加快,城市給排水系統(tǒng)也有較大發(fā)展,其狀況不斷改善。但是,由于歷史原因合成時(shí)間住的許多不可預(yù)見因素,城市給排水系統(tǒng),特別是排水系統(tǒng)往往落后于城市建設(shè)。因此,經(jīng)常出現(xiàn)開挖已經(jīng)建設(shè)好的建筑設(shè)施來改造排水系統(tǒng)的現(xiàn)象。城市污水給人們帶來了困擾,因此箱涵的排污疏通對大城市給排水系統(tǒng)污水處理,人們生活舒適顯得非常重要。而設(shè)計(jì)研制箱涵排水疏通移動機(jī)器人的自動控制系統(tǒng),保證機(jī)器人在箱涵中自由排污疏通,是箱涵排污疏通機(jī)器人的設(shè)計(jì)研制的核心部分??刂葡到y(tǒng)核心部分就是超聲波測距儀的研制。因此,設(shè)計(jì)好的超聲波測距儀就顯得非常重要了。這就是我設(shè)計(jì)
超聲波測距儀的意義。
2總體設(shè)計(jì)方案
2.1設(shè)計(jì)思路
2.1.1超聲波測距儀的設(shè)計(jì)思路
超聲波是指頻率高于20KHz的機(jī)械波。為了以超聲波作為檢測手段,必須產(chǎn)生超生波和接收超聲波。完成這種功能的裝置就是超聲波傳感器,習(xí)慣上稱為超聲波換能器或超聲波探頭。超聲波傳感器有發(fā)送器和接收器,但一個超聲波傳感器也可具有發(fā)送和接收聲波的雙重作用。超聲波傳感器是利用壓電效應(yīng)的原理將電能和超聲波相互轉(zhuǎn)化,即在發(fā)射超聲波的時(shí)候,將電能轉(zhuǎn)換,發(fā)射超聲波;而在收到回波的時(shí)候,則將超聲振動轉(zhuǎn)換成電信號。
超聲波測距的原理一般采用渡越時(shí)間法TOF(timeofflight)。首先測出超聲波從發(fā)射到遇到障礙物返回所經(jīng)歷的時(shí)間,再乘以超聲波的速度就得到二倍的聲源與障礙物之間的距離
測量距離的方法有很多種,短距離的可以用尺,遠(yuǎn)距離的有激光測距等,超聲波測距適用于高精度的中長距離測量。因?yàn)槌暡ㄔ跇?biāo)準(zhǔn)空氣中的傳播速度為331.45米/秒,由單片機(jī)負(fù)責(zé)計(jì)時(shí),單片機(jī)使用12.0MHZ晶振,所以此系統(tǒng)的測量精度理論上可以達(dá)到毫米級。
由于超聲波指向性強(qiáng),能量消耗緩慢,在介質(zhì)中傳播距離遠(yuǎn),因而超聲波可以用于距離的測量。利用超聲波檢測距離,設(shè)計(jì)比較方便,計(jì)算處理也較簡單,并且在測量精度方面也能達(dá)到要求。
超聲波發(fā)生器可以分為兩類:一類是用電氣方式產(chǎn)生超聲波,一類是用機(jī)械方式產(chǎn)生超聲波。本課題屬于近距離測量,可以采用常用的壓電式超聲波換能器來實(shí)現(xiàn)。
2.12超聲波測距原理
發(fā)射器發(fā)出的超聲波以速度υ在空氣中傳播,在到達(dá)被測物體時(shí)被反射返回,由接收器接收,其往返時(shí)間為t,由s=vt/2即可算出被測物體的距離。由于超聲波也是一種聲波,其聲速v與溫度有關(guān),下表列出了幾種不同溫度下的聲速。在使用時(shí),如果溫度變化不大,則可認(rèn)為聲速是基本不變的。如果測距精度要求很高,則應(yīng)通過溫度補(bǔ)償?shù)姆椒右孕U?br />
表1超聲波波速與溫度的關(guān)系表
2.2超聲波測距儀原理框圖
根據(jù)設(shè)計(jì)要求并綜合各方面因素,可以采用AT89S51單片機(jī)作為主控制器,用動態(tài)掃描法實(shí)現(xiàn)LED數(shù)字顯示,超聲波驅(qū)動信號用單片機(jī)的定時(shí)器完成,超聲波測距器的系統(tǒng)框圖如圖1.
3.設(shè)計(jì)原理分析
3.1系統(tǒng)組成
3.1.1硬件部分
主要由單片機(jī)系統(tǒng)及顯示電路、超聲波發(fā)射電路和超聲波檢測接收電路三部分組成。采用AT89S51來實(shí)現(xiàn)對超聲波發(fā)射和接受處理模塊的控制。單片機(jī)通過P1.0引腳經(jīng)反相器來控制超聲波的發(fā)送,然后單片機(jī)不停的檢測INT0引腳,當(dāng)INT0引腳的電平由高電平變?yōu)榈碗娖綍r(shí)就認(rèn)為超聲波已經(jīng)返回。計(jì)數(shù)器所計(jì)的數(shù)據(jù)就是超聲波所經(jīng)歷的時(shí)間,通過換算就可以得到傳感器與障礙物之間的距離。
3.1.2軟件部分
主要由主程序、超聲波發(fā)生子程序、超聲波接收中斷程序及顯示子程序等部分。
3.2系統(tǒng)硬件電路設(shè)計(jì)
3.2.1單片機(jī)zui小系統(tǒng)
其作用主要是為了保證單片機(jī)系統(tǒng)能正常工作。如圖2所示,單片機(jī)zui小系統(tǒng)主要由AT89S51單片機(jī)、外部振蕩電路、復(fù)位電路和+5V電源組成。在外部振蕩電路中,單片機(jī)的XTAL1和XTAL2管腳分別接至由12MHZ晶振和兩個30PF電容構(gòu)成的振蕩電路兩側(cè),為電路提供正常的時(shí)鐘脈沖。在復(fù)位電路中,單片機(jī)RESET管腳一方面經(jīng)20F的電容接至電源正極,實(shí)現(xiàn)上電自動復(fù)位,另一方面經(jīng)開關(guān)s接電源。其主要功能是把PC初始化為0000H,是單片機(jī)從0000H單元開始執(zhí)行程序,除了進(jìn)入系統(tǒng)的初始化之外,當(dāng)由于程序出錯或者操作錯誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為了擺脫困境,也需要按復(fù)位鍵重新啟動,因此,復(fù)位電路是單片機(jī)系統(tǒng)中*的一部分。
3.2.2單片機(jī)測距原理
單片機(jī)發(fā)出超聲波測距是通過不斷檢測超聲波發(fā)射后遇到障礙物所反射的回波,從而測出發(fā)射和接收回波的時(shí)間差tr,然后求出距離S=Ct/2,式中的C為超聲波波速。限制該系統(tǒng)的zui大可測距離存在4個因素:超聲波的幅度、反射的質(zhì)地、反射和入射聲波之間的夾角以及接收換能器的靈敏度。接收換能器對聲波脈沖的直接接收能力將決定zui小的可測距離。為了增加所測量的覆蓋范圍、減小測量誤差,可采用多個超聲波換能器分別作為多路超聲波發(fā)射/接收的設(shè)計(jì)方法,限于實(shí)際需要,本電路只采用單路超聲波發(fā)射接收。由于超聲波屬于聲波范圍,其波速C與溫度有關(guān)。
3.2.3超聲波發(fā)射電路
壓電超聲波轉(zhuǎn)換器的功能:利用壓電晶體諧振工作。內(nèi)部結(jié)構(gòu)上圖所示,它有兩個壓電晶片和一個共振板。當(dāng)它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時(shí),壓電晶片將會發(fā)生共振,并帶動共振板振動產(chǎn)生超聲波,這時(shí)它就是一超聲波發(fā)生器;如沒加電壓,當(dāng)共振板接受到超聲波時(shí),將壓迫壓電振蕩器作振動,將機(jī)械能轉(zhuǎn)換為電信號,這時(shí)它就成為超聲波接受轉(zhuǎn)換器。超聲波發(fā)射轉(zhuǎn)換器與接受轉(zhuǎn)換器其結(jié)構(gòu)稍有不同。
壓電式超聲波換能器是利用壓電晶體的諧振來工作的。超聲波換能器內(nèi)部有兩個壓電晶片和一個換能板。當(dāng)它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時(shí),壓電晶片會發(fā)生共振,并帶動共振板振動產(chǎn)生超聲波,這時(shí)它就是一個超聲波發(fā)生器;反之,如果兩電極問未外加電壓,當(dāng)共振板接收到超聲波時(shí),將壓迫壓電晶片作振動,將機(jī)械能轉(zhuǎn)換為電信號,這時(shí)它就成為超聲波接收換能器。超聲波發(fā)射換能器與接收換能器在結(jié)構(gòu)上稍有不同,使用時(shí)應(yīng)分清器件上的標(biāo)志。本設(shè)計(jì)中發(fā)射器電路采用集成電路模塊不需考慮這些問題,主要是采用4069反相器在換能器兩端提供脈沖信號。其原理圖如圖3所示。
3.2.4超聲波檢測接收電路
集成電路CX20106A是一款紅外線檢波接收的芯片,常用于電視機(jī)紅外遙控接收器??紤]到紅外遙控常用的載波頻率38kHz與測距的超聲波頻率40kHz較為接近,可以利用它制作超聲波檢測接收電路(如圖2-3)。實(shí)驗(yàn)證明用CX20106A接收超聲波(無信號時(shí)輸出高電平),具有很好的靈敏度和較強(qiáng)的抗*力。適當(dāng)更改電容CS的大小,可以改變接收電路的靈敏度和抗*力。此部分電路在集成芯片上。
3.2.5LED顯示電路
根據(jù)設(shè)計(jì)要求并綜合各方面因素,可以采用AT89S51單片機(jī)作為主控制器,用動態(tài)掃描法實(shí)現(xiàn)LED數(shù)字顯示,超聲波驅(qū)動信號用單片機(jī)的定時(shí)器完成,顯示電路如下圖5
3.3系統(tǒng)軟件的設(shè)計(jì)
本設(shè)計(jì)基于匯編語言編程,其軟件設(shè)計(jì)思路如下:
3.3.1超聲波測距儀的算法設(shè)計(jì)
超聲波測距的原理為超聲波發(fā)生器T在某一時(shí)刻發(fā)出一個超聲波信號,當(dāng)這個超聲波遇到被測物體后反射回來,就被超聲波接收器R所接收到。這樣只要計(jì)算出從發(fā)出超聲波信號到接收到返回信號所用的時(shí)間,就可算出超聲波發(fā)生器與反射物體的距離。距離的計(jì)算公式為:
d=s/2=(c×t)/2(1)
其中,d為被測物與測距儀的距離,s為聲波的來回的路程,c為聲速,t為聲波來回所用的時(shí)間。在啟動發(fā)射電路的同時(shí)啟動單片機(jī)內(nèi)部的定時(shí)器T0,利用定時(shí)器的計(jì)數(shù)功能記錄超聲波發(fā)射的時(shí)間和收到反射波的時(shí)間。當(dāng)收到超聲波反射波時(shí),接收電路輸出端產(chǎn)生一個負(fù)跳變,在INT0或INT1端產(chǎn)生一個中斷請求信號,單片機(jī)響應(yīng)外部中斷請求,執(zhí)行外部中斷服務(wù)子程序,讀取時(shí)間差,計(jì)算距離。其部分源程序如下:
3.3.2主程序流程圖
軟件分為兩部分,主程序和中斷服務(wù)程序,如圖3-1(a)(b)(c)所示。主程序完成初始化工作、各路超聲波發(fā)射和接收順序的控制。
定時(shí)中斷服務(wù)子程序完成三方向超聲波的輪流發(fā)射,外部中斷服務(wù)子程序主要完成時(shí)間值的讀取、距離計(jì)算、結(jié)果的輸出等工作。
主程序首先是對系統(tǒng)環(huán)境初始化,設(shè)置定時(shí)器T0工作模式為16位定時(shí)計(jì)數(shù)器模式。置位總中斷允許位EA并給顯示端口P0和P1清0。然后調(diào)用超聲波發(fā)生子程序送出一個超聲波脈沖,為了避免超聲波從發(fā)射器直接傳送到接收器引起的直射波觸發(fā),需要延時(shí)約0.1ms(這也就是超聲波測距儀會有一個zui小可測距離的原因)后,才打開外中斷0接收返回的超聲波信號。由于采用的是12MHz的晶振,計(jì)數(shù)器每計(jì)一個數(shù)就是1μs,當(dāng)主程序檢測到接收成功的標(biāo)志位后,將計(jì)數(shù)器T0中的數(shù)(即超聲波來回所用的時(shí)間)按式(2)計(jì)算,即可得被測物體與測距儀之間的距離,設(shè)計(jì)時(shí)取20℃時(shí)的聲速為344m/s則有:
d=(c×t)/2=172T0/10000cm(2)
其中,T0為計(jì)數(shù)器T0的計(jì)算值。
測出距離后結(jié)果將以十進(jìn)制BCD碼方式送往LED顯示約0.5s,然后再發(fā)超聲波脈沖重復(fù)測量過程。為了有利于程序結(jié)構(gòu)化和容易計(jì)算出距離。
3.3.3超聲波發(fā)生子程序和超聲波接收中斷程序
超聲波發(fā)生子程序的作用是通過P1.0端口發(fā)送2個左右超聲波脈沖信號(頻率約40kHz的方波),脈沖寬度為12μs左右,同時(shí)把計(jì)數(shù)器T0打開進(jìn)行計(jì)時(shí)。超聲波發(fā)生子程序較簡單,但要求程序運(yùn)行準(zhǔn)確,所以采用匯編語言編程。
超聲波測距儀主程序利用外中斷0檢測返回超聲波信號,一旦接收到返回超聲波信號(即INT0引腳出現(xiàn)低電平),立即進(jìn)入中斷程序。進(jìn)入中斷后就立即關(guān)閉計(jì)時(shí)器T0停止計(jì)時(shí),并將測距成功標(biāo)志字賦值1。如果當(dāng)計(jì)時(shí)器溢出時(shí)還未檢測到超聲波返回信號,則定時(shí)器T0溢出中斷將外中斷0關(guān)閉,并將測距成功標(biāo)志字賦值2以表示此次測距不成功。前方測距電路的輸出端接單片機(jī)INT0端口,中斷優(yōu)先級zui高,左、右測距電路的輸出通過與門IC3A的輸出接單片機(jī)INT1端口,同時(shí)單片機(jī)P1.3和P1.4接到IC3A的輸入端,中斷源的識別由程序查詢來處理,中斷優(yōu)先級為先右后左。部分源程序如下:
INTT0:CLREA
CLRTR0
MOVTH0,#00H
MOVTL0,#00H
SETBET1
SETBEA
SETBTR0
SETBTR1
OUT:RET;T1中斷,發(fā)超聲波用:
INTT1:CPLVOUT
DJNZR4,RETIOUT
CLRTR1
CLRET1
MOVR4,#04H
SETBEX0
RETIOUT:RETI;外中斷0,收到回波時(shí)進(jìn)入
PINT0:CLRTR0
CLRTR1
CLRET1
CLREA
CLREX0
MOV44H,TL0
MOV45H,TH0
SETB00H
RETI
3.3.4系統(tǒng)的軟硬件的調(diào)試
超聲波測距儀的制作和調(diào)試都比較簡單,其中超聲波發(fā)射和接收采用模塊直接實(shí)現(xiàn)。
硬件電路制作完成并調(diào)試好后,便可將程序編譯好下載到單片機(jī)試運(yùn)行。根據(jù)實(shí)際情況可以修改超聲波發(fā)生子程序每次發(fā)送的脈沖寬度和兩次測量的間隔時(shí)間,以適應(yīng)不同距離的測量需要。根據(jù)所設(shè)計(jì)的電路參數(shù)和程序,測距儀能測的范圍為0.07~5.5m,測距儀zui大誤差不超過1cm。系統(tǒng)調(diào)試完后應(yīng)對測量誤差和重復(fù)一致性進(jìn)行多次實(shí)驗(yàn)分析,不斷優(yōu)化系統(tǒng)使其達(dá)到實(shí)際使用的測量要求。
軟件的調(diào)試程序見附錄三.
4總結(jié)和體會
由于時(shí)間和其它客觀上的原因,此次設(shè)計(jì)沒有成功做出實(shí)物。但是對設(shè)計(jì)有一個很好的理論基礎(chǔ)。設(shè)計(jì)的zui終結(jié)果是使超聲波測距儀能夠產(chǎn)生超聲波,實(shí)現(xiàn)超聲波的發(fā)送與接收,從而實(shí)現(xiàn)利用超聲波方法測量物體間的距離。以數(shù)字的形式顯示測量距離。
超聲波測距的原理是利用超聲波的發(fā)射和接受,根據(jù)超聲波傳播的時(shí)間來計(jì)算出傳播距離。實(shí)用的測距方法有兩種,一種是在被測距離的兩端,一端發(fā)射,另一端接收的直接波方式,適用于身高計(jì);一種是發(fā)射波被物體反射回來后接收的反射波方式,適用于測距儀。此次設(shè)計(jì)采用反射波方式。
超聲波測距儀硬件電路的設(shè)計(jì)主要包括單片機(jī)系統(tǒng)及顯示電路、超聲波發(fā)射電路和超聲波檢測接收電路三部分。單片機(jī)采用AT89S51或其兼容系列。采用12MHz高精度的晶振,以獲得較穩(wěn)定時(shí)鐘頻率,減小測量誤差。單片機(jī)用P1.0端口輸出超聲波換能器所需的40kHz的方波信號,利用外中斷0口監(jiān)測超聲波接收電路輸出的返回信號。顯示電路采用簡單實(shí)用的4個七段共陽數(shù)碼管組成動態(tài)掃描電路。
超聲波發(fā)射電路主要由反相器4069和超聲波發(fā)射換能器FSQ構(gòu)成,單片機(jī)P1.0端口輸出的40kHz的方波信號一路經(jīng)一級反向器后送到超聲波換能器的一個電極,另一路經(jīng)兩級反向器后送到超聲波換能器的另一個電極,用這種推換形式將方波信號加到超聲波換能器的兩端,可以提高超聲波的發(fā)射強(qiáng)度。輸出端采兩個反向器并聯(lián),用以提高驅(qū)動能力。超聲波換能器內(nèi)部有兩個壓電晶片和一個換能板。當(dāng)它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時(shí),壓電晶片會發(fā)生共振,并帶動共振板振動產(chǎn)生超聲波,這時(shí)它就是一個超聲波發(fā)生器;反之,如果兩電極問未外加電壓,當(dāng)共振板接收到超聲波時(shí),將壓迫壓電晶片作振動,將機(jī)械能轉(zhuǎn)換為電信號,這時(shí)它就成為超聲波接收換能器。超聲波發(fā)射換能器與接收換能器在結(jié)構(gòu)上稍有不同,使用時(shí)應(yīng)分清器件上的標(biāo)志。
超聲波檢測接收電路主要是由集成電路CX20106A組成,它是一款紅外線檢波接收的芯片,常用于電視機(jī)紅外遙控接收器??紤]到紅外遙控常用的載波頻率38kHz與測距的超聲波頻率40kHz較為接近,可以利用它制作超聲波檢測接收電路。實(shí)驗(yàn)證明用CX20106A接收超聲波(無信號時(shí)輸出高電平),具有很好的靈敏度和較強(qiáng)的抗*力。適當(dāng)更改電容Cs的大小,可以改變接收電路的靈敏度和抗*力。
在元件及調(diào)制方面,由于采用的電路使用了很多集成電路。外圍元件不是很多,所以調(diào)試不會太難。一般只要電路焊接無誤,稍加調(diào)試應(yīng)該會正常工作。電路中除集成電路外,對各電子元件也無特別要求。若能將超聲波接收電路用金屬殼屏蔽起來,則可提高抗*力。
我要感謝孔老師,邵老師和陳老師在設(shè)計(jì)中對我給予的悉心指導(dǎo)和嚴(yán)格要求,同時(shí)也感謝本班同學(xué)在設(shè)計(jì)期間所給予我的幫助。在我論文寫作期間,各位同學(xué)給我提供了種種專業(yè)知識上的指導(dǎo),使我能夠這么順利的完成設(shè)計(jì)與制作,借此機(jī)會,向您們表示由衷的感激。同時(shí)還要感謝系實(shí)驗(yàn)室在設(shè)計(jì)期間提供給我們*的實(shí)驗(yàn)條件。
附錄一:電氣原理圖
附錄二:程序調(diào)試
VOUTEQUP1.0
ORG0000H
LJMPSTART
ORG0003H
LJMPPINT0
ORG000BH
LJMPINTT0
ORG0013H
RETI
ORG001BH
LJMPINTT1
ORG0023H
RETI
ORG002BH
RETI
;***********主程序**************
START:MOVSP,#4FH
MOVR0,#40H
MOVR7,#0BH
CLEARDISP:MOV@R0,#00H
INCR0
DJNZR7,CLEARDISP
MOV20H,#00H
MOVTMOD,21H
MOVTH0,#00H
MOVTL0,00H
MOVTH1,0F2H
MOVTL1,0F2H
MOVP0,0FFH
MOVP1,0FFH
MOVP2,0FFH
MOVP3,0FFH
MOVR4,04H
SETBPX0
SETBET0
SETBEA
SETBTR0
START1:LCALLDISPLAY
JNB00H,START1
CLREA
LCALLWORK
SETBEA
CLR00H
SETBTR0
MOVR2,#64H
LOOP:LCALLDISPLAY
DJNZR2,LOOP
SJMPSTART1
INTT0:CLREA
CLRTR0
MOVTH0,#00H
MOVTL0,#00H
SETBET1
SETBEA
SETBTR0
SETBTR1
OUT:RET
;T1中斷,發(fā)超聲波用:
INTT1:CPLVOUT
DJNZR4,RETIOUT
CLRTR1
CLRET1
MOVR4,#04H
SETBEX0
RETIOUT:RETI
;外中斷0,收到回波時(shí)進(jìn)入
PINT0:CLRTR0
CLRTR1
CLRET1
CLREA
CLREX0
MOV44H,TL0
MOV45H,TH0
SETB00H
RETI
;*****顯示程序:**********
DISPLAY:MOVR1,#40H;G
MOVR5,#0F7H;G
PLAY:MOVA,R5
MOVP0,#0FFH
MOVP2,A
MOVA,@R1
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP0,A
LCALLDL1MS
INCR1
MOVA,R5
JNBACC.0,ENDOUT;G
RRA
MOVR5,A
AJMPPLAY
ENDOUT:MOVR2,#0FFH
MOVP0,#0FFH
RET
TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH
;共陽段碼管"0","1","2","3","4","5","6","7","8","9","不亮","A","-"
;延時(shí)程序:
DL1MS:MOVR6,#14H
DL1:MOVR7,#19H
DL2:DJNZR7,DL2
DJNZR6,DL1
RET
;*******距離計(jì)算程序**********
WORK:PUSHACC
PUSHPSW
PUSHB
MOVPSW,#18H
MOVR3,45H
MOVR2,44H
MOVR1,00D
MOVR0,17D
LCALLMUL2BY2
MOVR3,#03H
MOVR2,0E8H
LCALLDIV4BY2
LCALLDIV4BY2
MOV40H,R4
MOVA,40H
JNZJJ0
MOV40H,#0AH
JJ0:MOVA,R0
MOVR4,A
MOVA,R1
MOVR5,A
MOVR3,00D
MOVR2,#100D
LCALLDIV4BY2
MOV41H,R4
MOVA,41H
JNZJJ1
MOVA,40H
SUBBA,#0AH
JNZJJ1
MOV41H,#0AH
JJ1:MOVA,R0
MOVR4,A
MOVA,R1
MOVR5,A
MOVR3,#00D
MOVR2,10D
LCALLDIV4BY2
MOV42H,R4
JNZJJ2
MOVA,41H
SUBBA,#0AH
JNZJJ2
MOV42H,#0AH
JJ2:MOV43H,R0
POPB
POPPSW
POPACC
RET
MUL2BY2:CLRA
MOVR7,A
MOVR6,A
MOVR5,A
MOVR4,A
MOV46H,#10H
MULLOOP1:CLRC
MOVA,R4
RLCA
MOVR4,A
MOVA,R5
RLCA
MOVR5,A
MOVA,R6
RLCA
MOVR6,A
MOVA,R7
RLCA
MOVR7,A
MOVA,R0
RLCA
MOVR0,A
MOVA,R1
RLCA
MOVR1,A
JNCMULLOOP2
MOVA,R4
ADDA,R2
MOVR4,A
MOVA,R5
ADDCA,R3
MOVR5,A
MOVA,R6
ADDCA,#00H
MOVR6,A
MOVA,R7
ADDCA,#00H
MOVR7,A
MULLOOP2:DJNZ46H,MULLOOP1
RET
DIV4BY2:MOV46H,#20H
MOVR0,#00H
MOVR1,#00H
DIVLOOP1:MOVA,R4
RLCA
MOVR4,A
MOVA,R5
RLCA
MOVR5,A
MOVA,R6
RLCA
MOVR6,A
MOVA,R7
RLCA
MOVR7,A
MOVA,R0
RLCA
MOVR0,A
MOVA,R1
RLCA
MOVR1,A
CLRC
MOVA,R0
SUBBA,R3
JCDIVLOOP2
MOVR0,B
MOVR1,A
DIVLOOP2:CPLC
DJNZ46H,DIVLOOP1
MOVA,R4
RLCA
MOVR4,A
MOVA,R5
RLCA
MOVR5,A
MOVA,R6
RLCA
MOVR6,A
MOVA,R7
RLCA
MOVR7,A
RET
END