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

下載本文檔

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

文檔簡介

1、<p>  科技學(xué)院2012屆本科畢業(yè)論文</p><p>  基于單片機(jī)的超聲波測距儀</p><p>  專 業(yè):電子信息科學(xué)與技術(shù)</p><p>  指導(dǎo)教師: 陽明慶 </p><p>  學(xué)生姓名: 劉穎 </p><p>  學(xué)生學(xué)號(hào): 08

2、2004110349 </p><p><b>  中國﹒貴州﹒貴陽</b></p><p><b>  2012年5月</b></p><p><b>  目錄</b></p><p><b>  目錄I</b></p><p&

3、gt;<b>  摘要III</b></p><p>  AbstractIV</p><p><b>  第一章 緒論1</b></p><p><b>  1.1 引言1</b></p><p>  1.1.1 設(shè)計(jì)的應(yīng)用前景1</p><

4、;p>  1.1.2 課題研究的意義1</p><p><b>  1.2 概述2</b></p><p>  1.2.1 單片機(jī)應(yīng)用系統(tǒng)概述2</p><p>  1.2.2 超聲波測距系統(tǒng)概述2</p><p>  1.3 本設(shè)計(jì)主要要求3</p><p>  第二章

5、 超聲波測距原理4</p><p>  2.1 超聲波的基本理論4</p><p>  2.2 超聲波測距系統(tǒng)原理4</p><p>  2.2.1 超聲波傳感器4</p><p>  2.2.2 超聲波測距的方案5</p><p>  第三章 總體設(shè)計(jì)方案8</p><p&

6、gt;  3.1 超聲波測距系統(tǒng)電路總體設(shè)計(jì)方案8</p><p>  3.2 超聲波發(fā)射和接收電路的設(shè)計(jì)9</p><p>  3.2.1 超聲波發(fā)射電路9</p><p>  3.2.2 超聲波接收電路10</p><p>  3.2.3 顯示電路11</p><p>  3.3 主電路原理圖

7、11</p><p>  第四章 系統(tǒng)軟件設(shè)計(jì)13</p><p>  4.1 主程序流程13</p><p>  4.2 子程序設(shè)計(jì)14</p><p>  4.2.1 發(fā)送中斷子程序14</p><p>  4.2.2 距離計(jì)算子程序16</p><p>  第五章

8、軟件調(diào)試及系統(tǒng)仿真17</p><p>  5.1 軟件編譯調(diào)試環(huán)境17</p><p>  5.2 工程文件的建立、設(shè)置與目標(biāo)文件的獲得17</p><p>  5.2.1 Keil工程的建立17</p><p>  5.2.2 工程的詳細(xì)設(shè)置19</p><p>  5.2.3 編譯、連接20

9、</p><p>  5.3 系統(tǒng)仿真21</p><p>  5.3.1 Proteus工作界面21</p><p>  5.3.2 Proteus原理圖的繪制22</p><p>  5.3.3 仿真22</p><p>  5.4 誤差及特性分析24</p><p> 

10、 第六章 后續(xù)研究工作25</p><p><b>  參考文獻(xiàn)26</b></p><p><b>  附錄27</b></p><p>  附錄一 系統(tǒng)原理圖27</p><p>  附錄二 系統(tǒng)PCB板圖28</p><p>  附錄三 源程序28&

11、lt;/p><p>  附錄四 元器件清單34</p><p><b>  致謝35</b></p><p>  基于單片機(jī)的超聲波測距儀</p><p><b>  摘要</b></p><p>  利用超聲波測距原理,出于低成本、高精度的目的,提出了一種基于AT89S5

12、2的超聲波倒車?yán)走_(dá)系統(tǒng)的設(shè)計(jì)方案。硬件部分采用AT89S52單片機(jī)作為控制器,主要有超聲波發(fā)射電路、超聲波接收電路、溫度檢測電路、LED顯示電路和報(bào)警電路。在分析超聲波測距原理的基礎(chǔ)上,給出了實(shí)現(xiàn)超聲波倒車?yán)走_(dá)系統(tǒng)的硬件設(shè)計(jì)電路圖和軟件設(shè)計(jì)流程圖。該系統(tǒng)測量精度為1cm,測量范圍為0.50-4.00m,完全能夠滿足各類實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)要求。</p><p>  整個(gè)硬件電路由超聲波發(fā)射電路、超聲波接收電路、電源電路

13、、顯示電路等模塊組成。各探頭的信號(hào)經(jīng)單片機(jī)綜合分析處理,實(shí)現(xiàn)超聲波測距儀的各種功能。在此基礎(chǔ)上設(shè)計(jì)了系統(tǒng)的總體方案,最后通過硬件和軟件實(shí)現(xiàn)了各個(gè)功能模塊。相關(guān)部分附有硬件電路圖、程序流程圖,給出了系統(tǒng)構(gòu)成、電路原理及程序設(shè)計(jì)。此系統(tǒng)具有易控制、工作可靠、測距準(zhǔn)確度高、可讀性強(qiáng)和流程清晰等優(yōu)點(diǎn)。實(shí)現(xiàn)后的作品可用于需要測量距離參數(shù)的各種應(yīng)用場合。</p><p>  關(guān)鍵字:單片機(jī);超聲波;測距 </p>

14、<p>  Ultrasonic Wave Range Finder Based On SCM</p><p><b>  Abstract</b></p><p>  Use of ultrasonic distance measurement principle, due to low cost, high accuracy, proposed on

15、e kind based on the AT89S52ultrasonic reversing radar of the system design. The hardware part of the single-chip microcomputer as the controller by using AT89S52, mainly of ultrasonic transmitting circuit, receiving circ

16、uit, temperature detection circuit, LED display circuit and alarm circuit. On the analysis of the principle of ultrasonic distance measurement based on, given the realization of ultrasoni</p><p>  The entire

17、 hardware circuit is composed by ultrasonic transmitter circuit, ultrasonic receiver circuit, the power circuit, display circuit, and other modules. The probe signals are integrated analysis by SCM to achieve the various

18、 functions of ultrasonic distance measurement instrument. This has designed system's overall concept based on, final adoption of hardware and software to achieve the various functional modules. The relevant parts hav

19、e the hardware schematics and process flow chart.It ha</p><p>  Keywords:SCM,Ultrasonic wave,Distance measurement</p><p><b>  第一章 緒論</b></p><p><b>  1.1 引言</b

20、></p><p>  1.1.1 設(shè)計(jì)的應(yīng)用前景</p><p>  目前國內(nèi)一般使用專用集成電路設(shè)計(jì)超聲波測距儀,但是專用集成電路的成本很高,并且顯示距離也比較困難,操作使用也不是很方便。而本設(shè)計(jì)研究的測距儀成本低廉,性能優(yōu)良,市場前景極為廣闊。在整個(gè)倒車過程中自動(dòng)測量車尾到最近障礙物的距離,并用數(shù)字顯示出來,在倒車到極限距離時(shí)會(huì)發(fā)出警告聲,提醒駕駛員注意剎車。本設(shè)計(jì)可望成為駕

