基于單片機(jī)的超聲波測(cè)距儀設(shè)計(jì)_第1頁
基于單片機(jī)的超聲波測(cè)距儀設(shè)計(jì)_第2頁
基于單片機(jī)的超聲波測(cè)距儀設(shè)計(jì)_第3頁
基于單片機(jī)的超聲波測(cè)距儀設(shè)計(jì)_第4頁
基于單片機(jī)的超聲波測(cè)距儀設(shè)計(jì)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于單片機(jī)的超聲波測(cè)距儀設(shè)計(jì)基于單片機(jī)的超聲波測(cè)距儀設(shè)計(jì) 1 總體設(shè)計(jì)方案介紹總體設(shè)計(jì)方案介紹 1.1 超聲波測(cè)距原理超聲波測(cè)距原理 發(fā)射器發(fā)出的超聲波以速度 在空氣中傳播,在到達(dá)被測(cè)物體時(shí)被反射返回,由接收 器接收,其往返時(shí)間為 t,由 s=vt/2 即可算出被測(cè)物體的距離。由于超聲波也是一種聲波, 其聲速 v 與溫度有關(guān),下表列出了幾種不同溫度下的聲速。在使用時(shí),如果溫度變化不大, 則可認(rèn)為聲速是基本不變的。如果測(cè)距精度要求很高,則應(yīng)通過溫度補(bǔ)償?shù)姆椒右孕U?表 1-1 超聲波波速與溫度的關(guān)系表 溫度()-30-20-100102030100 聲速(ms)313319325323338

2、344349386 表 1-1 1.2 超聲波測(cè)距儀原理框圖如下圖超聲波測(cè)距儀原理框圖如下圖 單片機(jī)發(fā)出 40khz 的信號(hào),經(jīng)放大后通過超聲波發(fā)射器輸出;超聲波接收器將接收到 的超聲波信號(hào)經(jīng)放大器放大,用鎖相環(huán)電路進(jìn)行檢波處理后,啟動(dòng)單片機(jī)中斷程序,測(cè)得 時(shí)間為 t,再由軟件進(jìn)行判別、計(jì)算,得出距離數(shù)并送 led 顯示。 超聲波發(fā)射器 放大電路超聲波接收器 放大電路 鎖相環(huán) 檢波電路 定時(shí)器 單片機(jī) 控制顯示器 圖 1-1 超聲波測(cè)距儀原理框圖 2 系統(tǒng)的硬件結(jié)構(gòu)設(shè)計(jì)系統(tǒng)的硬件結(jié)構(gòu)設(shè)計(jì) 硬件電路的設(shè)計(jì)主要包括單片機(jī)系統(tǒng)及顯示電路、超聲波發(fā)射電路和超聲波檢測(cè)接收 電路三部分。單片機(jī)采用 at8

3、9c51 或其兼容系列。采用 12mhz 高精度的晶振,以獲得較 穩(wěn)定時(shí)鐘頻率,減小測(cè)量誤差。單片機(jī)用 p1.0 端口輸出超聲波換能器所需的 40khz 的方波 信號(hào),利用外中斷 0 口監(jiān)測(cè)超聲波接收電路輸出的返回信號(hào)。顯示電路采用簡(jiǎn)單實(shí)用的 4 位共陽 led 數(shù)碼管,段碼用 74ls244 驅(qū)動(dòng),位碼用 pnp 三極管 8550 驅(qū)動(dòng)。 2.1 51 系列單片機(jī)的功能特點(diǎn)及測(cè)距原理系列單片機(jī)的功能特點(diǎn)及測(cè)距原理 2.1.1 51 系列單片機(jī)的功能特點(diǎn)系列單片機(jī)的功能特點(diǎn) 5l 系列單片機(jī)中典型芯片(at89c51)采用 40 引腳雙列直插封裝(dip)形式,內(nèi)部由 cpu,4kb 的 ro

