基于at89c51單片機(jī)超聲波測距儀的設(shè)計(jì)畢業(yè)設(shè)計(jì)_第1頁
已閱讀1頁,還剩47頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(jì)(論文)</b></p><p><b>  摘要</b></p><p>  超聲波是一種在彈性介質(zhì)中的機(jī)械振蕩,它是由與介質(zhì)相接觸的振蕩源所引起的,其頻率在20000Hz以上。由于它有指向性強(qiáng)、方向性好、傳播能量大、傳播距離較遠(yuǎn)等特點(diǎn),因此常用于測量物體的距離。</p><p> 

2、 本文介紹了基于AT89C51單片機(jī)的超聲波測距儀的軟硬件設(shè)計(jì),整個(gè)系統(tǒng)分為單片機(jī)控制模塊、發(fā)射模塊和接收模塊組成。程序采用模塊化設(shè)計(jì),由主程序、預(yù)置子程序、發(fā)射子程序、接收子程序、顯示子程序等模塊組成。超聲探頭接收的信號(hào)經(jīng)單片機(jī)綜合分析處理后,實(shí)現(xiàn)了超聲波測距儀的各種功能。</p><p>  關(guān)鍵詞 超聲波 AT89C51 測量距離</p><p><b>  目

3、 錄</b></p><p><b>  1 緒論1</b></p><p>  1.1 研究背景1</p><p>  1.2 研究內(nèi)容1</p><p><b>  2 相關(guān)知識(shí)2</b></p><p>  2.1 超聲波發(fā)生器2</p

4、><p>  2.2.單片機(jī)的任務(wù)2</p><p>  2.3 AT89C51單片機(jī)主要特性和引腳功能2</p><p>  3理論分析與計(jì)算5</p><p>  3.1測量與控制方法5</p><p>  3.3超聲波測距誤差分析6</p><p>  4系統(tǒng)硬件電路設(shè)計(jì)8<

5、/p><p>  4.1單片機(jī)系統(tǒng)及顯示電路8</p><p>  4.1.1 74LS244的簡介9</p><p>  4.2超聲波發(fā)射電路9</p><p>  4.3超聲波監(jiān)測接收電路10</p><p>  4.4顯示電路原理11</p><p>  5系統(tǒng)軟件設(shè)計(jì)12<

6、;/p><p><b>  5.1主程序12</b></p><p>  5.2超聲波發(fā)生子程序和接收子程序13</p><p>  5.3 超聲波的接收與處理14</p><p>  6單片機(jī)系統(tǒng)的可靠性15</p><p>  6.1測試單片機(jī)系統(tǒng)的可靠性15</p>&l

7、t;p>  6.2單片機(jī)的抗干擾性15</p><p><b>  7軟硬件調(diào)試16</b></p><p><b>  7.1調(diào)試16</b></p><p>  7.2提高精度的方案及系統(tǒng)設(shè)計(jì)16</p><p><b>  8系統(tǒng)的擴(kuò)展18</b><

8、/p><p>  8.1 DS18B20的簡介18</p><p>  8.11DS18B20的主要特性18</p><p>  8.12 DS18B20的外形和內(nèi)部結(jié)構(gòu)18</p><p>  8.13 DS18B20的工作原理19</p><p>  8.14 DS18B20有4個(gè)主要的數(shù)據(jù)部件19</

9、p><p>  8.2 DS18B20與單片機(jī)的連接20</p><p>  8.3 DS18B20與51單片機(jī)的連接程序21</p><p><b>  結(jié)論27</b></p><p><b>  致謝28</b></p><p><b>  參考文獻(xiàn)29

10、</b></p><p><b>  附錄30</b></p><p>  附錄1電路原理圖30</p><p>  附錄2程序源代碼31</p><p><b>  1 緒論</b></p><p><b>  1.1 研究背景</b>

11、;</p><p>  由于社會(huì)不斷進(jìn)步發(fā)展,許多傳統(tǒng)的測距方法已經(jīng)無法滿足我們的需求,例如在井深,液位,管道長度等場合。還有在很多要求實(shí)時(shí)測距的情況下,傳統(tǒng)的測距方法也很難完成測量的任務(wù)。于是,在這種情況下一種新的測距方法誕生了---超聲波測距。</p><p>  超聲波可用于非接觸測量,具有不受光、電磁波以及粉塵等外界因素的干擾的優(yōu)點(diǎn),是利用計(jì)算超聲波在被測物體和超聲波探頭之間的傳輸

12、來測量距離的,對(duì)被測目標(biāo)無損害。而且超聲波傳播速度在相當(dāng)大范圍內(nèi)與頻率無關(guān)。超聲波的這些獨(dú)特優(yōu)點(diǎn)越來越受到人們的重視。</p><p>  目前對(duì)于超聲波精確測距的需求也越來越大,如油庫和水箱液面的精確測量和控制,物體內(nèi)氣孔大小的檢測和機(jī)械內(nèi)部損傷的檢測等。在機(jī)械制造,電子冶金,航海,宇航,石油化工,交通等工業(yè)領(lǐng)域也有廣泛地應(yīng)用。此外,在材料科學(xué),醫(yī)學(xué),生物科學(xué)等領(lǐng)域中也占具重要地位。</p>&l

13、t;p><b>  1.2 研究內(nèi)容</b></p><p>  超聲波測距儀主要以單片機(jī)AT89C51為核心,其發(fā)射器是利用壓電晶體的諧振帶動(dòng)周圍空氣振動(dòng)來工作的.超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射的同時(shí)開始計(jì)時(shí) ,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器接收到反射波就立即停止計(jì)時(shí)。一般情況下,超聲波在空氣中的傳播速度為340m/ s,根據(jù)計(jì)時(shí)器記錄的時(shí)間t

14、 ,就可以計(jì)算出發(fā)射點(diǎn)距障礙物的距離 s,即s=340×t/2。</p><p>  本系統(tǒng)的一個(gè)亮點(diǎn)就是利用超聲波測量距離,超聲波具有不受光、電磁波以及粉塵等外界因素的干擾的優(yōu)點(diǎn),而且超聲波傳播速度在相當(dāng)大范圍內(nèi)與頻率無關(guān)。</p><p><b>  2 相關(guān)知識(shí)</b></p><p>  2.1 超聲波發(fā)生器</p>