21、駛員特別是貨車以及公共汽車駕駛員的好幫手,可有效的減少和避免那些視野不良的大型汽車,如集裝箱車、載貨車、公共汽車等倒車交通事故。</p><p>  隨著科學(xué)技術(shù)的快速發(fā)展,超聲波將在傳感器中的應(yīng)用越來越廣。但就目前技術(shù)水平來說,人們可以具體利用的傳感技術(shù)還十分有限,因此,這是一個(gè)正在蓬勃發(fā)展而又有無限前景的技術(shù)及產(chǎn)業(yè)領(lǐng)域。展望未來,超聲波傳感器作為一種新型的非常重要有用的工具在各方面都將有很大的發(fā)展空間,它將朝

22、著更加高定位高精度的方向發(fā)展,以滿足日益發(fā)展的社會(huì)需求,如聲納的發(fā)展趨勢基本為:研制具有更高定位精度的被動(dòng)測距聲納,以滿足水中武器實(shí)施全隱蔽攻擊的需要;繼續(xù)發(fā)展采用低頻線譜檢測的潛艇拖曳線列陣聲納,實(shí)現(xiàn)超遠(yuǎn)程的被動(dòng)探測和識(shí)別;研制更適合于淺海工作的潛艇聲納,特別是解決淺海水中目標(biāo)識(shí)別問題。毋庸置疑,未來的超聲波傳感器將與自動(dòng)化智能化接軌,與其他的傳感器集成和融合,形成多傳感器。隨著傳感器的技術(shù)進(jìn)步,傳感器將從具有單純判斷功能發(fā)展到具有學(xué)

23、習(xí)功能,最終發(fā)展到具有創(chuàng)造力。</p><p>  1.1.2 課題研究的意義</p><p>  在現(xiàn)實(shí)生活中,一些傳統(tǒng)的距離測量方式在某些特殊場合存在不可克服的缺陷,例如,液面測量就是一個(gè)距離測量,傳統(tǒng)的電極法是采用差位分布電極,通過給電或脈沖檢測液面,電極長期浸泡在水中或其它液體中,極易被腐蝕、電解,從而失去靈敏性。而利用超聲波測量距離可以很好地解決這一問題。目前市面上常見的超聲波

24、測距系統(tǒng)不僅價(jià)格昂貴,體積過大而且精度也不高等種種因素,使得在一些中小規(guī)模的應(yīng)用領(lǐng)域中難以得到廣泛的應(yīng)用。為解決這一系列難題,本文設(shè)計(jì)了一款基于AT89S52單片機(jī)的低成本、高精度、微型化的超聲波測距儀。</p><p><b>  1.2 概述</b></p><p>  1.2.1 單片機(jī)應(yīng)用系統(tǒng)概述</p><p>  單片機(jī)的出現(xiàn)及

25、發(fā)展使計(jì)算機(jī)技術(shù)從通用型數(shù)值計(jì)算領(lǐng)域進(jìn)入到智能化的控制領(lǐng)域。從此,計(jì)算機(jī)技術(shù)在兩個(gè)重要領(lǐng)域——通用計(jì)算機(jī)領(lǐng)域和嵌入式計(jì)算機(jī)領(lǐng)域都得到了極其重要的發(fā)展,并正在深深地改變著我們的社會(huì)。</p><p>  單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)包括單片機(jī)基本擴(kuò)展、外圍電路設(shè)計(jì)和程序設(shè)計(jì)、單片機(jī)應(yīng)用系統(tǒng)開發(fā)環(huán)境、系統(tǒng)可靠性設(shè)計(jì)、電磁兼容性設(shè)計(jì)等內(nèi)容。通常開發(fā)一個(gè)單片機(jī)系統(tǒng)的步驟如圖1.1所示:</p><p> 

26、 圖1.1 技術(shù)路線</p><p>  1.2.2 超聲波測距系統(tǒng)概述</p><p>  隨著社會(huì)的發(fā)展,人們對距離或長度測量的要求越來越高。目前測量距離可以采用波在介質(zhì)中的傳播速度和時(shí)間關(guān)系進(jìn)行測量。常用的技術(shù)主要有激光測距、微波雷達(dá)測距和超聲波測距三種。激光和雷達(dá)測距儀造價(jià)偏高,不利于廣泛的普及應(yīng)用,在某些應(yīng)用領(lǐng)域有其局限性。超聲波測距由于其能進(jìn)行非接觸測量和相對較高的精度,越

27、來越被人們所重視。展望未來,超聲波測距儀作為一種新型的非常有用的工具在各方面都將有很大的發(fā)展空間,它將朝著更高定位、更高精度的方向發(fā)展,以滿足日益發(fā)展的社會(huì)需求。</p><p>  由于超聲波具有指向性好、能量損耗低、傳播距離較遠(yuǎn)、不易受外界環(huán)境影響和對被測目標(biāo)無損害等特點(diǎn),利用超聲波測量距離就可以解決傳統(tǒng)測量方法中遇到的問題。利用超聲波檢測往往比較迅速、方便、計(jì)算簡單、易于做到實(shí)時(shí)控制,并且在測量精度方面能達(dá)

28、到工業(yè)實(shí)用的要求,因此超聲波測量距離技術(shù)在工業(yè)控制、勘探測量、機(jī)器人定位和安全防范等領(lǐng)域得到了廣泛的應(yīng)用。</p><p>  超聲波測距電路可以由傳統(tǒng)的模擬或者數(shù)字電路構(gòu)建,但是基于這些傳統(tǒng)電路構(gòu)建的系統(tǒng)往往可靠性差,調(diào)試?yán)щy,可擴(kuò)展性差,所以基于單片機(jī)的超聲波測距系統(tǒng)被廣泛的應(yīng)用。通過簡單的外圍電路發(fā)生和接收超聲波,單片機(jī)通過采樣獲取到超聲波的傳播時(shí)間,用軟件來計(jì)算出距離,并且可以采集環(huán)境溫度進(jìn)行測距補(bǔ)償,其

29、測量電路小巧,精度高,反映速度快,可靠性好。</p><p>  超聲波測距適用于高精度的中長距離測量,超聲波在標(biāo)準(zhǔn)空氣中的傳播速度為331.45m/s,由單片機(jī)計(jì)時(shí),單片機(jī)使用12.0MHz晶振,所以此系統(tǒng)的測量精度在理論上可以達(dá)到毫米級。本文設(shè)計(jì)的倒車?yán)走_(dá)系統(tǒng)就是利用超聲波的上述特性做到對倒車距離實(shí)時(shí)和高精度的檢測,同時(shí),此系統(tǒng)成本低、設(shè)計(jì)簡單、精度和穩(wěn)定性好,有望得到廣泛的應(yīng)用,從而減少交通事故的發(fā)生[1]

30、。</p><p>  1.3 本設(shè)計(jì)主要要求</p><p>  1.設(shè)計(jì)一個(gè)以單片機(jī)為核心的超聲波測距儀,可以應(yīng)用于汽車倒車、工業(yè)現(xiàn)場的位置監(jiān)控;</p><p>  2.測量范圍在0.50~4.00m,測量精度1cm;</p><p>  3.測量時(shí)與被測物無直接接觸,能夠清晰穩(wěn)定地顯示測量結(jié)果。</p><p&g

31、t;  第二章 超聲波測距原理</p><p>  2.1 超聲波的基本理論</p><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)效率特別具有潛在能力。因此,我國對超聲波的研究特別活躍

