基于單片機的超聲波測距儀的畢業設計說明_第1頁
基于單片機的超聲波測距儀的畢業設計說明_第2頁
基于單片機的超聲波測距儀的畢業設計說明_第3頁
基于單片機的超聲波測距儀的畢業設計說明_第4頁
基于單片機的超聲波測距儀的畢業設計說明_第5頁
已閱讀5頁,還剩28頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 PAGE32 / NUMPAGES33目 錄 TOC o 1-2 h z u HYPERLINK l _Toc294514908 1.引言 PAGEREF _Toc294514908 h 1 HYPERLINK l _Toc294514909 1.1 設計的應用前景 PAGEREF _Toc294514909 h 1 HYPERLINK l _Toc294514910 1.2 單片機應用系統概述 PAGEREF _Toc294514910 h 1 HYPERLINK l _Toc294514911 1.3 超聲波測距系統概述 PAGEREF _Toc294514911 h 2 HYPERLI

2、NK l _Toc294514912 1.4 本設計任務主要要求 PAGEREF _Toc294514912 h 3 HYPERLINK l _Toc294514913 2.超聲波測距原理 PAGEREF _Toc294514913 h 3 HYPERLINK l _Toc294514914 2.1 超聲波的基本理論 PAGEREF _Toc294514914 h 3 HYPERLINK l _Toc294514915 2.2 超聲波測距系統原理 PAGEREF _Toc294514915 h 4 HYPERLINK l _Toc294514916 3.系統主要硬件電路設計 PAGEREF _

3、Toc294514916 h 5 HYPERLINK l _Toc294514917 31 超聲波測距系統電路總體設計方案 PAGEREF _Toc294514917 h 5 HYPERLINK l _Toc294514918 3.2 超聲波發射和接收電路的設計 PAGEREF _Toc294514918 h 6 HYPERLINK l _Toc294514919 3.3 單片機主機系統電路 PAGEREF _Toc294514919 h 8 HYPERLINK l _Toc294514920 4.系統軟件設計 PAGEREF _Toc294514920 h 12 HYPERLINK l _T

4、oc294514921 4.1 系統程序的結構 PAGEREF _Toc294514921 h 12 HYPERLINK l _Toc294514922 4.2 系統主程序 PAGEREF _Toc294514922 h 13 HYPERLINK l _Toc294514923 4.3 40KHz超聲波發送子程序 PAGEREF _Toc294514923 h 14 HYPERLINK l _Toc294514924 4.4 DS18B20溫度采集程序 PAGEREF _Toc294514924 h 15 HYPERLINK l _Toc294514925 4.5 距離計算子程序 PAGERE

5、F _Toc294514925 h 15 HYPERLINK l _Toc294514926 4.6 數據轉換子程序 PAGEREF _Toc294514926 h 15 HYPERLINK l _Toc294514927 4.7 LCD顯示子程序 PAGEREF _Toc294514927 h 16 HYPERLINK l _Toc294514928 4.8 基于Proteus的軟件仿真 PAGEREF _Toc294514928 h 17 HYPERLINK l _Toc294514929 5.后續研究工作 PAGEREF _Toc294514929 h 18 HYPERLINK l _T

6、oc294514930 5.1 超聲波發射波形的改進 PAGEREF _Toc294514930 h 18 HYPERLINK l _Toc294514931 5.2 樣機的制作 PAGEREF _Toc294514931 h 18 HYPERLINK l _Toc294514932 5.3 進一步研究系統的抗干擾性能 PAGEREF _Toc294514932 h 18 HYPERLINK l _Toc294514933 致 PAGEREF _Toc294514933 h 19 HYPERLINK l _Toc294514934 參考文獻 PAGEREF _Toc294514934 h 19

7、 HYPERLINK l _Toc294514935 附錄 PAGEREF _Toc294514935 h 21基于單片機的超聲波測距儀的設計摘要利用超聲波測距原理,出于低成本、高精度的目的,提出了一種基于AT89S52的超聲波倒車雷達系統的設計方案。硬件部分采用AT89S52單片機作為控制器,主要有超聲波發射電路、超聲波接收電路、溫度檢測電路、LCD顯示電路和報警電路。在分析超聲波測距原理的基礎上,給出了實現超聲波倒車雷達系統的硬件設計電路圖和軟件設計流程圖。該系統測量精度為1cm,測量圍為0.50-4.00m,完全能夠滿足汽車倒車系統的設計要求。關鍵字 單片機 超聲波 溫度補償 測距 LC

