2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  基于51單片機(jī)的超聲波測距系統(tǒng)設(shè)計</p><p><b>  中國·珠海</b></p><p><b>  二○XX年X月</b></p><p> 學(xué) 院:專 業(yè):姓 名:指導(dǎo)老師:信息學(xué)院</p><p> 測控技術(shù)與儀器</p>

2、<p> 學(xué) 號:職 稱:</p><p>  基于51單片機(jī)的超聲波測距系統(tǒng)設(shè)計</p><p><b>  摘 要</b></p><p>  本次系統(tǒng)的設(shè)計主要包括兩部分,即硬件電路和軟件程序。硬件電路主要包括單片機(jī)電路、發(fā)射電路、接收電路、顯示電路和電源電路等。本次設(shè)計采用以AT89C51單片機(jī)為核心的低成本

3、、高精度、微型化數(shù)字顯示超聲波測距儀的硬件電路。整個電路采用模塊化設(shè)計,由信號發(fā)射和接收、供電、顯示等模塊組成。發(fā)射探頭的信號經(jīng)放大和檢波后發(fā)射出去,單片機(jī)的計時器開始計時,超聲波被發(fā)射后按原路返回,信號被接受電路接受,然后被單片機(jī)接收,計數(shù)器停止工作并得到時間。軟件程序主要由主程序、預(yù)置子程序、發(fā)射子程序、接收子程序、顯示子程序等模塊組成。它控制單片機(jī)進(jìn)行數(shù)據(jù)發(fā)送與接收,實現(xiàn)數(shù)據(jù)正確顯示在數(shù)碼管上。另外程序控制單片機(jī)消除各探頭對發(fā)射和

4、接收超聲波的影響。相關(guān)部分附有硬件電路圖、程序流程圖。</p><p>  實際的環(huán)境對超聲波有很大的影響,如外部電磁干擾電源干擾信道干擾等等,空氣的溫度對超聲波的速度影響也很大,此外供電電源也會使測量差生很大的誤差。由于知識面有限,作品還有許多可以改進(jìn)的地方,希望在日后的學(xué)習(xí)中能將作品完善的更好。</p><p>  關(guān)鍵詞:AT89C51;超聲波;測距</p><p

5、>  51 MCU-based Ultrasonic Ranging System Design</p><p><b>  Abstract</b></p><p>  The system's design includes two parts, namely the hardware circuit and software program.The

6、 hardware circuit includes a microcontroller circuit, the transmitting circuit, the receiving circuit, display circuit and the power supply circuit. The design uses AT89C51 microcontroller as the core of low-cost, high-p

7、recision, miniaturization of digital hardware circuit of the ultrasonic range finder. The entire circuit is modular in design, by the signal transmitter and receiver, power supply, display</p><p>  Actual en

8、vironment has a great influence on the ultrasonic waves, such as an external electromagnetic interference power interfering channel interference, etc., the temperature of the air is also a great influence on the speed of

9、 the ultrasonic addition, the power supply to the measured differential raw large errors. Due to the limited knowledge, works there are many areas for improvement, can work better in the future study.</p><p>

10、;  Keywords: AT89C51;Ultrasonic;Ranging</p><p><b>  目 錄</b></p><p><b>  1.緒論1</b></p><p>  1.1課題背景及重要意義1</p><p>  1.2 研究內(nèi)容1</p><p

11、>  1.3主要任務(wù)及目標(biāo):2</p><p>  2.整體設(shè)計思路2</p><p>  2.1硬件整體設(shè)計2</p><p>  2.2軟件整體設(shè)計思路4</p><p><b>  3.硬件設(shè)計5</b></p><p>  3.1對超聲波的認(rèn)識5</p>&

12、lt;p>  3.2器材的選擇6</p><p>  3.3.單片機(jī)最小系統(tǒng)9</p><p>  3.4超聲波發(fā)射電路9</p><p>  3.5超聲波接收電路設(shè)計10</p><p>  3.6顯示電路設(shè)計12</p><p><b>  4.軟件設(shè)計13</b></

13、p><p>  4.1主程序設(shè)計13</p><p>  4.2中斷處理程序16</p><p>  4.3計算及顯示模塊設(shè)計18</p><p>  4.4作品展示:20</p><p><b>  5.設(shè)計總結(jié)21</b></p><p>  參 考 文 獻(xiàn)22

14、</p><p><b>  謝辭23</b></p><p>  系統(tǒng)整體電路圖24</p><p><b>  程序代碼25</b></p><p><b>  1.緒論</b></p><p>  1.1課題背景及重要意義</p>

15、<p>  近年來,隨著電子測量技術(shù)的發(fā)展,運(yùn)用超聲波作出精確測量已成可能。超聲波擁有許多優(yōu)點:超聲波測量精確高,成本低,性能穩(wěn)定則備受青睞。超聲波是指頻率在20kHz以上的聲波,它屬于機(jī)械波的范疇。超聲波也遵循一般機(jī)械波在彈性介質(zhì)中的傳播規(guī)律,如在介質(zhì)的分界面處發(fā)生反射和折射現(xiàn)象,在進(jìn)入介質(zhì)后被介質(zhì)吸收而發(fā)生衰減等。正是因為具有這些性質(zhì),使得超聲波可以用于距離的測量中。隨著科技水平的不斷提高,超聲波測距技術(shù)被廣泛應(yīng)用于人