4、m,256 b 的 ram,2 個(gè) 16b 的定時(shí)計(jì)數(shù)器 to 和 t1,4 個(gè) 8 b 的工 o 端 i:ip0,p1,p2,p3,一個(gè)全雙功串行通信口等組成。特別是該系列單片機(jī)片內(nèi)的 flash 可編程、可擦除只讀存儲(chǔ)器(eprom),使其在實(shí)際中有著十分廣泛的用途,在便攜 式、省電及特殊信息保存的儀器和系統(tǒng)中更為有用。 5l 系列單片機(jī)提供以下功能:4 kb 存儲(chǔ)器;256 bram;32 條工o 線;2 個(gè) 16b 定 時(shí)計(jì)數(shù)器;5 個(gè) 2 級(jí)中斷源;1 個(gè)全雙向的串行口以及時(shí)鐘電路。 空閑方式:cpu 停止工作,而讓 ram、定時(shí)計(jì)數(shù)器、串行口和中斷系統(tǒng)繼續(xù)工作。 掉電方式:保存 r

5、am 的內(nèi)容,振蕩器停振,禁止芯片所有的其他功能直到下一次硬 件復(fù)位。 5l 系列單片機(jī)為許多控制提供了高度靈活和低成本的解決辦法。充分利用他的片內(nèi)資 源,即可在較少外圍電路的情況下構(gòu)成功能完善的超聲波測(cè)距系統(tǒng)。 2.1.2 單片機(jī)實(shí)現(xiàn)測(cè)距原理單片機(jī)實(shí)現(xiàn)測(cè)距原理 單片機(jī)發(fā)出超聲波測(cè)距是通過不斷檢測(cè)超聲波發(fā)射后遇到障礙物所反射的回波,從而 測(cè)出發(fā)射和接收回波的時(shí)間差 tr,然后求出距離 sct2,式中的 c 為超聲波波速。 限制該系統(tǒng)的最大可測(cè)距離存在 4 個(gè)因素:超聲波的幅度、反射的質(zhì)地、反射和入射聲波 之間的夾角以及接收換能器的靈敏度。接收換能器對(duì)聲波脈沖的直接接收能力將決定最小 的可測(cè)距離

6、。為了增加所測(cè)量的覆蓋范圍、減小測(cè)量誤差,可采用多個(gè)超聲波換能器分別 作為多路超聲波發(fā)射接收的設(shè)計(jì)方法。由于超聲波屬于聲波范圍,其波速 c 與溫度有關(guān)。 2.2 超聲波發(fā)射電路超聲波發(fā)射電路 超聲波發(fā)射電路原理圖如圖 2-2 所示。發(fā)射電路主要由反相器 74ls04 和超聲波發(fā)射換 能器 t 構(gòu)成,單片機(jī) p1.0 端口輸出的 40khz 的方波信號(hào)一路經(jīng)一級(jí)反向器后送到超聲波 換能器的一個(gè)電極,另一路經(jīng)兩級(jí)反向器后送到超聲波換能器的另一個(gè)電極,用這種推換 形式將方波信號(hào)加到超聲波換能器的兩端,可以提高超聲波的發(fā)射強(qiáng)度。輸出端采兩個(gè)反 向器并聯(lián),用以提高驅(qū)動(dòng)能力。上位電阻 r1o、r11 一方

