超聲波測距儀設(shè)計畢業(yè)論文設(shè)計_第1頁
超聲波測距儀設(shè)計畢業(yè)論文設(shè)計_第2頁
超聲波測距儀設(shè)計畢業(yè)論文設(shè)計_第3頁
超聲波測距儀設(shè)計畢業(yè)論文設(shè)計_第4頁
超聲波測距儀設(shè)計畢業(yè)論文設(shè)計_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)論文設(shè)計超聲波測距儀設(shè)計目錄摘要1abstract21 緒論31.1 設(shè)計項目概述31.2 設(shè)計要求31.3 超聲波測距原理32 超聲波測距儀硬件系統(tǒng)設(shè)計52.1 超聲波傳感器52.1.1超聲波傳感器結(jié)構(gòu)52.1.2 超聲波傳感器工作原理62.2 總體方案設(shè)計72.3 超聲波發(fā)射電路設(shè)計82.4 超聲波接收電路的設(shè)計92.5 顯示電路的設(shè)計103 單片機at89s52123.1 at89s52單片機的構(gòu)成123.2 at89s52單片機的工作原理133.3 at89s52單片機特性143.3.1 at89s52標(biāo)準功能143.3.2 管腳說明154 軟件設(shè)計174.1 程序設(shè)計總體分析17

2、4.2 程序流程圖174.3 電路程序設(shè)計184.4 電路搭建與程序調(diào)試26結(jié)論27致謝28參考文獻29超聲波測距儀設(shè)計摘要:本文闡述了超聲波測距的原理,介紹如何用at89s52單片機實現(xiàn)超聲波測距,分析各個部分的工作原理,并給出了原理圖和源程序。此超聲波的測距電路由超聲波傳感器、單片機、發(fā)射/接收電路和led顯示器組成。由于超聲波指向性強,能量消耗緩慢,在介質(zhì)中傳播的距離較遠,因而超聲波被廣泛應(yīng)用于距離的測量。利用超聲波檢測比較迅速、方便,計算簡單,已做到實時控制,并且在測量精度方面能達到工業(yè)實用要求,測量時與被測物體無直接接觸等,這些優(yōu)點使其廣泛應(yīng)用于倒車雷達、建筑施工工地等場合。關(guān)鍵詞:

3、超聲波 測距 單片機 the design of ultrasonic rangefinderauthoryang shengteacherhu yonggangabstract:this paper expounds the principle of ultrasonic ranging and describes how to use at89s52 scm realizing ultrasonic ranging. it also analysis of the working principle of each part and gives the principle diagram

4、and the source program. the ultrasonic ranging is composed by ultrasonic sensors, scm circuit, launch/receiving circuit and led display. due to the strongly directivity, slowly energy consumption and long transmission distance in a medium, thus ultrasonic is widely used in distance measurement. ultr

5、asonic is quickly, convenient, simple calculation and achieves real-time control. and it can also reach the industrial practical requirements in the measurement precision and without directly contacted with object to be tested. all these advantages make it widely used in reverse radar, construction

6、site and so on. ultrasonic ranging based on the at89s52 scm easily overcome shortcomings, and is used very extensive. keywords: ultrasonic wave; range finding; one-chip computer; widely1 緒論1.1 設(shè)計項目概述 由于超聲波指向性強,能量消耗緩慢,在介質(zhì)中傳播的距離較遠,因而超聲波被廣泛應(yīng)用于距離的測量。利用超聲波檢測往往比較迅速、方便,計算簡單,已做到實時控制,并且在測量精度方面能達到工業(yè)實用要求,測量時與被