16、們?nèi)粘9ぷ骱蜕钪小R话愕某暡y距儀可用于固定物位或液位的測量,適用于建筑物內(nèi)部、液位高度的測量等。</p><p>  由于超聲測距是一種非接觸檢測技術(shù),不受光線、被測對象顏色等的影響,較其它儀器更衛(wèi)生,更耐潮濕、粉塵、高溫、腐蝕氣體等惡劣環(huán)境,具有少維護(hù)、不污染、高可靠、長壽命等特點。因此可廣泛應(yīng)用于紙業(yè)、礦業(yè)、電廠、化工業(yè)、水處理廠、污水處理廠、農(nóng)業(yè)用水、環(huán)保檢測、食品(酒業(yè)、飲料業(yè)、添加劑、食用油、奶

17、制品)、防汛、水文、明渠、空間定位、公路限高等行業(yè)中。可在不同環(huán)境中進(jìn)行距離準(zhǔn)確度在線標(biāo)定,可直接用于水、酒、糖、飲料等液位控制,可進(jìn)行差值設(shè)定,直接顯示各種液位罐的液位、料位高度。因此,超聲在空氣中測距在特殊環(huán)境下有較廣泛的應(yīng)用。利用超聲波檢測往往比較迅速、方便、計算簡單、易于實現(xiàn)實時控制,并且在測量精度方面能達(dá)到工業(yè)實用的指標(biāo)要求,因此為了使移動機(jī)器人能夠自動躲避障礙物行走,就必須裝備測距系統(tǒng),以使其及時獲取距障礙物的位置信息(距離

18、和方向)。因此超聲波測距在移動機(jī)器人的研究上得到了廣泛的應(yīng)用。同時由于超聲波測距系統(tǒng)具有以上的這些優(yōu)點,因此在汽車倒車?yán)走_(dá)的研制方面也得到了廣泛的應(yīng)用。</p><p><b>  1.2 研究內(nèi)容</b></p><p>  設(shè)計一個超聲波測距系統(tǒng),以單片機(jī)為控制核心,實現(xiàn)測距功能。</p><p>  1.初步掌握模擬、數(shù)字電路分析和設(shè)計的

19、基本方法。包括: </p><p>  (1)根據(jù)設(shè)計任務(wù)和指標(biāo),初選電路; </p><p> ?。?)通過調(diào)查研究、設(shè)計計算,確定電路方案; </p><p>  2. 培養(yǎng)一定自學(xué)能力和獨立分析問題、解決問題能力。包括: </p><p> ?。?)學(xué)會自己分析、找出解決問題的方法; </p><p>  對設(shè)計

20、中遇到的問題,能獨立思考,查閱資料,尋找答案。</p><p>  1.3主要任務(wù)及目標(biāo):</p><p>  1.設(shè)計一個單片機(jī)最小系統(tǒng),有l(wèi)cd顯示和按鍵;</p><p>  2.設(shè)計一個超聲波測距模塊;</p><p>  3.系統(tǒng)要求具有一定的可擴(kuò)展性;</p><p>  4.畢業(yè)論文嚴(yán)格按學(xué)校的要求撰寫;

21、</p><p><b>  2.整體設(shè)計思路</b></p><p><b>  2.1硬件整體設(shè)計</b></p><p>  在開始做畢業(yè)設(shè)計之前,我需要對要所要完成的作品有一個大概的掌控,特別是對超聲波測距的原理和超聲波測距系統(tǒng)的組成部分能有一個清晰的認(rèn)識。</p><p>  超聲波測距的

22、原理:超生波測距的原理其實很簡單,也就是大自然中蝙蝠捕食的原理,首先需要超生波發(fā)射裝置,發(fā)出超聲波,此時時間記作T1,當(dāng)超聲波收到障礙物的阻擋時,就會被反彈回來,然后就被超聲波接受裝置所捕捉到,這時時間記作T2,假設(shè)此時的聲速為V,則超聲波測距裝置與障礙物之間的距離S為:S=V*(T2-T1)/2。 (式2.1)</p><p>  超聲波的原理圖如圖2.1所示:<

23、;/p><p><b>  t 障礙物</b></p><p><b>  s</b></p><p><b>  超聲波發(fā)射</b></p><p><b>  超聲波接收</b></p><p>  圖2.1 超聲波的測距原理

24、</p><p>  在我動手之前不是說能夠一氣呵成的完成作品,如果那樣做的話,萬一哪一部分出了問題,那么我將很難檢查的出來,所以效率很低。</p><p>  因此決定分模塊來完成我的作品,首先用仿真軟件進(jìn)行仿真,確定好布線器材等,就可以先從硬件開始著手了,超聲波測距系統(tǒng)的組成部分:1. 單片機(jī)最小系統(tǒng) 2.超聲波發(fā)射部分 3.超聲波接受部分 4.顯示部分;我只要一個一個模塊

25、的實現(xiàn),這樣效率就能提高很多。</p><p>  完成好硬件的功能,接下來就需要實現(xiàn)軟件的功能了,本次設(shè)計的程序需要完成的功能有:</p><p>  (1)超聲波的發(fā)射和接收控制</p><p> ?。?)對回波信號的檢測</p><p>  (3)測距時間到距離的換算</p><p><b> ?。?)

26、距離的顯示</b></p><p>  從整體看超聲波測距的原理很簡單,但是我們要想獲得一個高精度的測距結(jié)果,還需要考慮和多方面的東西,比如說:測距的溫度會對結(jié)果有很大的影響。而且在器材選用方面,對測距結(jié)果也會帶來很大的誤差。因此,在完成作品的過程中,還需要對硬件和軟件有一個更加細(xì)致的考慮。</p><p>  整體電路的控制核心為單片機(jī)AT89C51。超聲波發(fā)射和接收電路中都

27、對相應(yīng)信號進(jìn)行整形及放大,以保證測量結(jié)果盡可能精確。超聲波探頭接OUT口實現(xiàn)超聲波的發(fā)射和接收。整體結(jié)構(gòu)圖包括超聲波發(fā)射電路,超聲波接收電路,單片機(jī)電路,顯示電路等幾部分模塊組成。由于超聲波在發(fā)射和接收的過程中會有能量的損失,因此在超聲波發(fā)射與接收電路還要加入放大電路。在發(fā)射后把信號放大,接收前也要把還再次放大,進(jìn)行多級放大才能達(dá)到發(fā)射和接收的效果。</p><p>  整體電路結(jié)構(gòu)圖如圖2.1.1所示:<