7、面可以提高反向器 74ls04 輸出 高電平的驅(qū)動(dòng)能力,另一方面可以增加超聲波換能器的阻尼效果,縮短其自由振蕩時(shí)間。 壓電式超聲波換能器是利用壓電晶體的諧振來工作的。超聲波換能器內(nèi)部有兩個(gè)壓電 晶片和一個(gè)換能板。當(dāng)它的兩極外加脈沖信號(hào),其頻率等于壓電晶片的固有振蕩頻率時(shí), 壓電晶片會(huì)發(fā)生共振,并帶動(dòng)共振板振動(dòng)產(chǎn)生超聲波,這時(shí)它就是一個(gè)超聲波發(fā)生器;反 之,如果兩電極問未外加電壓,當(dāng)共振板接收到超聲波時(shí),將壓迫壓電晶片作振動(dòng),將機(jī) 械能轉(zhuǎn)換為電信號(hào),這時(shí)它就成為超聲波接收換能器。超聲波發(fā)射換能器與接收換能器在 結(jié)構(gòu)上稍有不同,使用時(shí)應(yīng)分清器件上的標(biāo)志。 2.3 超聲波檢測(cè)接收電路超聲波檢測(cè)接收電

8、路 集成電路 cx20106a 是一款紅外線檢波接收的專用芯片,常用于電視機(jī)紅外遙控接收 器。考慮到紅外遙控常用的載波頻率 38 khz 與測(cè)距的超聲波頻率 40 khz 較為接近,可以 利用它制作超聲波檢測(cè)接收電路(如圖 2-3)。實(shí)驗(yàn)證明用 cx20106a 接收超聲波(無信號(hào)時(shí) 輸出高電平),具有很好的靈敏度和較強(qiáng)的抗干擾能力。適當(dāng)更改電容 c4 的大小,可以改 變接收電路的靈敏度和抗干擾能力。 圖 2-2 超聲波發(fā)射電路原理圖 圖 2-3 超聲波檢測(cè)接收電路 2.4 超聲波測(cè)距系統(tǒng)的硬件電路設(shè)計(jì)超聲波測(cè)距系統(tǒng)的硬件電路設(shè)計(jì) 本系統(tǒng)的特點(diǎn)是利用單片機(jī)控制超聲波的發(fā)射和對(duì)超聲波自發(fā)射至接收

9、往返時(shí)間的計(jì) 時(shí),單片機(jī)選用 at89c51,經(jīng)濟(jì)易用,且片內(nèi)有 4k 的 rom,便于編程。電路原理圖如見 附件。其中只畫出前方測(cè)距電路的接線圖,左側(cè)和右側(cè)測(cè)距電路與前方測(cè)距電路相同,故 省略之。 3 系統(tǒng)軟件的設(shè)計(jì)系統(tǒng)軟件的設(shè)計(jì) 超聲波測(cè)距儀的軟件設(shè)計(jì)主要由主程序、超聲波發(fā)生子程序、超聲波接收中斷程序及 顯示子程序組成。我們知道 c 語言程序有利于實(shí)現(xiàn)較復(fù)雜的算法,匯編語言程序則具有較 高的效率且容易精細(xì)計(jì)算程序運(yùn)行的時(shí)間,而超聲波測(cè)距儀的程序既有較復(fù)雜的計(jì)算(計(jì) 算距離時(shí)) ,又要求精細(xì)計(jì)算程序運(yùn)行時(shí)間(超聲波測(cè)距時(shí)) ,所以控制程序可采用 c 語言 和匯編語言混合編程。 3.1 超聲波

10、測(cè)距儀的算法設(shè)計(jì)超聲波測(cè)距儀的算法設(shè)計(jì) 超聲波測(cè)距的原理為超聲波發(fā)生器 t 在某一時(shí)刻發(fā)出一個(gè)超聲波信號(hào),當(dāng)這個(gè)超聲波 遇到被測(cè)物體后反射回來,就被超聲波接收器 r 所接收到。這樣只要計(jì)算出從發(fā)出超聲波 信號(hào)到接收到返回信號(hào)所用的時(shí)間,就可算出超聲波發(fā)生器與反射物體的距離。距離的計(jì) 算公式為: d=s/2=(ct)/2 (1) 其中,d 為被測(cè)物與測(cè)距儀的距離,s 為聲波的來回的路程,c 為聲速,t 為聲波來回所用 的時(shí)間。 在啟動(dòng)發(fā)射電路的同時(shí)啟動(dòng)單片機(jī)內(nèi)部的定時(shí)器 t0,利用定時(shí)器的計(jì)數(shù)功能記 錄超聲波發(fā)射的時(shí)間和收到反射波的時(shí)間。當(dāng)收到超聲波反射波時(shí),接收電路輸出端產(chǎn)生 一個(gè)負(fù)跳變,在

