版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 基于單片機的超聲波測距儀</p><p> 專 業(yè):電子信息科學(xué)與技術(shù)</p><p> 指導(dǎo)教師: </p><p> 學(xué)生姓名: </p><p> 學(xué)生學(xué)號: </p><p><b> 20
2、12年5月</b></p><p><b> 目錄</b></p><p><b> 目錄I</b></p><p><b> 摘要III</b></p><p> AbstractIV</p><p><b> 第
3、一章 緒論1</b></p><p><b> 1.1 引言1</b></p><p> 1.1.1 設(shè)計的應(yīng)用前景1</p><p> 1.1.2 課題研究的意義1</p><p><b> 1.2 概述2</b></p><p>
4、 1.2.1 單片機應(yīng)用系統(tǒng)概述2</p><p> 1.2.2 超聲波測距系統(tǒng)概述2</p><p> 1.3 本設(shè)計主要要求3</p><p> 第二章 超聲波測距原理4</p><p> 2.1 超聲波的基本理論4</p><p> 2.2 超聲波測距系統(tǒng)原理4</p>
5、;<p> 2.2.1 超聲波傳感器4</p><p> 2.2.2 超聲波測距的方案5</p><p> 第三章 總體設(shè)計方案8</p><p> 3.1 超聲波測距系統(tǒng)電路總體設(shè)計方案8</p><p> 3.2 超聲波發(fā)射和接收電路的設(shè)計9</p><p> 3.2.
6、1 超聲波發(fā)射電路9</p><p> 3.2.2 超聲波接收電路10</p><p> 3.2.3 顯示電路11</p><p> 3.3 主電路原理圖11</p><p> 第四章 系統(tǒng)軟件設(shè)計13</p><p> 4.1 主程序流程13</p><p>
7、 4.2 子程序設(shè)計14</p><p> 4.2.1 發(fā)送中斷子程序14</p><p> 4.2.2 距離計算子程序16</p><p> 第五章 軟件調(diào)試及系統(tǒng)仿真17</p><p> 5.1 軟件編譯調(diào)試環(huán)境17</p><p> 5.2 工程文件的建立、設(shè)置與目標文件的獲得
8、17</p><p> 5.2.1 Keil工程的建立17</p><p> 5.2.2 工程的詳細設(shè)置19</p><p> 5.2.3 編譯、連接20</p><p> 5.3 系統(tǒng)仿真21</p><p> 5.3.1 Proteus工作界面21</p><p&
9、gt; 5.3.2 Proteus原理圖的繪制22</p><p> 5.3.3 仿真22</p><p> 5.4 誤差及特性分析24</p><p> 第六章 后續(xù)研究工作25</p><p><b> 參考文獻26</b></p><p><b> 附
10、錄27</b></p><p> 附錄一 系統(tǒng)原理圖27</p><p> 附錄二 系統(tǒng)PCB板圖28</p><p> 附錄三 源程序28</p><p> 附錄四 元器件清單34</p><p><b> 致謝35</b></p><
11、;p> 基于單片機的超聲波測距儀</p><p><b> 摘要</b></p><p> 利用超聲波測距原理,出于低成本、高精度的目的,提出了一種基于AT89S52的超聲波倒車雷達系統(tǒng)的設(shè)計方案。硬件部分采用AT89S52單片機作為控制器,主要有超聲波發(fā)射電路、超聲波接收電路、溫度檢測電路、LED顯示電路和報警電路。在分析超聲波測距原理的基礎(chǔ)上,給出了實
12、現(xiàn)超聲波倒車雷達系統(tǒng)的硬件設(shè)計電路圖和軟件設(shè)計流程圖。該系統(tǒng)測量精度為1cm,測量范圍為0.50-4.00m,完全能夠滿足各類實驗系統(tǒng)的設(shè)計要求。</p><p> 整個硬件電路由超聲波發(fā)射電路、超聲波接收電路、電源電路、顯示電路等模塊組成。各探頭的信號經(jīng)單片機綜合分析處理,實現(xiàn)超聲波測距儀的各種功能。在此基礎(chǔ)上設(shè)計了系統(tǒng)的總體方案,最后通過硬件和軟件實現(xiàn)了各個功能模塊。相關(guān)部分附有硬件電路圖、程序流程圖,給出
13、了系統(tǒng)構(gòu)成、電路原理及程序設(shè)計。此系統(tǒng)具有易控制、工作可靠、測距準確度高、可讀性強和流程清晰等優(yōu)點。實現(xiàn)后的作品可用于需要測量距離參數(shù)的各種應(yīng)用場合。</p><p> 關(guān)鍵字:單片機;超聲波;測距 </p><p> Ultrasonic Wave Range Finder Based On SCM</p><p><b> Abstract<
14、;/b></p><p> Use of ultrasonic distance measurement principle, due to low cost, high accuracy, proposed one kind based on the AT89S52ultrasonic reversing radar of the system design. The hardware part of
15、the single-chip microcomputer as the controller by using AT89S52, mainly of ultrasonic transmitting circuit, receiving circuit, temperature detection circuit, LED display circuit and alarm circuit. On the analysis of the
16、 principle of ultrasonic distance measurement based on, given the realization of ultrasoni</p><p> The entire hardware circuit is composed by ultrasonic transmitter circuit, ultrasonic receiver circuit, the
17、 power circuit, display circuit, and other modules. The probe signals are integrated analysis by SCM to achieve the various functions of ultrasonic distance measurement instrument. This has designed system's overall
18、concept based on, final adoption of hardware and software to achieve the various functional modules. The relevant parts have the hardware schematics and process flow chart.It ha</p><p> Keywords:SCM,Ultraso
19、nic wave,Distance measurement</p><p><b> 第一章 緒論</b></p><p><b> 1.1 引言</b></p><p> 1.1.1 設(shè)計的應(yīng)用前景</p><p> 目前國內(nèi)一般使用專用集成電路設(shè)計超聲波測距儀,但是專用集成電路的成
20、本很高,并且顯示距離也比較困難,操作使用也不是很方便。而本設(shè)計研究的測距儀成本低廉,性能優(yōu)良,市場前景極為廣闊。在整個倒車過程中自動測量車尾到最近障礙物的距離,并用數(shù)字顯示出來,在倒車到極限距離時會發(fā)出警告聲,提醒駕駛員注意剎車。本設(shè)計可望成為駕駛員特別是貨車以及公共汽車駕駛員的好幫手,可有效的減少和避免那些視野不良的大型汽車,如集裝箱車、載貨車、公共汽車等倒車交通事故。</p><p> 隨著科學(xué)技術(shù)的快速發(fā)
21、展,超聲波將在傳感器中的應(yīng)用越來越廣。但就目前技術(shù)水平來說,人們可以具體利用的傳感技術(shù)還十分有限,因此,這是一個正在蓬勃發(fā)展而又有無限前景的技術(shù)及產(chǎn)業(yè)領(lǐng)域。展望未來,超聲波傳感器作為一種新型的非常重要有用的工具在各方面都將有很大的發(fā)展空間,它將朝著更加高定位高精度的方向發(fā)展,以滿足日益發(fā)展的社會需求,如聲納的發(fā)展趨勢基本為:研制具有更高定位精度的被動測距聲納,以滿足水中武器實施全隱蔽攻擊的需要;繼續(xù)發(fā)展采用低頻線譜檢測的潛艇拖曳線列陣聲
22、納,實現(xiàn)超遠程的被動探測和識別;研制更適合于淺海工作的潛艇聲納,特別是解決淺海水中目標識別問題。毋庸置疑,未來的超聲波傳感器將與自動化智能化接軌,與其他的傳感器集成和融合,形成多傳感器。隨著傳感器的技術(shù)進步,傳感器將從具有單純判斷功能發(fā)展到具有學(xué)習功能,最終發(fā)展到具有創(chuàng)造力。</p><p> 1.1.2 課題研究的意義</p><p> 在現(xiàn)實生活中,一些傳統(tǒng)的距離測量方式在某些特
23、殊場合存在不可克服的缺陷,例如,液面測量就是一個距離測量,傳統(tǒng)的電極法是采用差位分布電極,通過給電或脈沖檢測液面,電極長期浸泡在水中或其它液體中,極易被腐蝕、電解,從而失去靈敏性。而利用超聲波測量距離可以很好地解決這一問題。目前市面上常見的超聲波測距系統(tǒng)不僅價格昂貴,體積過大而且精度也不高等種種因素,使得在一些中小規(guī)模的應(yīng)用領(lǐng)域中難以得到廣泛的應(yīng)用。為解決這一系列難題,本文設(shè)計了一款基于AT89S52單片機的低成本、高精度、微型化的超聲
24、波測距儀。</p><p><b> 1.2 概述</b></p><p> 1.2.1 單片機應(yīng)用系統(tǒng)概述</p><p> 單片機的出現(xiàn)及發(fā)展使計算機技術(shù)從通用型數(shù)值計算領(lǐng)域進入到智能化的控制領(lǐng)域。從此,計算機技術(shù)在兩個重要領(lǐng)域——通用計算機領(lǐng)域和嵌入式計算機領(lǐng)域都得到了極其重要的發(fā)展,并正在深深地改變著我們的社會。</p&
25、gt;<p> 單片機應(yīng)用系統(tǒng)的設(shè)計包括單片機基本擴展、外圍電路設(shè)計和程序設(shè)計、單片機應(yīng)用系統(tǒng)開發(fā)環(huán)境、系統(tǒng)可靠性設(shè)計、電磁兼容性設(shè)計等內(nèi)容。通常開發(fā)一個單片機系統(tǒng)的步驟如圖1.1所示:</p><p> 圖1.1 技術(shù)路線</p><p> 1.2.2 超聲波測距系統(tǒng)概述</p><p> 隨著社會的發(fā)展,人們對距離或長度測量的要求越來越
26、高。目前測量距離可以采用波在介質(zhì)中的傳播速度和時間關(guān)系進行測量。常用的技術(shù)主要有激光測距、微波雷達測距和超聲波測距三種。激光和雷達測距儀造價偏高,不利于廣泛的普及應(yīng)用,在某些應(yīng)用領(lǐng)域有其局限性。超聲波測距由于其能進行非接觸測量和相對較高的精度,越來越被人們所重視。展望未來,超聲波測距儀作為一種新型的非常有用的工具在各方面都將有很大的發(fā)展空間,它將朝著更高定位、更高精度的方向發(fā)展,以滿足日益發(fā)展的社會需求。</p><
27、p> 由于超聲波具有指向性好、能量損耗低、傳播距離較遠、不易受外界環(huán)境影響和對被測目標無損害等特點,利用超聲波測量距離就可以解決傳統(tǒng)測量方法中遇到的問題。利用超聲波檢測往往比較迅速、方便、計算簡單、易于做到實時控制,并且在測量精度方面能達到工業(yè)實用的要求,因此超聲波測量距離技術(shù)在工業(yè)控制、勘探測量、機器人定位和安全防范等領(lǐng)域得到了廣泛的應(yīng)用。</p><p> 超聲波測距電路可以由傳統(tǒng)的模擬或者數(shù)字電路
28、構(gòu)建,但是基于這些傳統(tǒng)電路構(gòu)建的系統(tǒng)往往可靠性差,調(diào)試困難,可擴展性差,所以基于單片機的超聲波測距系統(tǒng)被廣泛的應(yīng)用。通過簡單的外圍電路發(fā)生和接收超聲波,單片機通過采樣獲取到超聲波的傳播時間,用軟件來計算出距離,并且可以采集環(huán)境溫度進行測距補償,其測量電路小巧,精度高,反映速度快,可靠性好。</p><p> 超聲波測距適用于高精度的中長距離測量,超聲波在標準空氣中的傳播速度為331.45m/s,由單片機計時,單
29、片機使用12.0MHz晶振,所以此系統(tǒng)的測量精度在理論上可以達到毫米級。本文設(shè)計的倒車雷達系統(tǒng)就是利用超聲波的上述特性做到對倒車距離實時和高精度的檢測,同時,此系統(tǒng)成本低、設(shè)計簡單、精度和穩(wěn)定性好,有望得到廣泛的應(yīng)用,從而減少交通事故的發(fā)生[1]。</p><p> 1.3 本設(shè)計主要要求</p><p> 1.設(shè)計一個以單片機為核心的超聲波測距儀,可以應(yīng)用于汽車倒車、工業(yè)現(xiàn)場的位置
30、監(jiān)控;</p><p> 2.測量范圍在0.50~4.00m,測量精度1cm;</p><p> 3.測量時與被測物無直接接觸,能夠清晰穩(wěn)定地顯示測量結(jié)果。</p><p> 第二章 超聲波測距原理</p><p> 2.1 超聲波的基本理論</p><p> 超聲波技術(shù)是一門以物理、電子、機械、以及材料
31、科學(xué)為基礎(chǔ)的、各行各業(yè)都可使用的通用技術(shù)之一。超聲波技術(shù)是通過超聲波的產(chǎn)生、傳播以及接收的物理過程完成的。該技術(shù)在國民經(jīng)濟中,對提高產(chǎn)品質(zhì)量,保障生產(chǎn)安全和設(shè)備安全運作,降低生產(chǎn)成本,提高生產(chǎn)效率特別具有潛在能力。因此,我國對超聲波的研究特別活躍。</p><p> 大家都知道,當物體振動時會發(fā)出聲音??茖W(xué)家們將每秒鐘振動的次數(shù)稱為聲音的頻率,它的單位是赫茲。我們?nèi)祟惗淠苈牭降穆暡l率為20~20000赫茲。
32、當聲波的振動頻率大于20000赫茲或小于20赫茲時,我們便聽不見了。因此,我們把頻率高于20000赫茲的聲波稱為“超聲波”。通常用于醫(yī)學(xué)診斷的超聲波頻率為1~5兆赫。超聲波具有方向性好,穿透能力強,易于獲得較集中的聲能,在水中傳播距離遠等特點??捎糜跍y距,測速,清洗,焊接,碎石等。在醫(yī)學(xué),軍事,工業(yè),農(nóng)業(yè)上有明顯的作用[3]。</p><p> 理論研究表明,在振幅相同的條件下,一個物體振動的能量與振動頻率成正
33、比,超聲波在介質(zhì)中傳播時,介質(zhì)質(zhì)點振動的頻率很高,因而能量很大。在我國北方干燥的冬季,如果把超聲波通入水罐中,劇烈的振動會使罐中的水破碎成許多小霧滴,再用小風扇把霧滴吹入室內(nèi),就可以增加室內(nèi)空氣濕度。這就是超聲波加濕器的原理。對于咽喉炎、氣管炎等疾病,藥品很難血流到打患病的部位。利用加濕器的原理,把藥液霧化,讓病人吸入,能夠療效。利用超聲波巨大的能量還可以使人體內(nèi)的結(jié)石做劇烈的受迫振動而破碎。</p><p>
34、 2.2 超聲波測距系統(tǒng)原理</p><p> 2.2.1 超聲波傳感器</p><p> 總體上講,超聲波發(fā)生器可以分為兩大類:一類是用電氣方式產(chǎn)生超聲波,一類是用機械方式產(chǎn)生超聲波。電氣方式包括壓電型、磁致伸縮型和電動型等;機械方式有加爾統(tǒng)笛、液哨和氣流旋笛等。他們所產(chǎn)生的超聲波的頻率、功率和聲波特性各不相同,因而用途也各不相同。目前較為常用的是壓電式超聲波發(fā)生器。</p
35、><p> 壓電式超聲波發(fā)生器實際上是利用壓電晶體的諧振來工作的。它有兩個壓電晶片和一個共振板。當它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時,壓電晶片將會發(fā)生共振,并帶動共振板振動,便產(chǎn)生超聲波。反之,如果兩極間未外加電壓,當共振板接收到超聲波時,將壓迫壓電晶片作振動,將機械能轉(zhuǎn)換為電信號,這時它就成為超聲波接收器了,超聲波傳感器結(jié)構(gòu)如圖2.1、圖2.2所示:</p><p>
36、 圖2.1 超聲波傳感器外部結(jié)構(gòu) 圖2.2 超聲波傳感器內(nèi)部結(jié)構(gòu) </p><p> 2.2.2 超聲波測距的方案</p><p> 超聲波測距方法主要有三種:</p><p> 1.相位檢測法:精度高,但檢測范圍有限;</p><p> 2.聲波幅值檢測法:易受反射波的影響;</p>&l
37、t;p> 3.渡越時間法:工作方式簡單,直觀,在硬件控制和軟件設(shè)計上都容易實現(xiàn),其原理為:檢測從發(fā)射傳感器發(fā)射的超聲波經(jīng)氣體介質(zhì)傳播到接收傳感器的時間t,這個時間就是渡越時間,然后求出距離l。設(shè)l為測量距離,t為往返時間差,超聲波的傳播速度為c,則有l(wèi)=ct/2。綜合以上分析,本設(shè)計將采用渡越時間法,如圖2.3所示:</p><p> 圖2.3 測距原理</p><p> 由
38、于超聲波也是一種聲波,其聲速c與空氣溫度有關(guān),一般來說,溫度每升高1攝氏度,聲速增加0.6米/秒。如表2.1列出了幾種溫度下的聲速:</p><p> 表2.1 聲速與溫度的關(guān)系表</p><p> 在使用時,如果溫度變化不大,則可認為聲速c是基本不變的,計算時取c為340m/s。如果測距精度要求很高,則可通過改變硬件電路增加溫度補償電路的方法或者在硬件電路基本不變的情況下通過軟件改
39、進算法的方法來加以校正。</p><p> 在本系統(tǒng)中利用AT89S52中的定時器測量超聲波傳播時間,利用DS18B20測量環(huán)境溫度,從而提高測距精度??諝庵新曀倥c溫度的關(guān)系可表示為如下公式:</p><p> 聲速確定后,只要測得超聲波往返的時間,即可求得距離:l=1/2(331.4+0.6T)t。(系統(tǒng)中應(yīng)用該式進行溫度補償)</p><p> 如果為了進
40、一步提高測量精度,本設(shè)計中將根據(jù)需要利用軟件方式增加角度補償?shù)脑O(shè)計:。(系統(tǒng)中應(yīng)用該式進行角度補償)[5]</p><p> 超聲波是利用反射的原理測量距離的,被測距離一端為超聲波傳感器,另一端必須有能反射超聲波的物體。測量距離時,將超聲波傳感器對準反射物發(fā)射超聲波,并開始計時,超聲波在空氣中傳播到達障礙物后被反射回來,傳感器接收到反射脈沖后立即停止計時,然后根據(jù)超聲波的傳播速度和計時時間就能計算出兩端的距離。
41、測量距離D為:</p><p> 式中:c——超聲波的傳播速度;</p><p> ——超聲波發(fā)射到接收所需時間的一半,也就是單程傳播時間。</p><p> 由上式可出,距離的測量精度主要取決于計時精度和傳播速度兩方面。計時精度由單片機定時器決定,定時時間為機器周期與計數(shù)次數(shù)的乘積,可選用12MHz的晶振,使機器周期為精確的1µs,不會產(chǎn)生累積誤差
42、,使定時間達到1µs。超聲波的傳播速度c并不是固定不變的,傳播速度受空氣密度、溫度和氣體分子成分的影響,關(guān)系式為:</p><p> 式中:γ——氣體定壓熱容與定容熱容的比值,空氣為1.40。</p><p> R——氣體普適常數(shù),為8.314kg/mol。</p><p> T——氣體勢力學(xué)溫度,與攝氏溫度的關(guān)系是T=273K+t。</p&g
43、t;<p> M——氣體相對分子質(zhì)量,空氣為28.8×10-3kg/mol。</p><p> c0——0℃時的聲波速度,為331.4m/s。</p><p> 由上式可見,超聲波在空氣中傳播時,受溫度影響最大,由表達式可計算出波速與溫度的關(guān)系,如表2.1所示。溫度越高,傳播速度越快,而且不同溫度下傳播速度差別非常大,例如0℃時的速度為332m/s,30℃時的
44、速度為350m/s,相差18m/s。因此,需要較高的測量精度時,進行溫度補償是最有效的措施。對測量精度要求不高時,可認為超聲波在空氣中的傳播速度為340m/s。[4]</p><p> 第三章 總體設(shè)計方案</p><p> 3.1 超聲波測距系統(tǒng)電路總體設(shè)計方案</p><p> 本系統(tǒng)硬件部分由AT89S52控制器、超聲波發(fā)射電路及接收電路、聲音報警電
45、路和LED顯示電路組成。當使用時,發(fā)射和接收電路工作,經(jīng)過AT89S52數(shù)據(jù)處理將距離也顯示到LED上,如果距離小于設(shè)定值時,報警電路會鳴叫,提醒注意距離。超聲波測距器的系統(tǒng)框圖如圖3.1所示:</p><p> 圖3.1 系統(tǒng)設(shè)計總框圖</p><p> 由單片機AT89S52編程產(chǎn)生10us以上的高電平,由指定引腳輸出,就可以在指定接收口等待高電平輸出。一旦有高電平輸出,即在模塊
46、中經(jīng)過放大電路,驅(qū)動超聲波發(fā)射探頭發(fā)射超聲波。發(fā)射出去的超聲波經(jīng)障礙物反射回來后,由超聲波接收頭接收到信號,通過接收電路的處理,指定接收口即變?yōu)榈碗娖?,讀取單片機中定時器的值。單片機利用聲波的傳播速度和發(fā)射脈沖到接收反射脈沖的時間間隔計算出障礙物的距離,并由單片機控制顯示出來。</p><p> 由如圖3.2所示可以看出,超聲波測距模塊的發(fā)射端在T0時刻發(fā)射方波,同時啟動定時器開始計時,當收到回波后,產(chǎn)生一負跳
47、變到單片機中斷口,單片機響應(yīng)中斷程序,定時器停止計數(shù)[6]。計算時間差,即可得到超聲波在媒介中傳播的時間t,由此便可計算出距離。</p><p><b> 圖3.2 時序圖</b></p><p> 3.2 超聲波發(fā)射和接收電路的設(shè)計</p><p> 分立元件構(gòu)成的發(fā)射和接收電路容易受到外界的干擾,體積和功耗也比較大。而集成電路構(gòu)成
48、的發(fā)射和接收電路具有調(diào)試簡單,可靠性好,抗干擾能力強,體積小,功耗低的優(yōu)點,所以優(yōu)先采用集成電路來設(shè)計收發(fā)電路。[7]</p><p> 3.2.1 超聲波發(fā)射電路</p><p> 超聲波發(fā)射電路包括超聲波產(chǎn)生電路和超聲波發(fā)射控制電路兩部分,可采用軟件發(fā)生法和硬件方法產(chǎn)生超聲波。在超聲波的發(fā)射電路的設(shè)計中,我們采用電路結(jié)構(gòu)簡單的集成電路構(gòu)成發(fā)射電路,如圖3.3所示:</p&g
49、t;<p> 圖3.3 由反相器構(gòu)成的超聲波發(fā)射電路</p><p> 圖3.3是由反相器74HC04構(gòu)成的發(fā)射電路,用反相器74HC04構(gòu)成的電路簡單,調(diào)試容易,易通過軟件控制。單片機輸出的方波經(jīng)過反相器接到發(fā)射器T1的兩極,用圖中的推挽形式將方波信號加到發(fā)射器T1兩端,可以提高發(fā)射器T1的發(fā)射強度。圖中把兩個非門的輸出接到一起的目的是為了提高其吸入電流,電路驅(qū)動能力提高。74HC04是一個
50、高速CMOS六反相器,具有對稱的傳輸延遲和轉(zhuǎn)換時間,而相對于LSTTL邏輯IC,它的功耗減少很多。另外,上拉電阻R1、R2一方面可以提高反相器74HC04輸出高電平的驅(qū)動能力,另一方面可以增加發(fā)射器T1的阻尼效果,縮短其自由振蕩的時間。</p><p> 3.2.2 超聲波接收電路</p><p> 如圖3.4是由CX20106A構(gòu)成的接收電路,在實物的制作過程中,我們將用CX201
51、06A這一型號代替。CX20106A是索尼公司生產(chǎn)的彩電專用紅外遙控接收器,是CX20106的改進型,也可用于超聲波測試,有較強的抗干擾性和靈敏度。CX20106A采用單列8腳直插式,超小型封裝,+5V供電。管腳1是超聲波信號輸入端,其輸入阻抗約為40K;管腳2的R1、C4決定接收器R的總增益,增大電阻R1或減小電容C4,將使放大倍數(shù)下降,負反饋量增大,電容C4的改變會影響到頻率特性,實際使用中一般不改動;管腳3與GND之間連接檢波電容
52、C2,考慮到檢波輸出的脈沖寬度變動大,推薦參數(shù)為3.3uF;管腳5上的電阻R2用以設(shè)置帶通濾波器的中心頻率,阻值越大,中心頻率越低,取R2=200K時,中心頻率約為42KHZ;管腳6與GND之間接入一個積分電容C3,電容值越大,探測距離越短;管腳7是遙控命令輸出端,它是集電極開路的輸出方式,因此該引腳必須接上一個上拉電阻到電源端,沒接收信號時,該端輸出為高電平,有信號時則會下降;管腳8接+5V電源。</p><p&g
53、t; 圖3.4 CX20106構(gòu)成的接收電路</p><p> 經(jīng)過試驗后發(fā)現(xiàn)用單片機發(fā)40 kHz信號與使用CX20106A的電路搭配更加簡單合理,使得時間的計算更為精確。</p><p> 該系統(tǒng)的超聲波接收模塊是由超聲波接收探頭和紅外線接收處理芯片CX20106A組成。超聲波接收子程序的流程是,利用INT0中斷檢測回波信號,若有回波信號(INT0口低電平)就關(guān)閉外部中斷,同時
54、停止計時器的計時,將測距成功標志位標記為1(測距成功),同時提取時間值,計算待測距離,保存最終結(jié)果后打開外部中斷,等待下次測量。</p><p> 綜合以上的分析,在由集成電路構(gòu)成的接收和發(fā)射電路中,發(fā)射電路我們選用由反相器構(gòu)成的電路,接收電路采用由紅外接收檢波芯片CX20106A構(gòu)成,主要是考慮到系統(tǒng)的調(diào)試簡單,成本低以及可靠性好[3]。</p><p> 3.2.3 顯示電路&l
55、t;/p><p> 顯示電路如圖3.5,四位LED組成動態(tài)掃描電路,由AT89S52的P0口輸出。動態(tài)掃描時,由P2口控制LED的當前顯示位。當距離測量結(jié)束并調(diào)用顯示程序,就會顯示距離大小,顯示兩位小數(shù)。當按下按鍵k2時,將會顯示溫度值,延時5s后恢復(fù)顯示距離值。</p><p> 圖3.5 顯示電路</p><p> 3.3 主電路原理圖</p>
56、<p> 該系統(tǒng)主電路原理圖如圖3.6所示,單片機采用AT89S52,單片機使用外部時鐘源,外接6MHZ的晶振,由P0.0口直接輸出40 KHZ的驅(qū)動信號給放大電路。接收到回波后,經(jīng)由CX20106A的濾波,產(chǎn)生中斷信號,并由p3.2口輸出進行中斷。顯示電路采用簡單實用的3位數(shù)碼管,連接單片機AT89S52的P0口,而三極管連接P2口,作數(shù)碼管的位選。工作時,首先將系統(tǒng)初始化,啟動計時器。并由P0.0腳發(fā)出40KHZ的驅(qū)
57、動信號,同時打開INT0中斷,并且開始等待接收到的回波和中斷信號,若接收到回波(單片機接收到中斷信號),計時器停止計時,保存時間信息,并且根據(jù)溫度補償計算出當前環(huán)境下的聲速,計算出當前待測距離后儲存,并調(diào)用顯示子程序。測出距離后結(jié)果將以十進制BCD碼方式傳送到LED顯示,然后再發(fā)超聲波脈沖重復(fù)測量過程。</p><p> 圖3.6 電流原理圖</p><p> 第四章 系統(tǒng)軟件設(shè)計
58、</p><p> 4.1 主程序流程</p><p> 我們知道C語言程序有利于實現(xiàn)較復(fù)雜的算法,匯編語言程序則具有較高的效率且容易精細計算程序運行的時間,而超聲波測距儀的程序既有較復(fù)雜的計算(計算距離時),又要求精細計算程序運行時間(超聲波測距時),所以控制程序可采用C語言和匯編語言混合編程。</p><p> 因為本設(shè)計對時間要求精度較高的部分全部由單
59、片機內(nèi)部的定時器完成,而雖然溫度傳感器的讀寫對時間精度要求也高,但經(jīng)詳細計算所得出的C程序已被廣泛應(yīng)用,故直接借用已有程序也能作到對溫度的準確讀取,所心本設(shè)計全部使用C語言編程,這樣能使設(shè)計中所用到的公式能方便快捷的體現(xiàn)和實現(xiàn),又縮短了論文的篇幅。</p><p> 軟件采用模塊化設(shè)計方法,由主程序、超聲波發(fā)生子程序、超聲波接收中斷子程序、溫度測量子程序、距離計算子程序、顯示子程序等模塊組成。[8]</p
60、><p> 圖4.1為主程序流程圖。</p><p> 系統(tǒng)上電后,首先系統(tǒng)初始化,不斷掃描按鍵k1,若按鍵k1按下,則開始測量空氣溫度,然后將P1.0置位,使定時器T0開始定時,控制超聲波傳感器發(fā)出超聲波,同時使定時器T1開始定時。CPU循環(huán)檢測P3.3引腳,當P3.3為低電平時接收到回波,立即使T1停止工作,保存定時器的計數(shù)值。</p><p> 然后根據(jù)溫度
61、和傳輸時間計算距離,溫度補償措施使測量精度有了明顯提高,計算出距離后調(diào)用距離顯示子程序,LED顯示距離。</p><p> 最后檢測按鍵k2,若k2閉合,則調(diào)用溫度顯示子程序,LED顯示溫度(溫度并非測量距離時用于補償?shù)臏囟?,而是當前溫度?s后恢復(fù)顯示本次測量距離;若按鍵k2沒有閉合,則顯示器恒定顯示最新一次的測量結(jié)果;若要進行下一次測量,則先要按下k3重新開始,再按下按鍵k1才執(zhí)行新一次測量。由于不需輸入數(shù)
62、據(jù),鍵盤只設(shè)置了3個按鍵,用于開始測量距離并顯示溫度功能設(shè)置等。</p><p> 圖4.1 主程序流</p><p> 4.2 子程序設(shè)計</p><p> 4.2.1 發(fā)送中斷子程序</p><p> 超聲波發(fā)生子程序的作用是通過P1.0端口發(fā)送左右超聲波脈沖信號(頻率約40kHz的方波),脈沖寬度為12μs左右,同時把計數(shù)
63、器T1打開進行計時,定時器T1工作在方式0。</p><p> 超聲波測距儀主程序利用外中斷1檢測返回超聲波信號,一旦接收到返回超聲波信號(即引腳出現(xiàn)低電平),立即進入中斷程序。進入中斷后就立即關(guān)閉計時器T1停止計時,并將測距成功標志字賦值1。如果當計時器溢出時還未檢測到超聲波返回信號,則定時器T1溢出中斷將外中斷1關(guān)閉,并將測距成功標志字賦值0表示此次測距不成功。</p><p>
64、T0中斷服務(wù)程序如下:</p><p> sbit send=P1^0;</p><p> void timer0(void)interrupt 1 </p><p> { send=!send;</p><p><b> TH0=0x1f;</b></p><p><b>
65、 TL0=0xf4;</b></p><p><b> }</b></p><p> 超聲波接收(外部中斷1)程序:</p><p> void int1(void)interrupt 2 </p><p> { if(TH1!=0x00&&TH0!=0x00)</p>
66、<p><b> { b=1;</b></p><p><b> TR1=0;</b></p><p><b> TR0=0;</b></p><p> t=TH1*256+TL1;</p><p> t=t/1000000;</p>
67、<p><b> TH0=0x1f;</b></p><p><b> TL0=0xf4;</b></p><p><b> TH1=0x00;</b></p><p><b> TL1=0x00;</b></p><p><b&g
68、t; }</b></p><p><b> else </b></p><p><b> { b=0;</b></p><p><b> TR1=0;</b></p><p><b> TR0=0;</b></p>
69、<p><b> TH0=0x1f;</b></p><p><b> TL0=0xf4;</b></p><p><b> TH1=0x00;</b></p><p><b> TL1=0x00;</b></p><p><b&g
70、t; } }</b></p><p> 4.2.2 距離計算子程序</p><p> 當前溫度和超聲波往返時間均測量出來后,用C語言根據(jù)公式計算距離來編程是比較簡單的算法。</p><p> 根據(jù)測量距離,而其中,故可簡化為:,其實現(xiàn)程序算法如下:</p><p> #include<math.h>&l
71、t;/p><p> void distance(void)</p><p><b> {</b></p><p> double radical,dist,t;</p><p> radical=sqrt(1+(temnum+273)/273);</p><p> dist=165.7*t*
72、radical;</p><p> return(dist);</p><p><b> }</b></p><p> 第五章 軟件調(diào)試及系統(tǒng)仿真</p><p> 5.1 軟件編譯調(diào)試環(huán)境</p><p> 單片機開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)?/p>
73、CPU可以執(zhí)行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。機器匯編是通過匯編軟件將源程序變?yōu)闄C器碼,用于MCS-51單片機的匯編軟件有早期的A51,隨著單片機開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編
74、、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。掌握這一軟件的使用對于使用51系列單片機的愛好者來說是十分必要的,如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調(diào)試工具也會事半功倍。</p><p> 5.2 工程文件的建立、設(shè)置與目標文件的獲得<
75、/p><p> 5.2.1 Keil工程的建立</p><p> 首先啟動Keil軟件的集成開發(fā)環(huán)境,如果已正確安裝了該軟件,可以從桌面上直接雙擊uVision的圖標以啟動該軟件。uVison啟動后,程序窗口的左邊有一個工程管理窗口,該窗口有3個標簽,分別是Files、Regs、和Books,這三個標簽頁分別顯示當前項目的文件結(jié)構(gòu)、CPU的寄存器及部份特殊功能寄存器的值(調(diào)試時才出現(xiàn))和
76、所選CPU的附加說明文件,如果是第一次啟動Keil,那么這三個標簽頁全是空的。</p><p><b> 1、源文件的建立</b></p><p> 使用菜單“File->New”或者點擊工具欄的新建文件按鈕,即可在項目窗口的右側(cè)打開一個新的文本編緝窗口,在該窗口中輸入?yún)R編語言或C語言源程序,然后保存該文件,注意必須加上擴展名(匯編語言源程序一般用asm或a
77、51為擴展名,而C語言源程序一般用c 為擴展名),這里假定將文件保存為exam1.asm。需要說明的是,源文件就是一般的文本文件,不一定使用Keil軟件編寫,可以使用任意文本編緝器編寫,而且,Keil的編緝器對漢字的支持不好,建議使用UltraEdit之類的編緝軟件進行源程序的輸入。</p><p><b> 2、建立工程文件</b></p><p>
78、在項目開發(fā)中,并不是僅有一個源程序就行了,還要為這個項目選擇CPU(Keil支持數(shù)百種CPU,而這些CPU的特性并不完全相同),確定編譯、匯編、連接的參數(shù),指定調(diào)試的方式,有一些項目還會有多個文件組成等,為管理和使用方便,Keil使用工程(Project)這一概念,將這些參數(shù)設(shè)置和所需的所有文件都加在一個工程中,只能對工程而不能對單一的源程序進行編譯(匯編)和連接等操作。點擊“Project->New Project…”菜單,出現(xiàn)
79、一個對話框,要求給將要建立的工程起一個名字,可以在編緝框中輸入一個名字(設(shè)為exam1),不需要擴展名。點擊“保存”按鈕,出現(xiàn)第二個對話框,如圖7.1所示,這個對話框要求選擇目標CPU,Keil支持的CPU很多,我們選擇Atmel公司的89S52芯片。點擊ATMEL前面的“+”號,展開該層,點擊其中的89S52,然后再點擊“確定”按鈕,回到主界面,此時,在工程窗口的文件頁中,出現(xiàn)了“Target1”,前面有“+”號,點擊“+”號展開,可
80、以看到下一層的“Source Group1”,這時的工程還是一個空的工程,里面什么文件也沒有,需要手動把剛才編寫好的源程序加入</p><p> 圖5.1 加入文件</p><p> 選中其中的“Add file toGroup”Source Group1”,出現(xiàn)一個對話框,要求尋找源文件,注意:該對話框下面的“文件類型”默認為C source file(*.c),也就是以C為擴展名
81、的文件,而我們的文件是以asm為擴展名的,所以在列表框中找不到exam1.asm,要將文件類型改掉,點擊對話框中“文件類型”后的下拉列表,找到并選中“Asm Source File(*.a51,*.asm),這樣,在列表框中就可以找到exam1.asm文件了。雙擊exam1.asm文件,將文件加入項目,注意,在文件加入項目后,該對話框并不消失,等待繼續(xù)加入其它文件,如果誤認為操作沒有成功而再次雙擊同一文件,這時會出現(xiàn)重復(fù)加入文件錯誤的對
82、話框,提示你所選文件已在列表中,此時應(yīng)點擊“確定”,返回前一對話框,然后點擊“Close”即可返回主界面,返回后,點擊“SourceGroup 1”前的加號,會發(fā)現(xiàn)exam1.asm文件已在其中。雙擊文件名,即打開該源程序。</p><p> 5.2.2 工程的詳細設(shè)置</p><p> 工程建立好以后,還要對工程進行進一步的設(shè)置,以滿足要求。</p><p>
83、; 首先點擊左邊Project窗口的Target 1,然后使用菜單“Project->Option for target‘target1’”即出現(xiàn)對工程設(shè)置的對話框,這個對話框可謂非常復(fù)雜,共有8個頁面,要全部搞清可不容易,好在絕大部份設(shè)置項取默認值就行了。</p><p> 設(shè)置對話框中的Target頁面,如圖5.2所示:</p><p> 圖5.2 對目標進行設(shè)置<
84、/p><p> Xtal后面的數(shù)值是晶振頻率值,默認值是所選目標CPU的最高可用頻率值,對于我們所選的AT89S52而言是24M,該數(shù)值與最終產(chǎn)生的目標代碼無關(guān),僅用于軟件模擬調(diào)試時顯示程序執(zhí)行時間。正確設(shè)置該數(shù)值可使顯示時間與實際所用時間一致,一般將其設(shè)置成與你的硬件所用晶振頻率相同,如果沒必要了解程序執(zhí)行的時間,也可以不設(shè),這里設(shè)置為12。Memory Model用于設(shè)置RAM使用情況,有三個選擇項,Small
85、是所有變量都在單片機的內(nèi)部RAM中;Compact是可以使用一頁外部擴展RAM,而Larget則是可以使用全部外部的擴展RAM。Code Model用于設(shè)置ROM空間的使用,同樣也有三個選擇項,即Small模式,只用低于2K的程序空間;Compact模式,單個函數(shù)的代碼量不能超過2K,整個程序可以使用64K程序空間;Large模式,可用全部64K空間。Use on-chip ROM選擇項,確認是否僅使用片內(nèi)ROM(注意:選中該項并不會影
86、響最終生成的目標代碼量);Operating項是操作系統(tǒng)選擇,Keil提供了兩種操作系統(tǒng):Rtx tiny和Rtx full,關(guān)于操作系統(tǒng)是另外一個很大的話題</p><p> 設(shè)置對話框中的OutPut頁面,如圖5.3所示:</p><p> 圖5.3 對輸出進行控制</p><p> 這里面也有多個選擇項,其中Creat Hex file用于生成可執(zhí)行代
87、碼文件(可以用編程器寫入單片機芯片的HEX格式文件,文件的擴展名為.HEX),默認情況下該項未被選中,如果要寫片做硬件實驗,就必須選中該項,在此特別提醒注意。選中Debug information將會產(chǎn)生調(diào)試信息,這些信息用于調(diào)試,如果需要對程序進行調(diào)試,應(yīng)當選中該項。Browse information是產(chǎn)生瀏覽信息,該信息可以用菜單view->Browse來查看,這里取默認值。按鈕“Select Folder for obje
88、cts”是用來選擇最終的目標文件所在的文件夾,默認是與工程文件在同一個文件夾中。Name of Executable用于指定最終生成的目標文件的名字,默認與工程的名字相同,這兩項一般不需要更改。</p><p> 工程設(shè)置對話框中的其它各頁面與C51編譯選項、A51的匯編選項、BL51連接器的連接選項等用法有關(guān),這里均取默認值,不作任何修改。</p><p> 5.2.3 編譯、連接
89、</p><p> 在設(shè)置好工程后,即可進行編譯、連接。選擇菜單Project->Build target,對當前工程進行連接,如果當前文件已修改,軟件會先對該文件進行編譯,然后再連接以產(chǎn)生目標代碼;如果選擇Rebuild All target files將會對當前工程中的所有文件重新進行編譯然后再連接,確保最終生產(chǎn)的目標代碼是最新的,而Translate….項則僅對該文件進行編譯,不進行連接。以上操作也
90、可以通過工具欄按鈕直接進行。圖5.4是有關(guān)編譯、設(shè)置的工具欄按鈕:</p><p> 圖5.4 有關(guān)編譯、連接、項目設(shè)置的工具條</p><p> 從左到右分別是:編譯、編譯連接、全部重建、停止編譯和對工程進行設(shè)置。編譯過程中的信息將出現(xiàn)在輸出窗口中的Build頁中,如果源程序中有語法錯誤,會有錯誤報告出現(xiàn),雙擊該行,可以定位到出錯的位置,對源程序反復(fù)修改之后,最終會得到如圖7.7所
91、示的結(jié)果:</p><p> 圖5.5 正確編譯、連接之后的結(jié)果</p><p> 提示獲得了名為exam1.hex的文件,該文件即可被編程器讀入并寫到芯片中,同時還產(chǎn)生了一些其它相關(guān)的文件,可被用于Keil的仿真與調(diào)試,這時可以進入下一步調(diào)試的工作。</p><p><b> 5.3 系統(tǒng)仿真</b></p><
92、p> 5.3.1 Proteus工作界面</p><p> Proteus ISIS的工作界面是一種標準的Windows界面,如圖5.6所示。</p><p> 圖5.6 Proteus ISIS的工作界面</p><p> 包括:標題欄、主菜單、標準工具欄、繪圖工具欄、狀態(tài)欄、對象選擇按鈕、預(yù)覽對象方位控制按鈕、仿真進程控制按鈕、預(yù)覽窗口、對象選
93、擇器窗口、圖形編輯窗口。</p><p> 5.3.2 Proteus原理圖的繪制</p><p> Proteus中原理圖繪制比較簡單,具體可參見其幫助,暫不贅述。</p><p><b> 5.3.3 仿真</b></p><p> 由于Proteus里沒有超聲波傳感器,也沒有能夠完全代替它功能元件,所以
94、本設(shè)計只敘述其能仿真出來一部分[10]。</p><p><b> 1、源程序的錄入</b></p><p> 先右擊AT89S52,再左擊AT89S52,會出現(xiàn)如圖5.7所示的對話框,點擊,選擇所需要的HEX文件。然后單擊OK。</p><p> 圖5.7 錄入源程序?qū)υ捒?lt;/p><p><b>
95、 2、仿真的實現(xiàn)</b></p><p> 一切準備就緒后,點擊,就開始仿真了。</p><p> 圖5.8為本設(shè)計的系統(tǒng)仿真原理圖。 </p><p> 圖5.8 系統(tǒng)仿真原理圖</p><p> 5.4 誤差及特性分析</p><p> 根據(jù)超聲波的特性,距離測量時必須滿足條件:</
96、p><p> 1、被測目標必須垂直于超聲波測距儀。</p><p> 2、被測目標表面必須平坦。</p><p> 3、測量時在超聲波測距儀周圍沒有其他可反射超聲波的物體。因此在測量過程中稍不小心就會接收不到超聲波,而導(dǎo)致沒有測量結(jié)果。</p><p> 由于超聲波的往返時間由單片機AT89S52的定時器T1來記,定時器T1工作在方式1,
97、其最大定時時間為65.536ms,可得出在常溫下最大的測量距離在10m以內(nèi)。且因為發(fā)射功率有限,測距儀也無法測量10m外的物體。</p><p> 第六章 后續(xù)研究工作</p><p> 利用51系列單片機設(shè)計的測距儀便于操作、讀數(shù)直觀。經(jīng)實際測試證明,該類測距儀工作穩(wěn)定,能滿足一般近距離測距的要求,且成本較低、有良好的性價比。由于該系統(tǒng)中鎖相環(huán)鎖定需要一定時間,測得的距離有誤差,在
98、汽車雷達應(yīng)用中可忽略不計;但在精度要求較高的工業(yè)領(lǐng)域如機器人自動測距等方面,此誤差不能忽略,可以通過改變一些硬件的應(yīng)用實現(xiàn)對超聲波的快速鎖定或根據(jù)自己的需要在程序中加入測距軟件補償?shù)拇a,使誤差進一步減小,可以滿足更高要求。</p><p> 本設(shè)計完整地做出之后可測量短距離的距離。因為超聲波的特性,測距時保證傳感器與被測物間,以及測量軸線上沒有障礙物;且要盡量保證傳感器軸線與被測物表面垂直;實際測距范圍與被測
99、物表面材料等因素有關(guān),一般不要測量表面為毛料的物體表面。</p><p> 由于時間不是很充裕,對系統(tǒng)的設(shè)計還存在一些不足,下一步還有以下工作要繼續(xù)進行:</p><p> 1、超聲波發(fā)射波形的改進</p><p> 因為該設(shè)計加在發(fā)射器上的電壓波形采用方波,方波含有豐富的高次諧波,不利于精確鑒相。這將增加發(fā)射波與回波的諧波失真。所以在接下來的工作中,可能會考
100、慮用正弦波代替方波來優(yōu)化該設(shè)計。</p><p><b> 2、樣機的制作</b></p><p> 由于時間關(guān)系,樣機只實現(xiàn)了測試部分功能,設(shè)計在溫度測量等各方面都未實現(xiàn),;另外由于自身知識和材料的缺乏,報警模塊未能實現(xiàn),也是本次設(shè)計當中不足之處。其余功能由于產(chǎn)品購買不及時,以及產(chǎn)品效果不夠好,未能及時添加。</p><p> 3、進一
101、步研究系統(tǒng)的抗干擾性能</p><p> 硬件抗干擾技術(shù)是系統(tǒng)設(shè)計時首選的抗干擾措施。常見的硬件抗干擾措施有元件的合理布局、接地的抗干擾處理、隔離技術(shù)等。在制作樣機的過程中,將會采用多種抗干擾技術(shù)對系統(tǒng)進行優(yōu)化,減小測量誤差。</p><p><b> 參考文獻</b></p><p> [1] 林偉, 梁家寧, 李才安. 便攜式多功能超
102、聲波測距儀的設(shè)計與實現(xiàn)[J]. 電子測量技術(shù),2008, (01): 29~31.</p><p> [2] 羅慶生, 韓寶玲. 一種基于超聲波與紅外線探測技術(shù)的測距定位系統(tǒng)[J]. 計算機測量與控制, 2005,(04): 1~3. </p><p> [3] 高飛燕. 基于單片機的超聲波測距系統(tǒng)的設(shè)計[J]. 信息技術(shù), 2005,(07): 43~45.</p&g
103、t;<p> [4] 趙海鳴,卜英勇, 王紀嬋, 周知進. 一種高精度超聲波測距方法的研究[J]. 湖南科技大學(xué)學(xué)報(自然科學(xué)版), 2006,(03): 8~10. </p><p> [5] 路錦正, 王建勤, 楊紹國, 趙珂, 趙太飛. 超聲波測距儀的設(shè)計[J] .傳感器技術(shù), 2002,(08): 9~11. </p><p> [6] 牛余朋, 成曙. 基于單
104、片機的超聲波測距系統(tǒng)[J]. 兵工自動化, 2005, (04): 44~46. </p><p> [7] 張健, 李鋼. 超聲波測距系統(tǒng)的研究與設(shè)計[J]. 合肥工業(yè)大學(xué)學(xué)報(自然科學(xué)版), 2004,(06): 13~15. </p><p> [8] 阮成功, 藍兆輝, 陳碩. 基于單片機的超聲波測距系統(tǒng)[J]. 應(yīng)用科技, 2004, (07): 8~10. </p&g
105、t;<p> [9] 陳興梧,劉鳴,趙煜,趙慧影. 數(shù)字式溫度計DS18B20的特性及應(yīng)用[EB/OL].</p><p> [10] 林志琦,郎建軍,李會杰,佟大鵬. 基于Proteus的單片機可視化軟硬件仿真[M]. 北京:北京航空航天大學(xué)出版社,2006:1~93. </p><p><b> 附錄</b></p><p&
106、gt; 附錄一 系統(tǒng)原理圖</p><p> 附錄二 系統(tǒng)PCB板圖</p><p><b> 附錄三 源程序</b></p><p> #include<reg51.h></p><p> #include<math.h></p><p> /*定義數(shù)據(jù)
107、類型*/</p><p> #define uint unsigned int</p><p> #define uchar unsigned char</p><p> /*定義系統(tǒng)常數(shù)*/</p><p> long int time; /* 時間 */</p><p> bit
108、 CLflag; /* 測量標志 */</p><p> char cshu; /* 串數(shù) */</p><p> #define T12us (256-12) /*定時器設(shè)初值 T=(256-T12us)*12/12MHZ */</p><p> sbit VOLCK=P1^0; /* 發(fā)射 */</p&g
109、t;<p> //接收從P3^2口輸入,采用外部中斷方式</p><p> sbit S1=P2^1;</p><p> sbit S2=P2^3;</p><p> sbit S3=P2^5;</p><p> sbit S4=P2^7;</p><p> char idata numb
110、er[5]; /* 存放距離顯示數(shù)據(jù) */</p><p> char code table[] ={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x45,0xDF,0xD7}; //數(shù)字0-9的編碼</p><p> /* 通用延時子程序 */</p><p> void delay( int j)</p&
111、gt;<p><b> { </b></p><p><b> int i; </b></p><p> for(i=0;i<j;) </p><p><b> i++; </b></p><p><b> }</b>
112、;</p><p> void display(void) /* 顯示5位數(shù)據(jù) */</p><p><b> { </b></p><p> P0=~table[number[4]];</p><p><b> S1=0;</b></p><p>
113、delay(200);</p><p><b> S1=1;</b></p><p> P0=~(table[number[3]]|0x20);</p><p><b> S2=0;</b></p><p> delay(200);</p><p><b>
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文--基于單片機的超聲波測距儀
- 基于51單片機超聲波測距儀設(shè)計畢業(yè)論文
- 基于51單片機超聲波測距儀設(shè)計【畢業(yè)論文】
- 基于單片機的超聲波測距儀
- 基于51單片機超聲波測距儀
- 基于單片機的超聲波測距儀設(shè)計
- 單片機的超聲波測距儀畢業(yè)論文 (含外文翻譯)
- 基于單片機的超聲波測距儀畢業(yè)設(shè)計
- 基于51單片機超聲波測距儀設(shè)計
- 畢業(yè)設(shè)計(論文)基于單片機的超聲波測距儀設(shè)計
- 畢業(yè)論文---超聲波測距儀
- 畢業(yè)設(shè)計論文-基于單片機的超聲波測距儀設(shè)計
- 基于單片機的超聲波測距儀設(shè)計(畢業(yè)設(shè)計論文)
- 基于單片機控制超聲波測距儀畢業(yè)設(shè)計
- 畢業(yè)論文_超聲波測距儀
- 超聲波測距儀畢業(yè)論文
- 基于51單片機的超聲波測距儀設(shè)計
- 超聲波測距儀畢業(yè)論文
- 基于單片機的超聲波測距儀設(shè)計畢業(yè)設(shè)計
- 基于單片機的超聲波測距儀的設(shè)計-畢業(yè)設(shè)計論文
評論
0/150
提交評論