28、/p><p>  圖2.1.1 超聲波測距原理圖</p><p>  數(shù)字顯示仿真如圖2.1.2所示:</p><p>  圖2.1.2 數(shù)字顯示仿真</p><p>  2.2軟件整體設(shè)計思路</p><p>  參照硬件的設(shè)計思路,軟件我也將采取模塊化的設(shè)計思路來進(jìn)行,這樣對提高效率有很大的幫助。本設(shè)計采用的是模塊化的

29、思路來進(jìn)行設(shè)計和編寫程序,程序主要由系統(tǒng)主程序和中斷程序構(gòu)成。主程序完成單片機(jī)的初始化,超聲波的發(fā)射和接收、計算超聲波發(fā)射點與障礙物之間的距離、數(shù)碼管顯示等。</p><p><b>  3.硬件設(shè)計</b></p><p>  3.1對超聲波的認(rèn)識</p><p><b>  超聲波簡介:</b></p>

30、<p>  超聲波技術(shù)是一門以物理、電子、機(jī)械、以及材料科學(xué)為基礎(chǔ)的、各行各業(yè)都可使用的通用技術(shù)之一。超聲波技術(shù)是通過超聲波的產(chǎn)生、傳播以及接收的物理過程完成的。該技術(shù)在國民經(jīng)濟(jì)中,對提高產(chǎn)品質(zhì)量,保障生產(chǎn)安全和設(shè)備安全運(yùn)作,降低生產(chǎn)成本,提高生產(chǎn)效率特別具有潛在能力。因此,我國對超聲波的研究特別活躍。</p><p><b>  超聲波的三種形式:</b></p>

31、<p>  超聲波在介質(zhì)中可以產(chǎn)生三種形式的振蕩波:橫波,質(zhì)點振動方向垂直于傳播方向的波;縱波,質(zhì)點振動方向與傳播方向一致的波;表面波,質(zhì)點振動介于縱波和橫波之間,沿表面?zhèn)鞑サ牟āM波只能在固體中傳播,縱波能在固體液體中和氣體中傳播,表面波隨深度的增加其衰減很快。為了測量各種狀態(tài)下的物理量多采用縱波形式的超聲波。</p><p><b>  超聲波的物理性質(zhì):</b></p&

32、gt;<p>  (1) 超聲波的反射和折射</p><p>  當(dāng)超聲波傳播到兩種特性阻抗不同介質(zhì)的平面分界面上時,一部分超聲波被反射;另一部分透射過界面,在相鄰介質(zhì)內(nèi)部繼續(xù)傳播。這樣的兩種情況稱之為超聲波的反射和折射。</p><p><b>  (2)超聲波的衰減</b></p><p>  超聲波在一種介質(zhì)中傳播,其聲壓和

33、聲強(qiáng)按指數(shù)函數(shù)規(guī)律衰減。</p><p><b>  (3)超聲波的干涉</b></p><p>  如果在一種介質(zhì)中傳播幾個聲波,于是產(chǎn)生波的干涉現(xiàn)象。由于超聲波的干涉,在輻射器的周圍形成一個包括最大最小的揚(yáng)聲場。</p><p><b>  3.2器材的選擇</b></p><p><b&

34、gt;  超聲波傳感器介紹:</b></p><p>  據(jù)我查閱資料了解到超聲波發(fā)生器可以分為兩大類:一類是用電氣方式產(chǎn)生超聲波,一類是用機(jī)械方式產(chǎn)生超聲波。電氣方式包括壓電型、磁致伸縮型和電動型等;機(jī)械方式有加爾統(tǒng)笛、液哨和氣流旋笛等。他們所產(chǎn)生的超聲波的頻率、功率和聲波特性各不相同,因而用途也各不相同。目前較為常用的是壓電式超聲波發(fā)生器。壓電式超聲波發(fā)生器實際上是利用壓電晶體的諧振來工作的。它有

35、兩個壓電晶片和一個共振板。當(dāng)它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時,壓電晶片將會發(fā)生共振,并帶動共振板振動,便產(chǎn)生超聲波。反之,如果兩極間未外加電壓,當(dāng)共振板接收到超聲波時,將壓迫壓電晶片作振動,將機(jī)械能轉(zhuǎn)換為電信號,這時它就成為超聲波接收器了。超聲波傳感器結(jié)構(gòu)如下:</p><p>  .圖3.2 超聲波傳感器外部結(jié)構(gòu)</p><p>  圖3.2.1超聲波傳感器內(nèi)部結(jié)

36、構(gòu)</p><p>  由于市場上的超聲波種類很多,通過我查閱資料,分析了超聲波傳感器的升壓能級和靈敏度的關(guān)系后,發(fā)現(xiàn)在超聲波測量系統(tǒng)中,當(dāng)頻率取得太低,則外界的雜音干擾較多,超聲波接收的雜波就多,靈敏度就不高;當(dāng)頻率取得太高,在傳播的過程中能量損失比較大,雖然分辨力比較高,但是測量距離變短。通過我的綜合分析,找到了比較好的頻率段40KHz。</p><p>  如下圖3.2.2超聲波傳感

37、器的升壓能級圖和圖3.2.3超聲波傳感器的靈敏度圖。</p><p>  圖3.2.2 超聲波傳感器的升壓能級</p><p>  圖3.2.3 超聲波傳感器的靈敏度</p><p>  因此本次設(shè)計選用的探頭是4OKHz的收發(fā)分體式超聲傳感器,由一支發(fā)射傳感器UCM-T40KI和一支接收傳感器UCM-R4OKI組成,其特性參數(shù)如表3.2.2所示。</p>

38、;<p><b>  傳感器特性參數(shù)表</b></p><p>  表3.2.2傳感器特性參數(shù)表</p><p>  通過自己查閱相關(guān)資料,了解到要想提高結(jié)果的精度就要考慮的更加全面,因此,我又詳細(xì)的分析了一下超聲波測距的原理。超聲波測距的方法有多種:如往返時間檢測法、相位檢測法、聲波幅值檢測法。本設(shè)計采用往返時間檢測法測距。其原理是超聲波傳感器發(fā)射一定