15、;<p>  我們知道,由于超聲波指向性強(qiáng),能量消耗緩慢,在介質(zhì)中傳播的距離比較遠(yuǎn),因而超聲波經(jīng)常用于距離的測量。利用超聲波檢測距離,設(shè)計(jì)比較方便,計(jì)算處理也比較簡單,并且在測量精度方面也能達(dá)到日常使用的要求。</p><p>  超聲波發(fā)生器可以分為兩大類:一類是用電氣方式產(chǎn)生超聲波,一類是用機(jī)械方式產(chǎn)生超聲波。電氣方式包括壓電型、電動(dòng)型;機(jī)械方式有加爾統(tǒng)笛、液哨和氣流旋笛等,它們所產(chǎn)生的超聲波的

16、頻率、功率和聲波特性各不相同,因而用途也各不相同,目前在近距離測量方面較為常用的是壓電式超聲波換能器。</p><p>  2.2.單片機(jī)的任務(wù)</p><p>  單片機(jī)的任務(wù)是指以單片機(jī)為核心,構(gòu)建硬件部分和軟件部分組成,配以一定的外圍電路和軟件,實(shí)現(xiàn)某幾種功能,完成相應(yīng)的任務(wù)。硬件是系統(tǒng)的基礎(chǔ),軟件則是在硬件的基礎(chǔ)上對(duì)其合理的調(diào)配和使用,從而完成應(yīng)用系統(tǒng)所要完成的基礎(chǔ)。一般來講,所要

17、完成的任務(wù)不同,相應(yīng)的硬件配置和軟件配置也就不同。因此,單片機(jī)的設(shè)計(jì)應(yīng)包括硬件設(shè)計(jì)和軟件設(shè)計(jì)兩大部分。</p><p>  2.3 AT89C51單片機(jī)主要特性和引腳功能</p><p>  AT89C51是帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(EPEROM)的低電壓、高性能CMOS 8位微處理器(俗稱單片機(jī))。該單片機(jī)與工業(yè)標(biāo)準(zhǔn)的MCS-51型機(jī)的指令集和輸出引腳兼容。AT89C51將多

18、功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,為很多嵌入式控制提供了靈活性高且價(jià)格低廉的方案。</p><p>  AT89C51的主要特性如下:</p><p>  壽命達(dá)1000寫/擦循環(huán);</p><p>  數(shù)據(jù)保留時(shí)間:10年;</p><p>  全靜態(tài)工作:0Hz-24MHz;</p><p>  三級(jí)程序

19、存儲(chǔ)器鎖定;</p><p>  128 * 8位內(nèi)部RAM;</p><p>  32可編程I/O線;</p><p>  2個(gè)16位定時(shí)器/計(jì)數(shù)器;</p><p><b>  5個(gè)中斷源;</b></p><p><b>  可編程串行通道;</b></p>

20、<p>  低功耗閑置和掉電模式;</p><p>  片內(nèi)振蕩器和時(shí)鐘電路;</p><p>  AT89C51引腳排列如圖1所示,引腳功能如下圖2-1所示:</p><p>  圖2-1AT89C51引腳圖</p><p>  VCC(40):+5V.</p><p>  GND(20):接地。<

21、;/p><p>  P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入

22、1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)

23、行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLA</p><p><b>  3理論分析與計(jì)算</b></p><p>  3.1測量與控制方法</p><p>  聲波在其傳播介質(zhì)中被定義為縱波。當(dāng)聲波受到尺寸大于其波長的目標(biāo)物體阻

24、擋時(shí)就會(huì)發(fā)生反射;反射波稱為回聲。假如聲波在介質(zhì)中傳播的速度是已知的,而且聲波從聲源到達(dá)目標(biāo)然后返回聲源的時(shí)間可以測量得到,從聲波到目標(biāo)的距離就可以精確地計(jì)算出來。這就是本系統(tǒng)的測量原理。</p><p>  超聲波傳感器的結(jié)構(gòu)如圖3-1所示。</p><p>  圖3 -1 超聲波傳感器結(jié)構(gòu)</p><p>  超聲波測距器的系統(tǒng)框圖如圖3-2所示:</p&

25、gt;<p>  圖3-2超聲波測距器的系統(tǒng)框圖</p><p>  超聲波也是一種聲波,其聲速c與溫度有關(guān),表3-3列出了幾種不同溫度下的超聲波聲速。在使用時(shí),如果溫度變化不大,則可認(rèn)為聲速是基本不變的。如果測距精度要求很高,則應(yīng)通過溫度補(bǔ)償?shù)姆椒右孕UB曀俅_定后,只要測得超聲波往返的時(shí)間,即可求得距離。 </p><p>  表3-3 不同溫度下超聲波聲速表</

26、p><p><b>  3.2理論計(jì)算</b></p><p>  圖3-4 測距的原理</p><p>  如圖3-4所示為反射時(shí)間法,是利用檢測聲波發(fā)出到接收到被測物反射回波的時(shí)間來測量距離其原理如圖所示,對(duì)于距離較短和要求不高的場合我們可認(rèn)為空氣中的聲速為常數(shù),我們通過測量回波時(shí)間T利用公式S=C*(T/2)其中,S為被測距離、V為空氣中聲速

27、、T為回波時(shí)間(T=T1+T2),可以計(jì)算出路程,這種方法不受聲波強(qiáng)度的影響,直接耦合信號(hào)的影響也可以通過設(shè)置“時(shí)間門”來加以克服。</p><p>  這樣可以求出距離:</p><p>  S=C(T1-T2)/2</p><p>  3.3超聲波測距誤差分析</p><p>  (1) 發(fā)射接收時(shí)間對(duì)測量精度的影響分析 </p&

28、gt;<p>  采用 TR40 壓電超聲波傳感器,脈沖發(fā)射由單片機(jī)控制,發(fā)射頻率 40KHz ,忽略脈沖電路硬件產(chǎn)生的延時(shí),可知由軟件生成的起始時(shí)間對(duì)于一般要求的精度是可靠的。對(duì)于接收到的回波,超聲波在空氣介質(zhì)的傳播過程中會(huì)有很大的衰減,其衰減遵循指數(shù)規(guī)律。 </p><p>  設(shè)測量設(shè)備基準(zhǔn)面距被測物距離為h,則空氣中傳播的超聲波波動(dòng)方程為:</p><p><b

