課程設(shè)計實驗報告-超聲波測距儀的設(shè)計(共16頁)_第1頁
課程設(shè)計實驗報告-超聲波測距儀的設(shè)計(共16頁)_第2頁
課程設(shè)計實驗報告-超聲波測距儀的設(shè)計(共16頁)_第3頁
課程設(shè)計實驗報告-超聲波測距儀的設(shè)計(共16頁)_第4頁
課程設(shè)計實驗報告-超聲波測距儀的設(shè)計(共16頁)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上西安郵電大學單片機課程設(shè)計報告書題目:超聲波測距儀的設(shè)計院系名稱自動化學院學生姓名朱敏(06) 李蕊蕊(12) 朱奇峰(18)周騰(19) 但莉(22)專業(yè)名稱測控技術(shù)與儀器班 級測控0901班時間2012年 5 月 21 日 至 6 月3 日 超聲波測距儀的設(shè)計一、設(shè)計目的本設(shè)計利用超聲波傳輸中距離與時間的關(guān)系,采用STC51單片機進行控制和數(shù)據(jù)處理,設(shè)計出能夠精確測量兩點間距離的超聲波測距儀。同時了解單片機各腳的功能,工作方式,計數(shù)/定時,I/O口的相關(guān)原理,并鞏固學習單片機的相關(guān)內(nèi)容知識。二、設(shè)計要求1.設(shè)計一個超聲波測距儀,能夠用四段數(shù)碼管準確顯示所測距離2.

2、精度小于1CM,測量距離大于200CM三、設(shè)計器材元器件 數(shù)量STC51單片機 1個超聲波測距模塊URF-04 1個電阻(1K 200 4.7K) 3 個晶振(12MHz) 1 個共陽極四位數(shù)碼管 1 個極性電容(33pF) 2 個非極性電容(22uF) 1 個四、超聲波測距系統(tǒng)原理在超聲探測電路中,發(fā)射端得到輸出脈沖為一系列方波,其寬度為發(fā)射超聲的時間間隔,被測物距離越大,脈沖寬度越大,輸出脈沖個數(shù)與被測距離成正比。超聲測距大致有以下方法: 取輸出脈沖的平均值電壓,該電壓 (其幅值基本固定 )與距離成正比,測量電壓即可測得距離; 測量輸出脈沖的寬度,即發(fā)射超聲波與接收超聲波的時間間隔 t,故

3、被測距離為 S=12vt。本測量電路采用第二種方案。由于超聲波的聲速與溫度有關(guān),如果溫度變化不大,則可認為聲速基本不變 。如果測距精度要求很高,則應(yīng)通過溫度補償?shù)姆椒右孕U3暡y距適用于高精度的中長距離測量。因為超聲波在標準空氣中的傳播速度為331.45米/秒,由單片機負責計時,單片機使用12.0M晶振,所以此系統(tǒng)的測量精度理論上可以達到毫米級。超聲波測距的算法設(shè)計: 超聲波在空氣中傳播速度為每秒鐘340米(15時)。X2是聲波返回的時刻,X1是聲波發(fā)聲的時刻,X2-X1得出的是一個時間差的絕對值,假定X2-X1=0.03S,則有340m×0.03S=10.2m。由于在這10.

4、2m的時間里,超聲波發(fā)出到遇到返射物返回的距離如下:    圖1 測距原理  超聲波測距器的系統(tǒng)框圖如下圖所示: 圖2 系統(tǒng)框圖五、設(shè)計方案及分析(包含設(shè)計電路圖)4.1 硬件電路設(shè)計 4.1.1 單片機最小系統(tǒng)控制模塊設(shè)計與比較方案一:采用MSP430系列的16位單片機,它是16位控制器,具有體積小、驅(qū)動能力強、可靠性高、功耗低、結(jié)構(gòu)簡單、具有語音處理、運算速度快等優(yōu)點,但考慮到我們小組對這個方案采用的微處理器并不熟悉,使用起來并不是很方便。因此我們決定不再使用此方案,考慮其他方案。方案二:采用STC51單片機控制。STC51單片機是一種低功耗、高性能