32、。</p><p>  大家都知道,當(dāng)物體振動(dòng)時(shí)會(huì)發(fā)出聲音??茖W(xué)家們將每秒鐘振動(dòng)的次數(shù)稱為聲音的頻率,它的單位是赫茲。我們?nèi)祟惗淠苈牭降穆暡l率為20~20000赫茲。當(dāng)聲波的振動(dòng)頻率大于20000赫茲或小于20赫茲時(shí),我們便聽不見了。因此,我們把頻率高于20000赫茲的聲波稱為“超聲波”。通常用于醫(yī)學(xué)診斷的超聲波頻率為1~5兆赫。超聲波具有方向性好,穿透能力強(qiáng),易于獲得較集中的聲能,在水中傳播距離遠(yuǎn)等特點(diǎn)。可

33、用于測距,測速,清洗,焊接,碎石等。在醫(yī)學(xué),軍事,工業(yè),農(nóng)業(yè)上有明顯的作用[3]。</p><p>  理論研究表明,在振幅相同的條件下,一個(gè)物體振動(dòng)的能量與振動(dòng)頻率成正比,超聲波在介質(zhì)中傳播時(shí),介質(zhì)質(zhì)點(diǎn)振動(dòng)的頻率很高,因而能量很大。在我國北方干燥的冬季,如果把超聲波通入水罐中,劇烈的振動(dòng)會(huì)使罐中的水破碎成許多小霧滴,再用小風(fēng)扇把霧滴吹入室內(nèi),就可以增加室內(nèi)空氣濕度。這就是超聲波加濕器的原理。對于咽喉炎、氣管炎等

34、疾病,藥品很難血流到打患病的部位。利用加濕器的原理,把藥液霧化,讓病人吸入,能夠療效。利用超聲波巨大的能量還可以使人體內(nèi)的結(jié)石做劇烈的受迫振動(dòng)而破碎。</p><p>  2.2 超聲波測距系統(tǒng)原理</p><p>  2.2.1 超聲波傳感器</p><p>  總體上講,超聲波發(fā)生器可以分為兩大類:一類是用電氣方式產(chǎn)生超聲波,一類是用機(jī)械方式產(chǎn)生超聲波。電氣

35、方式包括壓電型、磁致伸縮型和電動(dòng)型等;機(jī)械方式有加爾統(tǒng)笛、液哨和氣流旋笛等。他們所產(chǎn)生的超聲波的頻率、功率和聲波特性各不相同,因而用途也各不相同。目前較為常用的是壓電式超聲波發(fā)生器。</p><p>  壓電式超聲波發(fā)生器實(shí)際上是利用壓電晶體的諧振來工作的。它有兩個(gè)壓電晶片和一個(gè)共振板。當(dāng)它的兩極外加脈沖信號(hào),其頻率等于壓電晶片的固有振蕩頻率時(shí),壓電晶片將會(huì)發(fā)生共振,并帶動(dòng)共振板振動(dòng),便產(chǎn)生超聲波。反之,如果兩極

36、間未外加電壓,當(dāng)共振板接收到超聲波時(shí),將壓迫壓電晶片作振動(dòng),將機(jī)械能轉(zhuǎn)換為電信號(hào),這時(shí)它就成為超聲波接收器了,超聲波傳感器結(jié)構(gòu)如圖2.1、圖2.2所示:</p><p>  圖2.1 超聲波傳感器外部結(jié)構(gòu) 圖2.2 超聲波傳感器內(nèi)部結(jié)構(gòu) </p><p>  2.2.2 超聲波測距的方案</p><p>  超聲波測距方法主要有三種:&l

37、t;/p><p>  1.相位檢測法:精度高,但檢測范圍有限;</p><p>  2.聲波幅值檢測法:易受反射波的影響;</p><p>  3.渡越時(shí)間法:工作方式簡單,直觀,在硬件控制和軟件設(shè)計(jì)上都容易實(shí)現(xiàn),其原理為:檢測從發(fā)射傳感器發(fā)射的超聲波經(jīng)氣體介質(zhì)傳播到接收傳感器的時(shí)間t,這個(gè)時(shí)間就是渡越時(shí)間,然后求出距離l。設(shè)l為測量距離,t為往返時(shí)間差,超聲波的傳播速

38、度為c,則有l(wèi)=ct/2。綜合以上分析,本設(shè)計(jì)將采用渡越時(shí)間法,如圖2.3所示:</p><p>  圖2.3 測距原理</p><p>  由于超聲波也是一種聲波,其聲速c與空氣溫度有關(guān),一般來說,溫度每升高1攝氏度,聲速增加0.6米/秒。如表2.1列出了幾種溫度下的聲速:</p><p>  表2.1 聲速與溫度的關(guān)系表</p><p&g

39、t;  在使用時(shí),如果溫度變化不大,則可認(rèn)為聲速c是基本不變的,計(jì)算時(shí)取c為340m/s。如果測距精度要求很高,則可通過改變硬件電路增加溫度補(bǔ)償電路的方法或者在硬件電路基本不變的情況下通過軟件改進(jìn)算法的方法來加以校正。</p><p>  在本系統(tǒng)中利用AT89S52中的定時(shí)器測量超聲波傳播時(shí)間,利用DS18B20測量環(huán)境溫度,從而提高測距精度。空氣中聲速與溫度的關(guān)系可表示為如下公式:</p>&l

40、t;p>  聲速確定后,只要測得超聲波往返的時(shí)間,即可求得距離:l=1/2(331.4+0.6T)t。(系統(tǒng)中應(yīng)用該式進(jìn)行溫度補(bǔ)償)</p><p>  如果為了進(jìn)一步提高測量精度,本設(shè)計(jì)中將根據(jù)需要利用軟件方式增加角度補(bǔ)償?shù)脑O(shè)計(jì):。(系統(tǒng)中應(yīng)用該式進(jìn)行角度補(bǔ)償)[5]</p><p>  超聲波是利用反射的原理測量距離的,被測距離一端為超聲波傳感器,另一端必須有能反射超聲波的物體。

41、測量距離時(shí),將超聲波傳感器對準(zhǔn)反射物發(fā)射超聲波,并開始計(jì)時(shí),超聲波在空氣中傳播到達(dá)障礙物后被反射回來,傳感器接收到反射脈沖后立即停止計(jì)時(shí),然后根據(jù)超聲波的傳播速度和計(jì)時(shí)時(shí)間就能計(jì)算出兩端的距離。測量距離D為:</p><p>  式中:c——超聲波的傳播速度;</p><p>  ——超聲波發(fā)射到接收所需時(shí)間的一半,也就是單程傳播時(shí)間。</p><p>  由上式可

42、出,距離的測量精度主要取決于計(jì)時(shí)精度和傳播速度兩方面。計(jì)時(shí)精度由單片機(jī)定時(shí)器決定,定時(shí)時(shí)間為機(jī)器周期與計(jì)數(shù)次數(shù)的乘積,可選用12MHz的晶振,使機(jī)器周期為精確的1µs,不會(huì)產(chǎn)生累積誤差,使定時(shí)間達(dá)到1µs。超聲波的傳播速度c并不是固定不變的,傳播速度受空氣密度、溫度和氣體分子成分的影響,關(guān)系式為:</p><p>  式中:γ——?dú)怏w定壓熱容與定容熱容的比值,空氣為1.40。</p>

43、;<p>  R——?dú)怏w普適常數(shù),為8.314kg/mol。</p><p>  T——?dú)怏w勢力學(xué)溫度,與攝氏溫度的關(guān)系是T=273K+t。</p><p>  M——?dú)怏w相對分子質(zhì)量,空氣為28.8×10-3kg/mol。</p><p>  c0——0℃時(shí)的聲波速度,為331.4m/s。</p><p>  由上式