29、>  <1></b></p><p>  由以上公式可知,超聲波在傳播過程中存在衰減,且超聲波頻率越高,衰減越快,但頻率的增高有利于提高超聲波的指向性。 </p><p>  經(jīng)以上分析,超聲波回波的幅值在傳播過程中衰減很大,收到的回波信號(hào)可能十分微弱,要想判斷捕獲到的第一個(gè)回波確定準(zhǔn)確的接受時(shí)間,必須對(duì)收到的信號(hào)進(jìn)行足夠的放大,否則不正確的判斷回波時(shí)間,會(huì)對(duì)

30、超聲波測量精度產(chǎn)生影響。 </p><p>  (2) 當(dāng)?shù)芈曀賹?duì)測量精度的影響分析 </p><p>  當(dāng)?shù)芈曀賹?duì)超聲波測距測量精度的影響遠(yuǎn)遠(yuǎn)要比收發(fā)時(shí)間的影響嚴(yán)重。超聲波在大氣中傳播的速度受介質(zhì)氣體的溫度、密度及氣體分子成分的影響,即: </p><p><b>  <2></b></p><p>  

31、由上式知,在空氣中,當(dāng)?shù)芈曀僦粵Q定于氣體的溫度,因此獲得準(zhǔn)確的當(dāng)?shù)貧鉁乜梢杂行У奶岣叱暡y距時(shí)的測量精度。工程上常用的由氣溫估算當(dāng)?shù)芈曀俚墓饺缦拢?</p><p><b>  <3></b></p><p>  式中 C0=331.4m/s ;</p><p>  T——為絕對(duì)溫度,單位K 。 </p>

32、<p>  此公式一般能為聲速的換算提供較為準(zhǔn)確的結(jié)果。實(shí)際情況下,溫度每上升或者下降 1oC, 聲速將增加或者減少 0.607m /s ,這個(gè)影響對(duì)于較高精度的測量是相當(dāng)嚴(yán)重的。因此提高超聲波測量精度的重中之重就是獲得準(zhǔn)確的當(dāng)?shù)芈曀佟?</p><p><b>  4系統(tǒng)硬件電路設(shè)計(jì)</b></p><p>  硬件電路主要分為單片機(jī)系統(tǒng)及顯示電路、超聲

33、波發(fā)射電路和超聲波檢測接收電路三部分。</p><p>  4.1單片機(jī)系統(tǒng)及顯示電路</p><p>  單片機(jī)采用AT89C51或其兼容系列。采用12MHZ高精度的晶振,以獲得較穩(wěn)定的時(shí)鐘頻率,減小測量誤差。單片機(jī)用P1.0端口輸出超聲波換能器所需的40KMZ方波信號(hào),利用外中斷0口監(jiān)測超聲波接收電路輸出的返回信號(hào)。顯示電路采用簡單實(shí)用的4位共陽LED數(shù)碼管,段碼用74LS244驅(qū)動(dòng),

34、位碼用PNP三極管8550驅(qū)動(dòng)。</p><p>  單片機(jī)系統(tǒng)及顯示電路如下圖4-1所示</p><p>  圖4-1單片機(jī)系統(tǒng)及顯示電路</p><p>  4.1.1 74LS244的簡介</p><p> ?。?)74LS244引腳圖如下4-2所示:</p><p>  圖4-2 74LS244引腳圖<

35、/p><p><b> ?。?)引腳功能:</b></p><p>  1A1~1A4,2A1~2A4    輸入端  /1G, /2G    三態(tài)允許端(低電平有效)</p><p>  1Y1~1Y4,2Y1~2Y4   

36、  輸出端</p><p>  4.2超聲波發(fā)射電路</p><p>  超聲波發(fā)射電路原理圖如下圖4-3所示。發(fā)生電路主要由反向器74LS04和超聲波發(fā)射換能器T構(gòu)成,單片機(jī)P1.0端口輸出的40KMz方波信號(hào)一路經(jīng)一級(jí)反向器后送到超聲波換能器的一個(gè)電極,另一路經(jīng)兩級(jí)反向器后送到超聲波換能器的另一個(gè)電極。用這種推挽形式將方波信號(hào)加到超聲波換能器兩端,可以提高超聲波的發(fā)射強(qiáng)度。輸

37、出端采用兩個(gè)反向器并聯(lián),用以提高驅(qū)動(dòng)能力。上拉電阻R10、R11一方面可以提高反向器74LS04輸出高電平的驅(qū)動(dòng)能力,另一方面可以增加超聲換能器的阻尼效果,縮短其自由振蕩的時(shí)間。</p><p>  壓電式超聲波換能器是利用壓電晶體的諧振來工作的。超聲波換能器內(nèi)部結(jié)構(gòu)它有兩個(gè)壓電晶片和一個(gè)共振板。當(dāng)它的兩極外加脈沖信號(hào),其頻率等于壓電晶片的固有振蕩頻率時(shí),壓電晶片將會(huì)發(fā)生共振,并帶動(dòng)共振板振動(dòng)產(chǎn)生超聲波,這時(shí)它就

38、是一個(gè)超聲波發(fā)生器;反之,如果兩電極間未加電壓,當(dāng)共振板接收到超聲波時(shí),將壓迫壓電晶片作振動(dòng),將機(jī)械能轉(zhuǎn)換為電信號(hào),這時(shí)它就成為超聲波接收換能器了。超聲波發(fā)射換能器與接收換能器其結(jié)構(gòu)上稍有不同,使用時(shí)應(yīng)分清器件上的標(biāo)志。</p><p>  圖4-3超聲波發(fā)射電路</p><p>  4.3超聲波監(jiān)測接收電路 </p><p>  集成電路CX20106A是一款紅外