8、D顯示 角度補償1.引言1.1 設計的應用前景目前國一般使用專用集成電路設計超聲波測距儀,但是專用集成電路的成本很高,并且顯示距離也比較困難,操作使用也不是很方便。而本設計研究的測距儀成本低廉,性能優良,市場前景極為廣闊。在整個倒車過程中自動測量車尾到最近障礙物的距離,并用數字顯示出來,在倒車到極限距離時會發出警告聲,提醒駕駛員注意剎車。本設計可望成為駕駛員特別是貨車以與公共汽車駕駛員的好幫手,可有效的減少和避免那些視野不良的大型汽車,如集裝箱車、載貨車、公共汽車等倒車交通事故。1.2 單片機應用系統概述單片機的出現與發展使計算機技術從通用型數值計算領域進入到智能化的控制領域。從此,計算機技術

9、在兩個重要領域通用計算機領域和嵌入式計算機領域都得到了極其重要的發展,并正在深深地改變著我們的社會。單片機應用系統的設計包括單片機基本擴展、外圍電路設計和程序設計、單片機應用系統開發環境、系統可靠性設計、電磁兼容性設計等容。通常開發一個單片機系統的步驟如下:圖 1 技術路線1.3 超聲波測距系統概述隨著社會的發展,人們對距離或長度測量的要求越來越高。目前測量距離可以采用波在介質中的傳播速度和時間關系進行測量。常用的技術主要有激光測距、微波雷達測距和超聲波測距三種。激光和雷達測距儀造價偏高,不利于廣泛的普與應用,在某些應用領域有其局限性。超聲波測距由于其能進行非接觸測量和相對較高的精度,越來越被

10、人們所重視。展望未來,超聲波測距儀作為一種新型的非常有用的工具在各方面都將有很大的發展空間,它將朝著更高定位、更高精度的方向發展,以滿足日益發展的社會需求。由于超聲波具有指向性好、能量損耗低、傳播距離較遠、不易受外界環境影響和對被測目標無損害等特點,利用超聲波測量距離就可以解決傳統測量方法中遇到的問題。利用超聲波檢測往往比較迅速、方便、計算簡單、易于做到實時控制,并且在測量精度方面能達到工業實用的要求,因此超聲波測量距離技術在工業控制、勘探測量、機器人定位和安全防等領域得到了廣泛的應用。超聲波測距電路可以由傳統的模擬或者數字電路構建,但是基于這些傳統電路構建的系統往往可靠性差,調試困難,可擴展

11、性差,所以基于單片機的超聲波測距系統被廣泛的應用。通過簡單的外圍電路發生和接收超聲波,單片機通過采樣獲取到超聲波的傳播時間,用軟件來計算出距離,并且可以采集環境溫度進行測距補償,其測量電路小巧,精度高,反映速度快,可靠性好。超聲波測距適用于高精度的中長距離測量,超聲波在標準空氣中的傳播速度為331.45m/s,由單片機計時,單片機使用12.0MHz晶振,所以此系統的測量精度在理論上可以達到毫米級。本文設計的倒車雷達系統就是利用超聲波的上述特性做到對倒車距離實時和高精度的檢測,同時,此系統成本低、設計簡單、精度和穩定性好,有望得到廣泛的應用,從而減少交通事故的發生。1.4 本設計任務主要要求(1

12、)設計一個以單片機為核心的超聲波測距儀,可以應用于汽車倒車、工業現場的位置監控;(2)測量圍在0.504.00m,測量精度1cm;(3)測量時與被測物無直接接觸,能夠清晰穩定地顯示測量結果。2.超聲波測距原理2.1 超聲波的基本理論超聲波技術是一門以物理、電子、機械、以與材料科學為基礎的、各行各業都可使用的通用技術之一。超聲波技術是通過超聲波的產生、傳播以與接收的物理過程完成的。該技術在國民經濟中,對提高產品質量,保障生產安全和設備安全運作,降低生產成本,提高生產效率特別具有潛在能力。因此,我國對超聲波的研究特別活躍。21.1 超聲波的三種形式超聲波在介質中可以產生三種形式的振蕩波:橫波,質點