44、可見,超聲波在空氣中傳播時(shí),受溫度影響最大,由表達(dá)式可計(jì)算出波速與溫度的關(guān)系,如表2.1所示。溫度越高,傳播速度越快,而且不同溫度下傳播速度差別非常大,例如0℃時(shí)的速度為332m/s,30℃時(shí)的速度為350m/s,相差18m/s。因此,需要較高的測量精度時(shí),進(jìn)行溫度補(bǔ)償是最有效的措施。對測量精度要求不高時(shí),可認(rèn)為超聲波在空氣中的傳播速度為340m/s。[4]</p><p>  第三章 總體設(shè)計(jì)方案</p

45、><p>  3.1 超聲波測距系統(tǒng)電路總體設(shè)計(jì)方案</p><p>  本系統(tǒng)硬件部分由AT89S52控制器、超聲波發(fā)射電路及接收電路、聲音報(bào)警電路和LED顯示電路組成。當(dāng)使用時(shí),發(fā)射和接收電路工作,經(jīng)過AT89S52數(shù)據(jù)處理將距離也顯示到LED上,如果距離小于設(shè)定值時(shí),報(bào)警電路會(huì)鳴叫,提醒注意距離。超聲波測距器的系統(tǒng)框圖如圖3.1所示:</p><p>  圖3.

46、1 系統(tǒng)設(shè)計(jì)總框圖</p><p>  由單片機(jī)AT89S52編程產(chǎn)生10us以上的高電平,由指定引腳輸出,就可以在指定接收口等待高電平輸出。一旦有高電平輸出,即在模塊中經(jīng)過放大電路,驅(qū)動(dòng)超聲波發(fā)射探頭發(fā)射超聲波。發(fā)射出去的超聲波經(jīng)障礙物反射回來后,由超聲波接收頭接收到信號(hào),通過接收電路的處理,指定接收口即變?yōu)榈碗娖?,讀取單片機(jī)中定時(shí)器的值。單片機(jī)利用聲波的傳播速度和發(fā)射脈沖到接收反射脈沖的時(shí)間間隔計(jì)算出障礙物

47、的距離,并由單片機(jī)控制顯示出來。</p><p>  由如圖3.2所示可以看出,超聲波測距模塊的發(fā)射端在T0時(shí)刻發(fā)射方波,同時(shí)啟動(dòng)定時(shí)器開始計(jì)時(shí),當(dāng)收到回波后,產(chǎn)生一負(fù)跳變到單片機(jī)中斷口,單片機(jī)響應(yīng)中斷程序,定時(shí)器停止計(jì)數(shù)[6]。計(jì)算時(shí)間差,即可得到超聲波在媒介中傳播的時(shí)間t,由此便可計(jì)算出距離。</p><p><b>  圖3.2 時(shí)序圖</b></p&g

48、t;<p>  3.2 超聲波發(fā)射和接收電路的設(shè)計(jì)</p><p>  分立元件構(gòu)成的發(fā)射和接收電路容易受到外界的干擾,體積和功耗也比較大。而集成電路構(gòu)成的發(fā)射和接收電路具有調(diào)試簡單,可靠性好,抗干擾能力強(qiáng),體積小,功耗低的優(yōu)點(diǎn),所以優(yōu)先采用集成電路來設(shè)計(jì)收發(fā)電路。[7]</p><p>  3.2.1 超聲波發(fā)射電路</p><p>  超聲波發(fā)

49、射電路包括超聲波產(chǎn)生電路和超聲波發(fā)射控制電路兩部分,可采用軟件發(fā)生法和硬件方法產(chǎn)生超聲波。在超聲波的發(fā)射電路的設(shè)計(jì)中,我們采用電路結(jié)構(gòu)簡單的集成電路構(gòu)成發(fā)射電路,如圖3.3所示:</p><p>  圖3.3 由反相器構(gòu)成的超聲波發(fā)射電路</p><p>  圖3.3是由反相器74HC04構(gòu)成的發(fā)射電路,用反相器74HC04構(gòu)成的電路簡單,調(diào)試容易,易通過軟件控制。單片機(jī)輸出的方波經(jīng)過反

50、相器接到發(fā)射器T1的兩極,用圖中的推挽形式將方波信號(hào)加到發(fā)射器T1兩端,可以提高發(fā)射器T1的發(fā)射強(qiáng)度。圖中把兩個(gè)非門的輸出接到一起的目的是為了提高其吸入電流,電路驅(qū)動(dòng)能力提高。74HC04是一個(gè)高速CMOS六反相器,具有對稱的傳輸延遲和轉(zhuǎn)換時(shí)間,而相對于LSTTL邏輯IC,它的功耗減少很多。另外,上拉電阻R1、R2一方面可以提高反相器74HC04輸出高電平的驅(qū)動(dòng)能力,另一方面可以增加發(fā)射器T1的阻尼效果,縮短其自由振蕩的時(shí)間。</

51、p><p>  3.2.2 超聲波接收電路</p><p>  如圖3.4是由CX20106A構(gòu)成的接收電路,在實(shí)物的制作過程中,我們將用CX20106A這一型號(hào)代替。CX20106A是索尼公司生產(chǎn)的彩電專用紅外遙控接收器,是CX20106的改進(jìn)型,也可用于超聲波測試,有較強(qiáng)的抗干擾性和靈敏度。CX20106A采用單列8腳直插式,超小型封裝,+5V供電。管腳1是超聲波信號(hào)輸入端,其輸入阻抗約

52、為40K;管腳2的R1、C4決定接收器R的總增益,增大電阻R1或減小電容C4,將使放大倍數(shù)下降,負(fù)反饋量增大,電容C4的改變會(huì)影響到頻率特性,實(shí)際使用中一般不改動(dòng);管腳3與GND之間連接檢波電容C2,考慮到檢波輸出的脈沖寬度變動(dòng)大,推薦參數(shù)為3.3uF;管腳5上的電阻R2用以設(shè)置帶通濾波器的中心頻率,阻值越大,中心頻率越低,取R2=200K時(shí),中心頻率約為42KHZ;管腳6與GND之間接入一個(gè)積分電容C3,電容值越大,探測距離越短;管腳

53、7是遙控命令輸出端,它是集電極開路的輸出方式,因此該引腳必須接上一個(gè)上拉電阻到電源端,沒接收信號(hào)時(shí),該端輸出為高電平,有信號(hào)時(shí)則會(huì)下降;管腳8接+5V電源。</p><p>  圖3.4 CX20106構(gòu)成的接收電路</p><p>  經(jīng)過試驗(yàn)后發(fā)現(xiàn)用單片機(jī)發(fā)40 kHz信號(hào)與使用CX20106A的電路搭配更加簡單合理,使得時(shí)間的計(jì)算更為精確。</p><p>

54、  該系統(tǒng)的超聲波接收模塊是由超聲波接收探頭和紅外線接收處理芯片CX20106A組成。超聲波接收子程序的流程是,利用INT0中斷檢測回波信號(hào),若有回波信號(hào)(INT0口低電平)就關(guān)閉外部中斷,同時(shí)停止計(jì)時(shí)器的計(jì)時(shí),將測距成功標(biāo)志位標(biāo)記為1(測距成功),同時(shí)提取時(shí)間值,計(jì)算待測距離,保存最終結(jié)果后打開外部中斷,等待下次測量。</p><p>  綜合以上的分析,在由集成電路構(gòu)成的接收和發(fā)射電路中,發(fā)射電路我們選用由反