39、頻率的超聲波,在空氣中傳播,到達(dá)測量目標(biāo)或障礙物后反射回來,并在超聲波接收器中進(jìn)行頻率的比較和篩選,并放大有效信號記錄發(fā)射和接收的時間差,并通過S=V*(T2-T1)/2的計算公式測試傳輸出距離。</p><p>  當(dāng)進(jìn)行距離的測量時,由安裝在同一水平線上的超聲波發(fā)射器和接收器完成超聲波的發(fā)射與接收,并且同時啟動定時器進(jìn)行計數(shù)。首先由超聲波發(fā)射探頭向前方發(fā)射一定頻率的超聲波并同時啟動定時器計時,超聲波在空氣中傳

40、播的途中一旦遇到障礙物后就會被反射回來,當(dāng)然超聲波在傳播的過程中會有能量的損失,因此在超聲波的接收部位就會有超聲波放大裝置,將有效的超聲波信號進(jìn)行放大,當(dāng)接收探頭收到反射波后就會給負(fù)脈沖到單片機(jī)使其立刻停止計時。這樣,定時器就能夠準(zhǔn)確的記錄下了超聲波發(fā)射點至障礙物之間往返傳播所用的時間t(s)。考慮到測量的距離在誤差允許的范圍內(nèi),我們將超聲波在常溫下空氣中的傳播速度大約為340 m/s,所以障礙物到發(fā)射探頭之間的距離為:</p&g

41、t;<p>  S=340×t/2=170×t (式3.2)</p><p>  因為單片機(jī)內(nèi)部定時器的計時實際上就是對機(jī)器周期T的計數(shù),而本設(shè)計中時鐘頻率fosc取12 MHz,設(shè)計數(shù)值N,則: </p><p>  T=12/fosc=1μs (式3.2.1)&l

42、t;/p><p>  t=N×T=N×0.000001(s) (式3.2.2)</p><p>  S=170×N×T=170×N/1000000(m) (式3.2.3)</p><p>  在程序中按式S=170×N×T=170×N/10000

43、00計算距離。</p><p>  3.3.單片機(jī)最小系統(tǒng)</p><p>  單片機(jī)最小系統(tǒng)是其他拓展系統(tǒng)的最基本的基礎(chǔ),單片機(jī)最小系統(tǒng)是指一個真正可用的單片機(jī)最小配置系統(tǒng)即單片機(jī)能工作的系統(tǒng)。對于AT89C51單片機(jī),由于片內(nèi)已經(jīng)自帶有了程序存儲器,所以只要單片機(jī)外接時鐘電路和復(fù)位電路就可以組成了單片機(jī)的最小系統(tǒng)了。單片機(jī)的最小系統(tǒng)如圖3.3所示。</p><p&g

44、t;  圖3.3 單片機(jī)最小系統(tǒng)原理圖</p><p>  3.4超聲波發(fā)射電路</p><p>  通過我的綜合分析,用單片機(jī)P0.1發(fā)射一組方波脈沖信號,其輸出波形穩(wěn)定可靠,但輸出電流和輸出功率很低,不能夠推動發(fā)射傳感器發(fā)出足夠強(qiáng)度的超聲信號,所以超聲波發(fā)射電路是由超聲波探頭和超聲波放大器組成。超聲波探頭將電信號轉(zhuǎn)換為機(jī)械波發(fā)射出去,而單片機(jī)所產(chǎn)生的40 kHz的方波脈沖需要進(jìn)行放大才

45、能將超聲波探頭驅(qū)動將超聲波發(fā)射出去,所以發(fā)射驅(qū)動實際上就是一個信號的放大電路,本設(shè)計選用74LS04芯片進(jìn)行信號放大,超聲波發(fā)射電路如圖3.4所示</p><p>  圖3.4 超聲波發(fā)射電路</p><p>  工作時,由單片機(jī)產(chǎn)生40 kHz的脈沖從P0.1口向超聲波的發(fā)射電路部分發(fā)出信號,再經(jīng)74LS04放大電路放大后,驅(qū)動超聲波探頭將超聲波發(fā)射出去。</p><

46、p>  3.5超聲波接收電路設(shè)計</p><p>  我們都知道,超聲波在傳播過程中,能量會衰減的很厲害,此時,超聲波接受裝置就會受到很大的阻礙。因此,我們還需設(shè)計一個超聲波放大電路,讓超聲波接收裝置在接受微弱的超聲波信號時,能將其放大,讓超聲波接受裝置能夠識別。超聲波接收電路主要是由集成電路CX20106A芯片電路構(gòu)成的,CX20106A芯片電路可以對超聲波信號進(jìn)行放大、限幅、帶通濾波、峰值檢波、整形、比

47、較等功能,比較完之后超聲波接收電路會輸出一個低電平到單片機(jī)去請求中斷,當(dāng)即單片機(jī)停止計時,并開始去進(jìn)行數(shù)據(jù)的處理。</p><p>  CX20106A是一塊功能很強(qiáng)大的芯片,該芯片的前置放大器具有自動增益控制的功能,當(dāng)測量的距離比較近時,放大器不會過載;而當(dāng)測量距離比較遠(yuǎn)時,超聲波信號微弱,前置放大器就有較大的放大增益效果。CX20106A芯片的5腳在外接電阻對它的帶通濾波器的頻率進(jìn)行調(diào)節(jié),而且不用再外接其他的

48、電感,能夠很好地避免外加磁場對芯片電路的干擾,而且它的可靠性也是比較高的。CX20106A芯片電路本身就具有很高的抗干擾的能力,而且靈敏度也比較高,所以,能滿足本設(shè)計的要求。超聲波接收電路如圖3.5所 </p><p>  圖3.5 超聲波接收電路</p><p>  由于在制作過程中,知識面過于狹窄,因此,選擇了集成模塊的超聲波發(fā)射和接受裝置:HR-SR04超聲波集成模塊</