13、振動方向垂直于傳播方向的波;縱波,質點振動方向與傳播方向一致的波;表面波,質點振動介于縱波和橫波之間,沿表面傳播的波。橫波只能在固體中傳播,縱波能在固體液體中和氣體中傳播,表面波隨深度的增加其衰減很快。為了測量各種狀態下的物理量多采用縱波形式的超聲波。2.1.2 超聲波的物理性質(1) 超聲波的反射和折射當超聲波傳播到兩種特性阻抗不同介質的平面分界面上時,一部分超聲波被反射;另一部分透射過界面,在相鄰介質部繼續傳播。這樣的兩種情況稱之為超聲波的反射和折射。(2)超聲波的衰減超聲波在一種介質中傳播,其聲壓和聲強按指數函數規律衰減。(3)超聲波的干涉如果在一種介質中傳播幾個聲波,于是產生波的干涉現

14、象。由于超聲波的干涉,在輻射器的周圍形成一個包括最大最小的揚聲場。2.1.3 超聲波對聲場產生的作用(1) 機械作用超聲波傳播過程中,會引起介質質點交替的壓縮與伸,構成了壓力的變化,這種壓力的變化將引起機械效應。超聲波引起質點的運動,雖然位移和速度不大,但是與超聲波振動的頻率的平方成正比的質點的加速度卻很大,有時足以達到破壞介質的程度。(2) 空化作用在流體動力學指出,存在于液體中的微氣泡在聲場的作用下振動,當聲壓達到一定的值時,氣泡將迅速膨脹,然后突然閉合,在氣泡閉合時產生沖擊波,這種膨脹、閉合、振動等一系列動力學過程稱為空化。(3) 熱學作用如果超聲波作用于介質時被介質所吸收,實際上也就是

15、有能量吸收,同時,由于超聲波的振動,使介質產生強烈的高頻振蕩介質相互摩擦產生熱熱量,這種能量使介質溫度升高。 2.2 超聲波測距系統原理2.2.1 超聲波傳感器總體上講,超聲波發生器可以分為兩大類:一類是用電氣方式產生超聲波,一類是用機械方式產生超聲波。電氣方式包括壓電型、磁致伸縮型和電動型等;機械方式有加爾統笛、液哨和氣流旋笛等。他們所產生的超聲波的頻率、功率和聲波特性各不一樣,因而用途也各不一樣。目前較為常用的是壓電式超聲波發生器。壓電式超聲波發生器實際上是利用壓電晶體的諧振來工作的。它有兩個壓電晶片和一個共振板。當它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時,壓電晶片將會發生

16、共振,并帶動共振板振動,便產生超聲波。反之,如果兩極間未外加電壓,當共振板接收到超聲波時,將壓迫壓電晶片作振動,將機械能轉換為電信號,這時它就成為超聲波接收器了。超聲波傳感器結構如下:圖 2超聲波傳感器外部結構 圖 3 超聲波傳感器部結構 2.2.2 超聲波測距的方案超聲波測距方法主要有三種:1)相位檢測法:精度高,但檢測圍有限;2)聲波幅值檢測法:易受反射波的影響;3)渡越時間法:工作方式簡單,直觀,在硬件控制和軟件設計上都容易實現,其原理為:檢測從發射傳感器發射的超聲波經氣體介質傳播到接收傳感器的時間t,這個時間就是渡越時間,然后求出距離l。設l為測量距離,t為往返時間差,超聲波的傳播速度

17、為c,則有l=ct/2。綜合以上分析,本設計將采用渡越時間法。圖 4 測距原理由于超聲波也是一種聲波,其聲速c與空氣溫度有關,一般來說,溫度每升高1攝氏度,聲速增加0.6米秒。表1列出了幾種溫度下的聲速:表1 聲速與溫度的關系表溫度(攝氏度)3020100102030100聲速(米秒)313319325323338344349386在使用時,如果溫度變化不大,則可認為聲速c是基本不變的,計算時取c為340m/s。如果測距精度要求很高,則可通過改變硬件電路增加溫度補償電路的方法或者在硬件電路基本不變的情況下通過軟件改進算法的方法來加以校正。在本系統中利用AT89S52中的定時器測量超聲波傳播時間