7、測物體無直接接觸等,這些優(yōu)點使其廣泛應(yīng)用于倒車雷達、建筑施工工地以及一些工業(yè)現(xiàn)場,例如液位測量、精深測量等場合。目前國內(nèi)一般實用專用集成電路設(shè)計超聲波測距儀,但是成本高,沒有顯示,操作不便,操作使用不方便,創(chuàng)展不靈活。基于單片機的超聲波測距易克服了上述缺點,應(yīng)用非常廣泛。 1.2 設(shè)計要求設(shè)計一個超聲波測距儀,可以應(yīng)用于汽車倒車、建筑施工工地以及一些工業(yè)現(xiàn)場的位置監(jiān)控,也可用于如液位、井深、管道長度的測量等場合。具體要求如下:(1)測量范圍在0.5-4m,測量精度1cm。(2)測量時與被測物體無直接接觸,能夠清晰穩(wěn)定地顯示測量結(jié)果。 1.3 超聲波測距原理采用單片機作為主控制器,用led數(shù)碼管

8、作為顯示儀器來顯示所測的距離。由單片機發(fā)射和接受超聲波信號,再經(jīng)過單片機計算輸出顯示被測距離,即超聲波發(fā)生器t在某一時刻發(fā)出一段超聲波信號,當(dāng)超聲波遇到障礙物(被測物體)后返回被接收器r接受。測距的原理如圖1.1。 rtt2 t1 圖1.1 測距的原理這樣只要計算出發(fā)射超聲波和接收到超聲波之間的時間,就可以計算出超聲發(fā)射器與反射物體的距離。距離計算公式為: 其中:d為被測物與測距儀的距離 s為聲速的來回路程 c為聲速 t為聲波來回所用的時間超聲波是指頻率高于20khz的機械波。為了以超聲波作為檢測手段,必須產(chǎn)生超聲波和接收超聲波,完成這種功能的裝置就是超聲波傳感器,習(xí)慣稱之為超聲波換能器或超聲

9、波探頭。超聲波傳感器有發(fā)送器和接收器兩種,但是一個超聲波傳感器也可具有發(fā)送和接收聲波的雙重作用。超聲波傳感器利用壓電效應(yīng)的原理將超聲波和電能相互轉(zhuǎn)換,即在發(fā)射超聲波的時候,將電能轉(zhuǎn)換為超聲波,而在收到回波的時候,則將超聲振動轉(zhuǎn)換為電信號。超聲波測距的原理一般采用渡越時間法。首先測出超聲波從發(fā)射到遇到障礙物返回所經(jīng)歷的時間,再乘以超聲波的速度就得到二倍的生源與障礙物之間的距離,超聲波測距適用于高精度的中長距離測量,因為超聲波在標(biāo)準空氣中的傳播速度為332.45m/s。單片機使用12mhz晶振,所以此系統(tǒng)的測量精度理論可以達到毫米級。 單片機顯示模塊超聲波接收器r超聲波發(fā)生器t電源電路 圖1.2

10、基于單片機的超聲波測距儀系統(tǒng)框圖2 超聲波測距儀硬件系統(tǒng)設(shè)計2.1 超聲波傳感器超聲波傳感器是根據(jù)超聲波的特性而研制成的傳感器。超聲波是一種機械波,其振動頻率高于聲波,由換能晶片在電壓的激勵下發(fā)生振動產(chǎn)生。超聲波的頻率高、波長短、繞射現(xiàn)象小,方向性好、能夠成為射線而定向傳播。超聲波傳感器是利用壓電效應(yīng)的原理將電能和超聲波相互轉(zhuǎn)換,即在發(fā)射超聲波的時候,轉(zhuǎn)換電能,發(fā)射超聲波,在收到回波的時候,則將超聲波振動轉(zhuǎn)換為電信號。超聲波發(fā)生器一般分為兩類:一類是用電氣方式產(chǎn)生超聲波,另一類使用機械的方式產(chǎn)生超聲波。超聲波測距儀屬于近距離測量,可以采用常用的壓電式超聲波換能器來實現(xiàn)。2.1.1超聲波傳感器結(jié)