5、CMOS8位微控制器,具有 8KB的系統(tǒng)可編程Flash 存儲器。AT89S52具有以下標準功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時鐘電路,能夠滿足題目設(shè)計的所有要求,而且我們對STC51單片機也比較熟悉,因此我們選擇方案二。最小系統(tǒng)電路圖如圖3所示圖3 單片機最小系統(tǒng)4.1.2 顯示模塊設(shè)計采用四位共陽極數(shù)碼管顯示,連接電路簡單,顯示電路連接圖如圖4所示圖4 數(shù)碼管顯示電路4.1.3 超聲波測距模塊a.本系統(tǒng)采用超聲波模塊URF04進行測距,該模塊使用

6、直流5V供電,理想條件下測距可達500cm,廣泛應(yīng)用于超聲波測距領(lǐng)域,模塊性能穩(wěn)定,測度距離精確,盲區(qū)(2cm)超近。URF-04工作原理簡述超聲波測距原理:單片機給超聲波傳感器模塊一個觸發(fā)電平,超聲波傳感器的發(fā)射管自動發(fā)送8個40KHZ的方波,當超聲波檢測到障礙物時就會信號返回,接收管接收到信號返回之后,單片機處理從單片機發(fā)送信號到接收到返回信號這段時間里超聲波傳感器模塊輸出高電平。這段高電平持續(xù)時間即為超聲波從發(fā)射到返回的傳播時間。測量距離=(高電平持續(xù)時間*波速)/2。4.1.4 其他電路設(shè)計a.復(fù)位電路 單片機在RESET端加一個大于20ms正脈沖即可實現(xiàn)復(fù)位,上電復(fù)位和按鈕組合的復(fù)位

7、電路如下:在系統(tǒng)上電的瞬間,RST與電源電壓同電位,隨著電容的電壓逐漸上升,RST電位下降,于是在RST形成一個正脈沖。只要該脈沖足夠?qū)捑涂梢詫崿F(xiàn)復(fù)位,即ms。一般取R1,C22uF。當人按下按鈕S1時,使電容C1通過R1迅速放電,待S1彈起后,C再次充電,實現(xiàn)手動復(fù)位。R1一般取200。 圖5 復(fù)位電路b.時鐘電路 當使用單片機的內(nèi)部時鐘電路時,單片機的XATL1和XATL2用來接石英晶體和微調(diào)電容,如圖所示,晶體一般可以選擇3M24M,電容選擇30pF左右。我們選擇晶振為12MHz,電容33pF。 圖6 時鐘電路c. 按鍵電路 我們通過P1.0來啟動測量,程序中通過查詢P1.0的電平來檢測

8、是否按鍵被按下,電路原理如下: 當按下按鍵時P1.0為低電平,單片機通過 查詢到低電平開始測量距離,當松開按鍵,P1.0即為高電平。在軟件中通過軟件延時來消除按鍵的機械抖動。 圖 7按鍵電路 4.2軟件程序設(shè)計軟件分為兩部分,主程序和中斷服務(wù)程序。分別如圖4.4和圖4.5所示。主程序完成初始化工作、超聲波發(fā)射和接收順序的控制。外部中斷服務(wù)子程序主要完成時間值的讀取、距離計算、結(jié)果的輸出、數(shù)碼管顯示等工作。主程序首先是對超聲波模塊初始化,通過延時函數(shù)產(chǎn)生10us的高電平,再將計數(shù)器初始化,判斷超聲波接收端是否收到回波,進而執(zhí)行外部中斷程序。中斷程序首先關(guān)閉外部中斷,關(guān)閉計數(shù)器,然后讀出計數(shù)值,根

9、據(jù)公式計算距離,然后將結(jié)果送往數(shù)碼管顯示。 圖8主程序流程圖 圖9 外部中斷服務(wù)子程序為了避免超聲波從發(fā)射器直接傳送到接收器引起的直射波觸發(fā),需要延時約0.1 ms(這也就是超聲波測距儀會有一個最小可測距離的原因)后,才打開外中斷0接收返回的超聲波信號。由于采用的是12 MHz的晶 振,計數(shù)器每計一個數(shù)就是1s,當主程序檢測到接收成功的標志位后,將計數(shù)器T0中的數(shù)(即超聲波來回所用的時間)按公式計算,即可得被測物體與測距儀之間的距離,設(shè)計時取30時的聲速為340 m/s則有: d=(c×t)/2=170T0/10000cm 其中,T0為計數(shù)器T0的計算值。六、問題分析與解決