18、,利用DS18B20測量環境溫度,從而提高測距精度。空氣中聲速與溫度的關系可表示為:聲速確定后,只要測得超聲波往返的時間,即可求得距離:l=1/2(331.4+0.6T)t。 (系統中應用該式進行溫度補償)如果為了進一步提高測量精度,本設計中將根據需要利用軟件方式增加角度補償的設計:。 (系統中應用該式進行角度補償)3.系統主要硬件電路設計31 超聲波測距系統電路總體設計方案本系統硬件部分由AT89S52控制器、超聲波發射電路與接收電路、溫度測量電路、聲音報警電路和LCD顯示電路組成。汽車行進時LCD顯示環境溫度,當倒車時,發射和接收電路工作,經過AT89S52數據處理將距離也顯示到LCD上,

19、如果距離小于設定值時,報警電路會鳴叫,提醒司機注意車距。超聲波測距器的系統框圖如下圖所示:圖5 系統設計總框圖由單片機AT89S52編程產生10us以上的高電平,由指定引腳輸出,就可以在指定接收口等待高電平輸出。一旦有高電平輸出,即在模塊中經過放大電路,驅動超聲波發射探頭發射超聲波。發射出去的超聲波經障礙物反射回來后,由超聲波接收頭接收到信號,通過接收電路的處理,指定接收口即變為低電平,讀取單片機中定時器的值。單片機利用聲波的傳播速度和發射脈沖到接收反射脈沖的時間間隔計算出障礙物的距離,并由單片機控制顯示出來。由時序圖可以看出,超聲波測距模塊的發射端在T0時刻發射方波,同時啟動定時器開始計時,

20、當收到回波后,產生一負跳變到單片機中斷口,單片機響應中斷程序,定時器停止計數。計算時間差,即可得到超聲波在媒介中傳播的時間t,由此便可計算出距離。圖6 時序圖3.2 超聲波發射和接收電路的設計分立元件構成的發射和接收電路容易受到外界的干擾,體積和功耗也比較大。而集成電路構成的發射和接收電路具有調試簡單,可靠性好,抗干擾能力強,體積小,功耗低的優點,所以優先采用集成電路來設計收發電路。321 超聲波發射電路超聲波發射電路包括超聲波產生電路和超聲波發射控制電路兩部分,可采用軟件發生法和硬件方法產生超聲波。在超聲波的發射電路的設計中,我們采用電路結構簡單的集成電路構成發射電路: 圖7 由反相器構成的

21、超聲波發射電路圖7是由反相器74HC04構成的發射電路,用反相器74HC04構成的電路簡單,調試容易,易通過軟件控制。單片機輸出的方波經過反相器接到發射器T1的兩極,用圖中的推挽形式將方波信號加到發射器T1兩端,可以提高發射器T1的發射強度。圖中把兩個非門的輸出接到一起的目的是為了提高其吸入電流,電路驅動能力提高。74HC04是一個高速CMOS六反相器,具有對稱的傳輸延遲和轉換時間,而相對于LSTTL邏輯IC,它的功耗減少很多。另外,上拉電阻R1、R2一方面可以提高反相器74HC04輸出高電平的驅動能力,另一方面可以增加發射器T1的阻尼效果,縮短其自由振蕩的時間。3.2.2 超聲波接收電路圖8

22、是由CX20106構成的接收電路,在實物的制作過程中,我們將用CX20106A這一型號代替。CX20106A是索尼公司生產的彩電專用紅外遙控接收器,是CX20106的改進型,也可用于超聲波測試,有較強的抗干擾性和靈敏度。CX20106A采用單列8腳直插式,超小型封裝,+5V供電。管腳1是超聲波信號輸入端,其輸入阻抗約為40K;管腳2的R1、C4決定接收器R的總增益,增大電阻R1或減小電容C4,將使放大倍數下降,負反饋量增大,電容C4的改變會影響到頻率特性,實際使用中一般不改動;管腳3與GND之間連接檢波電容C2,考慮到檢波輸出的脈沖寬度變動大,推薦參數為3.3uF;管腳5上的電阻R2用以設置帶

23、通濾波器的中心頻率,阻值越大,中心頻率越低,取R2=200K時,中心頻率約為42KHZ;管腳6與GND之間接入一個積分電容C3,電容值越大,探測距離越短;管腳7是遙控命令輸出端,它是集電極開路的輸出方式,因此該引腳必須接上一個上拉電阻到電源端,沒接收信號時,該端輸出為高電平,有信號時則會下降;管腳8接+5V電源。 圖8 CX20106構成的接收電路綜合以上的分析,在由集成電路構成的接收和發射電路中,發射電路我們選用由反相器構成的電路,接收電路采用由紅外接收檢波芯片CX20106A構成,主要是考慮到系統的調試簡單,成本低以與可靠性好。3.3 單片機主機系統電路3.3.1 復位電路單片機在RESE