39、線檢波接收的專用芯片,常用于電視機(jī)紅外遙控接收器。考慮到紅外遙控常用的載波頻率38KHz與測距的超聲波頻率40kHz較為接近,可以利用它制作超聲波檢測接收電路。實(shí)驗(yàn)證明用CX20106A接收超聲波(無信號(hào)時(shí)輸出高電平),具有很高的靈敏度和較強(qiáng)的抗干擾能力。適當(dāng)更改電容C4的大小,可以改變接收電路的靈敏度和抗干擾能力。如圖4-4所示:</p><p>  圖4-4超聲波檢測電路</p><p&g

40、t;<b>  4.4顯示電路原理</b></p><p>  超聲波測距儀顯示模塊如下圖4-5所示。通過單片機(jī)的15、16、17三個(gè)管腳的信號(hào)控制三個(gè)三極管的B級(jí),利用三極管的開關(guān)特性,實(shí)現(xiàn)數(shù)碼管的點(diǎn)亮,從而實(shí)現(xiàn)動(dòng)態(tài)顯示。</p><p><b>  4-5顯示模塊</b></p><p><b>  5系統(tǒng)軟

41、件設(shè)計(jì)</b></p><p><b>  5.1主程序</b></p><p>  主程序首先是對(duì)系統(tǒng)環(huán)境初始化,設(shè)置定時(shí)器T0工作模式為16位定時(shí)計(jì)數(shù)器模式,置位總中斷容許位EA并給顯示端口P0和P2清0.然后調(diào)用超聲波發(fā)生子程序送出一個(gè)超聲波脈沖,為了避免超聲波從發(fā)射器直接傳送到接收器引起的直射波觸發(fā),需要延時(shí)約0.1ms(這也就是超聲波測距器會(huì)有一

42、個(gè)最小可測距離的原因)后,才打開外中斷0接收返回的超聲波信號(hào)。由于采用的是12MHz的晶振,計(jì)數(shù)器每計(jì)一個(gè)數(shù)就是1us,當(dāng)主程序檢測到接收成功的標(biāo)志位后,將計(jì)數(shù)器T0中的數(shù)(即超設(shè)波來回所用的距離)按下式計(jì)算,即可得被測物體與測距器之間的距離,設(shè)計(jì)時(shí)取20度時(shí)的聲速為344m/s</p><p><b>  則有: </b></p><p>  S=(C*T

43、)/2=172T0/10000cm</p><p>  其中T0為計(jì)數(shù)器T0的計(jì)數(shù)值。</p><p>  測出距離后結(jié)果將以十進(jìn)制BCD碼方式送往LED顯示約0.5s,然后再發(fā)超聲波脈沖重復(fù)測量過程。為了有利于程序結(jié)構(gòu)化合容易計(jì)算出距離,主程序采用C語言編寫。</p><p>  圖5-1為主程序流程圖</p><p><b> 

44、 圖5-1流程圖</b></p><p>  5.2超聲波發(fā)生子程序和接收子程序</p><p> ?。?)超聲波發(fā)生子程序的作用是通過P1.0端口發(fā)送2個(gè)左右的超聲波信號(hào)頻率約40KHz的方波,脈沖寬度為12us左右,同時(shí)把計(jì)數(shù)器T0打開進(jìn)行計(jì)時(shí)。</p><p>  (2)超聲波測距器主程序利用外中斷0檢測返回超聲波信號(hào),一旦接收到返回超聲波信號(hào)(I

45、NT0引腳出現(xiàn)低電平),立即進(jìn)入中斷程序。進(jìn)入該中斷后就立即關(guān)閉計(jì)時(shí)器T0停止計(jì)時(shí),并將測距成功標(biāo)志字賦值1。</p><p> ?。?)如果當(dāng)計(jì)時(shí)器溢出時(shí)還未檢測到超聲波返回信號(hào),則定時(shí)器T0溢出中斷將外中斷0 關(guān)閉,并將測距成功標(biāo)志字賦值2以表示此次測距不成功。如下圖5-2所示:</p><p>  圖5-2超聲波發(fā)生子程序和超聲波接收中斷程序流程圖</p><p

46、>  5.3 超聲波的接收與處理 </p><p>  接收頭采用與發(fā)射頭配對(duì)的UCM40R,將超聲波調(diào)制脈沖變?yōu)榻蛔冸妷盒盘?hào),經(jīng)運(yùn)算放大器IC1A和IC1B兩極放大后加至IC2。IC2是帶有鎖定環(huán)的音頻譯碼集成塊LM567,內(nèi)部的壓控振蕩器的中心頻率f0=1/1.1R8C3,電容C4決定其鎖定帶寬。調(diào)節(jié)R8在發(fā)射的載頻上,則LM567輸入信號(hào)大于25mV,輸出端8腳由高電平躍變?yōu)榈碗娖?,作為中斷請求信?hào),

47、送至單片機(jī)處理。 </p><p>  前方測距電路的輸出端接單片機(jī)INT0端口,中斷優(yōu)先級(jí)最高,左、右測距電路的輸出通過與門IC3A的輸出接單片機(jī)INT1端口,同時(shí)單片機(jī)P1.3和P1.4接到IC3A的輸入端,中斷源的識(shí)別由程序查詢來處理,中斷優(yōu)先級(jí)為先右后左。部分源程序如下: receive1:push psw </p><p><b>  push acc </b&g

48、t;</p><p>  clr ex1 ;關(guān)外部中斷1 </p><p>  jnb p1.1, right ;P1.1引腳為0,轉(zhuǎn)至右測距電路中斷服務(wù)程序</p><p>  jnb p1.2, left ;P1.2引腳為0,轉(zhuǎn)至左測距電路中斷服務(wù)程序 </p><p>  return:SETB EX1;開外部中斷1 </p>

49、;<p><b>  pop acc </b></p><p><b>  pop psw </b></p><p><b>  reti </b></p><p>  right: ... ;右測距電路中斷服務(wù)程序入口 </p><p>  AJMP RETUR

50、N </p><p>  left:... ;左測距電路中斷服務(wù)程序入口 </p><p>  AJMP RETURN </p><p>  6單片機(jī)系統(tǒng)的可靠性</p><p>  6.1測試單片機(jī)系統(tǒng)的可靠性</p><p>  當(dāng)一個(gè)單片機(jī)系統(tǒng)設(shè)計(jì)完成后,對(duì)于不同的單片機(jī)系統(tǒng)產(chǎn)品會(huì)有不同的測試項(xiàng)目和方法,但是有一