11、int0 或 int1 端產(chǎn)生一個(gè)中斷請(qǐng)求信號(hào),單片機(jī)響應(yīng)外部中斷請(qǐng)求,執(zhí)行 外部中斷服務(wù)子程序,讀取時(shí)間差,計(jì)算距離。其部分源程序如下: receive0:push psw push acc clr ex0 ;關(guān)外部中斷 0 mov r7, th0 ;讀取時(shí)間值 mov r6, tl0? clr c mov a, r6 subb a, #0bbh;計(jì)算時(shí)間差 mov 31h, a ;存儲(chǔ)結(jié)果 mov a, r7 subb a, #3ch mov 30h, a setb ex0 ;開外部中斷 0 pop acc pop psw reti 3.2 主程序流程圖主程序流程圖 軟件分為兩部分,主程序

12、和中斷服務(wù)程序,如圖 3-1(a)(b) (c) 所示。主程序完 成初始化工作、各路超聲波發(fā)射和接收順序的控制。 定時(shí)中斷服務(wù)子程序完成三方向超聲波的輪流發(fā)射,外部中斷服務(wù)子程序主要完成時(shí) 間值的讀取、距離計(jì)算、結(jié)果的輸出等工作。 主程序首先是對(duì)系統(tǒng)環(huán)境初始化,設(shè)置定時(shí)器 t0 工作模式為 16 位定時(shí)計(jì)數(shù)器模式。 置位總中斷允許位 ea 并給顯示端口 p0 和 p1 清 0。然后調(diào)用超聲波發(fā)生子程序送出一個(gè) 超聲波脈沖,為了避免超聲波從發(fā)射器直接傳送到接收器引起的直射波觸發(fā),需要延時(shí)約 0.1 ms(這也就是超聲波測(cè)距儀會(huì)有一個(gè)最小可測(cè)距離的原因)后,才打開外中斷 0 接收 返回的超聲波信號(hào)

13、。由于采用的是 12 mhz 的晶 振,計(jì)數(shù)器每計(jì)一個(gè)數(shù)就是 1s,當(dāng)主程 序檢測(cè)到接收成功的標(biāo)志位后,將計(jì)數(shù)器 t0 中的數(shù)(即超聲波來回所用的時(shí)間)按式 (2)計(jì)算,即可得被測(cè)物體與測(cè)距儀之間的距離,設(shè)計(jì)時(shí)取 20時(shí)的聲速為 344 m/s 則有: d=(ct)/2=172t0/10000cm (2) 其中,t0 為計(jì)數(shù)器 t0 的計(jì)算值。 測(cè)出距離后結(jié)果將以十進(jìn)制 bcd 碼方式送往 led 顯示約 0.5s,然后再發(fā)超聲波脈沖 重復(fù)測(cè)量過程。為了有利于程序結(jié)構(gòu)化和容易計(jì)算出距離,主程序采用 c 語言編寫。 3.3 超聲波發(fā)生子程序和超聲波接收中斷程序超聲波發(fā)生子程序和超聲波接收中斷程序