24、T端加一個大于20ms正脈沖即可實現復位,上電復位和按鈕組合的復位電路如圖9。在系統上電的瞬間,RST與電源電壓同電位,隨著電容的電壓逐漸上升,RST電位下降,于是在RST形成一個正脈沖。只要該脈沖足夠寬就可以實現復位。當人按下按鈕SW1時,使電容C1通過R1迅速放電,待SW1彈起后,C1再次充電,實現手動復位。圖9 復位電路3.3.2 時鐘電路 當使用單片機的部時鐘電路時,單片機的XTAL1和XTAL2用來接石英晶體和微調電容,如圖10所示。圖10 時鐘電路3.3.3 按鍵電路我們通過P1.0來啟動測量,程序過查詢P1.0的電平來檢測是否按鍵被按下,在軟件過軟件延時來消除按鍵的機械抖動。 圖

25、11 按鍵電路3.3.4 蜂鳴器電路本次設計通過一只蜂鳴器來提示用戶按鍵按下了,現在單片機開始了測距。蜂鳴器是一塊壓電晶片,在其兩端加上3-5V的直流電壓,就能產生3KHz的蜂鳴聲,電路如圖12。通過單片機軟件產生3KHz的信號從P3.7口送到三極管9013的基極,控制著電壓加到蜂鳴器上,驅動蜂鳴器發出聲音。圖12 蜂鳴器電路3.3.5 溫度測量電路由于超聲波的傳播速度c會受溫度、濕度、壓強等的影響,其中溫度的影響尤為嚴重。因此在測量精度要求高的場合,應通過溫度補償對超聲波的傳播速度進行校正,以減小誤差。圖13 溫度檢測電路本系統采用DALLAS公司的DS18B20數字式溫度傳感器進行溫度測量

26、,它所測量的溫度值用9位二進制數直接表示,這些值通過DS18B20的數據總線直接輸入CPU,無需A/D轉換,而且讀寫指令、溫度轉換指令都是通過數據總線傳入DS18B20,無需外部電源。DS18B20數字溫度傳感器與AD590、LM35等溫度傳感器相比,具有相當的測溫圍和精度,溫度測量精確、不受外界干擾等優點。3.3.6 LCD顯示電路 本設計采用LCD液晶顯示屏來顯示距離和溫度,具有體積小、功耗低、界面美觀大方等優點,這里使用YB1602液晶屏,它具有16個引腳,其正面左起為第一腳,如圖14所示: 圖14 LCD1602實物第一腳VSS:接地。第二腳VDD:+5V電源。第三腳VEE:對比度調整

27、端。使用時通過接一個10K的電阻來調節。第四腳RS:寄存器選擇信號線,H為數據選擇,L為指令選擇。第五腳RW:讀寫信號線。第六腳E :使能端,當E由高電平跳變為低電平時執行命令。第7-14腳:8位數據線D0-D7。第十五腳BLA:背光電源正極輸入端。第十六腳BLK:背光電源負極輸入端。 圖15 LCD顯示電路3.3.7 電源電路 電源電路采用普通可調電源供電,該電源不含穩壓器,所以在設計中需要用穩壓器進行穩壓。我們選用LM7805來獲得穩定的+5V直流電壓。輸入電壓(21V)經過7805的穩壓輸出+5V的電壓,圖中的D2為保護7805,防止電源極性接反損壞7805,濾波電容采用100uF電解和

28、104瓷片電容并聯使用,電磁兼容的實踐證明,兩個差100倍的電容并聯使用效果很好。本設計電源電路如下:圖16 電源電路4.系統軟件設計4.1 系統程序的結構(1)DS18B20溫度傳感器接口模塊,分為初始化程序、寫入命令以與讀取子程序等部分;(2)基于YB1602的顯示模塊,分為初始化子程序、寫入子程序以與顯示子程序;(3)溫度補償與距離計算模塊,分為超聲波發送控制程序、接收處理程序、溫度補償子程序等。本次設計使用C語言編寫程序,C語言相比匯編有許多的優勢,編譯器使用KeilVersion2進行程序編譯,Keil功能強大使用方便。在編譯完成后,通過Proteus軟件進行仿真,對設計進行驗證和優

