




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于單片機的超聲波測距儀設計基于單片機的超聲波測距儀設計 1 總體設計方案介紹總體設計方案介紹 1.1 超聲波測距原理超聲波測距原理 發射器發出的超聲波以速度 在空氣中傳播,在到達被測物體時被反射返回,由接收 器接收,其往返時間為 t,由 s=vt/2 即可算出被測物體的距離。由于超聲波也是一種聲波, 其聲速 v 與溫度有關,下表列出了幾種不同溫度下的聲速。在使用時,如果溫度變化不大, 則可認為聲速是基本不變的。如果測距精度要求很高,則應通過溫度補償的方法加以校正。 表 1-1 超聲波波速與溫度的關系表 溫度()-30-20-100102030100 聲速(ms)313319325323338
2、344349386 表 1-1 1.2 超聲波測距儀原理框圖如下圖超聲波測距儀原理框圖如下圖 單片機發出 40khz 的信號,經放大后通過超聲波發射器輸出;超聲波接收器將接收到 的超聲波信號經放大器放大,用鎖相環電路進行檢波處理后,啟動單片機中斷程序,測得 時間為 t,再由軟件進行判別、計算,得出距離數并送 led 顯示。 超聲波發射器 放大電路超聲波接收器 放大電路 鎖相環 檢波電路 定時器 單片機 控制顯示器 圖 1-1 超聲波測距儀原理框圖 2 系統的硬件結構設計系統的硬件結構設計 硬件電路的設計主要包括單片機系統及顯示電路、超聲波發射電路和超聲波檢測接收 電路三部分。單片機采用 at8
3、9c51 或其兼容系列。采用 12mhz 高精度的晶振,以獲得較 穩定時鐘頻率,減小測量誤差。單片機用 p1.0 端口輸出超聲波換能器所需的 40khz 的方波 信號,利用外中斷 0 口監測超聲波接收電路輸出的返回信號。顯示電路采用簡單實用的 4 位共陽 led 數碼管,段碼用 74ls244 驅動,位碼用 pnp 三極管 8550 驅動。 2.1 51 系列單片機的功能特點及測距原理系列單片機的功能特點及測距原理 2.1.1 51 系列單片機的功能特點系列單片機的功能特點 5l 系列單片機中典型芯片(at89c51)采用 40 引腳雙列直插封裝(dip)形式,內部由 cpu,4kb 的 ro
4、m,256 b 的 ram,2 個 16b 的定時計數器 to 和 t1,4 個 8 b 的工 o 端 i:ip0,p1,p2,p3,一個全雙功串行通信口等組成。特別是該系列單片機片內的 flash 可編程、可擦除只讀存儲器(eprom),使其在實際中有著十分廣泛的用途,在便攜 式、省電及特殊信息保存的儀器和系統中更為有用。 5l 系列單片機提供以下功能:4 kb 存儲器;256 bram;32 條工o 線;2 個 16b 定 時計數器;5 個 2 級中斷源;1 個全雙向的串行口以及時鐘電路。 空閑方式:cpu 停止工作,而讓 ram、定時計數器、串行口和中斷系統繼續工作。 掉電方式:保存 r
5、am 的內容,振蕩器停振,禁止芯片所有的其他功能直到下一次硬 件復位。 5l 系列單片機為許多控制提供了高度靈活和低成本的解決辦法。充分利用他的片內資 源,即可在較少外圍電路的情況下構成功能完善的超聲波測距系統。 2.1.2 單片機實現測距原理單片機實現測距原理 單片機發出超聲波測距是通過不斷檢測超聲波發射后遇到障礙物所反射的回波,從而 測出發射和接收回波的時間差 tr,然后求出距離 sct2,式中的 c 為超聲波波速。 限制該系統的最大可測距離存在 4 個因素:超聲波的幅度、反射的質地、反射和入射聲波 之間的夾角以及接收換能器的靈敏度。接收換能器對聲波脈沖的直接接收能力將決定最小 的可測距離
6、。為了增加所測量的覆蓋范圍、減小測量誤差,可采用多個超聲波換能器分別 作為多路超聲波發射接收的設計方法。由于超聲波屬于聲波范圍,其波速 c 與溫度有關。 2.2 超聲波發射電路超聲波發射電路 超聲波發射電路原理圖如圖 2-2 所示。發射電路主要由反相器 74ls04 和超聲波發射換 能器 t 構成,單片機 p1.0 端口輸出的 40khz 的方波信號一路經一級反向器后送到超聲波 換能器的一個電極,另一路經兩級反向器后送到超聲波換能器的另一個電極,用這種推換 形式將方波信號加到超聲波換能器的兩端,可以提高超聲波的發射強度。輸出端采兩個反 向器并聯,用以提高驅動能力。上位電阻 r1o、r11 一方
7、面可以提高反向器 74ls04 輸出 高電平的驅動能力,另一方面可以增加超聲波換能器的阻尼效果,縮短其自由振蕩時間。 壓電式超聲波換能器是利用壓電晶體的諧振來工作的。超聲波換能器內部有兩個壓電 晶片和一個換能板。當它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時, 壓電晶片會發生共振,并帶動共振板振動產生超聲波,這時它就是一個超聲波發生器;反 之,如果兩電極問未外加電壓,當共振板接收到超聲波時,將壓迫壓電晶片作振動,將機 械能轉換為電信號,這時它就成為超聲波接收換能器。超聲波發射換能器與接收換能器在 結構上稍有不同,使用時應分清器件上的標志。 2.3 超聲波檢測接收電路超聲波檢測接收電
8、路 集成電路 cx20106a 是一款紅外線檢波接收的專用芯片,常用于電視機紅外遙控接收 器。考慮到紅外遙控常用的載波頻率 38 khz 與測距的超聲波頻率 40 khz 較為接近,可以 利用它制作超聲波檢測接收電路(如圖 2-3)。實驗證明用 cx20106a 接收超聲波(無信號時 輸出高電平),具有很好的靈敏度和較強的抗干擾能力。適當更改電容 c4 的大小,可以改 變接收電路的靈敏度和抗干擾能力。 圖 2-2 超聲波發射電路原理圖 圖 2-3 超聲波檢測接收電路 2.4 超聲波測距系統的硬件電路設計超聲波測距系統的硬件電路設計 本系統的特點是利用單片機控制超聲波的發射和對超聲波自發射至接收
9、往返時間的計 時,單片機選用 at89c51,經濟易用,且片內有 4k 的 rom,便于編程。電路原理圖如見 附件。其中只畫出前方測距電路的接線圖,左側和右側測距電路與前方測距電路相同,故 省略之。 3 系統軟件的設計系統軟件的設計 超聲波測距儀的軟件設計主要由主程序、超聲波發生子程序、超聲波接收中斷程序及 顯示子程序組成。我們知道 c 語言程序有利于實現較復雜的算法,匯編語言程序則具有較 高的效率且容易精細計算程序運行的時間,而超聲波測距儀的程序既有較復雜的計算(計 算距離時) ,又要求精細計算程序運行時間(超聲波測距時) ,所以控制程序可采用 c 語言 和匯編語言混合編程。 3.1 超聲波
10、測距儀的算法設計超聲波測距儀的算法設計 超聲波測距的原理為超聲波發生器 t 在某一時刻發出一個超聲波信號,當這個超聲波 遇到被測物體后反射回來,就被超聲波接收器 r 所接收到。這樣只要計算出從發出超聲波 信號到接收到返回信號所用的時間,就可算出超聲波發生器與反射物體的距離。距離的計 算公式為: d=s/2=(ct)/2 (1) 其中,d 為被測物與測距儀的距離,s 為聲波的來回的路程,c 為聲速,t 為聲波來回所用 的時間。 在啟動發射電路的同時啟動單片機內部的定時器 t0,利用定時器的計數功能記 錄超聲波發射的時間和收到反射波的時間。當收到超聲波反射波時,接收電路輸出端產生 一個負跳變,在
11、int0 或 int1 端產生一個中斷請求信號,單片機響應外部中斷請求,執行 外部中斷服務子程序,讀取時間差,計算距離。其部分源程序如下: receive0:push psw push acc clr ex0 ;關外部中斷 0 mov r7, th0 ;讀取時間值 mov r6, tl0? clr c mov a, r6 subb a, #0bbh;計算時間差 mov 31h, a ;存儲結果 mov a, r7 subb a, #3ch mov 30h, a setb ex0 ;開外部中斷 0 pop acc pop psw reti 3.2 主程序流程圖主程序流程圖 軟件分為兩部分,主程序
12、和中斷服務程序,如圖 3-1(a)(b) (c) 所示。主程序完 成初始化工作、各路超聲波發射和接收順序的控制。 定時中斷服務子程序完成三方向超聲波的輪流發射,外部中斷服務子程序主要完成時 間值的讀取、距離計算、結果的輸出等工作。 主程序首先是對系統環境初始化,設置定時器 t0 工作模式為 16 位定時計數器模式。 置位總中斷允許位 ea 并給顯示端口 p0 和 p1 清 0。然后調用超聲波發生子程序送出一個 超聲波脈沖,為了避免超聲波從發射器直接傳送到接收器引起的直射波觸發,需要延時約 0.1 ms(這也就是超聲波測距儀會有一個最小可測距離的原因)后,才打開外中斷 0 接收 返回的超聲波信號
13、。由于采用的是 12 mhz 的晶 振,計數器每計一個數就是 1s,當主程 序檢測到接收成功的標志位后,將計數器 t0 中的數(即超聲波來回所用的時間)按式 (2)計算,即可得被測物體與測距儀之間的距離,設計時取 20時的聲速為 344 m/s 則有: d=(ct)/2=172t0/10000cm (2) 其中,t0 為計數器 t0 的計算值。 測出距離后結果將以十進制 bcd 碼方式送往 led 顯示約 0.5s,然后再發超聲波脈沖 重復測量過程。為了有利于程序結構化和容易計算出距離,主程序采用 c 語言編寫。 3.3 超聲波發生子程序和超聲波接收中斷程序超聲波發生子程序和超聲波接收中斷程序
14、 超聲波發生子程序的作用是通過 p1.0 端口發送 2 個左右超聲波脈沖信號(頻率約 40khz 的方波) ,脈沖寬度為 12s 左右,同時把計數器 t0 打開進行計時。超聲波發生子 程序較簡單,但要求程序運行準確,所以采用匯編語言編程。 超聲波測距儀主程序利用外中斷 0 檢測返回超聲波信號,一旦接收到返回超聲波信號 (即 int0 引腳出現低電平) ,立即進入中斷程序。進入中斷后就立即關閉計時器 t0 停止 計時,并將測距成功標志字賦值 1。如果當計時器溢出時還未檢測到超聲波返回信號,則 定時器 t0 溢出中斷將外中斷 0 關閉,并將測距成功標志字賦值 2 以表示此次測距不成功。 前方測距電
15、路的輸出端接單片機 int0 端口,中斷優先級最高,左、右測距電路的輸出通 過與門 ic3a 的輸出接單片機 int1 端口,同時單片機 p1.3 和 p1.4 接到 ic3a 的輸入端, 中斷源的識別由程序查詢來處理,中斷優先級為先右后左。部分源程序如下: receive1:push psw push acc clr ex1 ;關外部中斷 1 jnb p1.1, right ;p1.1 引腳為 0,轉至右測距電路中斷服務程序 jnb p1.2, left ;p1.2 引腳為 0,轉至左測距電路中斷服務程序 return:setb ex1;開外部中斷 1 pop acc pop psw ret
16、i right: . ;右測距電路中斷服務程序入口 ajmp return left:. ;左測距電路中斷服務程序入口 ajmp return 4 系統的軟硬件的調試系統的軟硬件的調試 超聲波測距儀的制作和調試都比較簡單,其中超聲波發射和接收采用 15 的超聲波換 能器 tct40-10f1(t 發射)和 tct40-10s1(r 接收) ,中心頻率為 40khz,安裝時應保持 兩換能器中心軸線平行并相距 48cm,其余元件無特殊要求。若能將超聲波接收電路用金 屬殼屏蔽起來,則可提高抗干擾能力。根據測量范圍要求不同,可適當調整與接收換能器 并接的濾波電容 c0 的大小,以獲得合適的接收靈敏度和
17、抗干擾能力。 硬件電路制作完成并調試好后,便可將程序編譯好下載到單片機試運行。根據實際情 況可以修改超聲波發生子程序每次發送的脈沖寬度和兩次測量的間隔時間,以適應不同距 離的測量需要。根據所設計的電路參數和程序,測距儀能測的范圍為 0.075.5m,測距儀 最大誤差不超過 1cm。系統調試完后應對測量誤差和重復一致性進行多次實驗分析,不斷 優化系統使其達到實際使用的測量要求。 5 設計總結設計總結 由于時間和其它客觀上的原因,此次設計沒有做出實物。但是對設計有一個很好的理 論基礎。設計的最終結果是使超聲波測距儀能夠產生超聲波,實現超聲波的發送與接收, 從而實現利用超聲波方法測量物體間的距離。以
18、數字的形式顯示測量距離。 超聲波測距的原理是利用超聲波的發射和接受,根據超聲波傳播的時間來計算出傳播 距離。實用的測距方法有兩種,一種是在被測距離的兩端,一端發射,另一端接收的直接 波方式,適用于身高計;一種是發射波被物體反射回來后接收的反射波方式,適用于測距 儀。此次設計采用反射波方式。 超聲波測距儀硬件電路的設計主要包括單片機系統及顯示電路、超聲波發射電路和超 聲波檢測接收電路三部分。單片機采用 at89c51 或其兼容系列。采用 12mhz 高精度的晶 振,以獲得較穩定時鐘頻率,減小測量誤差。單片機用 p1.0 端口輸出超聲波換能器所需的 40khz 的方波信號,利用外中斷 0 口監測超
19、聲波接收電路輸出的返回信號。顯示電路采用 簡單實用的 4 位共陽 led 數碼管,段碼用 74ls244 驅動,位碼用 pnp 三極管 8550 驅動。 超聲波發射電路主要由反相器 74ls04 和超聲波發射換能器 t 構成,單片機 p1.0 端口 輸出的 40khz 的方波信號一路經一級反向器后送到超聲波換能器的一個電極,另一路經兩 級反向器后送到超聲波換能器的另一個電極,用這種推換形式將方波信號加到超聲波換能 器的兩端,可以提高超聲波的發射強度。輸出端采兩個反向器并聯,用以提高驅動能力。 上位電阻 r1o、r11 一方面可以提高反向器 74ls04 輸出高電平的驅動能力,另一方面可 以增加
20、超聲波換能器的阻尼效果,縮短其自由振蕩時間。壓電式超聲波換能器是利用壓電 晶體的諧振來工作的。超聲波換能器內部有兩個壓電晶片和一個換能板。當它的兩極外加 脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時,壓電晶片會發生共振,并帶動共振板 振動產生超聲波,這時它就是一個超聲波發生器;反之,如果兩電極問未外加電壓,當共 振板接收到超聲波時,將壓迫壓電晶片作振動,將機械能轉換為電信號,這時它就成為超 聲波接收換能器。超聲波發射換能器與接收換能器在結構上稍有不同,使用時應分清器件 上的標志。 超聲波檢測接收電路主要是由集成電路 cx20106a 組成,它是一款紅外線檢波接收的 專用芯片,常用于電視機紅外遙
21、控接收器。考慮到紅外遙控常用的載波頻率 38 khz 與測距 的超聲波頻率 40 khz 較為接近,可以利用它制作超聲波檢測接收電路。實驗證明用 cx20106a 接收超聲波(無信號時輸出高電平),具有很好的靈敏度和較強的抗干擾能力。適 當更改電容 c4 的大小,可以改變接收電路的靈敏度和抗干擾能力。 超聲波測距儀的軟件設計主要由主程序、超聲波發生子程序、超聲波接收中斷程序及 顯示子程序組成。我們知道 c 語言程序有利于實現較復雜的算法,匯編語言程序則具有較 高的效率且容易精細計算程序運行的時間,而超聲波測距儀的程序既有較復雜的計算(計 算距離時) ,又要求精細計算程序運行時間(超聲波測距時)
22、 ,所以控制程序可采用 c 語言 和匯編語言混合編程。主超聲波測距儀主程序利用外中斷 0 檢測返回超聲波信號,一旦接 收到返回超聲波信號(即 int0 引腳出現低電平) ,立即進入中斷程序。進入中斷后就立即 關閉計時器 t0 停止計時,并將測距成功標志字賦值 1。如果當計時器溢出時還未檢測到超 聲波返回信號,則定時器 t0 溢出中斷將外中斷 0 關閉,并將測距成功標志字賦值 2 以表 示此次測距不成功。 前方測距電路的輸出端接單片機 int0 端口,中斷優先級最高,左、 右測距電路的輸出通過與門 ic3a 的輸出接單片機 int1 端口,同時單片機 p1.3 和 p1.4 接 到 ic3a 的
23、輸入端,中斷源的識別由程序查詢來處理,中斷優先級為先右后左。 超聲波測距的算法設計原理為超聲波發生器 t 在某一時刻發出一個超聲波信號,當這 個超聲波遇到被測物體后反射回來,就被超聲波接收器 r 所接收到。這樣只要計算出從發 出超聲波信號到接收到返回信號所用的時間,就可算出超聲波發生器與反射物體的距離。 在啟動發射電路的同時啟動單片機內部的定時器 t0,利用定時器的計數功能記錄超聲波發 射的時間和收到反射波的時間。當收到超聲波反射波時,接收電路輸出端產生一個負跳變, 在 int0 或 int1 端產生一個中斷請求信號,單片機響應外部中斷請求,執行外部中斷服務 子程序,讀取時間差,計算距離。 在
24、元件及調制方面,由于采用的電路使用了很多集成電路。外圍元件不是很多,所以 調試應該不會太難。一般只要電路焊接無誤,稍加調試應該會正常工作。電路中除集成電 路外,對各電子元件也無特別要求。根據測量范圍要求不同,可適當調整與接收換能器并 接的濾波電容 c0 的大小,以獲得合適的接收靈敏度和抗干擾能力。若能將超聲波接收電 路用金屬殼屏蔽起來,則可提高抗干擾能力。 小組成員姓名小組成員姓名班級班級學號學號 蘇 濤07 電子二班07205010244 胡 朝07 電子二班07205010215 楊宇翔07 電子二班 小組成員簽字:小組成員簽字: 附錄附錄 附錄附錄 1 超聲波測距電路原理圖 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 超聲波測距程序清單 #include #define k1 p3_4 #define csbout p3_5 /超聲波發送 #define csbint p3_7 /超聲波接收 #define csbc=0.034 #define bg p3_3 unsigned char csbds,opto,digit,buffer3,xm1,xm2,xm0,key,jpjs;/顯示標識 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); /延時函數 void scanled(); /顯示函數 void timetobuffer(); /顯示轉換函數 void keyscan(); void k1cl(); void k2cl(); void k3cl(); void k4cl(); void offmsd(); void main() /主函數
28、ea=1; /開中斷 tmod=0x11; /設定時器 0 為計數,設定時器 1 定時 et0=1; /定時器 0 中斷允許 et1=1; /定時器 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(); /將值轉換成 led 段碼 offmsd(); scanled(); /顯示函數 if(ssj2) bg=0; bg=1; void scanled() /顯示功能模塊 digit=0x04; for( i=0; i=1; /循環右移 1 位 void timetobuffer() /轉換段碼功能模塊 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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 集裝箱道路運輸與物流市場分析考核試卷
- 棉花供應鏈管理與優化考核試卷
- 油氣倉儲安全評價與監控考核試卷
- 陶瓷制作中的熱工設備與節能技術考核試卷
- 臨床常見急救救護流程規范
- 多重感染肺炎
- 胎兒窒息臨床急救護理
- 子癇患者的麻醉管理
- AIDS合并口腔念珠菌感染診療體系
- 外科護理局部麻醉
- 《老年服務禮儀與溝通》高職養老服務類專業全套教學課件
- 自來水安裝施工合同范例二零二五年
- 2025春季學期國開電大本科《管理英語3》一平臺在線形考綜合測試形考任務試題及答案
- 小區安全隱患課件
- 國家安全共同守護-國家安全教育日主題班會課件-2024-2025學年初中主題班會課件
- 清華大學語文試題及答案
- 機動車環檢試題及答案
- 學校德育教育的有效方法研究
- 2025年上半年民航醫學中心(民航總醫院)招聘應屆畢業生64人重點基礎提升(共500題)附帶答案詳解-1
- 2025年上半年山東濟寧市任城區事業單位招聘工作人員(衛生類)161人易考易錯模擬試題(共500題)試卷后附參考答案
- 股骨頭壞死中醫護理常規
評論
0/150
提交評論