55、相器構(gòu)成的電路,接收電路采用由紅外接收檢波芯片CX20106A構(gòu)成,主要是考慮到系統(tǒng)的調(diào)試簡單,成本低以及可靠性好[3]。</p><p>  3.2.3 顯示電路</p><p>  顯示電路如圖3.5,四位LED組成動(dòng)態(tài)掃描電路,由AT89S52的P0口輸出。動(dòng)態(tài)掃描時(shí),由P2口控制LED的當(dāng)前顯示位。當(dāng)距離測量結(jié)束并調(diào)用顯示程序,就會(huì)顯示距離大小,顯示兩位小數(shù)。當(dāng)按下按鍵k2時(shí),將

56、會(huì)顯示溫度值,延時(shí)5s后恢復(fù)顯示距離值。</p><p>  圖3.5 顯示電路</p><p>  3.3 主電路原理圖</p><p>  該系統(tǒng)主電路原理圖如圖3.6所示,單片機(jī)采用AT89S52,單片機(jī)使用外部時(shí)鐘源,外接6MHZ的晶振,由P0.0口直接輸出40 KHZ的驅(qū)動(dòng)信號(hào)給放大電路。接收到回波后,經(jīng)由CX20106A的濾波,產(chǎn)生中斷信號(hào),并由p3

57、.2口輸出進(jìn)行中斷。顯示電路采用簡單實(shí)用的3位數(shù)碼管,連接單片機(jī)AT89S52的P0口,而三極管連接P2口,作數(shù)碼管的位選。工作時(shí),首先將系統(tǒng)初始化,啟動(dòng)計(jì)時(shí)器。并由P0.0腳發(fā)出40KHZ的驅(qū)動(dòng)信號(hào),同時(shí)打開INT0中斷,并且開始等待接收到的回波和中斷信號(hào),若接收到回波(單片機(jī)接收到中斷信號(hào)),計(jì)時(shí)器停止計(jì)時(shí),保存時(shí)間信息,并且根據(jù)溫度補(bǔ)償計(jì)算出當(dāng)前環(huán)境下的聲速,計(jì)算出當(dāng)前待測距離后儲(chǔ)存,并調(diào)用顯示子程序。測出距離后結(jié)果將以十進(jìn)制BC

58、D碼方式傳送到LED顯示,然后再發(fā)超聲波脈沖重復(fù)測量過程。</p><p>  圖3.6 電流原理圖</p><p>  第四章 系統(tǒng)軟件設(shè)計(jì)</p><p>  4.1 主程序流程</p><p>  我們知道C語言程序有利于實(shí)現(xiàn)較復(fù)雜的算法,匯編語言程序則具有較高的效率且容易精細(xì)計(jì)算程序運(yùn)行的時(shí)間,而超聲波測距儀的程序既有較復(fù)雜的計(jì)

59、算(計(jì)算距離時(shí)),又要求精細(xì)計(jì)算程序運(yùn)行時(shí)間(超聲波測距時(shí)),所以控制程序可采用C語言和匯編語言混合編程。</p><p>  因?yàn)楸驹O(shè)計(jì)對時(shí)間要求精度較高的部分全部由單片機(jī)內(nèi)部的定時(shí)器完成,而雖然溫度傳感器的讀寫對時(shí)間精度要求也高,但經(jīng)詳細(xì)計(jì)算所得出的C程序已被廣泛應(yīng)用,故直接借用已有程序也能作到對溫度的準(zhǔn)確讀取,所心本設(shè)計(jì)全部使用C語言編程,這樣能使設(shè)計(jì)中所用到的公式能方便快捷的體現(xiàn)和實(shí)現(xiàn),又縮短了論文的篇幅

60、。</p><p>  軟件采用模塊化設(shè)計(jì)方法,由主程序、超聲波發(fā)生子程序、超聲波接收中斷子程序、溫度測量子程序、距離計(jì)算子程序、顯示子程序等模塊組成。[8]</p><p>  圖4.1為主程序流程圖。</p><p>  系統(tǒng)上電后,首先系統(tǒng)初始化,不斷掃描按鍵k1,若按鍵k1按下,則開始測量空氣溫度,然后將P1.0置位,使定時(shí)器T0開始定時(shí),控制超聲波傳感器發(fā)

61、出超聲波,同時(shí)使定時(shí)器T1開始定時(shí)。CPU循環(huán)檢測P3.3引腳,當(dāng)P3.3為低電平時(shí)接收到回波,立即使T1停止工作,保存定時(shí)器的計(jì)數(shù)值。</p><p>  然后根據(jù)溫度和傳輸時(shí)間計(jì)算距離,溫度補(bǔ)償措施使測量精度有了明顯提高,計(jì)算出距離后調(diào)用距離顯示子程序,LED顯示距離。</p><p>  最后檢測按鍵k2,若k2閉合,則調(diào)用溫度顯示子程序,LED顯示溫度(溫度并非測量距離時(shí)用于補(bǔ)償?shù)?/p>

62、溫度,而是當(dāng)前溫度)5s后恢復(fù)顯示本次測量距離;若按鍵k2沒有閉合,則顯示器恒定顯示最新一次的測量結(jié)果;若要進(jìn)行下一次測量,則先要按下k3重新開始,再按下按鍵k1才執(zhí)行新一次測量。由于不需輸入數(shù)據(jù),鍵盤只設(shè)置了3個(gè)按鍵,用于開始測量距離并顯示溫度功能設(shè)置等。</p><p>  圖4.1 主程序流</p><p>  4.2 子程序設(shè)計(jì)</p><p>  4.

63、2.1 發(fā)送中斷子程序</p><p>  超聲波發(fā)生子程序的作用是通過P1.0端口發(fā)送左右超聲波脈沖信號(hào)(頻率約40kHz的方波),脈沖寬度為12μs左右,同時(shí)把計(jì)數(shù)器T1打開進(jìn)行計(jì)時(shí),定時(shí)器T1工作在方式0。</p><p>  超聲波測距儀主程序利用外中斷1檢測返回超聲波信號(hào),一旦接收到返回超聲波信號(hào)(即引腳出現(xiàn)低電平),立即進(jìn)入中斷程序。進(jìn)入中斷后就立即關(guān)閉計(jì)時(shí)器T1停止計(jì)時(shí),并

64、將測距成功標(biāo)志字賦值1。如果當(dāng)計(jì)時(shí)器溢出時(shí)還未檢測到超聲波返回信號(hào),則定時(shí)器T1溢出中斷將外中斷1關(guān)閉,并將測距成功標(biāo)志字賦值0表示此次測距不成功。</p><p>  T0中斷服務(wù)程序如下:</p><p>  sbit send=P1^0;</p><p>  void timer0(void)interrupt 1 </p><p> 

65、 { send=!send;</p><p><b>  TH0=0x1f;</b></p><p><b>  TL0=0xf4;</b></p><p><b>  }</b></p><p>  超聲波接收(外部中斷1)程序:</p><p>