11、構(gòu)超聲波探頭主要由壓電晶片組成,既可以發(fā)射超聲波,也可以接收超聲波。小功率超聲探頭多作探測作用。它有許多不同的結(jié)構(gòu),可分直探頭、斜探頭、表面波探頭、蘭姆波探頭、雙探頭等。超聲波傳感器結(jié)構(gòu)如圖2.1所示。超聲探頭的核心是其外套中的一塊壓電晶片。構(gòu)成晶片的材料可以有許多種。晶片的大小,如直徑和厚度也各不相同,因此每個探頭的性能是不同的,使用前必須預(yù)先了解它的性能。共振板壓電晶片電極圖2.1 超聲波傳感器結(jié)構(gòu) 圖2.2 超聲波傳感器的實物圖2.1.2 超聲波傳感器工作原理壓電型超聲波傳感器是利用壓電效應(yīng)的原理,壓電效應(yīng)有逆效應(yīng)和順效應(yīng),由于超聲波傳感器是一種可逆元件,超聲波發(fā)送器就是利用壓電逆效應(yīng)的

12、原理。在壓電元件上施加電壓,元件隨之變形,即稱應(yīng)變,壓電逆效應(yīng)如圖2.3所示。如果在圖a所示的已被極化的壓電陶瓷上加一個圖b所示極性的電壓,壓電陶瓷的極化正電荷與外部正電荷相互排斥,同時,外部負電荷與極化負電荷相互排斥。由于相互排斥的作用,壓電陶瓷的厚度變小,長度伸長。若外部施加相反極性的電壓,如圖c所示那樣,則壓電陶瓷厚度變厚,長度縮短。圖2.3 壓電逆效應(yīng)圖超聲波傳感器采用的是雙晶振子,即把雙壓電陶瓷片以相反極化方向背向粘在一起,則在長度方向上,一片伸長,另一片縮短。在雙晶振子的兩面涂敷薄膜電極,其上面用引線通過金屬板接到一個電極端,下面用引線直接接到另一個電極端。雙晶振子為正方形,正方形

13、的左右兩邊由圓弧形凸起部分支撐著。這兩處的支點就成為振子振動的節(jié)點。金屬板的中心有圓錐形振子。發(fā)送超聲波時,圓錐形振子有較強的方向性,因而能高效率地發(fā)送超聲波;接收超聲波時,超聲波的振動集中于振子的中心,所以,能產(chǎn)生高效率的高頻電壓。采用雙晶振子的超聲波傳感器,若在發(fā)送器的雙晶振子(諧振頻率為40khz)上施加40khz的高頻電壓,壓電陶瓷片就根據(jù)所加的高頻電壓極性伸長與縮短,于是就能發(fā)送40khz頻率的超聲波。超聲波以疏密波形式傳播,傳送給超聲波接收器。超聲波接收器是利用壓電效應(yīng)的原理,即在壓電元件的特定方向上施加壓力,元件就發(fā)生應(yīng)變,則產(chǎn)生一面為正極,另一面為負極的電壓。若接收到發(fā)送器發(fā)送

14、的超聲波,振子就以發(fā)送超聲波的頻率進行振動,于是,就產(chǎn)生與超聲波頻率相同的高頻電壓,當(dāng)然這種電壓是非常小的,必須采用放大器放大。圖2.4 傳感器的方向性2.2 總體方案設(shè)計單片機采用at89s52,系采用12mhz高精度晶振得到較為穩(wěn)定的時鐘頻率以減小測量誤差。用單片機p1.0端口輸出40khz方波信號,再經(jīng)過放大電路,驅(qū)動超聲波發(fā)射探頭發(fā)射超聲波。發(fā)射出去的超聲波經(jīng)障礙物反射回來后,由超聲波接收頭接收到信號,通過接收電路的檢波放大、積分整形及一系列處理,送至單片機,利用外中斷0檢測接收返回的超聲波信號。單片機利用聲波的傳播速度和發(fā)射脈沖到接收反射脈沖的時間間隔計算出障礙物的距離,并由單片機控