51、些是必須測試的。</p><p> ?。?)測試單片機(jī)軟件功能的完整性。這是針對(duì)所有單片機(jī)系統(tǒng)功能的測試,測試軟件是否寫得正確完整。</p><p>  (2)上電、掉電測試。在使用中用戶必然會(huì)遇到上電和掉電的情況,可以進(jìn)行多次開關(guān)電源,測試單片機(jī)系統(tǒng)的可抗性。</p><p>  (3)老化測試。測試長時(shí)間工作情況下,單片機(jī)系統(tǒng)的可抗性。必要的話可以放置在高溫、高

52、壓以及強(qiáng)電磁干擾的環(huán)境下測試。</p><p> ?。?)ESD和EFT等測試??梢允褂酶鞣N干擾模擬器來測試單片機(jī)系統(tǒng)的可抗性。例如使用靜電模擬器測試單片機(jī)系統(tǒng)的抗靜電ESD能力;使用突波雜訊模擬器進(jìn)行快速脈沖抗干擾EFT測試等。</p><p>  6.2單片機(jī)的抗干擾性</p><p>  影響單片機(jī)系統(tǒng)可靠安全運(yùn)行的主要因素主要來自系統(tǒng)內(nèi)部和外部的各種電氣干擾

53、,并受系統(tǒng)結(jié)構(gòu)設(shè)計(jì)、元器件選擇、安裝、制造工藝的影響。這些都是單片機(jī)系統(tǒng)的干擾因素,常會(huì)導(dǎo)致單片機(jī)系統(tǒng)運(yùn)行失常,輕則影響產(chǎn)品質(zhì)量和產(chǎn)量,重則會(huì)導(dǎo)致事故,造成重大經(jīng)濟(jì)損失。</p><p>  形成干擾的基本要素有三個(gè):</p><p>  (1)干擾源。指產(chǎn)生干擾的元件、設(shè)備或信號(hào),用數(shù)學(xué)語言描述為du/dt、di/dt大的地方就是干擾源,如雷電、繼電器、可控硅、電機(jī)、高頻時(shí)鐘等都可能成為

54、干擾源</p><p>  (2)傳播路徑。指干擾從干擾源傳播到敏感器件的通路或媒介。典型的干擾傳播路徑是通過導(dǎo)線的傳導(dǎo)和空間的輻射。</p><p>  (3)敏感器件。指容易被干擾的對(duì)象,如A/D、D/A變換器,單片機(jī),數(shù)字IC,弱信號(hào)放大器等。</p><p><b>  7軟硬件調(diào)試</b></p><p>&l

55、t;b>  7.1調(diào)試</b></p><p>  測試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程。具體地說,軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)出一批測試用例,并利用測試用例來運(yùn)行程序,以發(fā)現(xiàn)程序錯(cuò)誤的過程。</p><p>  超聲波測距儀的制作和調(diào)試,其中超聲波發(fā)射和接收采用Φ15的超聲波換能器TCT40-10F1(T發(fā)射)和TCT40-10

56、S1(R接收),中心頻率為40kHz,安裝時(shí)應(yīng)保持兩換能器中心軸線平行并相距4~8cm,其余元件無特殊要求。若能將超聲波接收電路用金屬殼屏蔽起來,則可提高抗干擾能力。根據(jù)測量范圍要求不同,可適當(dāng)調(diào)整與接收換能器并接的濾波電容C的大小,以獲得合適的接收靈敏度和抗干擾能力。</p><p>  7.2提高精度的方案及系統(tǒng)設(shè)計(jì) </p><p> ?。?)溫度校正的方法提高測距精度 </p

57、><p>  由上述的誤差分析知,如果能夠知道當(dāng)?shù)販囟龋瑒t可根據(jù)公式 ⑷ 求出當(dāng)?shù)芈曀?,從而能夠獲得較高的測量精度。而問題的關(guān)鍵在于獲得溫度數(shù)據(jù)的方法。采用熱敏電阻、熱電耦、集成溫度傳感器都可以獲得較為準(zhǔn)確的溫度值。 </p><p>  為了便于對(duì)溫度信號(hào)的數(shù)據(jù)采集及處理,我們采用 DALASS 公司生產(chǎn)的 DS18B20 集成溫度傳感器。 DS18B20 采用了 DALASS 公司的 1-

58、WIRE 總線專利技術(shù),能夠僅在占用控制器一個(gè) I/O 口的情況下工作(芯片可由數(shù)據(jù)線供電),極大的方便了使用者的調(diào)試使用,而且其在- 10oC ~+ 85oC 的工作環(huán)境下可以保持± 0.5% 的使用精度,在這個(gè)空間內(nèi)足以保證為超聲波測距設(shè)備提供足夠的精度范圍。 </p><p>  通過 DS18B20 芯片獲得的數(shù)據(jù)信號(hào)經(jīng)由 1-WIRE 總線傳至 MCU ,由軟件進(jìn)行聲速換算。為了更好的實(shí)現(xiàn)換算

59、過程同時(shí)兼顧設(shè)備的使用成本,我們采用宏晶公司的最新推出的 STC12C5410 單片機(jī)實(shí)現(xiàn)超聲波測距的各項(xiàng)功能。 STC12C5410 采用了低成本、低功耗、強(qiáng)抗干擾設(shè)計(jì),并且在最高支持 48MHz 的前提下能夠?qū)崿F(xiàn) 1 個(gè)時(shí)鐘 / 機(jī)械周期的運(yùn)行速度。由于能夠使用高頻率的晶振,因此相對(duì)于普通單片機(jī)來說可以有效的減少由計(jì)時(shí)問題帶來的量化誤差,能夠滿足較高精度超聲波測距儀的設(shè)計(jì)要求。 </p><p> ?。?)標(biāo)