29、化。如圖17所示描述了各個模塊的關系: 圖17 系統軟件方框圖4.2 系統主程序本設計主程序的思想如下:(1)溫度為兩位顯示,距離為四位顯示單位為mm;(2)溫度每隔900ms采樣一次,DS18B20在12位精度下轉換周期為750ms ,故900ms滿足該速度要求;超聲波每隔60ms發送一次。(3)按鍵SW2為測量啟動鍵;(4)系統采用AT89S52的時鐘:12MHz,每記一次數為1us; 圖18 主程序流程圖4.3 40KHz超聲波發送子程序超聲波每過60ms發送一次,通過定時器T0中斷發送超聲波,超聲波發送后延時一段時間后返回,防止余波被接收頭接收誤判,流程圖如下: 圖19 超聲波發送子程

30、序流程圖4.4 DS18B20溫度采集程序DS18B20的工作流程是,初始化ROM操作指令存儲器操作指令數據傳輸。其工作時序包括:初始化時序、寫時序和讀時序。 圖20 溫度采集程序流程圖4.5 距離計算子程序距離計算中,實行了溫度補償和角度補償。流程圖如下: 圖21 距離計算子程序流程圖4.6 數據轉換子程序經過程序求出的數據原碼無法直接用于顯示,必須轉換為LCD所接受的BCD碼的形式。 圖22 數據轉換子程序流程圖 4.7 LCD顯示子程序LCD液晶顯示程序分為液晶初始化、讀忙、寫指令和寫數據操作,液晶顯示器是一塊慢器件,所以在執行每條指令之前必須確定模塊忙標志為低電平(不忙),否側此指令無

31、效。液晶顯示子程序流程圖如下: 圖23 LCD顯示子程序在程序中,我們將測量的各種結果存放到一個數組num中,然后通過這個數組的數據到預先存放字符的數組中去按num中的數據的順序去讀取出預存在numcode中的字符然后送到LCD中顯示。4.8 基于Proteus的軟件仿真Proteus是一款功能強大的軟件,其ISIS用來做仿真十分方便,尤其是單片機系統的仿真,我們在本設計的開發初期,用Proteus來仿真我們的設計,以便驗證我們的設計,對設計的正確性做出分析。 圖24 Proteus仿真圖用Proteus繪制好電路圖后導入程序文件(用Keil編譯過后的HEX文件),然后就可以執行仿真,我們在仿

32、真的時候P2.6檢測到高電平即為返回信號獲得,由于在軟件中沒有CX20106模型,所以P2.6懸空,則程序開始就認為返回信號獲得了,所以顯示了一個最小測量值113mm,而溫度為28C,通過調節DS18B20模型的溫度可以測試顯示溫度是否正確,從圖中可以看出顯示的溫度就是DS18B20的預設溫度值。下面我們再來看看P2.5口是否有發射信號的產生。由于是頻率比較高的信號(40KHz),所以不能通過二極管來觀察到,所以在仿真的時候P2.5一直顯示的是低電平狀態,這時必須用示波器來查看,如圖:圖25 波形從上圖看出,P2.5口輸出了信號,由于軟件是間隔60ms發送一次40KHZ的信號,所以可以看到這樣

33、的尖脈沖信號產生。軟件仿真的成功說明我們的設計達到了初步的要求。5.后續研究工作由于時間不是很充裕,對系統的設計還存在一些不足,下一步還有以下工作要繼續進行:5.1 超聲波發射波形的改進 因為該設計加在發射器上的電壓波形采用方波,方波含有豐富的高次諧波,不利于精確鑒相。這將增加發射波與回波的諧波失真。所以在接下來的工作中,可能會考慮用正弦波代替方波來優化該設計。5.2 樣機的制作 由于時間關系,樣機暫時無法做出,但我們已經和同學一起聯系商家,購買了一定的材料。5.3 進一步研究系統的抗干擾性能 硬件抗干擾技術是系統設計時首選的抗干擾措施。常見的硬件抗干擾措施有元件的合理布局、接地的抗干擾處理、

34、隔離技術等。在制作樣機的過程中,將會采用多種抗干擾技術對系統進行優化,減小測量誤差。致本次畢業設計得以順利完成,首先要感純利老師的指導和大力支持。在這期間,我和老師保持著經常性的面對面或通過形式的交流。純利老師淵博的專業知識、嚴謹的治學態度、精益求精的工作作風、平易近人的人格魅力對我影響深遠。在畢業設計中,純利老師對設計的思路和結構進行了指導,同時也對相當一部分專業知識方面的幫助。同時,也要感大學幾年授我們以漁的老師們,是你們的諄諄教誨讓我們獲得了扎實的知識,在這里表示衷心的感!參考文獻1 維成,加國.單片機原理與應用與C51程序設計.:清華大學,20062 蔡菲娜.單片微型計算機原理和應用.