15、制七段數(shù)碼管顯示出來。其時序圖如圖2.5所示。圖2.5 時序圖單片機在t0時刻發(fā)射方波,同時啟動定時器開始計時,當(dāng)收到回波后,產(chǎn)生一負跳變到單片機中斷口,單片機響應(yīng)中斷程序,定時器停止計數(shù)。計算時間差,即可得到超聲波在媒介中傳播的時間t,由此便可計算出距離。該測距裝置是由超聲波傳感器、單片機、發(fā)射/接收電路和led顯示器組成。傳感器輸入端與發(fā)射接收電路相連,接收電路輸出端與單片機相連接,單片機的輸出端與顯示電路輸入端相連接。2.3 超聲波發(fā)射電路設(shè)計超聲波發(fā)射采用推挽形式將p1.0端口發(fā)出的方波加到超聲波換能器兩端以提高超聲波發(fā)射的強度。發(fā)射電路主要有74ls04和超聲波換能器構(gòu)成用單片機p1

16、.0端口輸出40khz方波信號一路經(jīng)一級反向后送到超聲波換能器的一個電極,另一路經(jīng)兩級反向后送到超聲波換能器的另一個電極。圖2.6為發(fā)射電路。圖2.6 超聲波發(fā)射電路2.4 超聲波接收電路的設(shè)計超聲波接收采用的是常用于電視紅外遙控接收器的芯片cx20106a??紤]到紅外遙控常用的載波頻率38khz與測距超聲波頻率40khz較為接近,可以利用它作為超聲波檢測電路。實驗證明其具有很高的靈敏度和較強的抗干擾能力。適當(dāng)改變超聲波接收探頭兩端電容的大小,可以接收電路的靈敏度和抗干擾能力。圖2.8為接收電路。圖2.8 超聲波接收電路其中,cxa20106a為紅外線接收專用芯片,可以用于超聲波的接收.。各引

17、腳說明如表2.2。表2.2 cxa20106a各引腳說明引腳號說明1超聲信號輸入端,該腳的輸入阻抗約為40k。2該腳與地之間連接rc串聯(lián)網(wǎng)絡(luò),它們是負反饋串聯(lián)網(wǎng)絡(luò)的一個組成部分,改變它們的數(shù)值能改變前置放大器的增益和頻率特性。增大電阻r1或減小c1,將使負反饋量增大,放大倍數(shù)下降,反之則放大倍數(shù)增大。但c1的改變會影響到頻率特性,一般在實際使用中不必改動,推薦選用參數(shù)為r1=4.7,c1=1f。3該腳與地之間連接檢波電容,電容量大為平均值檢波,瞬間相應(yīng)靈敏度低;若容量小,則為峰值檢波,瞬間相應(yīng)靈敏度高,但檢波輸出的脈沖寬度變動大,易造成誤動作,推薦參數(shù)為3.3f。4接地端。 5該腳與電源間接入

18、一個電阻,用以設(shè)置帶通濾波器的中心頻率f0,阻值越大,中心頻率越低。例如,取r=200k時,f042khz,若取r=220k,則中心頻率f038khz。6該腳與地之間接一個積分電容,標(biāo)準值為330pf,如果該電容取得太大,會使探測距離變短。7遙控命令輸出端,它是集電極開路輸出方式,因此該引腳必須接上一個上拉電阻到電源端,推薦阻值為22k,沒有接受信號是該端輸出為高電平,有信號時則產(chǎn)生下降。8電源正極,4.55.5v。2.5 顯示電路的設(shè)計數(shù)碼管的結(jié)構(gòu)數(shù)碼管由7個發(fā)光二極管組成,行成一個日字形,它門可以共陰極,也可以共陽極,通過解碼電路得到的數(shù)碼接通相應(yīng)的發(fā)光二極而形成相應(yīng)的字,這就是它的工作原