49、p><p><b>  1、產(chǎn)品特點:</b></p><p>  HC-SR04 超聲波測距模塊可提供 2cm-400cm 的非接觸式距離感測功能, 測距精度可達(dá)高到 3mm;模塊包括超聲波發(fā)射器、接收器與控制電路。 基本工作原理:</p><p>  (1)采用 IO 口 TRIG 觸發(fā)測距,給至少 10us 的高電平信號; (2)模塊自動發(fā)送

50、 8 個 40khz 的方波,自動檢測是否有信號返回; (3)有信號返回,通過 IO 口 ECHO 輸出一個高電平,高電平持續(xù)的時間就是超聲</p><p>  波從發(fā)射到返回的時間。測試距離=(高電平時間*聲速(340M/S))/2;</p><p><b>  2、實物圖:</b></p><p>  圖3.5.1 超聲波測距模塊<

51、;/p><p>  如上圖3.5.1所示接線VCC 供5V電源,GND為地線,TRIG 觸發(fā)控制信號輸入,ECHO回響信號輸出等四支線。</p><p><b>  3、電氣參數(shù):</b></p><p>  表 3.5.2 HC-SR04電器參數(shù)</p><p><b>  3.6顯示電路設(shè)計</b>

52、</p><p>  由于我設(shè)計的超聲波測距系統(tǒng),最遠(yuǎn)只能測量4m的距離,因此選用4位LED顯示。</p><p>  根據(jù)數(shù)碼管的一些選擇,最終篩選出了最優(yōu)的設(shè)計方案:在顯示電路的設(shè)計上,利用單片機(jī)的P0~P2口來控制數(shù)碼管顯示,這種接法雖然比較浪費(fèi)管腳資源,但是對單片機(jī)的理論知識要求相對比較低,而且超聲波發(fā)射和接收電路并不需要很多的管腳來支持,所以我選擇這種方案。數(shù)碼管的選擇上,為了使

53、數(shù)碼管亮度大,我選擇了共陽極的數(shù)碼管,數(shù)碼管管腳接到低電平發(fā)亮。顯示及其驅(qū)動電路的原理圖如圖3.6所示。</p><p>  圖3.6 顯示電路原理圖</p><p><b>  4.軟件設(shè)計</b></p><p><b>  4.1主程序設(shè)計</b></p><p>  主程序?qū)φ麄€單片機(jī)系統(tǒng)進(jìn)

54、行初始化后,先將超聲波的回波接收標(biāo)志位置位并且使單片機(jī)P1.0端口輸出一個低電平用來啟動超聲波發(fā)射電路,同時將定時器T0啟動,然后調(diào)用距離計算的子程序,再根據(jù)定時器T0記錄的時間計算出所需要測量的距離,然后再調(diào)用顯示子程序,再將測出的距離以十進(jìn)制的形式送到數(shù)碼管顯示。最后主程序通過對回波信號的接收,完成后續(xù)的工作,假如標(biāo)志位清零則說明接收到了回波信號,那么主程序就返回到初始端重新將回波接收標(biāo)志位置位并且在單片機(jī)的P0.1端口上發(fā)送低電平

55、到超聲波發(fā)射電路,就這樣,連續(xù)不斷地運(yùn)行,循環(huán)不斷地工作用來實現(xiàn)測距。 </p><p>  超聲波接收電路在接收到超聲波回波后,通過CX20106A電路進(jìn)行檢波整形比較,并向單片機(jī)發(fā)出有效信號,單片機(jī)通過外部中斷的改變記錄回波信號的到達(dá)時間,中斷發(fā)生之后就是表示已經(jīng)接收到了回波信號,這個時候停止計時,并且讀取計數(shù)器中的數(shù)值,這個數(shù)值就是需要進(jìn)行測量的時間差的數(shù)據(jù)。</p><p>  程

56、序中對測距距離的計算方法是按S=17×N/100000=0.00017×N(m)進(jìn)行計算的,其中,N為計數(shù)器的值,聲速的值取為340 m/s。</p><p>  系統(tǒng)主程序流程圖如圖4.1所示:</p><p>  圖4.1 系統(tǒng)主程序流程圖</p><p><b>  系統(tǒng)主程序如下:</b></p>&l

