課程設計 超聲波測距.doc_第1頁
課程設計 超聲波測距.doc_第2頁
課程設計 超聲波測距.doc_第3頁
課程設計 超聲波測距.doc_第4頁
課程設計 超聲波測距.doc_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

西華大學電子技術課程設計說明書 基于51單片機的超聲波測距儀設計摘要: 本方案以stc89c52為核心,通過編程(C語言)來實現該單片機對外圍電路的適時控制,并提供給外圍電路各種所需的信號和接收超聲波反射回來的微小信號,包括頻率振蕩信號,時鐘信號,數據處理信號和顯示信號等等。其核心功能是對距離的檢測并實時的進行距離的顯示,在檢測距離方面通過發射端與接收端的時間差來計算,理論上所測距離與其時間差成線性關系,所以可以通過線性回歸統計方法求出實際距離與所求距離的關系。該電路簡化了一些外圍電路,任能做到較為精確的測量工作,由于是采用程控操作,所以其移植性和可擴展性還是較好。在設計時分,分模塊進行設計來實現各部分功能,簡化了在設計過程中的調試難度。關鍵詞: 超聲波測距、單片機控制、液晶顯示、距離報警、線性回歸Abstract:This program stc89c52 programming (C language) to achieve the timely control of the single-chip peripheral circuits, and made available to the peripheral circuits of the desired signal and receiving the ultrasonic reflected the small signal, including frequency oscillation signal, the clock signal, data signal processing and display signals, and so on. The its core function is to to the detection of pairs the distance and real-time of the carried out the distance the display of goes as follows. In the to calculate the, in the the detection distance aspects of through the launch of the-side with the the time of the the receiving end is poor, in theory, the measured distance with its time difference into a linear the relationship between, so can through the the linear regression statistical methods calculate the actual distance of the seek distance relationship. The circuit simplifies the peripheral circuit, any more accurate measurements can be done, because it is programmed operation, its portability and scalability better. Hours of the design, the sub-module design to achieve the function of each, and simplifies the debugging difficulty in the design process.Keywords:Ultrasonic Ranging, MCU control, LCD, alarm of distance ,linear regression 目錄1前言31.1 課題的研究背景和意義31.2 課題的國內外研究現狀32 總體方案設計42.1超聲波測距的原理42.2超聲波傳感器的工作原理及結構圖43單元模塊設計53.1各單元模塊功能介紹及電路設計53.2 AT89S52型單片機介紹63.3各單元模塊的聯接84 軟件設計154.1軟件設計分析154.2軟件設計思路154.2.1主程序154.2.2 超聲波測距子程序164.2.3 超聲波延時子程序175系統調試185.1硬件調試185.2硬軟件聯調195.3測試結果分析205.3.1測試波形205.3.2測試中儀器儀表215.3.3 數據分析215.4超聲波測距誤差分析225.4.1溫度誤差225.4.2串擾問題226 結論236.1總結與體會236.2 對設計的進一步完善提出意見或建議23附錄一、相關設計程序26附錄二、設計圖和35附錄三、實物圖36 37 1前言1.1 課題的研究背景和意義超聲波是指頻率高于20KHz的聲波,屬于機械波的范疇,遵循一般機械波在彈性介質中的傳播規律,如在介質的分界面處發生反射和折射現象,在進入介質后被介質吸收而發生衰減等,正是因為有這些性質,使得超聲波可以用于距離的測量,隨著經濟的發展,科技水平的不斷提高,電子測量技術應用越來越廣泛,超聲波測量精度高,成本低,性能穩定則備受青睞,超聲波測距技術被廣泛的應用于人們生活和工作中。由于超聲波測距是一種非接觸檢測技術,不受光線、被測對象顏色的影響,比其他儀器更衛生,具有不污染、高可靠、長壽命等特點,被廣泛應用于紙業、礦業、電廠、化工業、污水處理廠、食品、水文、等行業中,可在不同環境中進行距離的準確度在線標定,可直接用于水酒精、糖等液位控制,能達到工業實用的指標要求。還可以用于移動機器人的視覺系統中,這樣可使機器人自動躲避障礙物行走,及時獲得障礙物的位置信息,同時超聲波測距系統具有以上的這些特點,在汽車倒車雷達的研制方面也得到了廣泛應用1。1.2 課題的國內外研究現狀目前國際國內,在超聲波測距方面的研究方向和水平的不同,主要體現在對測距原理、超聲波信號處理方法和超聲波測距處理器的選用上。常見的超聲波測距原理分為渡越時間法和相位差法兩種。信號的處理方法大致分為閾值檢驗法、互相關延時估計法、偽隨機碼擴頻測距法和最小均方法四種。在處理器方面大多以單片機為主,其中以51系列應用最為廣泛,采用運算速度更快,效率更高dsp芯片作為處理器,也正成為一個非常活躍的研究方向。目前已研制的超聲波測距儀中,量程一般為3-12m,美國AIRMAR公司生產的airducer AR30超聲波傳感器的作用距離可達30m,但價格昂貴,準確度方面已控制在測量誤差的0.4%左右,與真值的差距在厘米級的范圍內,若采用互相關或偽隨機法,最高可控制在0.05m內,在提高精確度方面,超聲波測距還有很大的發展潛力和上升空間2。2 總體方案設計2.1超聲波測距的原理 諧振頻率高于20 kHz 的聲波稱為超聲波。超聲波為直線傳播方式, 頻率越高, 反射能力越強, 而繞射能力越弱。利用超聲波的這種特性, 常常用渡越時間檢測法進行距離的測量。其工作原理是:換能器向介質發射超聲波, 聲波遇到目標后必然有反射回波作用在換能器上。若已知介質中聲速為c, 回波到達時刻與發射波時刻的時間差為t, 就可以計算出發射點與反射點的距離s:s= c.t/2 (1)2.2超聲波傳感器的工作原理及結構圖為了研究和利用超聲波, 人們已經設計和制成了許多超聲波發生器。總體上講, 超聲波發生器可以分為兩大類: 即用電氣方式和機械方式產生超聲波。前者包括壓電型、磁致伸縮型和電動型等; 后者有加爾統笛、液哨和氣流旋笛等。它們所產生的超聲波的頻率、功率和聲波特性各不相同, 因而用途也各不相同, 目前較為常用的是壓電式超聲波發生器,壓電式超聲波換能器是利用壓電晶體諧振來工作的。內部結構如圖1所示,它有兩個壓電晶片和一個共振板。當它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時,壓電晶片將會發生共振,并帶動共振板振動產生超聲波,這時它就是超聲波發生器;如沒加電壓,當共振板接受到超聲波時,將壓迫壓電振蕩器作振動,將機械能轉換為電信號,這時它就成為超聲波接受轉換器。超聲波發射轉換器與接受轉換器其結構稍有不同4。共 振 板電極壓電晶片圖 1 超聲波傳感器結構 以下為型號T/R40-10的超聲波傳感器的特性參數(T-發射,R-接收,40-中心頻率單位kHZ,10-外殼直徑單位mm)3單元模塊設計3.1各單元模塊功能介紹及電路設計整體電路的控制核心為單片機AT89S52,超聲波發射和接收電路都對相應信號進行整形及放大,以保證測量結果盡可能精確。超聲波模塊傳感器實現超聲波的發射和接收。整體電路如圖6:包括超聲波發射電路,超聲波接收電路,顯示電路等模塊組成8。鍵盤鍵入估測范圍 發射電路 AT89C51 接收電路 LED顯示電路 圖2.1工作原理超聲波測距器工作原理:打開電源,整個電路通電,單片機執行程序,對系統環境初始化,設置定時器T0工作模式,啟動T0, 調用超聲波發生子程序,等待反射超聲波,計算距離,顯示距離;重復。工作過程中,相關的子程序和中斷程序被執行,相應硬件配合行動,顯示測量結果。3.2 AT89S52型單片機介紹AT89S52 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統可編程 Flash 存儲器。使用Atmel公司高密度非易失性存儲器技術制造,與工業80C51 產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統可編程,亦適于常規編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統 可編程Flash,使得AT89S52為眾多嵌入式控制應用系統提 供高靈活、超有效的解決方案。 AT89S52具有以下標準功能: 8k字節Flash,256字節RAM,32 位I/O 口線,看門狗定時器,2 個數據指針,三個16 位 定時器/計數器,一個6向量2級中斷結構,全雙工串行口, 片內晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態邏輯操作,支持2種軟件可選擇節電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數器、串口、中斷繼續工 作。掉電保護方式下,RAM內容被保存,振蕩器被凍結, 單片機一切工作停止,直到下一個中斷或硬件復位為止5。其引腳圖如圖3所示:P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏 輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。 當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。在這種模式下, P0不具有內部上拉電阻。 在flash編程時,P0口也用來接收指令字節;在程序校驗時,輸出指令字節。程序校驗 時,需要外部上拉電阻。P1 口:P1 口是一個具有內部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅動4 個 TTL 邏輯電平。對P1 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。P2 口:P2 口是一個具有內部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅動 4 個 TTL 邏輯電平。對P2 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。 在訪問外部程序存儲器或用16位地址讀取外部數據存儲器(例如執行MOVX DPTR) 時,P2 口送出高八位地址。在這種應用中,P2 口使用很強的內部上拉發送1。在使用 8位地址(如MOVX RI)訪問外部數據存儲器時,P2口輸出P2鎖存器的內容。 在flash編程和校驗時,P2口也接收高8位地址字節和一些控制信號。P3 口:P3 口是一個具有內部上拉電阻的8 位雙向I/O 口,p3 輸出緩沖器能驅動4 個 TTL 邏輯電平。對P3 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。 P3口亦作為AT89S52特殊功能(第二功能)使用。 第二功能: P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 INTO(外中斷0) P3.3 INT1(外中斷1) P3.4 TO(定時/計數器0) P3.5 T1(定時/計數器1) P3.6 WR(外部數據存儲器寫選通) P3.7 RD(外部數據存儲器讀選通) 圖3.13.3各單元模塊的聯接3.3.1 系統設計 該系統是以STC89C52型單片機為主體而搭建的,連接了外部矩陣鍵盤,1602型液晶,穩壓電源系統。1、單片機單片機的型號是STC89C52,其主要外部I/O連接如下: 表3.1P0.0-P0.71602顯示端口P2.0-P2.21602讀寫控制P3.0-P3.1程序燒寫P3.4口發波端P3.2接收端 圖3.23.3.2、矩陣鍵盤鍵盤為44的矩陣鍵盤,每個按鍵功能和與單片機連接端口如下: 圖3.33.3.3、液晶 圖3.4使用1602型液晶,在不同的狀態下顯示不同的內容: 初始化: 預設距離: 測量中: 測量失敗: 圖3.53.3.4、閃爍燈 圖3.63.3.5、程序燒寫模塊 圖3.73.3.6、蜂鳴器模塊 圖3.83.3.7、穩壓電源采用7805穩壓芯片,增加了電源的穩定性,降低功耗 圖3.93.3.8、測距模塊(1) 工作原理 圖3.10a. 采用IO口TRIG觸發測距,給至少10us的高電平信號;b. 模塊自動發送8個40KHZ的方波,自動檢測是否有信號返回;c. 有信號返回時,通過IO口ECHO輸出一個高電平,高電平持續時間就是超聲波從發射到返回的時間。測試距離=(高電平時間*聲速)/2。(2) 引腳定義VCC供5V電源,TRIG觸發控制,信號輸入,ECHO回響信號輸出,OUT開關量輸出(當報警模塊使用),GND為地線。(3) 工作時序圖 圖3.11以上時序圖表明,只要提供一個10us以上脈沖觸發信號,該模塊內部將發出8個40KHZ周期電平并檢測回波。一旦檢測到回波,信號則輸出回響信號。回響信號的脈沖寬度與所測量的距離成正比。由此通過發射信號到收到的回響信號時間間隔可以計算得到距離。4 軟件設計4.1軟件設計分析 完成了系統的硬件設計之后,接下來的就是系統軟件設計,此設計所需要完成的主要是針對系統功能的實現及數據的處理和應用。由以上所述系統硬件設計和各個電路功能,系統軟件需要實現以下功能:1、信號控制。在系統硬件中,已經完成了發射電路、回撥檢測接收電路的設計。在系統軟件設計中只需完成發射脈沖信號及輸出顯示。2、數據存儲。測距系統中需要得到發射信號與接收回波的時間差,需要讀出計時器的計數值,然后存儲在RAM中,而且每次發射周期的開始,需要對計數器清零,以備后續處理。3、信號處理。RAM中存儲的計數值并不能作為距離值直接顯示出來,有這個時間后,可以通過程序來計算出來。4、距離顯示。經過軟件處理得到的距離值需要十進制的數碼管方式。4.2軟件設計思路 超聲波軟件測距軟件設計主要由主程序,發射子程序,外部中斷接收子程序及顯示子程序12。程序可以由匯編和C來編寫,匯編語言雖然有很高的效率和精確度,但使用起來比較難以掌握,本文主要采用C語言程序來完成各個功能。4.2.1主程序主程序流程圖如圖14所示。主程序首先對系統環境初始化,設置T0工作模式為16位的定時器模式,及計數初值,然后使超聲波發射出一串40kHZ的方波。由于采用12MHZ的晶振,機器周期為1us,當主程序檢測到接收成功的標志位后,將計數器T0的數(即超聲波來回所用的時間)按公式計算可測得被測物體與測距儀之間的距離,測出距離后結果在液晶屏顯示,然后再循環進行下一次距離的測量。當所測距離超出設置的最大距離后報警器會報警。開始系統初始化調用測距子程序計算測量結果調用顯示子程序結束 圖4.14.2.2 超聲波測距子程序超聲波發射子程序在P3.7口產生40kHZ方波脈沖寬度約12us,作為超聲波發射器的輸出信號。一旦接收到超聲波返回信號后(INT0引腳出現低電平),就立即進入中斷程序。進入中斷程序后就立即關閉定時器,T0停止計時,并將接收到的標志位為1,,然后在主函數里調用計算距離公式,在顯示出來。流程圖如圖15:開始發射超聲波 啟動時鐘開始計時N外部0是否有中斷 Y時鐘停止計時計算檢測結果返回 圖4.24.2.3 超聲波延時子程序 在傳感器以脈沖發射方式工作下,電壓很高的發射電脈沖在激勵傳感器的同時也進入接收部分,此時,在短時間內放大器的放大倍數會降低,甚至沒有放大作用,這種現象成為阻塞。不同的檢測儀阻塞成都不一樣。根據阻塞區內的缺陷回波高度對缺陷進行定量會使結果偏低,甚至不能發現障礙物,這是需要注意的。由于發射脈沖自身有一定的寬度,加上放大器有阻塞問題,在靠近發射脈沖一段時間范圍內,所要求發現的缺陷往往不能被發現,這段時間成為盲區。延時子程序的作用就是在超聲波發射的同時延遲一些時間,在打開中斷,為了就是防止在超聲波發射時接收器就收到發射波,這樣就會產生錯誤,產生比較嚴重的誤差,所以要延遲一定的時間。5系統調試5.1硬件調試超聲波測距儀的硬件安裝時應保持兩換能器中心軸線平行兩者之間的距離在3-5cm之內,其余元件沒有特殊要求。若能將超聲波電路用金屬殼屏蔽起來,可以提高抗干擾能力。根據測量范圍要求不同,可適當調整與接收換能器并接的濾波電容的大小,以獲得合適的接收靈敏度和抗干擾能力。 硬件調試中,首先是線路的檢查。焊接完實驗后檢查是否有錯焊、漏焊、虛焊,電解電容是否接反,走線是否正確。檢查無誤后,再次就是上電檢查,在正式上電前,用萬用表測量一下電源與地是否短路,短路的話,要耐心檢查、排除故障。然后進行顯示電路,用同樣的方法對顯示部分進行調試后,給單片機與1602液晶之間進行調試。最后是對發射和接收電路,用函數發生器吧40kHZ的方波直接加到發射電路的輸入端后,用示波器檢測超聲波發射的換能器,檢差是不是有方波信號,再用函數發生器對超聲波接收的換能器直接加40kHZ的方波信號,用示波器對接收電路輸出端進行檢測。通過這些過程,硬件部分的調試就基本完成了,剩下的就只有軟件和硬件的聯調了。5.2硬軟件聯調硬件測試好后,便可將程序編譯下載到單片機試運行。根據實際情況可以修改超聲波發生子程序每次發送的脈沖寬度和兩次測量的間隔時間,以適應不同距離的測量需要。根據所設計的電路參數和程序,測距儀能測的范圍為0.042.10m,測距儀最大誤差不超過1cm。系統調試完后應對測量誤差和重復一致性進行多次實驗分析,不斷優化系統使其達到實際使用的測量要求。圖17為在keil_uVision3里編譯的情況: 圖5.15.3測試結果分析5.3.1測試波形圖18、19中的波形為示波器抓拍的發射和接收電路中所得的波形圖,上方的波形為發射電路中所得的波形圖,下方的波形為接收電路中在cx20106的1引腳處測得波形。圖5.2圖 5.3由上圖可見,接收回路中測得的超聲波信號共有兩個波束,第一個波束為余波信號,即超聲波接收頭在發射頭發射信號(一組40KHz的脈沖)后,馬上就接收到了超聲波信號,并持續一段時間。另一個波束為有效信號,即經過被測物表面反射的回波信號。超聲波測距時,需要測的是開始發射到接收到信號的時間差,由上圖中就可看出,需要檢測的有效信號為反射物反射的回波信號,故要盡量避免檢測到余波信號,這也是超聲波檢測中存在最小測量盲區的主要原因。 5.3.2測試中儀器儀表所用儀器儀表如 表5.1表序號名稱型號品牌數量備注1直尺/1精度:0.1cm2萬用表/13數字示波器GDS-206215.3.3 數據分析基于上面設計的硬件電路和軟件,焊接好電路后,經過調試,對系統進行測試,測試的距離數據如表2。測量單位:cm。 表 5.2 單位:cm實際距離5102021253035405060測量距離592020253134384960誤 差0101011210實際距離708994105115120140180195200測量距離719091109118118140183194200誤 差11343203105.4超聲波測距誤差分析超聲波測距在實際應用也有局限性,其中對超聲波測距的精度要求挺高。一是超聲波在空氣中衰減極大,因為測量距離的不同,造成回波信號的起伏,使回波到達時間的測量產生了較大的誤差;二是超聲波脈沖回波在接收過程中展寬,影響了測距的分辨率,尤其是對近距離造成較大的影響,還有一些因素,諸如環境溫度、風速等也會對測量造成一定地影響,這些因素都限制了超聲波測距在一些對測距精度要求較高的場合的應用,如何解決這些問題,提高超聲波測距的精度,具有較大的現實意義13。本系統最大測距誤差在3cm左右,測距的盲區為5cm。5.4.1溫度誤差由于超聲波也是一種聲波,其聲速c與溫度有關,不同溫度下超聲波在空氣中傳播的速度隨溫度變化的關系: 式中:T為絕對溫度(),為331.4m/s。表3列出了不同溫度下的超聲波聲速。在使用時,若果溫度變化不大,則可以認為聲速是基本不變的,如果測距精度要求很高,則應通過溫度補償的方法加以校正14。 表 5.3 5.4.2串擾問題設計中發射極和接收極距離較近,這樣當發射極發射超聲波后,有部分超聲波經過障礙物反射就直接繞射到接收極上,這部分信號時無用的,會引起系統誤差,而且這種誤差是不可避免的。設計中采用延時來解決這個問題,經過多次程序校正本設計的盲區為5cm13。6 結論6.1總結與體會在設計之前,參考了許多相關的資料。在設計中又參考了網上的相關超聲波測距儀資料,有了基本的思路。但著手設計時,又出現了許多未預料到的問題,例如元件的選擇:在選擇方案時最初選擇了用分立元件搭建,但是在調試過程中遇到了問題,發射端和接收端都正常工作,但是在處理接收端信號時由于CX1206芯片太為敏感,一直不能給出中斷低電平,后改方案為全部用分立元件搭建,其中涉及到前級放大,帶通濾波,后級放大比較,調試也沒能完成,因此暫時放棄了此方案。選擇了用超聲波模塊傳感器,在調試過程中就顯得容易了許多。在顯示問題上,由于要顯示字母和數字,因此選擇了用1602液晶顯示屏。為使單片機正常工作,電源選擇了用7805穩壓芯片,使用9V干電池供電,達到了便攜的效果。在一些設計原理上也遇到了許多問題。如在中斷程序和時鐘編寫上。還有就是在PCB制圖和焊接上出現一些錯誤,經同學以及老師的指證,發現導通的原因,并及時的改正。總之,這次實驗過程中我受益匪淺,培養了我的設計思維,增加了動手操作的能力。更讓我體會到實現電路功能喜悅。 6.2 對設計的進一步完善提出意見或建議本次設計還是有許多的不足之處,比如說本次設計的測距儀測距范圍還不是特別大,只有0-5.4m,測量精度還不是很高,在兩米以內為2厘米誤差,而之后誤差會隨著測量距離的增加而增加,比如在五米時誤差達到10厘米。在設計上我們還可以做成更小更便攜,比如在器件的選擇可以改用貼片,處理器可以用430類似的低功耗單片機,達到節能的目的,還可以加上無線通信功能,只需給設備發條短信,就可以知道測量的數據。只是由于時間以及個人的能力問題我們暫時還難以設計出這樣的電路,者就有待于今后我們在學習中認真領悟、參透。7致謝在這里,我對我們的帶課老師卜云老師表示衷心的感謝。卜老師在這次課程設計過程中對我們的全方位的指導,是我們這次課程設計取得成功的根本保證。卜老師對這次課程設計抱著認真負責的態度,他極力做好安排、指導、答辯等各個環節,只為我們能通過這兩周的課程設計學到更多知識,更快地提高我們的能力。在卜老師的指導下,我學到了很多平時沒有學到的東西,尤其是學到了很多依托我們的專業知識在實際生活中廣泛應用的東西。另外,我還要感謝學校能安排這次課程設計,為我們熟悉我們的專業相關提供了平臺。當然,這次課程設計能取得成功,還少不了我們組幾個同學的通力合作,大家在設計中獻言獻策,不積極發揮著個人的聰明與才智。8參考文獻1孟立凡等.傳感器原理及技術M,北京,國防工藝出版社,2005.2楊永瑞,劉振起.電子測量技術基礎M,西安:西安電子科技大學出版社,2004.3欒桂東等.傳感器及其應用M,西安,西安電子科技大學出版社,1996.4王子芳.傳感器應用技術M,西安,西北工業大學出版社,1996.5張國勛,孫海. 單片機原理及應用(第二版)M,北京:中國電力出版社,2007.6朱愛紅,朱寧文.基于AT89C2051的超聲波測距系統J,信息技術與信息化,2006, No.5.7翁黎朗.超聲波換能器驅動和接收電路的研究J,集美大學學報,白然科學版,1998, No.4: 60-64.8趙廣濤 ,程蔭杭.基于超聲波傳感器的測距系統設計J,微計算機信息, 2006,No.1:129-131.9卜英勇,何永強.一種高精度超聲波測距儀測量精度的研究J,鄭州大學學報(工學版),2006,No.1.10張謙琳.超聲波檢測原理和方法M,北京:中國科技大學出版社,1993.11翟國富,劉茂愷.一種實時高精度的機器人用超聲波測距處理方法J,應用聲學,1996,No.1.12譚浩強.程序設計(第二版)M,北京:清華大學出版社,1999.13張紅蓮.基于單片機的超聲波測距系統的設計J. Plc&TA.2008(09):89-91.14Shirley PA. An introduction to ultrasonic sensingJ.sensors.1989(11):15-21.15H.Elmer, H.Schweinzer,G.Magerl. High resolution Supersonic distances measurement for long distancesJ.Technisches Messen .2003,70(04):18-22. 附錄一、相關設計程序/* *基于stc89c52的超聲波測距儀* *編寫日期:2012年4月05日* *改寫日期:2012年5月30日* */#include#define uint unsigned int#define uchar unsigned charsbit RS=P20; /寄存器選擇位,將RS位定義為P1.0引腳sbit RW=P21; /讀寫選擇位,將RW位定義為P1.1引腳sbit E=P22; /使能信號位,將E位定義為P1.2引腳sbit send=P34; /發波位sbit LED1=P35;sbit LED2=P23;sbit beep=P36;uchar flag=0,counter=0,mov=0;uchar code num=0123456789;uchar code table1=distance:;uchar code table2=SET:;uchar code table3=cm;uchar code table4=Test Fail !;uchar code table5=Welcom to you!;/*函數功能:延時若干微秒*/void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=600;y0;y-); void delaynus(uint z) uint x,y;for(y=5;y0;y-)for(x=z;x0;x-);void delay_key()uint x,y;for(x=100;x0;x-)for(y=180;y0;y-);/*函數功能:寫指令*/void write_com(uchar com)RS=0;RW=0;E=0;P0=com;delay(1);E=1;delay(1);E=0;/*函數功能:寫數據*/void write_data(uchar da)RS=1;RW=0;E=0;P0=da;delay(1);E=1;delay(1);E=0;/從1跳變到0,液晶開始執行命令/*函數功能: 4*4 鍵盤掃描程序。進行鍵盤掃描,P1口*/uchar keyscan(void) uchar temp,i,key_val;while(1) P1=0x0f;if(P1!=0x0f)delay_key();if(P1!=0x0f)P1=0xef; /要檢測列輸入狀態,低四位置1for(i=0;i4;i+) temp=P1&0x0f;switch(temp)case 0x0e:key_val=0;break;case 0x0d:key_val=1;break; case 0x0b:key_val=2;break;case 0x07:key_val=3;break; if(temp!=0x0f) return (i*4+key_val); P1=P11|0x01;/*函數功能:初始化LCD*/void initLCD()write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);/清屏write_com(0x80); /歸位/*函數功能:顯示預設距離*/void display_mun(uchar temp)uchar code table= 0x4a,0x4b,0x4c, ;write_com(0x80+tablemov+);write_data(numtemp);if(mov=3)mov=0; /*函數功能:顯示距離*/void display_distance(uint temp)uint bai,shi,ge; bai=temp/100;shi=temp%100/10;ge=temp%10;write_com(0x80+0x0a);write_data(numbai);write_com(0x80+0x0b);write_data(numshi);write_com(0x80+0x0c);write_data(numge);/*函數功能:顯示字符串*/void display_string(uchar adr , uchar a)uchar *p=a;delay(4);write_com(0x80+adr);while(*p!=0)write_data(*p);p+;void init_t0(void)TMOD=0x12;TH0=256-12.5;TL0=2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論