19、理。數(shù)碼管按各發(fā)光二極管電極的連接方式分為共陽數(shù)碼管和共陰數(shù)碼管兩種。數(shù)碼管符號和引腳如圖2.9(a),共陽數(shù)碼管內(nèi)部連接如圖2.9(b),共陰數(shù)碼管內(nèi)部連接如圖2.9(c)。圖2.9 數(shù)碼管數(shù)碼管要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,可以分為靜態(tài)顯示和動態(tài)顯示兩類。(1) 動態(tài)顯示:數(shù)碼管動態(tài)顯示接口是單片機中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8 個顯示筆劃“a, b, c, d, e, f, g, dp“的同名端連在一起,另外為每個數(shù)碼管的公共極com 由位選通控制電路控制,位選通由各自獨立的i/o 線控制,當(dāng)單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是

20、那個數(shù)碼管會顯示出字形,取決于單片機對位選通com 端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的com 端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點亮?xí)r間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,但是能夠節(jié)省大量的i/o 端口,功耗更低。(2)靜態(tài)顯示驅(qū)動:靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機的i/o 端口

21、進行驅(qū)動,或者使用如bcd 碼二-十進制譯碼器譯碼進行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用i/o 端口多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5840 根i/o 端口來驅(qū)動,要知道一個89s52單片機可用的i/o 端口才32 ,實際應(yīng)用時必須增加譯碼驅(qū)動器進行驅(qū)動,增加了硬件電路的復(fù)雜性。此設(shè)計顯示電路采用簡單實用的4位共陽led數(shù)碼管,段碼輸出端口為單片機的p0口,位碼輸出端口分別為單片機的p2.0、p2.1、p2.2、p2.3口,數(shù)碼管位驅(qū)運用74ls07驅(qū)動。為了減少硬件開銷,提高系統(tǒng)可靠性并降低成本,此超聲波測距的單片機控制系統(tǒng)采用動態(tài)掃描顯示,并且軟件消影。顯示電路如圖2

22、.10。圖2.10 數(shù)碼管顯示電路圖3 單片機at89s52 3.1 at89s52單片機的構(gòu)成at89s52是一種低功耗、高性能cmos8位微控制器,具有8k在系統(tǒng)可編程flash存儲器。使用atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80c51 產(chǎn)品指令和引腳完全兼容。片上flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位cpu和在系統(tǒng)可編程flash,使得at89s52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。at89s52單片機引腳圖如圖3.1。圖3.1 at89s52單片機引腳圖3.2 at89s52單片機的工作原理單片機是通過執(zhí)行程

23、序來工作的,機器執(zhí)行不同程序就能完成不同的運算任務(wù)。因此,單片機執(zhí)行程序的過程實際上也體現(xiàn)了單片機的基本工作原理。為此,先從指令程序談起。1.單片機的指令系統(tǒng)和程序編制前面已經(jīng)介紹,指令是一種可以供機器執(zhí)行的控制代碼,故它又稱為指令碼(instruction code)。指令碼由操作碼(operation code)和地址碼(address code)構(gòu)成:操作碼用于指示機器執(zhí)行何種操作;地址碼用于指示參加操作的數(shù)在哪里。其格式為:操作碼地址碼指令碼的二進制形式既不便于記憶,又不便于書寫,故人們通常采用助記符形式來表示,表3.1所列。表3.1 指令的三種形式指令的二進制形式指令的十六進制形式指

24、令的匯編形式01110100 data174 data1mov a,#data1;adata100100100 data224 data2add a,#data2;adata1+data210000000 111111080 fesjmp $;停機2.單片機執(zhí)行程序的過程程序通常是順序執(zhí)行的,因此程序中的指令也是一條條順序存放的,單片機在執(zhí)行程序時要能把這些指令一條條取出并加以執(zhí)行,必須有一個部件能追蹤指令所在的地址,這一部件就是程序計數(shù)器pc(包含在cpu中),在開始執(zhí)行程序時,給pc賦以程序中第一條指令所在的地址,然后取得每一條要執(zhí)行的命令,pc在中的內(nèi)容就會自動增加,增加量由本條指令長度