57、t;p>  void main(void)</p><p><b>  {</b></p><p>  uchar i,j;</p><p>  for(i=0;i<255;i++)</p><p>  for(j=0;j<255;j++); //延時,等待系統(tǒng)外圍復(fù)位完成 </

58、p><p>  sys_init(); //初始化</p><p>  display(); //顯示</p><p>  sta_flag=0; //標(biāo)準(zhǔn)復(fù)位 </p><p>  waitforstarting: </

59、p><p>  while(START);</p><p>  for(i=0;i<20;i++)</p><p>  delay1ms();</p><p><b>  if(START)</b></p><p>  goto waitforstarting;</p><p

60、>  BUZZER=0; </p><p><b>  i=100000;</b></p><p>  while(i--);</p><p><b>  BUZZER=1;</b></p><p><b>  i=100000;</b></

61、p><p>  while(i--);</p><p>  TR0=1; //啟動定時器0</p><p><b>  ET0=1;</b></p><p>  testtemp(); </p><p>  while(1)

62、 </p><p><b>  { </b></p><p>  if(sta_flag) //60MS到了,超聲波已經(jīng)發(fā)送 </p><p><b>  { </b></p><p>  while(0==CSBIN); //等待超聲波返

63、回</p><p><b>  TR1=0;</b></p><p>  jsh=TH1; //停止計數(shù)</p><p><b>  jsl=TL1;</b></p><p>  if(15==count) </p><p><

64、b>  {</b></p><p>  temp=wd(); </p><p><b>  count=0;</b></p><p>  testtemp(); //重新啟動轉(zhuǎn)換</p><p>  display(); //刷新顯示</p>

65、<p><b>  }</b></p><p>  computer(); //計算距離</p><p>  hextobcd(); //轉(zhuǎn)化成BCD碼</p><p>  sta_flag=0; //標(biāo)志清零</p><p><b>  } &

66、lt;/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void sys_init(void)</p><p><b>  { </b></p><p><b>  uchar i

67、;</b></p><p>  for(i=0;i<29;i++) //顯示清零</p><p>  { num[i]=0;}</p><p>  TMOD=0x11;</p><p><b>  TH0=0x15;</b></p><p><b>  T

68、L0=0xA0;</b></p><p><b>  P0=0;</b></p><p>  CNT=0; //超聲波發(fā)送關(guān)閉</p><p><b>  CSBIN=1;</b></p><p>  EA=1; //開放

69、總中斷</p><p>  Init_LCD();</p><p><b>  4.2中斷處理程序</b></p><p>  負(fù)責(zé)計算距離是INT0的中斷程序。根據(jù)前面的對超聲接收電路的分析,在超聲波集成模塊接收到超聲波回波信號后,超聲波接收電路就會產(chǎn)生一個低電平送至單片機(jī)的P0.0引腳,使系統(tǒng)中斷,則系統(tǒng)轉(zhuǎn)入中斷處理程序。進(jìn)入中斷處理后,定

70、時器T0和外部中斷0就立即被關(guān)閉,同時讀取時間值,調(diào)用計算距離函數(shù),并給回波接收標(biāo)志位清零即成功接收到回波信號。</p><p><b>  中斷程序如下:</b></p><p>  void zd0() interrupt 1 //T0中斷用來計數(shù)器溢出,超過測距范圍</p><p><b>  {</b>&l

71、t;/p><p>  flag=1; //中斷溢出標(biāo)志</p><p><b>  }</b></p><p>  void zd3() interrupt 3 //T1中斷用來掃描數(shù)碼管和計800 ms啟動模塊</p><p><b>  {</b></p><p

72、><b>  TH1=0xf8;</b></p><p><b>  TL1=0x30;</b></p><p>  Display();</p><p><b>  DIDI();</b></p><p><b>  timer++;</b><

73、;/p><p>  if(timer>=400)</p><p><b>  {</b></p><p><b>  timer=0;</b></p><p>  TX=1; //800 ms啟動一次模塊 </p><p><b>

74、;  _nop_();</b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </

75、b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p>

76、<p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b&

77、gt;  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_();</b></p><p><b>  _nop_(); <

78、;/b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_();</b></p><p><b>  TX=0;</b></p>&l

79、t;p><b>  } </b></p><p><b>  }</b></p><p>  void main(void)</p><p><b>  { </b></p><p>  TMOD=0x11;//設(shè)T0為方式1,GATE=1;</p>

80、<p><b>  TH0=0;</b></p><p>  TL0=0; </p><p>  TH1=0xf8; //2 ms定時</p><p><b>  TL1=0x30;</b></p><p>  ET0=1; //允許T0中斷

81、</p><p>  ET1=1; //允許T1中斷</p><p>  TR1=1; //開啟定時器</p><p>  EA=1; //開啟總中斷</p><p><b>  while(1)</b></p><p><b>  {</b>&

82、lt;/p><p>  while(!RX); //當(dāng)RX為零時等待</p><p>  TR0=1; //開啟計數(shù)</p><p>  while(RX); //當(dāng)RX為1計數(shù)并等待</p><p>  TR0=0; //關(guān)閉計數(shù)</p><p>  Count(); //計算

83、</p><p><b>  } </b></p><p><b>  }</b></p><p>  4.3計算及顯示模塊設(shè)計</p><p>  由于計算公式為S=17×N/100000=0.00017×N(m),可以從中看出如果想要得到具體的距離的值,就只需

84、要得到從超聲波發(fā)送開始到接收到超聲波這個過程中定時器0的計數(shù)的次數(shù)。</p><p>  本設(shè)計中,采用了4位共陽極連接的數(shù)碼管顯示來顯示與障礙物之間的距離,同時數(shù)碼管與P1口連接進(jìn)行動態(tài)的段掃描。由于這個距離值是不斷變化的,所以,這個數(shù)碼管的顯示的過程是在外部中斷0發(fā)生后才進(jìn)行的。 </p><p>  所以當(dāng)主程序給超聲波發(fā)生器發(fā)送了信號后,此時中斷和定時器0就已經(jīng)被打開,并開始計時了

85、。當(dāng)超聲波接收電路接收了到回波信號的同時時,電路便會產(chǎn)生一個低電平到單片機(jī)的P0.0端口,在單片機(jī)檢測到該信號后,定時器計時就將停止,同時定時器的計數(shù)的次數(shù)將被提取出來,這樣就可以得到以m為單位的測量的距離值。</p><p><b>  C程序如下:</b></p><p>  Void Count (void)</p><p><b&

86、gt;  {</b></p><p>  time=TH0*256+TL0;</p><p><b>  TH0=0;</b></p><p><b>  TL0=0;</b></p><p>  //time=23529;</p><p>  S=(time*0

87、.0017); //算出來是m</p><p>  if((S>=7000)||flag==1) //超出測量范圍顯示“-”</p><p><b>  { </b></p><p><b>  flag=0;</b></p><p>  flag_beep=0;</p

88、><p>  disbuff[0]=10; //“-”</p><p>  disbuff[1]=10; //“-”</p><p>  disbuff[2]=10; //“-”</p><p>  disbuff[3]=10; //“-”</p><p><b>  BEEP=1;<

89、;/b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  disbuff[0]=S/1000;</p><p>  disbuff[1]=S/100%

90、10;</p><p>  disbuff[2]=S/10%10;</p><p>  disbuff[3]=S%10;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  4.4作品展示:</b>

91、</p><p><b>  5.設(shè)計總結(jié)</b></p><p>  通過這次畢業(yè)設(shè)計對我來說收獲甚多。剛開始的時候毫無頭緒,在反復(fù)的查閱相關(guān)資料的情況下,慢慢的終于有了大概的思路,但是由于超聲波測距的課題涉及知識面很廣,對于設(shè)計菜鳥來說的我,實在是力不從心。但是在三個月的刻苦學(xué)習(xí)和與老師的幫助下,很快設(shè)計有了眉目,我的作品也慢慢步入正軌。三個月的辛苦是值得的,一個

92、畢業(yè)設(shè)計把我整個大學(xué)期間的知識都用上了,還讓我學(xué)到了很多我沒接觸過的內(nèi)容,讓我受益匪淺,同時也鍛煉了我的動手能力,讓我對超聲波有了更進(jìn)一步的認(rèn)識。</p><p>  本次畢業(yè)設(shè)計,雖然已經(jīng)完成了作品的制作,但是還有很多不完美的地方。經(jīng)過反復(fù)試驗,作品還存在較大的誤差,通過分析可能是以下原因產(chǎn)生的:</p><p> ?。?)環(huán)境的溫度所引起的誤差</p><p>