35、:大學,19953 建忠.單片機原理與應用.:電子科技大學,20024 齊等.單片機應用系統設計技術基于C語言編程.:電子工業,20045 吳延海.微型計算機接口技術.:大學,19976 麗霞.單片機在超聲波測距中的應用J.電子技術,20027 道連,寧延一,袁世良.用AT89C2051設計超聲波測距儀J.國外電子元器件,20008 鵬,有志.一種新型超生測距系統J.:大學學報,2003,33(1)9 學海.PIC單片機實用教程基礎篇(第1版)M.航天航空大學.:2002年2月10 賈伯年. 傳感器技術. : 東南大學,2000 11 大新,胡學同,周杏鵬.利用FPGA改進超聲波測距模塊設計J

36、.傳感器技術,2005,24(2): 575912 閻石. 數字電子技術基礎. : 高等教育, 1998 13 樓然苗. 51系列單片機設計實例. : 航空航天大學,1999 14 譚浩強.C程序設計(第三版).:清華大學, 200515 朱偉芳.一種便攜式長度測量系統的硬件設計J.電器,2005,5:14-1516 Tom R. Watt .Cooling our tomorrows economically ,ASHRAE Journal.17 Army Kayla. Improving efficiency in existing chillers with optimization t

37、echnology ,ASHRAE Journal.18 D.Pearl mutter , Eerily ,Y.Etzion ,I.A.Meir,H.Di ,Refine the use of the evaporation in an experimental down-draft cool tower ,Energys .199519 rtori S,ZHANG G X. Geometric Error Measurement and Compensation of Machines.Annals of the CIRP. 1995:599-609Ultrasonic Distance T

38、esting Systems Design Based onSingle-chip MicrocomputerAbstract Because of modern production requirements, it was discovered that the need to achieve the production of non-contact distance measurement, and ultrasonic distance measurement is a good performance of the ranging approach is mainly used i

39、n reversing radar sites as well as some industrial field, this paper designed a to AT89S52 MCU as the core of the low-cost, high-precision, LCD display of ultrasonic range finder, and use some commonly used devices such as: 74HC04, etc.System consists of microcontroller, ultrasonic transmitter and u

40、ltrasonic receiver amplifier circuit and display circuit. Chip AT89S52 control calculation by the ultrasonic transmission from transmit to receive time and hence the distance to be under test. The system has easy to detect, the software fully functional, reliable, high accuracy advantages.This paper

41、 discusses the successful development of microcomputer technology, the basic principles of ultrasonic range finder, measurement method of calculating implementations. Use of software calibration, improved accuracy and machine reliability. The actual use of that greatly improves safety, reliability a

42、nd accuracy. Keywords MCUdistance meterultrasonicsensormicrocontrollerLCD display附錄附錄一 系統原理圖附錄二 系統PCB板圖附錄三 源程序#include #include #include #define uchar unsigned char #define uint unsigned int uchar code dispBUF33=Temperature: Distance: mm ; uchar numcode10=0,1,2,3,4,5,6,7,8,9; uint num29=0; uchar jsh

43、,jsl; /計數器的高低位 uchar count=0; /10秒計次數 uint distance; /距離 uint temp; /溫度變量 uchar bdata flag; /DS18B20存在標準 sbit RS=P20; /LCD RS sbit RW=P21; /LCD RW sbit E =P22; /LCD E sbit DQ=P27; /DS18B20數字端口 sbit Busy = P07; /LCD 忙 void Delay(uint time); void delay1ms(uint ms); void delay(); void delay15(uchar us)

44、; void BUMA(void); void B20_WDAT(uchar dat); uchar B20_RDAT(void); void Init_18B20(void); /初始化18B20 void Write_Comm(uchar); /寫入LCD命令 void Write_Data(uchar); /寫入LCD數據 void Init_LCD(void); sbit sta_flag =flag0; /10MS到標準位,flag即通用標志位,當sta_flag=1時,表示到了10ms sbit fuhao =flag1; /溫度的符號位 sbit START =P10; /啟動測