66、  void int1(void)interrupt 2 </p><p>  { if(TH1!=0x00&&TH0!=0x00)</p><p><b>  { b=1;</b></p><p><b>  TR1=0;</b></p><p><b>  TR0

67、=0;</b></p><p>  t=TH1*256+TL1;</p><p>  t=t/1000000;</p><p><b>  TH0=0x1f;</b></p><p><b>  TL0=0xf4;</b></p><p><b>  T

68、H1=0x00;</b></p><p><b>  TL1=0x00;</b></p><p><b>  }</b></p><p><b>  else </b></p><p><b>  { b=0;</b></p>

69、<p><b>  TR1=0;</b></p><p><b>  TR0=0;</b></p><p><b>  TH0=0x1f;</b></p><p><b>  TL0=0xf4;</b></p><p><b>  T

70、H1=0x00;</b></p><p><b>  TL1=0x00;</b></p><p><b>  } }</b></p><p>  4.2.2 距離計(jì)算子程序</p><p>  當(dāng)前溫度和超聲波往返時(shí)間均測量出來后,用C語言根據(jù)公式計(jì)算距離來編程是比較簡單的算法。&

71、lt;/p><p>  根據(jù)測量距離,而其中,故可簡化為:,其實(shí)現(xiàn)程序算法如下:</p><p>  #include<math.h></p><p>  void distance(void)</p><p><b>  {</b></p><p>  double radical,di

72、st,t;</p><p>  radical=sqrt(1+(temnum+273)/273);</p><p>  dist=165.7*t*radical;</p><p>  return(dist);</p><p><b>  }</b></p><p>  第五章 軟件調(diào)試及系統(tǒng)

73、仿真</p><p>  5.1 軟件編譯調(diào)試環(huán)境</p><p>  單片機(jī)開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)镃PU可以執(zhí)行的機(jī)器碼有兩種方法,一種是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過匯編軟件將源程序變?yōu)闄C(jī)器碼,用于MCS-51單片機(jī)的匯編軟件有早期的A51,隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使

74、用高級語言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。掌握這一軟件的使用對于使用51系列單片機(jī)的愛好者來說是十分必要的,如果你使用C語言編程,那么Keil幾乎就是你的不二之選,

75、即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)事半功倍。</p><p>  5.2 工程文件的建立、設(shè)置與目標(biāo)文件的獲得</p><p>  5.2.1 Keil工程的建立</p><p>  首先啟動(dòng)Keil軟件的集成開發(fā)環(huán)境,如果已正確安裝了該軟件,可以從桌面上直接雙擊uVision的圖標(biāo)以啟動(dòng)該軟件。uVison啟動(dòng)

76、后,程序窗口的左邊有一個(gè)工程管理窗口,該窗口有3個(gè)標(biāo)簽,分別是Files、Regs、和Books,這三個(gè)標(biāo)簽頁分別顯示當(dāng)前項(xiàng)目的文件結(jié)構(gòu)、CPU的寄存器及部份特殊功能寄存器的值(調(diào)試時(shí)才出現(xiàn))和所選CPU的附加說明文件,如果是第一次啟動(dòng)Keil,那么這三個(gè)標(biāo)簽頁全是空的。</p><p><b>  1、源文件的建立</b></p><p>  使用菜單“File-&

77、gt;New”或者點(diǎn)擊工具欄的新建文件按鈕,即可在項(xiàng)目窗口的右側(cè)打開一個(gè)新的文本編緝窗口,在該窗口中輸入?yún)R編語言或C語言源程序,然后保存該文件,注意必須加上擴(kuò)展名(匯編語言源程序一般用asm或a51為擴(kuò)展名,而C語言源程序一般用c 為擴(kuò)展名),這里假定將文件保存為exam1.asm。需要說明的是,源文件就是一般的文本文件,不一定使用Keil軟件編寫,可以使用任意文本編緝器編寫,而且,Keil的編緝器對漢字的支持不好,建議使用U

78、ltraEdit之類的編緝軟件進(jìn)行源程序的輸入。</p><p><b>  2、建立工程文件</b></p><p>  在項(xiàng)目開發(fā)中,并不是僅有一個(gè)源程序就行了,還要為這個(gè)項(xiàng)目選擇CPU(Keil支持?jǐn)?shù)百種CPU,而這些CPU的特性并不完全相同),確定編譯、匯編、連接的參數(shù),指定調(diào)試的方式,有一些項(xiàng)目還會(huì)有多個(gè)文件組成等,為管理和使用方便,Keil使用工程(Pro

79、ject)這一概念,將這些參數(shù)設(shè)置和所需的所有文件都加在一個(gè)工程中,只能對工程而不能對單一的源程序進(jìn)行編譯(匯編)和連接等操作。點(diǎn)擊“Project->New Project…”菜單,出現(xiàn)一個(gè)對話框,要求給將要建立的工程起一個(gè)名字,可以在編緝框中輸入一個(gè)名字(設(shè)為exam1),不需要擴(kuò)展名。點(diǎn)擊“保存”按鈕,出現(xiàn)第二個(gè)對話框,如圖7.1所示,這個(gè)對話框要求選擇目標(biāo)CPU,Keil支持的CPU很多,我們選擇Atmel公司的89S52

80、芯片。點(diǎn)擊ATMEL前面的“+”號(hào),展開該層,點(diǎn)擊其中的89S52,然后再點(diǎn)擊“確定”按鈕,回到主界面,此時(shí),在工程窗口的文件頁中,出現(xiàn)了“Target1”,前面有“+”號(hào),點(diǎn)擊“+”號(hào)展開,可以看到下一層的“Source Group1”,這時(shí)的工程還是一個(gè)空的工程,里面什么文件也沒有,需要手動(dòng)把剛才編寫好的源程序加入</p><p>  圖5.1 加入文件</p><p>  選中其中

81、的“Add file toGroup”Source Group1”,出現(xiàn)一個(gè)對話框,要求尋找源文件,注意:該對話框下面的“文件類型”默認(rèn)為C source file(*.c),也就是以C為擴(kuò)展名的文件,而我們的文件是以asm為擴(kuò)展名的,所以在列表框中找不到exam1.asm,要將文件類型改掉,點(diǎn)擊對話框中“文件類型”后的下拉列表,找到并選中“Asm Source File(*.a51,*.asm),這樣,在列表框中就可以找到exam1.

82、asm文件了。雙擊exam1.asm文件,將文件加入項(xiàng)目,注意,在文件加入項(xiàng)目后,該對話框并不消失,等待繼續(xù)加入其它文件,如果誤認(rèn)為操作沒有成功而再次雙擊同一文件,這時(shí)會(huì)出現(xiàn)重復(fù)加入文件錯(cuò)誤的對話框,提示你所選文件已在列表中,此時(shí)應(yīng)點(diǎn)擊“確定”,返回前一對話框,然后點(diǎn)擊“Close”即可返回主界面,返回后,點(diǎn)擊“SourceGroup 1”前的加號(hào),會(huì)發(fā)現(xiàn)exam1.asm文件已在其中。雙擊文件名,即打開該源程序。</p>

83、<p>  5.2.2 工程的詳細(xì)設(shè)置</p><p>  工程建立好以后,還要對工程進(jìn)行進(jìn)一步的設(shè)置,以滿足要求。</p><p>  首先點(diǎn)擊左邊Project窗口的Target 1,然后使用菜單“Project->Option for target‘target1’”即出現(xiàn)對工程設(shè)置的對話框,這個(gè)對話框可謂非常復(fù)雜,共有8個(gè)頁面,要全部搞清可不容易,好在絕大部份設(shè)