93、  環(huán)境溫度的影響是本設(shè)計在不同的溫度條件下測量數(shù)據(jù)存在誤差的主要原因,根據(jù)有關(guān)資料,在當(dāng)溫差較大時,前后兩次測距的誤差肯定前后相差也比較大。而本設(shè)計中并沒有溫度補(bǔ)償模塊,由于知識面有限,只能完成超聲波測距的基本功能,希望隨著日后知識面的寬廣,能將作品完成的更加完美。 </p><p>  (2)不同障礙物表面材料的不同介質(zhì)引起的誤差</p><p>  因為表面粗糙的障礙物介質(zhì)要比光滑介

94、質(zhì)的測量結(jié)果要差,如果障礙物的發(fā)射面比較粗糙會引起發(fā)射信號散射開那么回波信號就會減弱,這樣就會導(dǎo)致測量結(jié)果的誤差增大。</p><p> ?。?)超聲波模塊的感應(yīng)角的影響</p><p>  兩個超聲波探頭即發(fā)射探頭和接收探頭和障礙物之間存在一個幾何角度,反射波入射到探頭存在一定的角度,當(dāng)這個角度過大時,這就會造成測量較大的誤差,或者說根本接收不到回波信號。特別是在障礙物的距離較小的時候這

95、個誤差就成為了距離測量的主要誤差的原因,但是這種誤差是可以盡量減小的,利用發(fā)射能力強(qiáng)、散射小的探頭,或者多用幾個探頭。 </p><p>  (4)余波信號的影響</p><p>  在測量時有一部分的聲波是從發(fā)射探頭直接轉(zhuǎn)收到接收探頭的,這部分聲波即是余波信號,這種余波對測量的干擾是挺大的。但是這種干擾能夠通過別的方法進(jìn)行處理,比如軟件算法的方法去消除直達(dá)波的干擾。當(dāng)芯片收到信號波時自動

96、判定收到的超聲波信號是發(fā)射的聲波衍射而返回來的信號時就會自動忽略掉,繼續(xù)去等待檢測在這個工作周期內(nèi)是否有有效反射波反射回來,如果有就進(jìn)行處理,沒有就進(jìn)行新的一次測量。</p><p><b>  參 考 文 獻(xiàn)</b></p><p>  [1] 劉洪恩. 汽車倒車防撞超聲波雷達(dá)的設(shè)計[J]. 儀表技術(shù),2004,15(04):55~60.</p>&l

97、t;p>  [2] 劉典文等. 基于單片機(jī)STC89C51設(shè)計的超聲波測距儀[J]. 中國新技術(shù)信產(chǎn)品,2010,8:16~17.</p><p>  [3] 梁小流,陳炳森,梁建和. 基于89S52汽車防撞雷達(dá)系統(tǒng)設(shè)計[J]. 機(jī)電工程技術(shù),2011,10(4):49~51.</p><p>  [4]胡萍. 超聲波測距儀的研制[J]. 計算機(jī)與現(xiàn)代化,2003,7(10):21~

98、23.</p><p>  [5]時德剛,劉嘩. 超聲波測距的研究[J]. 計算機(jī)測量與控制,2002,9(10):31~33.</p><p>  [6]蘇偉,鞏壁建. 超聲波測距誤差分析[J]. 傳感器技術(shù),2004,3(4):17~20.</p><p>  [7]Tom R. Watt. Cooling our tomorrows economically[

99、J]. ASHRAE Journal,2004,17(4):287~292</p><p>  [8]翟桂榮. 紅外解調(diào)器CX20106A原理與檢修[J]. 家庭電子,1997(7):33~55.</p><p><b>  謝辭</b></p><p>  時光匆匆,轉(zhuǎn)眼間大學(xué)四年就快要過去了,回首四年,我們擁有太多的東西,同時也失去太多。不

100、過無論怎樣,我覺得我變得更加成熟了,對于明天我擁有了更加多的底氣。</p><p>  一路走來,若是沒有你們的幫助,可能現(xiàn)在我將不是現(xiàn)在的我。千言萬語都無法表達(dá)我對那些幫助我的人的感謝之情。真是因為你們的存在,我將會有更多的動力,讓我在大學(xué)四年的時光里能夠拋灑我的青春,讓我從一個懵懂的小孩變成一個成熟的大人。在生活上,這是我們班的同學(xué)的幫助讓我走出一段有一段難熬的時光,也是你們的一個“加油”讓我一次又一次鼓起勇

101、氣向未來挑戰(zhàn),如果沒有你們我的世界將會變得一片灰暗,謝謝你們陪伴了我四年的時光,我相信我們的友誼一定會地久天長;在學(xué)習(xí)上,我要感謝那些幫助過我的老師們,正是你們耐心的講解,才讓我取得今天的成績,當(dāng)然在這次的畢業(yè)設(shè)計中,也是你們一次又一次的提醒和指導(dǎo)才讓我能順利的完成畢業(yè)設(shè)計。</p><p>  我覺得我是一個幸運(yùn)的人,能在生活中遇見到你們。再和你們相處的時光里,我能出你們每個人的身上學(xué)到我自己身上所沒有的東西,