25、決定,以指向下一條指令的起始地址,保證指令順序執(zhí)行。 3.3 at89s52單片機特性3.3.1 at89s52標(biāo)準功能 (1)與mcs-51單片機產(chǎn)品兼容 (2)8k字節(jié)在系統(tǒng)可編程flash存儲器 (3)1000次擦寫周期 (4)全靜態(tài)操作:0hz33hz (5)三級加密程序存儲器 (6)32個可編程i/o口線 (7)三個16位定時器/計數(shù)器 (8)八個中斷源 (9)全雙工uart串行通道 (10)低功耗空閑和掉電模式 (11)掉電后中斷可喚醒 (12)看門狗定時器 (13)雙數(shù)據(jù)指針 (14)掉電標(biāo)識符 3.3.2管腳說明(1) vcc:電源 (2) gnd:地 (3) p0口:p0口是

26、一個8位漏極開路的雙向i/o口。作為輸出口,每位能驅(qū)動8個ttl邏輯電平。對p0端口寫“1”時,引腳用作高阻抗輸入。 當(dāng)訪問外部程序和數(shù)據(jù)存儲器時, p0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,p0具有內(nèi)部上拉電阻。 (4) p1口:p1 口是一個具有內(nèi)部上拉電阻的8位雙向i/o口,p1輸出緩沖器能驅(qū)動4個ttl 邏輯電平。對p1端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸出口使用。作輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。此外,p1.0和p1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(p1.0/t2)和時器/計數(shù)器2的觸發(fā)輸入(p1.1/t2ex)

27、 ,具體如表3.2所示。 在flash編程和校驗時,p1口接收低8位地址字節(jié)。 表3.2 p1口第二功能引腳號第二功能p1.0t2(定時器/計數(shù)器t2的外部計數(shù)輸入) ,時鐘輸出p1.1t2ex(定時器/計數(shù)器t2的捕捉/重載觸發(fā)信號和方向控制)p1.5mosi(在系統(tǒng)編程用)p1.6miso(在系統(tǒng)編程用)p1.7sck(在系統(tǒng)編程用) (5) p2 口:p2 口是一個具有內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 輸出緩沖器能驅(qū)動 4個ttl 邏輯電平。對 p2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流