60、桿校正的方法提高測距精度 </p><p>  在復(fù)雜環(huán)境下,如果難于獲得環(huán)境溫度,或者不便獲得環(huán)境溫度時(shí),如果仍舊要求較高的測量精度,我們采用所謂標(biāo)桿校正的方法實(shí)現(xiàn)超聲波測距精度的校正。標(biāo)桿校正的示意圖下圖7-1 所示。</p><p>  圖7- 1標(biāo)桿校正的示意圖</p><p>  超聲波測距裝置首先測量距離已知為 h 的基平面(標(biāo)桿)聲波往返所用的時(shí)間,而

61、后由測得的時(shí)間和距離 h 根據(jù)公式 ⑷ 求出當(dāng)?shù)芈曀?。通過這樣的方法,我們也能夠順利的求出聲速,省去了使用傳感器測量溫度所帶來的麻煩。因此,只用為測距設(shè)備設(shè)定“標(biāo)定”和“測量”兩種狀態(tài),即能夠?qū)崿F(xiàn)溫度校正所能實(shí)現(xiàn)的高精度測距功能。</p><p><b>  8系統(tǒng)的擴(kuò)展</b></p><p>  超聲波測距系統(tǒng)在測量距離時(shí),容易受到溫度的影響,從而導(dǎo)致誤差,在此通

62、過DS18B20對(duì)其進(jìn)行改進(jìn)。</p><p>  8.1 DS18B20的簡介</p><p>  8.11DS18B20的主要特性</p><p>  (1)適應(yīng)電壓范圍更寬,電壓范圍:3.0~5.5V,在寄生電源方式下可由數(shù)據(jù)線供電。</p><p>  (2)獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微

63、處理器與DS18B20的雙向通訊。</p><p>  (3)DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測溫。</p><p>  (4)DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。</p><p>  (5)溫范圍-55℃~+125℃,在-10~+85℃時(shí)精度為

64、77;0.5℃。</p><p>  (6)可編程的分辨率為9~12位,對(duì)應(yīng)的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可實(shí)現(xiàn)高精度測溫。</p><p>  (7)在9位分辨率時(shí)最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快。</p><p>  (8)測量結(jié)果直接輸出數(shù)字溫度信號(hào),以

65、"一線總線"串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力。</p><p>  (9)負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作。</p><p>  8.12 DS18B20的外形和內(nèi)部結(jié)構(gòu)</p><p>  DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器

66、TH和TL、配置寄存器。DS18B20的外形及管腳排列如下圖8-1:</p><p>  圖8-1DS18B20的外形及管腳排列</p><p>  8.13 DS18B20的工作原理</p><p>  DS18B20的讀寫時(shí)序和測溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s減為750ms。 DS18B20測溫原

67、理如圖3所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)

68、數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測溫度。圖8-2中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。</p><p>  圖8-2DS18B20測溫原理框圖</p><p>  8.14 DS18B20有4個(gè)主要的數(shù)據(jù)部件</p><p> ?。?)光刻ROM中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該

69、DS18B20的地址序列碼。64位光刻ROM的排列是:開始8位(28H)是產(chǎn)品類型標(biāo)號(hào),接著的48位是該DS18B20自身的序列號(hào),最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。</p><p> ?。?)DS18B20中的溫度傳感器可完成對(duì)溫度的測量,以12位轉(zhuǎn)化為例:用16位符號(hào)擴(kuò)

70、展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625℃/LSB形式表達(dá),其中S為符號(hào)位。</p><p>  表1: DS18B20溫度值格式表</p><p>  這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在18B20的兩個(gè)8比特的RAM中,二進(jìn)制中的前面5位是符號(hào)位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1

71、再乘于0.0625即可得到實(shí)際溫度。</p><p>  表2: DS18B20溫度數(shù)據(jù)表</p><p> ?。?)DS18B20溫度傳感器的存儲(chǔ)器 </p><p>  DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EEPRAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結(jié)構(gòu)寄存器。 </p><p>

72、  (4)配置寄存器該字節(jié)各位的意義如下:</p><p>  表3: 配置寄存器結(jié)構(gòu)</p><p>  低五位一直都是"1",TM是測試模式位,用于設(shè)置DS18B20在工作模式還是在測試模式。在DS18B20出廠時(shí)該位被設(shè)置為0,用戶不要去改動(dòng)。</p><p>  8.2 DS18B20與單片機(jī)的連接</p><p>

73、;  在硬件上,DS18B20與單片機(jī)的連接有兩種方法,一種是Vcc接外部電源,GND接地,I/O與單片機(jī)的I/O線相連;另一種是用寄生電源供電,此時(shí)UDD、GND接地,I/O接單片機(jī)I/O。無論是內(nèi)部寄生電源還是外部供電,I/O口線要接5KΩ左右的上拉電阻。</p><p>  CPU對(duì)DS18B20的訪問流程是:先對(duì)DS18B20初始化,再進(jìn)行ROM操作命令,最后才能對(duì)存儲(chǔ)器操作,數(shù)據(jù)操作。DS18B20每一

74、步操作都要遵循嚴(yán)格的工作時(shí)序和通信協(xié)議。如主機(jī)控制DS18B20完成溫度轉(zhuǎn)換這一過程,根據(jù)DS18B20的通訊協(xié)議,須經(jīng)三個(gè)步驟:每一次讀寫之前都要對(duì)DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。 </p><p>  8.3 DS18B20與51單片機(jī)的連接程序</p><p>  ; FLAG1: 標(biāo)志

75、位,為"1"時(shí)表示檢測到DS18B20</p><p>  ; DQ: DS18B20的數(shù)據(jù)總線接腳</p><p>  ; TEMPER_NUM:保存讀出的溫度數(shù)據(jù)</p><p>  ; 晶振為12MHZ左右</p><p>  TEMPER_L EQU 36H</p><

76、p>  TEMPER_H EQU 35H</p><p>  DQ BIT P1.7</p><p>  ; DS18B20初始化程序</p><p>  ;//*****************************************//</p><p>  INIT_1820:</p&g

77、t;<p>  SETB DQ</p><p><b>  NOP</b></p><p><b>  CLR DQ</b></p><p>  MOV R0,#06BH</p><p><b>  TSR1:</b></p>&l