102、真是你們身上的閃光點讓我發(fā)現(xiàn)自己的不足,也真是這樣才不斷的激勵我勇敢的前進(jìn),你們就是我的榜樣,雖然現(xiàn)在的我還有許多不足的地方,但是我還想和你們做一輩子的朋友,能和你們在一起生活我感到很幸福。</p><p>  當(dāng)然最后我還要感謝我可愛的母校,希望你能培養(yǎng)出更多的人才,讓我們的國家變得更加強(qiáng)大。</p><p><b>  系統(tǒng)整體電路圖</b></p>

103、<p><b>  系統(tǒng)整體電路圖</b></p><p><b>  程序代碼</b></p><p>  //超聲波測距系統(tǒng) 12M晶振</p><p>  //#include "REG2051.H"</p><p>  #include <REGx51

104、.H></p><p>  #include <intrins.h></p><p>  //#include "math.h"</p><p>  #define uint unsigned int</p><p>  #define uchar unsigned char</p>&l

105、t;p>  #define LED_Data P0 //定義LED顯示數(shù)據(jù)為P1口</p><p>  #define OFF P3</p><p>  sbit led_1H=P2^7;//定義數(shù)碼管百位 片選</p><p>  sbit led_2H=P2^6;//定義數(shù)碼管十位 片選</p><p>  sbit

106、 led_3H=P2^5;//定義數(shù)碼管個位 片選</p><p>  sbit DQ=P3^4;//18b20定義端口</p><p>  sbit bell=P2^2;</p><p>  sbit Sout=P3^7;//定義超聲波輸出引腳</p><p>  sbit k1=P1^0;//定義按鍵</

107、p><p>  sbit k2=P1^1;</p><p>  sbit k3=P1^2;</p><p>  bit r=0;//18b20存在標(biāo)志位 0為不存在,1為存在</p><p>  bit flag=0;//定義外部中斷1標(biāo)志位</p><p>  bit TO=0;//定義T1中斷1

108、標(biāo)志位</p><p>  bit tu=0;//定義溫度正、負(fù)標(biāo)示位0為正1為負(fù)</p><p>  bit show_temperature=0;</p><p>  uchar T_C;</p><p><b>  uint i;</b></p><p>  uint di

109、s;//定義實形距離變量</p><p>  float speed=346.50; </p><p>  uchar temp[3]={0xF7,0xF7,0xF7};//*- - -*/ 定義顯示暫存區(qū)</p><p><b>  //顯示段代碼表</b></p><p>  uchar code

110、LED0[]={ 0x28,0xEE,0x32,0xA2,0xE4,0xA1,0x21,0xEA,0x20,0xA0,0xF7,};//0~9 -</p><p>  //第一位數(shù)碼管顯示段碼</p><p>  uchar code LED1[]={0x08,0xCE,0x12,0x82,0xC4,0x81,0x01,0xCA,0x00,0x80,}; //0.~9.帶小數(shù)點</p

111、><p><b>  //</b></p><p>  void time_11uS(uint x);//延時11US</p><p>  void LED_T_C(uint x);</p><p>  uint Read_Temperature(void);</p><p>  

112、void write(char wr);//寫1820</p><p>  uint read(void);//讀1820</p><p>  uchar reset(void);//復(fù)位1820</p><p>  //--------------------------------------------測距部分涵數(shù)聲明</p&

113、gt;<p>  void led_display(void);//LED顯示函數(shù)</p><p>  void time(uint x);//延時1mS</p><p>  void Send_40K(void);//輸出20個40k方波函數(shù)</p><p>  void LED_temp(uint x);//顯示轉(zhuǎn)

114、換</p><p>  void TT1(void);//裝入初值</p><p>  uint C_speed(void); //根據(jù)溫度查表取聲速值</p><p>  float Dis_count();//距離計算函數(shù)</p><p>  //--------------------

115、------------------------</p><p>  //--------------------------------------------</p><p><b>  //延時11us</b></p><p>  void time_11uS(uint x)</p><p><b>  

116、{</b></p><p>  for(;x>0;x--);</p><p><b>  }</b></p><p>  //--------------------------------------------</p><p>  uchar reset(void)//復(fù)位1820</

117、p><p><b>  {</b></p><p><b>  r=0;</b></p><p><b>  DQ = 1;</b></p><p>  _nop_();_nop_();</p><p>  DQ = 0; //置低電平<

118、/p><p>  time_11uS(50); // 等待500us</p><p>  DQ = 1; // 置高電平</p><p>  time_11uS(6); // 等待66US</p><p>  while(DQ==0){r=1;}// 讀響應(yīng)</p><p><b>  _n

119、op_();</b></p><p>  return(r); // 返回響應(yīng)值 1=存在, 0 不存在</p><p><b>  }</b></p><p>  //--------------------------------------------</p><p>  void

120、write(char wr)//向總線上寫一個字節(jié)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  for (i=8; i>0; i--) // 寫8位, 一位一位地寫</p><p><b>  {</b

121、></p><p>  DQ = 0; // 設(shè)為低電平,寫開始</p><p>  _nop_();_nop_();_nop_();_nop_();</p><p>  DQ = wr&0x01; //最低位移出</p><p>  time_11uS(6); // 延時66US確保數(shù)據(jù)送出</p

122、><p>  DQ = 1; //停止</p><p>  wr=wr/2; //算法,相當(dāng)于右移1位</p><p><b>  }</b></p><p>  time_11uS(1);</p><p>  } </p><p>  //--

123、------------------------------------------</p><p>  uint read(void)//從總線上讀取2個字節(jié)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  uint v =

124、0;</p><p>  for (i=16;i>0;i--)</p><p><b>  {</b></p><p>  DQ = 0; // 開始信號</p><p>  _nop_();_nop_();</p><p><b>  v>>=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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論