14、 超聲波發(fā)生子程序的作用是通過 p1.0 端口發(fā)送 2 個(gè)左右超聲波脈沖信號(hào)(頻率約 40khz 的方波) ,脈沖寬度為 12s 左右,同時(shí)把計(jì)數(shù)器 t0 打開進(jìn)行計(jì)時(shí)。超聲波發(fā)生子 程序較簡(jiǎn)單,但要求程序運(yùn)行準(zhǔn)確,所以采用匯編語言編程。 超聲波測(cè)距儀主程序利用外中斷 0 檢測(cè)返回超聲波信號(hào),一旦接收到返回超聲波信號(hào) (即 int0 引腳出現(xiàn)低電平) ,立即進(jìn)入中斷程序。進(jìn)入中斷后就立即關(guān)閉計(jì)時(shí)器 t0 停止 計(jì)時(shí),并將測(cè)距成功標(biāo)志字賦值 1。如果當(dāng)計(jì)時(shí)器溢出時(shí)還未檢測(cè)到超聲波返回信號(hào),則 定時(shí)器 t0 溢出中斷將外中斷 0 關(guān)閉,并將測(cè)距成功標(biāo)志字賦值 2 以表示此次測(cè)距不成功。 前方測(cè)距電

15、路的輸出端接單片機(jī) int0 端口,中斷優(yōu)先級(jí)最高,左、右測(cè)距電路的輸出通 過與門 ic3a 的輸出接單片機(jī) int1 端口,同時(shí)單片機(jī) p1.3 和 p1.4 接到 ic3a 的輸入端, 中斷源的識(shí)別由程序查詢來處理,中斷優(yōu)先級(jí)為先右后左。部分源程序如下: receive1:push psw push acc clr ex1 ;關(guān)外部中斷 1 jnb p1.1, right ;p1.1 引腳為 0,轉(zhuǎn)至右測(cè)距電路中斷服務(wù)程序 jnb p1.2, left ;p1.2 引腳為 0,轉(zhuǎn)至左測(cè)距電路中斷服務(wù)程序 return:setb ex1;開外部中斷 1 pop acc pop psw ret

16、i right: . ;右測(cè)距電路中斷服務(wù)程序入口 ajmp return left:. ;左測(cè)距電路中斷服務(wù)程序入口 ajmp return 4 系統(tǒng)的軟硬件的調(diào)試系統(tǒng)的軟硬件的調(diào)試 超聲波測(cè)距儀的制作和調(diào)試都比較簡(jiǎn)單,其中超聲波發(fā)射和接收采用 15 的超聲波換 能器 tct40-10f1(t 發(fā)射)和 tct40-10s1(r 接收) ,中心頻率為 40khz,安裝時(shí)應(yīng)保持 兩換能器中心軸線平行并相距 48cm,其余元件無特殊要求。若能將超聲波接收電路用金 屬殼屏蔽起來,則可提高抗干擾能力。根據(jù)測(cè)量范圍要求不同,可適當(dāng)調(diào)整與接收換能器 并接的濾波電容 c0 的大小,以獲得合適的接收靈敏度和

17、抗干擾能力。 硬件電路制作完成并調(diào)試好后,便可將程序編譯好下載到單片機(jī)試運(yùn)行。根據(jù)實(shí)際情 況可以修改超聲波發(fā)生子程序每次發(fā)送的脈沖寬度和兩次測(cè)量的間隔時(shí)間,以適應(yīng)不同距 離的測(cè)量需要。根據(jù)所設(shè)計(jì)的電路參數(shù)和程序,測(cè)距儀能測(cè)的范圍為 0.075.5m,測(cè)距儀 最大誤差不超過 1cm。系統(tǒng)調(diào)試完后應(yīng)對(duì)測(cè)量誤差和重復(fù)一致性進(jìn)行多次實(shí)驗(yàn)分析,不斷 優(yōu)化系統(tǒng)使其達(dá)到實(shí)際使用的測(cè)量要求。 5 設(shè)計(jì)總結(jié)設(shè)計(jì)總結(jié) 由于時(shí)間和其它客觀上的原因,此次設(shè)計(jì)沒有做出實(shí)物。但是對(duì)設(shè)計(jì)有一個(gè)很好的理 論基礎(chǔ)。設(shè)計(jì)的最終結(jié)果是使超聲波測(cè)距儀能夠產(chǎn)生超聲波,實(shí)現(xiàn)超聲波的發(fā)送與接收, 從而實(shí)現(xiàn)利用超聲波方法測(cè)量物體間的距離。以