78、t;p>  DJNZ R0,TSR1 ; 延時(shí)</p><p>  SETB DQ</p><p>  MOV R0,#25H</p><p><b>  TSR2:</b></p><p>  JNB DQ,TSR3</p><p>  DJNZ

79、 R0,TSR2</p><p>  LJMP TSR4 ; 延時(shí)</p><p><b>  TSR3:</b></p><p>  SETB FLAG1 ; 置標(biāo)志位,表示DS1820存在</p><p>  LJMP TSR5</p>&l

80、t;p><b>  TSR4:</b></p><p>  CLR FLAG1 ; 清標(biāo)志位,表示DS1820不存在</p><p>  LJMP TSR7</p><p><b>  TSR5:</b></p><p>  MOV R0,#06BH&l

81、t;/p><p><b>  TSR6:</b></p><p>  DJNZ R0,TSR6 ; 延時(shí)</p><p><b>  TSR7:</b></p><p>  SETB DQ</p><p><b>  RET</b>

82、</p><p>  ;//*****************************************//</p><p>  ; 讀出轉(zhuǎn)換后的溫度值</p><p>  ;//*****************************************//</p><p>  GET_TEMPER:</p>&l

83、t;p>  SETB DQ ; 定時(shí)入口</p><p>  LCALL INIT_1820</p><p>  JB FLAG1,TSS2</p><p>  RET ; 若DS18B20不存在則返回</p><p><b>  TSS2:</b&g

84、t;</p><p>  MOV A,#0CCH ; 跳過ROM匹配</p><p>  LCALL WRITE_1820</p><p>  MOV A,#44H ; 發(fā)出溫度轉(zhuǎn)換命令</p><p>  LCALL WRITE_1820</p><p>  LCA

85、LL INIT_1820</p><p>  MOV A,#0CCH ; 跳過ROM匹配</p><p>  LCALL WRITE_1820</p><p>  MOV A,#0BEH ; 發(fā)出讀溫度命令</p><p>  LCALL WRITE_1820</p>&

86、lt;p>  LCALL READ_1820</p><p>  MOV TEMPER_NUM,A ; 將讀出的溫度數(shù)據(jù)保存</p><p><b>  RET</b></p><p>  ;//*****************************************//</p><p>

87、;  ; 讀DS18B20的程序,從DS18B20中讀出一個(gè)字節(jié)的數(shù)據(jù)</p><p>  ;//*****************************************//</p><p>  READ_1820:</p><p>  MOV R2,#8</p><p><b>  RE1:</b>&l

88、t;/p><p><b>  CLR C</b></p><p>  SETB DQ</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  CLR DQ</b&g

89、t;</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  SETB DQ</p><p>  MOV R3,#7</p><

90、;p>  DJNZ R3,$</p><p>  MOV C,DQ</p><p>  MOV R3,#23</p><p>  DJNZ R3,$</p><p><b>  RRC A</b></p><p>  DJNZ R2,RE1</p&g

91、t;<p><b>  RET</b></p><p>  ;//*****************************************//</p><p>  ; 寫DS18B20的程序</p><p>  ;//*****************************************//</p>

92、;<p>  WRITE_1820:</p><p>  MOV R2,#8</p><p><b>  CLR C</b></p><p><b>  WR1:</b></p><p><b>  CLR DQ</b></p>&

93、lt;p>  MOV R3,#6</p><p>  DJNZ R3,$</p><p><b>  RRC A</b></p><p>  MOV DQ,C</p><p>  MOV R3,#23</p><p>  DJNZ R3,$</p&g

94、t;<p>  SETB DQ</p><p><b>  NOP</b></p><p>  DJNZ R2,WR1</p><p>  SETB DQ</p><p><b>  RET</b></p><p>  ;//*********

95、********************************//</p><p>  ; 讀DS18B20的程序,從DS18B20中讀出兩個(gè)字節(jié)的溫度數(shù)據(jù)</p><p>  ;//*****************************************//</p><p>  READ_18200:</p><p>  MOV

96、 R4,#2 ; 將溫度高位和低位從DS18B20中讀出</p><p>  MOV R1,#36H ; 低位存入36H(TEMPER_L),高位存入35H(TEMPER_H)</p><p><b>  RE00:</b></p><p>  MOV R2,#8</p>&l

97、t;p><b>  RE01:</b></p><p><b>  CLR C</b></p><p>  SETB DQ</p><p><b>  NOP</b></p><p><b>  NOP</b></p>&l

98、t;p><b>  CLR DQ</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  SETB DQ</p><

99、;p>  MOV R3,#7</p><p>  DJNZ R3,$</p><p>  MOV C,DQ</p><p>  MOV R3,#23</p><p>  DJNZ R3,$</p><p><b>  RRC A</b></p>

100、<p>  DJNZ R2,RE01</p><p>  MOV @R1,A</p><p><b>  DEC R1</b></p><p>  DJNZ R4,RE00</p><p><b>  RET</b></p><p>  

101、;//*****************************************//</p><p>  ; 將從DS18B20中讀出的溫度數(shù)據(jù)進(jìn)行轉(zhuǎn)換</p><p>  ;//*****************************************//</p><p>  TEMPER_COV:</p><p>  MO

102、V A,#0F0H</p><p>  ANL A,TEMPER_L ; 舍去溫度低位中小數(shù)點(diǎn)后的四位溫度數(shù)值</p><p><b>  SWAP A</b></p><p>  MOV TEMPER_NUM,A</p><p>  MOV A,TEMPER_L</p&

103、gt;<p>  JNB ACC.3,TEMPER_COV1 ; 四舍五入去溫度值</p><p>  INC TEMPER_NUM</p><p>  TEMPER_COV1:</p><p>  MOV A,TEMPER_H</p><p>  ANL A,#07H</p><

104、;p><b>  SWAP A</b></p><p>  ORL A,TEMPER_NUM</p><p>  MOV TEMPER_NUM,A ; 保存變換后的溫度數(shù)據(jù)</p><p>  LCALL BIN_BCD</p><p><b>  RET</b>

105、</p><p>  ;//*****************************************//</p><p>  ; 將16進(jìn)制的溫度數(shù)據(jù)轉(zhuǎn)換成壓縮BCD碼</p><p>  ;//*****************************************//</p><p><b>  BIN_BC