84、置項(xiàng)取默認(rèn)值就行了。</p><p>  設(shè)置對話框中的Target頁面,如圖5.2所示:</p><p>  圖5.2 對目標(biāo)進(jìn)行設(shè)置</p><p>  Xtal后面的數(shù)值是晶振頻率值,默認(rèn)值是所選目標(biāo)CPU的最高可用頻率值,對于我們所選的AT89S52而言是24M,該數(shù)值與最終產(chǎn)生的目標(biāo)代碼無關(guān),僅用于軟件模擬調(diào)試時(shí)顯示程序執(zhí)行時(shí)間。正確設(shè)置該數(shù)值可使顯示時(shí)

85、間與實(shí)際所用時(shí)間一致,一般將其設(shè)置成與你的硬件所用晶振頻率相同,如果沒必要了解程序執(zhí)行的時(shí)間,也可以不設(shè),這里設(shè)置為12。Memory Model用于設(shè)置RAM使用情況,有三個(gè)選擇項(xiàng),Small是所有變量都在單片機(jī)的內(nèi)部RAM中;Compact是可以使用一頁外部擴(kuò)展RAM,而Larget則是可以使用全部外部的擴(kuò)展RAM。Code Model用于設(shè)置ROM空間的使用,同樣也有三個(gè)選擇項(xiàng),即Small模式,只用低于2K的程序空間;Compa

86、ct模式,單個(gè)函數(shù)的代碼量不能超過2K,整個(gè)程序可以使用64K程序空間;Large模式,可用全部64K空間。Use on-chip ROM選擇項(xiàng),確認(rèn)是否僅使用片內(nèi)ROM(注意:選中該項(xiàng)并不會(huì)影響最終生成的目標(biāo)代碼量);Operating項(xiàng)是操作系統(tǒng)選擇,Keil提供了兩種操作系統(tǒng):Rtx tiny和Rtx full,關(guān)于操作系統(tǒng)是另外一個(gè)很大的話題</p><p>  設(shè)置對話框中的OutPut頁面,如圖5.3

87、所示:</p><p>  圖5.3 對輸出進(jìn)行控制</p><p>  這里面也有多個(gè)選擇項(xiàng),其中Creat Hex file用于生成可執(zhí)行代碼文件(可以用編程器寫入單片機(jī)芯片的HEX格式文件,文件的擴(kuò)展名為.HEX),默認(rèn)情況下該項(xiàng)未被選中,如果要寫片做硬件實(shí)驗(yàn),就必須選中該項(xiàng),在此特別提醒注意。選中Debug information將會(huì)產(chǎn)生調(diào)試信息,這些信息用于調(diào)試,如果需要對程序

88、進(jìn)行調(diào)試,應(yīng)當(dāng)選中該項(xiàng)。Browse information是產(chǎn)生瀏覽信息,該信息可以用菜單view->Browse來查看,這里取默認(rèn)值。按鈕“Select Folder for objects”是用來選擇最終的目標(biāo)文件所在的文件夾,默認(rèn)是與工程文件在同一個(gè)文件夾中。Name of Executable用于指定最終生成的目標(biāo)文件的名字,默認(rèn)與工程的名字相同,這兩項(xiàng)一般不需要更改。</p><p>  工程設(shè)

89、置對話框中的其它各頁面與C51編譯選項(xiàng)、A51的匯編選項(xiàng)、BL51連接器的連接選項(xiàng)等用法有關(guān),這里均取默認(rèn)值,不作任何修改。</p><p>  5.2.3 編譯、連接</p><p>  在設(shè)置好工程后,即可進(jìn)行編譯、連接。選擇菜單Project->Build target,對當(dāng)前工程進(jìn)行連接,如果當(dāng)前文件已修改,軟件會(huì)先對該文件進(jìn)行編譯,然后再連接以產(chǎn)生目標(biāo)代碼;如果選擇Reb

90、uild All target files將會(huì)對當(dāng)前工程中的所有文件重新進(jìn)行編譯然后再連接,確保最終生產(chǎn)的目標(biāo)代碼是最新的,而Translate….項(xiàng)則僅對該文件進(jìn)行編譯,不進(jìn)行連接。以上操作也可以通過工具欄按鈕直接進(jìn)行。圖5.4是有關(guān)編譯、設(shè)置的工具欄按鈕:</p><p>  圖5.4 有關(guān)編譯、連接、項(xiàng)目設(shè)置的工具條</p><p>  從左到右分別是:編譯、編譯連接、全部重建、停

91、止編譯和對工程進(jìn)行設(shè)置。編譯過程中的信息將出現(xiàn)在輸出窗口中的Build頁中,如果源程序中有語法錯(cuò)誤,會(huì)有錯(cuò)誤報(bào)告出現(xiàn),雙擊該行,可以定位到出錯(cuò)的位置,對源程序反復(fù)修改之后,最終會(huì)得到如圖7.7所示的結(jié)果:</p><p>  圖5.5 正確編譯、連接之后的結(jié)果</p><p>  提示獲得了名為exam1.hex的文件,該文件即可被編程器讀入并寫到芯片中,同時(shí)還產(chǎn)生了一些其它相關(guān)的文件,

92、可被用于Keil的仿真與調(diào)試,這時(shí)可以進(jìn)入下一步調(diào)試的工作。</p><p><b>  5.3 系統(tǒng)仿真</b></p><p>  5.3.1 Proteus工作界面</p><p>  Proteus ISIS的工作界面是一種標(biāo)準(zhǔn)的Windows界面,如圖5.6所示。</p><p>  圖5.6 Prote

93、us ISIS的工作界面</p><p>  包括:標(biāo)題欄、主菜單、標(biāo)準(zhǔn)工具欄、繪圖工具欄、狀態(tài)欄、對象選擇按鈕、預(yù)覽對象方位控制按鈕、仿真進(jìn)程控制按鈕、預(yù)覽窗口、對象選擇器窗口、圖形編輯窗口。</p><p>  5.3.2 Proteus原理圖的繪制</p><p>  Proteus中原理圖繪制比較簡單,具體可參見其幫助,暫不贅述。</p>&

94、lt;p><b>  5.3.3 仿真</b></p><p>  由于Proteus里沒有超聲波傳感器,也沒有能夠完全代替它功能元件,所以本設(shè)計(jì)只敘述其能仿真出來一部分[10]。</p><p><b>  1、源程序的錄入</b></p><p>  先右擊AT89S52,再左擊AT89S52,會(huì)出現(xiàn)如圖5.7

95、所示的對話框,點(diǎn)擊,選擇所需要的HEX文件。然后單擊OK。</p><p>  圖5.7 錄入源程序?qū)υ捒?lt;/p><p><b>  2、仿真的實(shí)現(xiàn)</b></p><p>  一切準(zhǔn)備就緒后,點(diǎn)擊,就開始仿真了。</p><p>  圖5.8為本設(shè)計(jì)的系統(tǒng)仿真原理圖。 </p><p>  

96、圖5.8 系統(tǒng)仿真原理圖</p><p>  5.4 誤差及特性分析</p><p>  根據(jù)超聲波的特性,距離測量時(shí)必須滿足條件:</p><p>  1、被測目標(biāo)必須垂直于超聲波測距儀。</p><p>  2、被測目標(biāo)表面必須平坦。</p><p>  3、測量時(shí)在超聲波測距儀周圍沒有其他可反射超聲波的物體。