18、數(shù)字的形式顯示測(cè)量距離。 超聲波測(cè)距的原理是利用超聲波的發(fā)射和接受,根據(jù)超聲波傳播的時(shí)間來計(jì)算出傳播 距離。實(shí)用的測(cè)距方法有兩種,一種是在被測(cè)距離的兩端,一端發(fā)射,另一端接收的直接 波方式,適用于身高計(jì);一種是發(fā)射波被物體反射回來后接收的反射波方式,適用于測(cè)距 儀。此次設(shè)計(jì)采用反射波方式。 超聲波測(cè)距儀硬件電路的設(shè)計(jì)主要包括單片機(jī)系統(tǒng)及顯示電路、超聲波發(fā)射電路和超 聲波檢測(cè)接收電路三部分。單片機(jī)采用 at89c51 或其兼容系列。采用 12mhz 高精度的晶 振,以獲得較穩(wěn)定時(shí)鐘頻率,減小測(cè)量誤差。單片機(jī)用 p1.0 端口輸出超聲波換能器所需的 40khz 的方波信號(hào),利用外中斷 0 口監(jiān)測(cè)超

19、聲波接收電路輸出的返回信號(hào)。顯示電路采用 簡(jiǎn)單實(shí)用的 4 位共陽 led 數(shù)碼管,段碼用 74ls244 驅(qū)動(dòng),位碼用 pnp 三極管 8550 驅(qū)動(dòng)。 超聲波發(fā)射電路主要由反相器 74ls04 和超聲波發(fā)射換能器 t 構(gòu)成,單片機(jī) p1.0 端口 輸出的 40khz 的方波信號(hào)一路經(jīng)一級(jí)反向器后送到超聲波換能器的一個(gè)電極,另一路經(jīng)兩 級(jí)反向器后送到超聲波換能器的另一個(gè)電極,用這種推換形式將方波信號(hào)加到超聲波換能 器的兩端,可以提高超聲波的發(fā)射強(qiáng)度。輸出端采兩個(gè)反向器并聯(lián),用以提高驅(qū)動(dòng)能力。 上位電阻 r1o、r11 一方面可以提高反向器 74ls04 輸出高電平的驅(qū)動(dòng)能力,另一方面可 以增加

20、超聲波換能器的阻尼效果,縮短其自由振蕩時(shí)間。壓電式超聲波換能器是利用壓電 晶體的諧振來工作的。超聲波換能器內(nèi)部有兩個(gè)壓電晶片和一個(gè)換能板。當(dāng)它的兩極外加 脈沖信號(hào),其頻率等于壓電晶片的固有振蕩頻率時(shí),壓電晶片會(huì)發(fā)生共振,并帶動(dòng)共振板 振動(dòng)產(chǎn)生超聲波,這時(shí)它就是一個(gè)超聲波發(fā)生器;反之,如果兩電極問未外加電壓,當(dāng)共 振板接收到超聲波時(shí),將壓迫壓電晶片作振動(dòng),將機(jī)械能轉(zhuǎn)換為電信號(hào),這時(shí)它就成為超 聲波接收換能器。超聲波發(fā)射換能器與接收換能器在結(jié)構(gòu)上稍有不同,使用時(shí)應(yīng)分清器件 上的標(biāo)志。 超聲波檢測(cè)接收電路主要是由集成電路 cx20106a 組成,它是一款紅外線檢波接收的 專用芯片,常用于電視機(jī)紅外遙