106、D:</b></p><p>  MOV DPTR,#TEMP_TAB</p><p>  MOV A,TEMPER_NUM</p><p>  MOVC A,@A+DPTR</p><p>  MOV TEMPER_NUM,A</p><p><b>  RET</

107、b></p><p><b>  TEMP_TAB:</b></p><p>  DB 00H,01H,02H,03H,04H,05H,06H,07H</p><p>  DB 08H,09H,10H,11H,12H,13H,14H,15H</p><p>  DB 16H,17H,18H,19H

108、,20H,21H,22H,23H</p><p>  DB 24H,25H,26H,27H,28H,29H,30H,31H</p><p>  DB 32H,33H,34H,35H,36H,37H,38H,39H</p><p>  DB 40H,41H,42H,43H,44H,45H,46H,47H</p><p>  D

109、B 48H,49H,50H,51H,52H,53H,54H,55H</p><p>  DB 56H,57H,58H,59H,60H,61H,62H,63H</p><p>  DB 64H,65H,66H,67H,68H,69H,70H</p><p>  ;//*****************************************/

110、/</p><p><b>  結(jié)論</b></p><p>  該測距儀具有準(zhǔn)雙向測距功能,穩(wěn)定性比較高、靈敏度比較高,盲區(qū)范圍小,分辨率小于0.01m, 被測目標(biāo)不需要垂直于超聲波測距儀角度保持在正負(fù)30度,被測目標(biāo)表面不需要平坦;但是在檢測過程中會(huì)有一些不便的地方:</p><p>  1.測量時(shí)在超聲波測距儀周圍沒有其他可反射超聲波的物

111、體,由于發(fā)射功率有限,測距儀無法測量5m外的物體。</p><p>  2.因?yàn)閷?shí)現(xiàn)雙向測距所以電路的電流相對(duì)比較大。</p><p>  3.不能夠?qū)崿F(xiàn)不同溫度下的測距功能。</p><p>  4.因?yàn)槌暡ㄊ菍⒖諝庾鳛槊浇樗允茈姶鸥蓴_比較大。</p><p><b>  致謝</b></p><

112、;p>  在這次設(shè)計(jì)過程中,高玉芹老師在百忙之中對(duì)本人在系統(tǒng)開發(fā)方面的辛苦指導(dǎo)和大力支持,使本人的畢業(yè)設(shè)計(jì)“基于AT89C51單片機(jī)超聲波測距”系統(tǒng)能夠順利的完成。高玉芹老師認(rèn)真負(fù)責(zé)的工作態(tài)度、嚴(yán)謹(jǐn)?shù)闹螌W(xué)風(fēng)格,讓本人深受啟發(fā)。通過這幾個(gè)月的學(xué)習(xí),也讓我從高老師那里學(xué)到了很多東西,都將成為我踏入社會(huì)的寶貴財(cái)富。</p><p>  同時(shí)也感謝我的同學(xué),他們也給了我很大的幫助,在此說聲謝謝。</p>

113、<p>  另外也感謝徐州工程學(xué)院,是學(xué)校培養(yǎng)了我,讓我學(xué)到了很多知識(shí),開闊了眼界。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]謝維成,楊加國.單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì).北京:清華大學(xué)出版社,2006</p><p>  [2]蔡菲娜.單片微型計(jì)算機(jī)原理和應(yīng)用.杭州:杭州大學(xué)出版社,1995&

114、lt;/p><p>  [3]李建忠.單片機(jī)原理及應(yīng)用.西安:西安電子科技大學(xué)出版社,2002</p><p>  [4]張齊等.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)----基于C語言編程.北京:電子工業(yè)出版社,2004</p><p>  [5]吳延海.微型計(jì)算機(jī)接口技術(shù).重慶:重慶大學(xué)出版社,1997</p><p>  [6]李麗霞.單片機(jī)在超聲波測距中

115、的應(yīng)用[J].電子技術(shù),2002</p><p>  [7]姜道連,寧延一,袁世良.用AT89C2051設(shè)計(jì)超聲波測距儀[J].國外電子元器件,2000</p><p>  [8]張鵬,張有志.一種新型超生測距系統(tǒng)[J].山東:山東大學(xué)學(xué)報(bào),2003,33(1)</p><p>  [9]李學(xué)海.PIC單片機(jī)實(shí)用教程-基礎(chǔ)篇(第1版)[M].北京航天航空大學(xué)出版社.

116、北京:2002 年2月。</p><p>  [10]陳大新,胡學(xué)同,周杏鵬.利用FPGA改進(jìn)超聲波測距模塊設(shè)計(jì)[J].傳感器技術(shù),2005,24(2): 57~59</p><p>  [11]朱偉芳.一種便攜式長度測量系統(tǒng)的硬件設(shè)計(jì)[J].江蘇電器,2005,5:14-15</p><p><b>  附錄</b></

117、p><p><b>  附錄1電路原理圖</b></p><p><b>  附錄2程序源代碼</b></p><p>  超聲測距器單片機(jī)程序</p><p>  MCU AT89C51 XAL 12 MHz</p><p>  #include < reg51

118、.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int </p><p>  #define ulong unsigned long </p><p>  extern void cs_t(void);</p><p&

119、gt;  extern void delay(unit);</p><p>  extern void display(uchar *);</p><p>  data uchar testok;</p><p>  / * 主程序 * /</p><p>  void main (void)</p><p>&l

120、t;b>  {</b></p><p>  data uchar dispram[5];</p><p>  data uint i;</p><p>  data ulong time;</p><p><b>  p0=0xff;</b></p><p><b> 

121、 p2=0xff;</b></p><p>  TMOD=0x11;</p><p><b>  IE=0x80;</b></p><p><b>  while (1)</b></p><p><b>  {</b></p><p><

122、;b>  cs_t();</b></p><p><b>  delay(1);</b></p><p><b>  testok=0;</b></p><p><b>  EX0=1;</b></p><p><b>  ET0=1;</b&

123、gt;</p><p>  while ( ! testok ) display(dispram);</p><p>  if ( 1==testok)</p><p><b>  {</b></p><p>  time = TH0;</p><p>  time = (time<<

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論