45、距 sbit CNT =P25; /發射超聲波 sbit CSBIN =P26; /返回信號 sbit BUZZER =P37; /*定時器1溢出*/ void timer1(void)interrupt 2 using 1TR1=0;/關閉定時器/計數器1 /*定時器0溢出中斷函數,每60MS溢出*/ void timer0(void)interrupt 1 using 0/定時器0 TH0=0 x15; TL0=0 xA0;/定時器0設定初值 TH1=0; TL1=0;/計數器1清零 sta_flag=1; count+; _nop_(); _nop_(); _nop_(); _nop_(

46、); CNT=1; /先延時,后開始發送40KHz的超聲波 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); /40KHZ的倒數就是25us,12個_nop_();就是24us CNT=0;/保持一段時間高電平 _nop_(); _nop_(); _nop_(); _nop_(); TR1=1;/延時,避免直達信號干擾,啟動定時器/計數器1 delay15(50); /延時避開直達信號 /*系統初始化*/ void SYS_INI

47、T() uchar i; for(i=0;i29;i+) /顯示清零 numi=0; TMOD=0 x11; /工作方式寄存器TMOD,設置定時器/計數器0和1均為16位定時/計數器 TH0 =0 x15; TL0 =0 xA0; /設置定時器/計數器0的初值,60ms溢出 P0 =0; CNT=0; /P25口,發射發射超聲波 CSBIN=1; /P26口,接收信號 EA =1; /開總中斷 /*距離計算*/ void JULIJS() /使用全局變量,可以定義為空 float c,d,s; uint t; if(temp0 x8000) c=331.4+0.61*temp*0.0625;

48、else/溫度為負 c=331.4-0.61*temp*0.0625; t=jsh*256+jsl-120; /計算計數值 d=(c*t*0.001)/2; d*=d; s=d-7.98; distance=sqrt(s); /修正后的值,數據通過全局變量distance傳輸 /*轉換成2進制*/ void HEXtoBCD() float tp; unsigned long int tmp; fuhao=0;/溫度符號位 if(temp0 x8000) tp=temp*0.0625; else /溫度為負,則求補碼得到原碼 BUMA(); tp=temp*0.0625; fuhao=1; t

49、p*=10; tmp=tp; num12=tmp/100;/數據轉換后放到顯示數組里面 if(fuhao) num12=num12|0 x80; /最高位加上符號位 num13=tmp/10-(tmp/100)*10; tmp=distance; num25=tmp/1000; tmp%=1000; num26=tmp/100; tmp%=100; num27=tmp/10; tmp%=10; num28=tmp/1; /*溫度轉換函數*/ void TESTTEMP() Init_18B20(); /初始化18B20 if(flag) B20_WDAT(0 xCC); / 跳過讀序號列號的操

50、作,忽略ROM匹配 B20_WDAT(0 x44); / 發送溫度轉化命令 /*讀取溫度函數*/ uint GET_WD(void) uint a = 0, b = 0, t = 0;Init_18B20();/初始化18B20B20_WDAT(0 xCC); /跳過讀序號列號的操作B20_WDAT(0 xBE); /發送讀溫度命令a = B20_RDAT(); b = B20_RDAT(); /讀取一個字節(讀出高8位和低8位)t = b;t 0; i-) DQ = 0; / 拉低數據線,開始讀數據 dat = 1; DQ = 1; / 拉高數據線,停止讀數據 if(DQ) dat |= 0

51、 x80; /拼裝處理 Delay(15); return (dat); /注意讀取的為補碼 /*寫數據*/ void B20_WDAT(uchar dat) uchar i = 0; for (i = 8; i 0; i-) DQ = 0;/拉低數據線至少15us以作為起始信號 DQ = dat&0 x01;/取出低位的一位數據 Delay(5);/稍作延時DQ = 1;/將數據線拉高以作為停止信號 dat=1;/移位,為寫入下一位數據做準備 /*數據轉換函數*/void BUMA() temp=temp; /按位取反 temp+=1; /*LCD顯示函數*/ void LCD_DISP() uchar a,b,d; Init_LCD(); Write_Comm(0 x01); /清顯示 Write_Comm(0 x80); /寫首地址 for(a=0;a11)&(a14) /如果是結果位到num里面讀取 d=numcodenuma; /待顯示的結果 if(14=a) d=0 xdf; Write_Data(d);/寫入要顯示的數據 Write_Co

溫馨提示

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

評論

0/150

提交評論