21、控接收器??紤]到紅外遙控常用的載波頻率 38 khz 與測(cè)距 的超聲波頻率 40 khz 較為接近,可以利用它制作超聲波檢測(cè)接收電路。實(shí)驗(yàn)證明用 cx20106a 接收超聲波(無信號(hào)時(shí)輸出高電平),具有很好的靈敏度和較強(qiáng)的抗干擾能力。適 當(dāng)更改電容 c4 的大小,可以改變接收電路的靈敏度和抗干擾能力。 超聲波測(cè)距儀的軟件設(shè)計(jì)主要由主程序、超聲波發(fā)生子程序、超聲波接收中斷程序及 顯示子程序組成。我們知道 c 語言程序有利于實(shí)現(xiàn)較復(fù)雜的算法,匯編語言程序則具有較 高的效率且容易精細(xì)計(jì)算程序運(yùn)行的時(shí)間,而超聲波測(cè)距儀的程序既有較復(fù)雜的計(jì)算(計(jì) 算距離時(shí)) ,又要求精細(xì)計(jì)算程序運(yùn)行時(shí)間(超聲波測(cè)距時(shí))

22、 ,所以控制程序可采用 c 語言 和匯編語言混合編程。主超聲波測(cè)距儀主程序利用外中斷 0 檢測(cè)返回超聲波信號(hào),一旦接 收到返回超聲波信號(hào)(即 int0 引腳出現(xiàn)低電平) ,立即進(jìn)入中斷程序。進(jìn)入中斷后就立即 關(guān)閉計(jì)時(shí)器 t0 停止計(jì)時(shí),并將測(cè)距成功標(biāo)志字賦值 1。如果當(dāng)計(jì)時(shí)器溢出時(shí)還未檢測(cè)到超 聲波返回信號(hào),則定時(shí)器 t0 溢出中斷將外中斷 0 關(guān)閉,并將測(cè)距成功標(biāo)志字賦值 2 以表 示此次測(cè)距不成功。 前方測(cè)距電路的輸出端接單片機(jī) int0 端口,中斷優(yōu)先級(jí)最高,左、 右測(cè)距電路的輸出通過與門 ic3a 的輸出接單片機(jī) int1 端口,同時(shí)單片機(jī) p1.3 和 p1.4 接 到 ic3a 的

23、輸入端,中斷源的識(shí)別由程序查詢來處理,中斷優(yōu)先級(jí)為先右后左。 超聲波測(cè)距的算法設(shè)計(jì)原理為超聲波發(fā)生器 t 在某一時(shí)刻發(fā)出一個(gè)超聲波信號(hào),當(dāng)這 個(gè)超聲波遇到被測(cè)物體后反射回來,就被超聲波接收器 r 所接收到。這樣只要計(jì)算出從發(fā) 出超聲波信號(hào)到接收到返回信號(hào)所用的時(shí)間,就可算出超聲波發(fā)生器與反射物體的距離。 在啟動(dòng)發(fā)射電路的同時(shí)啟動(dòng)單片機(jī)內(nèi)部的定時(shí)器 t0,利用定時(shí)器的計(jì)數(shù)功能記錄超聲波發(fā) 射的時(shí)間和收到反射波的時(shí)間。當(dāng)收到超聲波反射波時(shí),接收電路輸出端產(chǎn)生一個(gè)負(fù)跳變, 在 int0 或 int1 端產(chǎn)生一個(gè)中斷請(qǐng)求信號(hào),單片機(jī)響應(yīng)外部中斷請(qǐng)求,執(zhí)行外部中斷服務(wù) 子程序,讀取時(shí)間差,計(jì)算距離。 在