28、(iil) 。 在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器 (例如執(zhí)行movx dptr)時,p2 口送出高八位地址。在這種應(yīng)用中,p2 口使用很強的內(nèi)部上拉發(fā)送 1。在使用8位地址(如movx ri)訪問外部數(shù)據(jù)存儲器時,p2口輸出p2鎖存器的內(nèi)容。 在flash編程和校驗時,p2口也接收高8位地址字節(jié)和一些控制信號。 (6) p3 口:p3 口是一個具有內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 輸出緩沖器能驅(qū)動 4 個ttl 邏輯電平。對 p3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(ii

29、l) 。 p3口亦作為at89s52特殊功能(第二功能)使用,如表3.3所示。 在flash編程和校驗時,p3口也接收一些控制信號。 表3.3 p3口第二功能引腳號第二功能p3.0rxd(串行輸入)p3.1txd(串行輸出)p3.2int0(外部中斷 0)p3.3int0(外部中斷 0)p3.4t0(定時器0外部輸入)p3.5t1(定時器1外部輸入)p3.6wr(外部數(shù)據(jù)存儲器寫選通) p3.7rd(外部數(shù)據(jù)存儲器寫選通)(7) rst: 復(fù)位輸入。晶振工作時,rst腳持續(xù)2個機器周期高電平將使單片機復(fù)位??撮T狗計時完成后,rst 腳輸出96個晶振周期的高電平。特殊寄存器 auxr(地址 8e

30、h)上的disrto位可以使此功能無效。disrto默認狀態(tài)下,復(fù)位高電平有效。 (8) ale/prog:地址鎖存控制信號(ale)是訪問外部程序存儲器時,鎖存低 8 位地址的輸出脈沖。在flash編程時,此引腳(prog)也用作編程輸入脈沖。 在一般情況下,ale以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調(diào),在每次訪問外部數(shù)據(jù)存儲器時,ale脈沖將會跳過。 如果需要,通過將地址為8eh的sfr的第0位置“1”,ale操作將無效。這一位置 “1”,ale僅在執(zhí)行 movx 或movc指令時有效。否則,ale將被微弱拉高。這個ale使能標(biāo)志位(地址為8eh的

31、sfr的第0位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。 (9) psen:外部程序存儲器選通信號(psen)是外部程序存儲器選通信號。 當(dāng) at89s52從外部程序存儲器執(zhí)行外部代碼時,psen在每個機器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲器時,psen將不被激活。 (10) ea/vpp:訪問外部程序存儲器控制信號。為使能從0000h 到ffffh的外部程序存儲器讀取指令,ea必須接gnd。 為了執(zhí)行內(nèi)部程序指令,ea應(yīng)該接vcc。 在flash編程期間,ea也接收12伏vpp電壓。 (11) xtal1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。 (12) xtal2:振蕩器反相放大器

32、的輸出端。4 軟件設(shè)計4.1 程序設(shè)計總體分析超聲波測距儀軟件設(shè)計主要由主程序、超聲波發(fā)射子程序、超聲波接收中斷程序及顯示子程序組成。 超聲波主程序首先對系統(tǒng)初始化,設(shè)置定時器的初值和工作方式,使總中斷允許位ea=1,并給顯示端口清零。然后調(diào)用超聲波發(fā)生子程序送出一個超聲波脈沖,為避免超聲波從發(fā)射器直接傳送到接收器引起的直接波觸發(fā),需延時0.1ms(這也就是測距儀會有一個最小可能測距的原因)后,才能打開外中斷0接收返回的超聲波信號。由于采用12mhz的晶振,機器周期為1us,當(dāng)主程序檢測到接收成功的標(biāo)志位后,將計數(shù)器t0中的數(shù)(即超聲波來回所用的時間)按下式計算即可測得被測物體與測距儀之間的距

33、離,設(shè)計時取20攝氏度時的聲速344m/s,則有:,(其中t0為計數(shù)器t0的計數(shù)值)。 4.2 程序流程圖超聲波測距儀程序流程圖如圖4.1所示。 系統(tǒng)初始化開始發(fā)射超聲波脈沖接收超聲波脈沖計算距離顯示結(jié)果 圖4.1 超聲波測距儀程序流程圖4.3電路程序設(shè)計*中斷入口程序*org0000h ljmp startorg0003h ljmp pint0org000bh ljmp intt0org0013h retiorg001bh ljmp intt1org0023h retiorg002bh reti*主程序*start: movsp,#4fh movr0,#40h ;40h43h為顯示數(shù)據(jù)存放單

34、元(40h為最高位) movr7,#0bhcleardisp: mov r0,#00h incr0 djnzr7,cleardisp mov20h,#00h movtmod,#21h; t1為8位自動重裝模式,t0為16位定時器 mov th0, #00h mov tl0, #00h mov th1, #0f2h mov tl1, #0f2h;40khz初值 mov p0, #0ffh mov p1, #0ffh mov p2, #0ffh mov p3, #0ffh mov r4,#04h;超聲波脈沖個數(shù)控制(為賦值的一半) setb px0 setb et0 setb ea setb tr

35、0;;開啟測距定時器start1: lcall display jnb 00h,start1; ;收到反射信號是標(biāo)志為1 clr ea lcall math; ;計算距離子程序 setb ea clr 00h setb tr0; ;重新開啟測距定時器 mov r2,#64h; ;測量間隔控制(約4ms100=400ms)loop: lcall display djnz r2,loop sjmp start1*顯示程序*display: movr1,#40h ;40h為最高位,43h為最低位,先掃描高位 movr5,#0f7hplay: mova,r5 movp0,#0ffh movp2,a m

36、ova,r1 movdptr,#tab movca,a+dptr movp0,a lcalldl1ms incr1 mova,r5 jnb acc.0,endout rra movr5,a ajmpplayendout: movp2,#0ffh movp0,#0ffh rettab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0ffh,88h,0bfh;共陽段碼表 “0”,“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“不亮”,“a”,“”*中斷程序*intt0: clrea;t0中斷,65ms中斷一次 clrtr

37、0 movth0,#00h movtl0,#00h setbet1 setbea setbtr0 ;啟動計數(shù)器t0,用以計算超聲來回時間 setbtr1 ;開啟發(fā)超聲波用定時器t1out: retiintt1: cplvout ;t1中斷,發(fā)超聲波用 djnzr4,retiout clrtr1 ;超聲波發(fā)送完畢,關(guān)t1 clret1 movr4,#04h setbex0 ;開啟接收回波中斷retiout: retipint0: clrtr0 ;外中斷0,收到回波時進入,關(guān)計數(shù)器 clrtr1 clret1 clrea clrex0 mov44h,tl0 ;將計數(shù)值移入處理單元 mov45h,t

38、h0 setb00h ;接收成功標(biāo)志 reti*延時程序*dl1ms: movr6,#14hdl: movr7,#19hdl1: djnzr7,dl1 djnzr6,dl ret *距離計算程序(距離=計數(shù)值171000cm)*math: pushacc pushpsw pushb movpsw,#18h movr3,45h movr2,44h movr1,#00d movr0,#17d lcallmul2by2 movr3,#03h movr2,#0e8h lcalldiv4by2 lcalldiv4by2 mov40h,r4 mova,40h jnzj0 mov40h,#0ah;最高位為0

39、,不點亮j0: mova,r0 movr4,a mova,r1 movr5,a movr3,#00d movr2,#100d lcalldiv4by2 mov41h,r4 mova,41h jnzj1 mova,40h ;次高位為0,先看最高位是否為不亮 subba,#0ah jnzj1 mov41h,#0ah;;最高位不亮,次高位也不亮j1: mova,r0 movr4,a mova,r1 movr5,a movr3,#00d movr2,#10d lcalldiv4by2 mov42h,r4 mova,42h jnzj2 mova,41h;;次次高位為0,先看次高位是否為不亮 subba,

40、#0ah jnzj2 mov42h,#0ah;;次高位不亮,次次高位也不亮j2: mov43h,r0 popb poppsw popacc ret*2字節(jié)無符號數(shù)乘法程序*mul2by2: clra movr7,a movr6,a movr5,a movr4,a mov46h,#10hmulloop1: 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

41、,r4 adda,r2 movr4,a mova,r5 addca,r3 movr5,a mova,r6 addca,#00h movr6,a mova,r7 addca,#00h movr7,amulloop2: djnz46h,mulloop1 ret*4字節(jié)2字節(jié)無符號數(shù)除發(fā)程序*div4by2: mov46h,#20h movr0,#00h movr1,#00hdivloop1: 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

42、 mova,r1 rlca movr1,a clrc mova,r0 subba,r2 movb,a mova,r1 subba,r3 jcdivloop2 movr0,b movr1,adivloop2: 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;;程序結(jié)束4.4電路搭建與程序調(diào)試超聲波測距儀的制作和調(diào)試,其中超聲波發(fā)射和接收采用16的超聲波換能器tct40-16f1(t發(fā)射)和tct40-16s1(r接收),中心頻率為40khz,安裝時應(yīng)保持兩換能器中心軸線平行并相距48cm,其余元件無特殊要求。若能將超聲波接收電路用金屬殼屏蔽起來,則可提高抗干擾能力。根據(jù)測量范圍要求不同,可適當(dāng)調(diào)整與接收換能器并接的濾波電容c4的大小,以獲得合適的接收靈敏度和抗干擾能力。硬件電路制作完成并調(diào)試好后,便可將

溫馨提示

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

評論

0/150

提交評論