97、因此在測量過程中稍不小心就會(huì)接收不到超聲波,而導(dǎo)致沒有測量結(jié)果。</p><p>  由于超聲波的往返時(shí)間由單片機(jī)AT89S52的定時(shí)器T1來記,定時(shí)器T1工作在方式1,其最大定時(shí)時(shí)間為65.536ms,可得出在常溫下最大的測量距離在10m以內(nèi)。且因?yàn)榘l(fā)射功率有限,測距儀也無法測量10m外的物體。</p><p>  第六章 后續(xù)研究工作</p><p>  利用

98、51系列單片機(jī)設(shè)計(jì)的測距儀便于操作、讀數(shù)直觀。經(jīng)實(shí)際測試證明,該類測距儀工作穩(wěn)定,能滿足一般近距離測距的要求,且成本較低、有良好的性價(jià)比。由于該系統(tǒng)中鎖相環(huán)鎖定需要一定時(shí)間,測得的距離有誤差,在汽車?yán)走_(dá)應(yīng)用中可忽略不計(jì);但在精度要求較高的工業(yè)領(lǐng)域如機(jī)器人自動(dòng)測距等方面,此誤差不能忽略,可以通過改變一些硬件的應(yīng)用實(shí)現(xiàn)對超聲波的快速鎖定或根據(jù)自己的需要在程序中加入測距軟件補(bǔ)償?shù)拇a,使誤差進(jìn)一步減小,可以滿足更高要求。</p>

99、<p>  本設(shè)計(jì)完整地做出之后可測量短距離的距離。因?yàn)槌暡ǖ奶匦裕瑴y距時(shí)保證傳感器與被測物間,以及測量軸線上沒有障礙物;且要盡量保證傳感器軸線與被測物表面垂直;實(shí)際測距范圍與被測物表面材料等因素有關(guān),一般不要測量表面為毛料的物體表面。</p><p>  由于時(shí)間不是很充裕,對系統(tǒng)的設(shè)計(jì)還存在一些不足,下一步還有以下工作要繼續(xù)進(jìn)行:</p><p>  1、超聲波發(fā)射波形的

100、改進(jìn)</p><p>  因?yàn)樵撛O(shè)計(jì)加在發(fā)射器上的電壓波形采用方波,方波含有豐富的高次諧波,不利于精確鑒相。這將增加發(fā)射波與回波的諧波失真。所以在接下來的工作中,可能會(huì)考慮用正弦波代替方波來優(yōu)化該設(shè)計(jì)。</p><p><b>  2、樣機(jī)的制作</b></p><p>  由于時(shí)間關(guān)系,樣機(jī)只實(shí)現(xiàn)了測試部分功能,設(shè)計(jì)在溫度測量等各方面都未實(shí)現(xiàn)

101、,;另外由于自身知識(shí)和材料的缺乏,報(bào)警模塊未能實(shí)現(xiàn),也是本次設(shè)計(jì)當(dāng)中不足之處。其余功能由于產(chǎn)品購買不及時(shí),以及產(chǎn)品效果不夠好,未能及時(shí)添加。</p><p>  3、進(jìn)一步研究系統(tǒng)的抗干擾性能</p><p>  硬件抗干擾技術(shù)是系統(tǒng)設(shè)計(jì)時(shí)首選的抗干擾措施。常見的硬件抗干擾措施有元件的合理布局、接地的抗干擾處理、隔離技術(shù)等。在制作樣機(jī)的過程中,將會(huì)采用多種抗干擾技術(shù)對系統(tǒng)進(jìn)行優(yōu)化,減小測量

102、誤差。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 林偉, 梁家寧, 李才安. 便攜式多功能超聲波測距儀的設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子測量技術(shù),2008, (01): 29~31.</p><p>  [2] 羅慶生, 韓寶玲. 一種基于超聲波與紅外線探測技術(shù)的測距定位系統(tǒng)[J]. 計(jì)算機(jī)測量與控制, 200

103、5,(04): 1~3. </p><p>  [3] 高飛燕. 基于單片機(jī)的超聲波測距系統(tǒng)的設(shè)計(jì)[J]. 信息技術(shù), 2005,(07): 43~45.</p><p>  [4] 趙海鳴,卜英勇, 王紀(jì)嬋, 周知進(jìn). 一種高精度超聲波測距方法的研究[J]. 湖南科技大學(xué)學(xué)報(bào)(自然科學(xué)版), 2006,(03): 8~10. </p><p>  [5] 路錦正,

104、 王建勤, 楊紹國, 趙珂, 趙太飛. 超聲波測距儀的設(shè)計(jì)[J] .傳感器技術(shù), 2002,(08): 9~11. </p><p>  [6] 牛余朋, 成曙. 基于單片機(jī)的超聲波測距系統(tǒng)[J]. 兵工自動(dòng)化, 2005, (04): 44~46. </p><p>  [7] 張健, 李鋼. 超聲波測距系統(tǒng)的研究與設(shè)計(jì)[J]. 合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版), 2004,(06): 1

105、3~15. </p><p>  [8] 阮成功, 藍(lán)兆輝, 陳碩. 基于單片機(jī)的超聲波測距系統(tǒng)[J]. 應(yīng)用科技, 2004, (07): 8~10. </p><p>  [9] 陳興梧,劉鳴,趙煜,趙慧影. 數(shù)字式溫度計(jì)DS18B20的特性及應(yīng)用[EB/OL].</p><p>  [10] 林志琦,郎建軍,李會(huì)杰,佟大鵬. 基于Proteus的單片機(jī)可視化軟

106、硬件仿真[M]. 北京:北京航空航天大學(xué)出版社,2006:1~93. </p><p><b>  附錄</b></p><p>  附錄一 系統(tǒng)原理圖</p><p>  附錄二 系統(tǒng)PCB板圖</p><p><b>  附錄三 源程序</b></p><p>  

107、#include<reg51.h></p><p>  #include<math.h></p><p>  /*定義數(shù)據(jù)類型*/</p><p>  #define uint unsigned int</p><p>  #define uchar unsigned char</p><p>

108、  /*定義系統(tǒng)常數(shù)*/</p><p>  long int time; /* 時(shí)間 */</p><p>  bit CLflag; /* 測量標(biāo)志 */</p><p>  char cshu; /* 串?dāng)?shù) */</p><p>  #define T12us (256-12)

109、 /*定時(shí)器設(shè)初值 T=(256-T12us)*12/12MHZ */</p><p>  sbit VOLCK=P1^0; /* 發(fā)射 */</p><p>  //接收從P3^2口輸入,采用外部中斷方式</p><p>  sbit S1=P2^1;</p><p>  sbit S2=P2^3;</p><

110、;p>  sbit S3=P2^5;</p><p>  sbit S4=P2^7;</p><p>  char idata number[5]; /* 存放距離顯示數(shù)據(jù) */</p><p>  char code table[] ={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x45,0xDF,0xD7}; /

111、/數(shù)字0-9的編碼</p><p>  /* 通用延時(shí)子程序 */</p><p>  void delay( int j)</p><p><b>  { </b></p><p><b>  int i; </b></p><p>  for(i=0;i

112、<j;) </p><p><b>  i++; </b></p><p><b>  }</b></p><p>  void display(void) /* 顯示5位數(shù)據(jù) */</p><p><b>  { </b></p><p

113、>  P0=~table[number[4]];</p><p><b>  S1=0;</b></p><p>  delay(200);</p><p><b>  S1=1;</b></p><p>  P0=~(table[number[3]]|0x20);</p>&l

溫馨提示

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

評論

0/150

提交評論