10、方法1.在拿到設(shè)計要求之后,我們確定采用超聲波測距模塊,根據(jù)超聲波模塊的工作原理:給超聲波傳感器模塊一個觸發(fā)電平,超聲波傳感器的發(fā)射管自動發(fā)送8個40KHZ的方波,當超聲波檢測到障礙物時就會信號返回,接收管接收到信號返回之后,單片機處理從單片機發(fā)送信號到接收到返回信號這段時間里超聲波傳感器模塊輸出高電平。這段高電平持續(xù)時間即為超聲波從發(fā)射到返回的傳播時間。測量距離=(高電平持續(xù)時間*波速)/2。我們的設(shè)計方案是利用計數(shù)器0進行計數(shù),通過捕獲上升沿和下降沿用計數(shù)器來計算高電平的持序時間,實現(xiàn)數(shù)據(jù)的測量。然而我們卻不能夠確定高電平持續(xù)時間和計數(shù)器的計數(shù)值之間的換算關(guān)系,為此我們討論了很久,最終找到

11、了答案,高電平持續(xù)時間=計數(shù)值×單片機的機器周期(1us)。雖然學習了單片機這么久,但是對于一些基礎(chǔ)概念沒有清晰的認識,導致了這種錯誤。2.在設(shè)計數(shù)碼管顯示電路時,我們本來打算利用74HC573鎖存器,但是發(fā)現(xiàn)這樣硬件電路會復(fù)雜很多,另外由于此設(shè)計功能要求并不復(fù)雜,所以我們舍棄了這一部分。另外在剛開始連接電路時,發(fā)現(xiàn)連好之后,數(shù)碼管不亮,最后我們分析電路,單片機IO口輸出電流太小,不足以驅(qū)動數(shù)碼管,于是我們加了一個與門的驅(qū)動器,使之前的3A電流變?yōu)?A,由此數(shù)碼管就足以驅(qū)動。七、設(shè)計結(jié)果a測試環(huán)境及工具測試距離:在實驗室的特定環(huán)境中測量了0.023.15m。測試儀器:數(shù)字萬用表,直尺

12、。b測試方法超聲波測距測距儀的硬件電路制作完成并調(diào)試好后,便可將程序編譯好下載到試運行。用直尺確定障礙物的距離,數(shù)碼管顯示測量的距離。c測試結(jié)果分析。測距儀能測的范圍為0.023.15m,測距儀最大誤差不超過1cm。系統(tǒng)調(diào)試完后應(yīng)對測量誤差和重復(fù)一致性進行多次實驗分析,不斷優(yōu)化系統(tǒng)使其達到實際使用的測量要求。由于條件有限,我們忽略溫度的影響,不進行溫度補償,聲速選取340m/s.調(diào)試測量的部分測距數(shù)據(jù)如表6-2所示:測試序號顯示距離(m)實際距離(m)誤差(m)10.0420.0410.00120.0810.0800.00136.096.000.0941.2031.2000.00351.802

13、1.8000.002 表1 調(diào)試測量的部分數(shù)據(jù)八、設(shè)計體會與收獲朱敏:雖然這次課程設(shè)計只有短短兩周,但讓我對大二所學的模電知識及剛剛學習的單片機知識有了更深的理解,同時這也是難得的一次理論與實踐相結(jié)合的機會,以前只是在書本上學單片機可實現(xiàn)的很多功能,還有各種中斷,但卻沒有機會實踐,一直只有理論的學習,通過這次課程設(shè)計我才真正了解其中的原理。我的任務(wù)是硬件的總體設(shè)計以及相關(guān)焊接工作,剛開始我拿到題目的時候很不知道應(yīng)該怎么做,再訊查完資料后,自己大概知道了電路需要哪些模塊,下來就是針對每個模塊進行具體設(shè)計,同時我還要進行一些仿真,其中應(yīng)用哪些電阻,電容,這都要通過仿真來確定,期間遇到很多困難,都是

14、團體同伴幫助我的,這也讓我認識到團體的合作精神。通過本次課程設(shè)計我不光復(fù)習了模電知識及單片機知識,鍛煉了動手能力,同時也熟悉掌握了proteus仿真軟件和Protel電路設(shè)計軟件的使用,對于我們測控專業(yè)的學生來說,Proteus和Protel是必須掌握的電路仿真軟件,這次課程設(shè)計給我提供了一個很好的機會鍛煉自己的實踐能力,我想對于我們工科學生來說動手能力是很重要的,以前每天只是在教室里面學習理論知識,而沒有機會將理論與實踐結(jié)合起來。李蕊蕊:我這次的課程設(shè)計的主要任務(wù)是對于超聲波測距模塊的設(shè)計和一些其他設(shè)計仿真工作,經(jīng)過我們的多次的樣機制作發(fā)現(xiàn),超聲波的發(fā)射和接收頭比較脆弱,不要隨意的撥動它們。