24、元件及調(diào)制方面,由于采用的電路使用了很多集成電路。外圍元件不是很多,所以 調(diào)試應(yīng)該不會(huì)太難。一般只要電路焊接無誤,稍加調(diào)試應(yīng)該會(huì)正常工作。電路中除集成電 路外,對(duì)各電子元件也無特別要求。根據(jù)測(cè)量范圍要求不同,可適當(dāng)調(diào)整與接收換能器并 接的濾波電容 c0 的大小,以獲得合適的接收靈敏度和抗干擾能力。若能將超聲波接收電 路用金屬殼屏蔽起來,則可提高抗干擾能力。 小組成員姓名小組成員姓名班級(jí)班級(jí)學(xué)號(hào)學(xué)號(hào) 蘇 濤07 電子二班07205010244 胡 朝07 電子二班07205010215 楊宇翔07 電子二班 小組成員簽字:小組成員簽字: 附錄附錄 附錄附錄 1 超聲波測(cè)距電路原理圖 1 2 5

25、3 8 7 6 4 * lm358 2 7 6 8 5 4 3 1 * lm567 4 3 2 1 5 6 7 8 * 24c02 * 10k 10k10k xtal1 19 p3.o 10 p3.1 11 p3.4 14 p3.5 15 p2.0 21 vcc 40 p2.3 24 p3.2 12 xtal2 18 gnd 20 p2.2 23 at89c51 1k r? res2 220k 22k 2.2k 10k 2.2k 30pf 30pf 104104 104 2.2uf 152 1uf 1uf 3 4 5 6 10 11 12 13 14 9 7 1 2 8 * 74ls164 4

26、.7k 1k100 1 2 4 5 6 7 9 10 3 8 * 2七led七七七七七 vcc vcc vcc 20k * 七七七七七七七七 * 七七七七七七七七 附錄附錄 2 超聲波測(cè)距程序清單 #include #define k1 p3_4 #define csbout p3_5 /超聲波發(fā)送 #define csbint p3_7 /超聲波接收 #define csbc=0.034 #define bg p3_3 unsigned char csbds,opto,digit,buffer3,xm1,xm2,xm0,key,jpjs;/顯示標(biāo)識(shí) unsigned char convert

27、10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/09 段碼 unsigned int s,t,i, xx,j,sj1,sj2,sj3,mqs,sx1; bit cl; void csbcj(); void delay(j); /延時(shí)函數(shù) void scanled(); /顯示函數(shù) void timetobuffer(); /顯示轉(zhuǎn)換函數(shù) void keyscan(); void k1cl(); void k2cl(); void k3cl(); void k4cl(); void offmsd(); void main() /主函數(shù)

28、ea=1; /開中斷 tmod=0x11; /設(shè)定時(shí)器 0 為計(jì)數(shù),設(shè)定時(shí)器 1 定時(shí) et0=1; /定時(shí)器 0 中斷允許 et1=1; /定時(shí)器 1 中斷允許 th0=0x00; tl0=0x00; th1=0x9e; tl1=0x57; csbds=0; csbint=1; csbout=1; cl=0; pto=0xff; jpjs=0; sj1=45; sj2=200; sj3=400; k4cl(); tr1=1; while(1) keyscan(); if(jpjssj3) buffer2=0x76; buffer1=0x76; buffer0=0x76; else if(ss

29、j1) buffer2=0x40; buffer1=0x40; buffer0=0x40; else timetobuffer(); else timetobuffer(); /將值轉(zhuǎn)換成 led 段碼 offmsd(); scanled(); /顯示函數(shù) if(ssj2) bg=0; bg=1; void scanled() /顯示功能模塊 digit=0x04; for( i=0; i=1; /循環(huán)右移 1 位 void timetobuffer() /轉(zhuǎn)換段碼功能模塊 xm0=s/100; xm1=(s-100*xm0)/10; xm2=s-100*xm0-10*xm1; buffer2=convertxm2; buffer1=convertxm1; buffer0=convertxm0; void delay(i) while(-i); void timer1int (void) interrupt 3 using 2 th1=0x9e; tl1=0x57; csbds+; if(csbds=40) csbds=0; cl=1; void csbcj() if(cl=1) tr1=0; th0=0x00; tl0=0x00

溫馨提示

  • 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. 人人文庫(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)論