15、而且超聲波元件的價格比較昂貴,所以制作時候需要特別小心。剛開始設(shè)計的電路顯示部分使用了兩個鎖存器,但是在實際焊接時發(fā)現(xiàn)連線很亂、很麻煩,然后就想可不可以去掉鎖存器。在仿真圖上一試果然可以顯示。這樣簡化了硬件電路,實際連接很方便。要學會設(shè)計,必須熟悉了解其中的原理,對此,我覺得我做的很好,對一起的每個管腳等等我都必須要熟悉,所以課下我特別的去了解了各個硬件的原理,這有助于我之后實際。最后我覺得我們組這次課設(shè)成功的關(guān)鍵在與我們組員之間的團結(jié)和不放棄的精神,從電路設(shè)計到仿真,再到焊接電路,我們遇到了很多困難,但是我們沒有放棄,也沒有互相抱怨,而是一直呆在一起,討論不斷改進,最終我們?nèi)〉昧顺晒?。還有就

16、是今后做設(shè)計時要多想、多試,不斷修改程序,盡量簡化硬件。朱奇峰:這次課程設(shè)計老師給我們的題目是超聲波測距儀的設(shè)計,通過對本功能模塊的調(diào)試,本功能模塊完成了測量儀設(shè)計的目的和要求,在焊接好硬件電路并編寫好軟件程序后,經(jīng)過長時間的調(diào)試并不斷的改進方案,最終我們得到了預(yù)期的結(jié)果。這也讓我再次認識到了團體合作的力量。我這次課程設(shè)計的任務(wù)是對于顯示模塊的設(shè)計,他不僅包括硬件的還有軟件的設(shè)計,所以我必須把數(shù)碼管和一些顯示電路設(shè)置他們與單片機連接的管腳等等的全部內(nèi)容要搞清楚,所以課后我也下了些功夫去查些資料什么的研究它,最終定下了一些結(jié)論比如采用四位共陽極數(shù)碼管顯示等等。在此期間,我認為團體協(xié)作是非常重要的

17、,譬如我有好多不懂的問題可以互相討論,還有我們每個人設(shè)計任務(wù)都是有聯(lián)系的,比如說我設(shè)計的一些顯示的電路和單片機怎么連接,又如何顯示我比須告訴設(shè)計編程的周騰,這樣他才能更好地完成編程任務(wù)。在剛開始連接電路時,發(fā)現(xiàn)連好之后,數(shù)碼管不亮,最后我們分析電路,單片機IO口輸出電流太小,不足以驅(qū)動數(shù)碼管,于是我們加了一個與門的驅(qū)動器,使之前的3A電流變?yōu)?A,由此數(shù)碼管就足以驅(qū)動。周騰:我這此課程設(shè)計的任務(wù)是軟件程序的編寫,這占了此次設(shè)計的最主要的工作部分,之前自己對單片機在書本上的知識還比較了解,所以自己認為編程應(yīng)該沒什么大問題,在認識了超聲波測距設(shè)計的一些原理和硬件的總體模塊之后,我開始了編程,由于用

18、的是C,我差不多把C都忘了一些,所以在課后我又補充了這些知識,這對我有極大的幫助。之后我現(xiàn)在腦子里把具體程序的模塊劃分出來,然后對每個模塊進行流程圖設(shè)計,最后就每個模塊開始編程,編完程對其不斷檢查和改進。本系統(tǒng)采用模塊化設(shè)計,由主程序、發(fā)射子程序、接收子程序、定時子程序、顯示子程序等模塊組成。該系統(tǒng)的主程序處于鍵控循環(huán)工作方式,當按下測量鍵時,主程序開始調(diào)用發(fā)射子程序、查詢接收子程序、定時子程序,并把測量結(jié)果用顯示子程序在數(shù)碼顯示器上顯示出來??傮w來說這次課程設(shè)計真的收獲頗多,不僅復(fù)習了課本知識,最重要的是鍛煉了自己的動手能力,將理論與實際很好的結(jié)合起來,而且第一次感覺到靠自己做出了自己專業(yè)的

19、東西,很有成就感。但莉:這次課程設(shè)計我的主要任務(wù)是電路焊接,當任安他們把程序設(shè)計好之后我就開始焊接電路了,我們組由于使用的是超聲波集成模塊URF-04,相比與其他組我們的硬件焊接任務(wù)少了很多,主要也就是焊接單片機最小系統(tǒng)和數(shù)碼管顯示電路,開始我任務(wù)很簡單,一個早上搞定。然而當我焊完之后發(fā)現(xiàn)數(shù)碼管并不顯示,通過分析電路我才發(fā)現(xiàn)單片機輸出電流太小,不足以驅(qū)動數(shù)碼管點亮,于是我在每個數(shù)碼管的位選端之前加了一個與門用以放大電流,這樣數(shù)碼管就亮了。另外在設(shè)計單片機最小系統(tǒng)的時候忽略了復(fù)位電路的作用,焊接時出現(xiàn)錯誤,在課設(shè)快要結(jié)束的時候才發(fā)現(xiàn)這個錯誤,每次只是通過電源開關(guān)來復(fù)位。在軟件程序設(shè)計的時候我們也

20、出現(xiàn)了很多問題,由于是第一次使用數(shù)碼管和單片機,對于數(shù)碼管的工作原理及單片機個功能引腳的使用都不清楚,在編寫程序的時候都是一邊翻開課本一邊上網(wǎng)查資料,才把程序框架設(shè)計出來,硬件電路焊接好之后不斷改進程序,才達到設(shè)計目標。這次實習我不但學到了很多實際的東西,還體會到了團隊合作的精神。附錄:超聲波測距儀系統(tǒng)電路原理圖圖10 超聲波測距儀系統(tǒng)電路原理圖附錄:程序代碼#include<reg52.h> #include<STDIO.H>#include<intrins.h>#define CONTROL_PERIOD 1000Unsigned int code ta

21、ble=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/ 共陽極編碼表unsigned int code table_point=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;/共陽極編碼表(帶小數(shù)點)sbit Led1 = P20; /位選端1sbit Led2 = P21; /位選端2sbit Led3 = P22; /位選段3sbit Led4 = P23; /位選段4sbit TX = P10; /超聲波接收端與單片機接口unsigned int qian,bai,shi,ge;

22、 /定義變量unsigned int time_period=0;unsigned int count=0;void delay_xms(unsigned int xms) /延時xms毫秒; unsigned int i,j; for(i=xms;i>0;i-) for(j=110;j>0;j-);void display (unsigned int temp) /顯示函數(shù),數(shù)碼管動態(tài)顯示 qian=temp/1000; /取得千位值 bai=(temp%1000)/100; /取得百位值 shi=(temp%100)/10; /取得十位值 ge=temp%10; /取得個位值

23、P2=0; /初始化P2端口 Led1=1; /選擇位選端1,使Led1使能端打開,千位顯示; P0=table_pointqian; /查表給P0口賦值,點亮數(shù)碼管 delay_xms(1); /延時1ms P2=0; /初始化P2端口 Led2=1; /選擇位選端2,使Led2使能端打開,百位顯示; P0=tablebai; /查表給P0口賦值,點亮數(shù)碼管 delay_xms(1); /延時1ms P2=0; /初始化P2端口 Led3=1; /選擇位選端3,使Led3使能端打開,十位顯示; P0=tableshi; /查表給P0口賦值,點亮數(shù)碼管 delay_xms(1); /延時1ms

24、 P2=0; /初始化P2端口 Led4=1; /選擇位選端3,使Led3使能端打開,個位顯示; P0=tablege; /查表給P0口賦值,點亮數(shù)碼管 delay_xms(1); /延時1ms void start(void) /發(fā)射持續(xù)時間為15us的高電平,啟動超聲波測距模塊,發(fā)出超聲波; unsigned int a; TX=0; _nop_(); TX=1; for(a=15;a>0;a-) _nop_(); TX=0;void measure_init(void) TCON|=0X01; /控制寄存器:TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0;0000 0001中斷0下降沿觸發(fā); TMOD|=0X19; /工作方式寄存器:GATA1 C/T1 M1 M0 GATA0 C/T0 M1 M0 計數(shù)器1工作在方式

溫馨提示

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

評論

0/150

提交評論