

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> XXXX學院</b></p><p><b> 畢業(yè)設計(論文)</b></p><p> 題 目: 超聲波測距倒車雷達設計 </p><p> 系 部: 電子工程系 </p>
2、;<p> 專 業(yè): 電氣自動化 </p><p> 學 號: XXX </p><p> 學生姓名: XX </p><p> 指導教師: XX </p><p> 職
3、稱: XX </p><p><b> 二O一五年四月二日</b></p><p><b> XXX學院</b></p><p> 畢業(yè)論文(設計)任務書</p><p> 課題名稱:__ 超聲波測距倒車雷達設計 </p><p> 系
4、 部: 電子工程系 </p><p> 專 業(yè): 電氣自動化 </p><p> 姓 名: XX </p><p> 學 號:___ XX </p>
5、<p> 指導教師: XX </p><p><b> 二O一五年四月二日</b></p><p><b> 超聲波倒車雷達設計</b></p><p><b> 摘要</b></p><p> 本次設計采用單片機STC8
6、9C52來控制整個超聲波系統(tǒng)。由單片機控制產生超聲波并且控制定時器開始計時,當接收電路接收到回波時,定時器產生中斷,停止計時。信號發(fā)出到接收到回波信號所用的時間是由單片機計算完成,從而得到實測的距離。距離顯示在LED數碼管上,并控制報警電路。</p><p> 整個硬件電路由電源電路、按鍵電路、顯示電路、報警電路以及超聲波模塊構成。按鍵電路用來控制報警距離的增加或者減少,方便且實用。本次設計具有容易控制和工作穩(wěn)
7、定等優(yōu)點。</p><p> 關鍵詞:STC89C52 超聲波 測距 </p><p><b> 目錄</b></p><p><b> 第1章 前言1</b></p><p> 1.1 課題研究的目的及意義1</p><p> 1.2 超聲波測距系統(tǒng)的國內外
8、現狀1</p><p> 1.3 設計的要求1</p><p> 第2章 系統(tǒng)總體方案的選擇2</p><p> 2.1超聲波的簡介2</p><p> 2.2 超聲波測距系統(tǒng)原理2</p><p> 2.3 方案選擇2</p><p> 第3章 整體硬件電路設計4&
9、lt;/p><p> 3.1單片機系統(tǒng)電路4</p><p> 3.1.1復位電路4</p><p> 3.1.2 時鐘電路5</p><p> 3.2 蜂鳴器報警電路6</p><p> 3.3 按鍵電路6</p><p> 3.4 超聲波發(fā)射電路7</p>
10、<p> 3.5 超聲波接收電路7</p><p> 3.6 超聲波模塊8</p><p> 3.7 顯示電路8</p><p> 3.8 電源電路9</p><p> 3.9 系統(tǒng)的整體電路10</p><p> 第4章 軟件部分11</p><p> 4.
11、1 主程序設計11</p><p> 4.2 中斷處理程序12</p><p> 4.3 距離的計算及顯示電路的設計13</p><p> 4.4 報警電路的設計14</p><p> 4.5 按鍵電路的設計14</p><p> 第5章 硬件的組裝及調試15</p><p&g
12、t;<b> 結論17</b></p><p><b> 致謝18</b></p><p><b> 參考文獻19</b></p><p><b> 附錄20</b></p><p><b> 第1章 前言</b>
13、</p><p> 1.1 課題研究的目的及意義</p><p> 經濟的發(fā)展帶來社會的進步,超聲波測距被頻繁的用在人們的日常工作之中。超聲波擁有測量穩(wěn)定、穿透能力強、易接收等特點,同時超聲波測距不用接觸到物體,適用于了情況比較復雜的環(huán)境。還因為超聲波測距易于控制,并且達到了所要求測量的工業(yè)指標,所以超聲波測距被用于獲取距障礙物的位置信息、移動機器人、汽車倒車雷達等方面的研究。<
14、/p><p> 1.2 超聲波測距系統(tǒng)的國內外現狀</p><p> 國內超聲波測距主要針對固體和液體的研究,在測距的穩(wěn)定性和精確性上有了很大程度的提高。并且隨著科學技術的不斷提高,超聲波技術在工業(yè)的自動控制、汽車倒車系統(tǒng)等方面也有深入的研究。此外在醫(yī)學、生物科學等領域也有突出的地位。</p><p> 國外也做了大量的研究是關于提高超聲波測距。Figneroa
15、J.F.,Lamancusa J.S.在計算時間方法上又有了新的突破,傳播時間的獲得是通過相加峰值時延和相位時延。</p><p><b> 1.3 設計的要求</b></p><p> 設計一個超聲波測距系統(tǒng),距離設定一個限定值,當超聲波探頭與被測物體的距離小于設定值時,兩者的距離顯示在四位七段數碼管上并開始報警。</p><p><
16、;b> 設計主要需求如下:</b></p><p> 電路測量的距離為≤6m。并且誤差率不得超過0.03%。</p><p> 與被測物體的距離用數碼管顯示,并有報警功能。</p><p> ?。?)設置按鍵電路,能對設置的最小報警距離進行改變。</p><p> 第2章 系統(tǒng)總體方案的選擇</p>
17、<p><b> 2.1超聲波的簡介</b></p><p> 我們知道,聲音的發(fā)出是產生了振動。我們知道赫茲定義為聲音的振動頻率,20~20000赫茲的振動頻率是人的耳朵可以接收到的,高于20000赫茲的,我們定義為超聲波。超聲波具有穿透性好、容易獲取等特點,在醫(yī)學、工業(yè)、軍事、農業(yè)等方面有著巨大的研究價值。</p><p> 2.2 超聲波測距系統(tǒng)
18、原理</p><p> 在超聲波測距的過程中,超聲波的發(fā)射端接收到的脈沖為一系列的方波。時間間隔大小為方波的寬度,距離越遠,脈沖的寬度越大。脈沖的個數也隨著測距的遠近而變化。超聲波測距的方法是:測量出輸出脈沖的寬度即發(fā)出超聲波到接收超聲波的時間間隔t,利用公式S=1/2vt,算出被測距離。</p><p> 超聲波的算法設計:X1是超聲波發(fā)出的時間,X2是超聲波接收的時間。我們知道聲波
19、的傳播速度為340m/s,所以被測距離L如圖2-1。</p><p><b> 圖2-1測距原理</b></p><p><b> 2.3 方案選擇</b></p><p> 本方案選擇STC89C52單片機來控制整個電路,測得的距離顯示在四位數碼管上,并根據所設置的報警距離開始報警。超聲波的發(fā)射信號由單片機發(fā)出并送
20、到發(fā)射電路上,發(fā)出超聲波。接收電路由CX20106A芯片和接收探頭構成。報警電路中,電阻R15為限流電阻、晶體三級管為驅動蜂鳴器。本設計將發(fā)射探頭和接收探頭分離,這樣可以避免信號發(fā)生混疊干擾,從而使的測量數據更加的精確。根據以上設計如圖2-2。</p><p><b> 圖2-2 系統(tǒng)框圖</b></p><p> 結合實際需求,在網上查找了相關的資料,決定選用H
21、C-SR04超聲波集成模塊。此模塊發(fā)出的超聲波能夠測量的范圍在5m到2cm之間,能夠準確到3mm,它的發(fā)射角不大于15°,有利于準確的測量。并且工作頻率在39 kHz~41 kHz左右,完全符合本次設計的40kHz的工作頻率。</p><p> 由于超聲波的發(fā)射探頭和接收探頭是放在同一水平直線上的,而且超聲波信號在傳播的過程中會發(fā)生衰減,所以兩個探頭不能距離太遠。又因為如果兩個探頭離的太近會產生信號的
22、干擾,測量出來的結果會產生誤差。 第3章 整體硬件電路設計</p><p> 3.1單片機系統(tǒng)電路</p><p> 本次設計采用了高速、功耗低的STC89C52單片機。這款STC89C52單片機在功能上和以前51單片機的一樣,并且還擴展了功能,使得用起來更加的方便。</p><p> 圖3-1 STC89C52引腳圖</p><p>
23、;<b> 3.1.1復位電路</b></p><p> 在單片機規(guī)格書中,有這樣一段描述:如果當RST端口持續(xù)兩個周期以上的高電平,系統(tǒng)就會復位。電路如下: </p><p><b> 圖3-2 復位電路</b></p><p> 在VCC供電時,RST的電壓和VCC一樣。隨著從 C3電容的充電,RST電位
24、開始下降,并形成一個正向的脈沖,只要脈沖寬度足夠就可以實現復位。</p><p><b> 關于RC的計算:</b></p><p><b> (3-1)</b></p><p> 機械周期=震蕩周期*12 (3-2)</p>&l
25、t;p> 關于復位時間t的計算:</p><p><b> (3-3)</b></p><p> 查看相關資料知道,當REST上的電壓高于0.7Vcc時,就可以被看為高電平。本次用的系統(tǒng)電壓為5V,所以REST上超過3.5V就可以看成高電平,并且高電平的時間超過2us,單片機就可以復位。最后計算RST的電位,復位電路為一階RC電路,所以電壓與電流有一下關系
26、:</p><p><b> (3-4)</b></p><p><b> 因為;;所以。</b></p><p> 設Reset pin 電壓為,那么: 所以,,</p><p> 當的時,。當且僅當 時,系統(tǒng)實現復位,并且電阻和電容RC滿足條件。所以用R=10KΩ、C=10μF符合要求。
27、</p><p> 3.1.2 時鐘電路</p><p> 時鐘電路的兩個引腳分別接入XTAL1端口和XTAL2端口。在兩個引腳之間接入一個12M的晶振,兩個22PF的電容和晶振并聯后接地。電容的可以使電路更加的穩(wěn)定,電路如下:</p><p><b> 圖3-3 時鐘電路</b></p><p> 3.2 蜂鳴
28、器報警電路</p><p> 報警電路由蜂鳴器、三極管、電阻構成。蜂鳴器由三極管驅動。R15為1k的電阻,作用是保護蜂鳴器。單片機P36端口和電阻R15連接,當單片機P36口發(fā)送一個低電平到報警電路時,NPN型三極管開始驅動蜂鳴器進行報警,報警電路如圖3-4。</p><p><b> 圖3-4報警電路</b></p><p><b&
29、gt; 3.3 按鍵電路</b></p><p> 按鍵電路由三個切換開關,一個LED設置指示燈和一個限流電阻構成。電路圖3-5如下:</p><p><b> 圖3-5按鍵電路</b></p><p> 按鍵電路的功能是:當按下k1鍵位時,指示燈亮起,開始設置報警距離。K2按下,報警距離從原來的距離開始增大,當按下K3鍵位
30、報警距離開始減小。</p><p> 限流電阻R14的計算:</p><p> R=(U2-U1)/I (3-5)</p><p> 式中U2為提供的5V電壓,U1和I分別為發(fā)光二極管兩端的電壓、電流。此次設置指示燈用的是綠色發(fā)光二極管,正向壓降UF為2v,工作電流IF為20毫安
31、。所以R14=(5-2)/0.02=150Ω。</p><p> 3.4 超聲波發(fā)射電路</p><p> 發(fā)射電路主要由5個非門組成74LS04芯片電路組成。單片機發(fā)出的40 kHz的脈沖不能直接由發(fā)射電路發(fā)出,要經過足夠倍數的放大后,才能由發(fā)射探頭發(fā)出。所以74LS04反相器其實就是一個放大電路。超聲波發(fā)射電路如圖3-6所示。</p><p><b&g
32、t; 圖3-6 發(fā)射電路</b></p><p> R16和R17為1K的電阻,能夠74LS04芯片放大的輸出能力。Vcc為整個電路提供電源。</p><p> 電路工作時,單片機產生的40 kHz由P0.1端口發(fā)送到發(fā)射電路,信號由74LS04芯片放大并由超發(fā)出。</p><p> 3.5 超聲波接收電路</p><p>
33、; 由于超聲波在傳播的過程中是有衰減的,所以在中長距離的測量中,反射回來的信號被衰減了,所以有必要進行信號的放大,放大的倍數還比較大。查看相關資料,此次設計采用的是CX20106A芯片,此芯片具有信號放大、峰值檢波、比較等功能。芯片CX20106A電路構成了主要的接收電路,比較完信號后會產生一個低電平發(fā)送到單片機進行中斷,中斷以后,開始進行數據的處理。如圖3-7所示。</p><p><b> 圖3
34、-7接收電路</b></p><p><b> 3.6 超聲波模塊</b></p><p> HR-SR04超聲波模塊包含了接收探頭、發(fā)射探頭、74LS04芯片放大電路和CX20106A芯片電路。超聲波模塊如圖3-8所示。</p><p> 圖3-8超聲波集成模塊</p><p> HR-SR04有四
35、個連接口,分別為VCC、GND、TRIG、ECHO四個接口。</p><p> VCC:提供5V的電源</p><p><b> GND:地線</b></p><p> TRIG:信號的輸入端口</p><p> ECHO:信號的輸出端口</p><p> 工作原理:此模塊能夠發(fā)出8個4
36、0 kHz的方波脈沖,并且可以自動檢測有沒有信號的返回。</p><p><b> 3.7 顯示電路</b></p><p> 本次設計的顯示電路由四位七段數碼管、三極管和三個電阻組成。數碼管由三級管來驅動,限流電阻R11、R12和R13是保護整個顯示電路,如圖3-9。</p><p> 圖3-9 顯示電路 </p><
37、;p> LED是發(fā)光二極管的簡稱,八只發(fā)光二極管構成了數碼管,國際上記作:a、b、c、d、e、f、g、dp。dp為小數點。</p><p> 數碼管要能夠正常的顯示就必須要有驅動電路來驅動,本次設計采用了動態(tài)的方式。動態(tài)驅動的優(yōu)點有:節(jié)省了大量的I/O口,并且消耗低,所以本次設計采用動態(tài)的驅動方式,四位數碼管的接線方式為共陽極的接法。</p><p><b> 3.8
38、 電源電路</b></p><p> 電路由一個5V電源、一個發(fā)光二極管和限流電阻組成。發(fā)光二極管采用的是紅色,作為電源指示燈,電路如圖3-10所示。</p><p> 圖3-10 電源電路</p><p> 關于發(fā)光二極管限流電阻R2的計算:</p><p> 能加到發(fā)光二極管兩邊的電壓為5V,使用時要串聯一個限流電阻用
39、以保護發(fā)光二極管。電阻R2的計算為: R2=(E-UF)/IF (3-6)式中的E為電源電壓,UF為發(fā)光二極管的兩端電壓,IF為發(fā)光二極管的兩端電流。</p><p> 發(fā)光二極管根據用途不同,顏色也不同。紅色發(fā)光二極管的工作電壓是2V。發(fā)光二極管的電流大概為20mA,本次設計采用的是紅色發(fā)光二極管。采用的電源電壓為5V
40、,電源電壓減紅色二極管的兩端電壓就是電阻R2的電壓,再用R2兩端的電壓除以紅色二極管兩端電流就能計算出R2。所以R2=(5-2)/0.02=150Ω。</p><p> 3.9 系統(tǒng)的整體電路</p><p> 圖3-11 系統(tǒng)電路圖</p><p> 整個系統(tǒng)由電源電路提供5V電源,數據由超聲模塊傳到單片機進行處理,最后顯示在數碼管上并開始報警。
41、 第4章 軟件部分</p><p> 本次設計采用的思想是分塊進行設計及編寫程序代碼。程序主要分為主程序和中斷程序。主程序包括初始化單片機STC89C53、超聲波的發(fā)出和接收、距離的計算、按鍵電路的設置、距離的顯示和蜂鳴器的報警等。</p><p><b> 4.1 主程序設計</b></p><p>
42、 主程序是初始化單片機STC89C52,然后置1回波接收位。同時通過端口P3.0發(fā)送一個低電平來啟動超聲波的發(fā)射電路,并且開啟定時器T0開始計時。這時調動計算子程序根據記錄的T0時間計算距離,計算完成后,調用子程序顯示距離。與此同時,調用聲音處理程序進行蜂鳴器的報警。主程序根據反射回來的信號繼續(xù)工作,如果回波標志位為0則說明成功接收到了回波信號,這時開始置位并且發(fā)送一個低電平到發(fā)射電路,就這樣不停的循環(huán),實現測距功能。根據以上描述主程序
43、的流程圖如圖4-1所示。</p><p> 圖4-1 主程序流程圖</p><p> 4.2 中斷處理程序</p><p> 負責計算距離的程序是中斷處理程序。根據前面的分析,當接收電路接收到回波信號以后,同樣會產生一個低電平送至單片機的P3.1端口。這時轉入中斷處理程序,定時器T0以及外部中斷0就立刻關閉。讀取時間值,并給接收回波的標志位清零。本設計的中
44、斷處理程序的程序流程圖如圖4-2所示。</p><p> 圖4-2 中斷處理程序流程圖</p><p> 在中斷處理程序中,對于距離的計算是比較關鍵的。先從定時器T0那里讀取時間值,再根據公式計算出距離,最后在實現各模塊的功能。</p><p> 4.3 距離的計算及顯示電路的設計</p><p> 根據公式S=17×N/
45、1000=0.017×N(cm),可以看出來求出距離的關鍵是N值,也就是定時器T0計數的次數。當接收探頭接收到回波信號時,電路會產生一個低電平送至單片機的P3.1端口,這時,定時器停止工作,并且提取定時器計數的次數N,計算出距離。</p><p> 本次設計采用的掃描方式為簡單實用的動態(tài)掃描,用四位共陽極的連接方式連接數碼管顯示距離。單片機的P2口和數碼管進行段的動態(tài)掃描,因為距離的顯示是在變化不固定
46、的,所以數碼管的顯示過程是在外部中斷后進行的。</p><p> 4.4 報警電路的設計</p><p> 主程序根據計算公式算出與被測物體的距離,通過數碼管顯示,并且調用報警子程序控制蜂鳴器進行報警。</p><p> 4.5 按鍵電路的設計</p><p> 當按下k1鍵位,進入設置模式,默認的報警距離在數碼管上進行顯示,每按k2
47、一次顯示距離增加十厘米,每按下k3一次顯示距離減少十厘米,設置好新的報警距離后再次按下k1鍵位時,單片機自動計算顯示距離是否小于新設置的報警距離,如果小于蜂鳴器開始報警。按鍵電路程序流程如圖4-3所示。</p><p> 圖 4-3 按鍵電路程序流程圖 第5章 硬件的組裝及調試</p><p> 本次超聲波測距的設計以HR-SR04超聲波模
48、塊為主體,中心頻率為40 kH。硬件的連接及焊接如下:單片機的P2口(P20~P27)對應焊接到數碼管的a、b、c、d、e、f、g、dp,進行段動態(tài)掃描。P1口(P11~P13)控制數碼管的片選段。P30和P31分別接到超聲波模塊的Echo、Trig 端口。報警電路引腳接到單片機P36端口。</p><p> 測量到一本書的距離,實際距離為38cm,測得距離為37cm,誤差的范圍在1cm~2cm,比較穩(wěn)定,實際
49、測距情況如圖5-1所示。</p><p> 圖5-1 測量情況顯示</p><p> 按下菜單鍵位,重新設置報警距離,報警距離為80cm。實際距離為95cm,測得的距離為94cm,蜂鳴器開始報警,如圖5-2所示。</p><p><b> 圖5-2 測量情況</b></p><p> 在現實測距中,測量值與真實
50、值誤差產生的原因分析:</p><p> 可能與被測物體的橫截面積大小有關。被測物體橫截面太小,超聲波信號不能被完全的反射回來。</p><p> 可能與被測物體的光滑程度有光。表面不平滑的物體容易使信號散射開來,接收探頭接收到的信號變弱。</p><p><b> 結論</b></p><p> 從開學的選題到
51、現在做畢業(yè)設計完成的幾個月時間里,此次課題的選著從開始的不了解到現在實物焊接成功以及論文的完成,我學習到了很多知識,讓我了解從理論到實踐過程的艱辛。在設計的這段時間里,從剛開始思考到課題的完成,每一步都在努力的做到最好。對大學四年的學習做了一次比較全面的檢練。</p><p> 根據任務書的要求與實際結合,本次設計以單片機STC89C52為主,采用HR-SR04超聲波集成模塊對超聲波的發(fā)射和接收,利用四位數碼管
52、和和蜂鳴器進行顯示和報警。并且設置了按鍵電路方便的對報警距離進行修改。做出來的實物基本滿足任務要求,但在調試過程中發(fā)現了一下幾個問題:</p><p> 環(huán)境的溫度對距離的測量有影響,當我在陽光下和在陰涼處對同一距離測出來的數值不一樣。查看有關資料,對于溫度的影響,在設計中可以考慮加上溫度補償模塊。</p><p> 被測物體表面的材質不同也影響距離的測定,幾次結果表明:表面粗糙的物體
53、比表面光滑的物體引起的誤差更大。可能粗糙的表面信號散射開,這樣接收到的回波信號弱,因此產生誤差。</p><p> 通過上網了解,影響誤差的還有可能是余波信號的影響。在測距時,有一部分聲波沒通過反射直接傳到接收探頭那里。這種余波的印象對測距的影響還是挺大的。單這種干擾可以通過軟件算法的方法去除。</p><p><b> 致謝</b></p><
54、;p> 本次畢業(yè)設計論文在老師的耐心指導下,總算完成老師的治學敬業(yè)態(tài)度讓我很感動,很感謝老師的辛苦付出,讓我的大學四年畫上了一個完美的句號。在本次設計中,老師不斷的對我的設計提出很多疑問,讓我能在這方面更加深入的思考,并且在我不知所措時,認真仔細的指導我解決問題,這才使得設計的課題能夠順利完成。</p><p> 同時還要感謝教過我指導我的所有老師,你們在我大學的四年里扮演了重要的角色。你們給予我的不僅
55、是知識,還有以后出入社會的優(yōu)秀品質。謝謝你們的建議與忠告,讓我對即將踏入的社會有了自信和目標。謝謝身邊的朋友,大學里的每一步都有你們的印記。</p><p><b> 參考文獻</b></p><p> [1] Y. S. Huang M. S. Young.An Accurate Ultrasonic Distance Measurement System wi
56、th Self Temperature Compensation[J].Instrumentation science & technology.2009,37(01):22-29.</p><p> [2] 姚永平.STC89C51RC/RD+系列單片機指南[DB/OL].www.MCU-Memory.com, 2005-6-25.</p><p> [3] 王安敏,張凱.基
57、于AT89C52單片機的超聲波測距系統(tǒng)[J].儀表技術與傳感器.2006(06):44-49</p><p> [4] 戴曰章,吳志勇.基于AT89C51單片機的超聲波測距系統(tǒng)設計[J].計量與測試技術.2005(02):17-18</p><p> [5] 吳超,戴亞文.基于AT89S52單片機的超聲波測距系統(tǒng)的設計[J].中原工學院學報.2008(10):65-68</p&g
58、t;<p> [6] 張春光.基于單片機的超聲波測距系統(tǒng)的設計[J].可編程控制器與工廠自動化.2008(09):16-19</p><p> [7] 蘇煒,龔壁建,潘笑.超聲波測距誤差分析[J].傳感器技術.2004(06):8-11</p><p> [8] 李光飛,樓然苗,胡加文.單片機課程設計實例指導[M].北京:航空航天大學出版社.2004:86-91<
59、/p><p> [9] 李建法.超聲波測距的電路設計與單片機編程[J].安陽師范學院學報.2003(05):47-48</p><p> [10] Sv. Noykov Ch. Roumenin.Calibration and interface of a polaroid ultrasonic sensor for mobile robots[J].Sensors and Actuato
60、rs.2007,135(01):55-58</p><p> [11]rtori S:ZHANG G X. Geometric Error Measurement and Compensation of Machines.Annals of the CIRP. 1995:599-609</p><p> [12]olton W.Instrumentation&process m
61、easurement.Longman Scientific Technical. 1991</p><p> [13]張 芬:基于C8051F320單片機的超聲波測距儀,中國地質大學(武漢)機械與電子信息學院,儀表技術與傳感器,2009(09):56-62</p><p> [14]李為民:基于stc89單片機的超聲波測距儀, 陜西師范大學學報,2005(10):35-48</p
62、><p> [15] Fox, J.D., Khuri-Yakub, B.T. and Kino, G.S., "High Frequency Acoustic Wave Measurement in Air", in Proceedings of IEEE 1983 Ultrasonic Symposium, October 31-2 November, 1983, Atlanta, GA,
63、pp. 581-4.</p><p> [16]Martin Abreu, J.M., Ceres, R. and Freire, T., "Ultrasonic Ranging: Envelope Analysis Gives Improved Accuracy", Sensor Review, Vol. 12 No. 1, 1992, pp. 17-21.</p><
64、p> [17]Martin, J.M., Ceres, R., Calderon, L and Freire, T., "Ultrasonic Ranging Gets Thermal Correction", Sensor Review, Vol. 9 No. 3, 198</p><p><b> 附錄</b></p><p><
65、;b> 總程序:</b></p><p> #include <reg52.h> //頭文件</p><p> #include <intrins.h> // 延時 _crol_函數 的文件</p><p> #define uint unsigned int</p><
66、;p> #define uchar unsigned char</p><p> uint Slong=30; // 報警距離值 如果需要修改報警距離,則改此處數值就可。</p><p> void delay(uint); //聲明延時子函數</p><p> int m; //定義變量m</p>&l
67、t;p> uchar a=0; //定義變量a。 初始值為0;</p><p> unsigned int time=0;</p><p> unsigned int timer=0;</p><p> unsigned char posit=0;</p><p> unsigned long S=0;&l
68、t;/p><p> unsigned char const discode[] ={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF,0xff/*-*/}; //共陽數碼管段選</p><p> unsigned char const positon[3]={ 0xfd,0xfb,0xf7}; //數碼管位選</p&g
69、t;<p> unsigned char disbuff[3] ={0,0,0,}; </p><p> sbit RX=P3^0; // 就是超聲波Echo口線</p><p> sbit TX=P3^1; // 就是超聲波Trig口線</p><p> bit flag =0; </p
70、><p> sbit speak=P3^6; //蜂嚀器報警的口線定義</p><p> sbit shezhideng=P3^5; //設置指示燈的 口線定義</p><p> sbit k1=P3^2; // 按鍵的口線定義</p><p> sbit k2=P3^3;</p><p> sbit
71、k3=P3^4;</p><p> void Display() //掃描數碼管 以下為掃描數碼管的相應程序。 會進行多次賦值。</p><p><b> {</b></p><p> if(posit==0)</p><p> {P2=(discode[disbuff[posit
72、]])&0xff;}</p><p><b> else</b></p><p> {P2=discode[disbuff[posit]];}</p><p> P1=positon[posit];</p><p> if(++posit>=3)</p><p><b&
73、gt; posit=0;</b></p><p><b> }</b></p><p> void delay(uint xms) //延時函數 </p><p><b> {</b></p><p><b> uint i,j;</b><
74、;/p><p> for(i=xms;i>0;i--);</p><p> for(j=110;j>0;j--);</p><p><b> }</b></p><p> void m_main() //程序一直在 m_main() 函數面循環(huán)。</p><p>&l
75、t;b> { </b></p><p> if(!k1) //按下K1鍵 功能:每按下K1鍵,a就加1. 使程序在下面的相應程序里跑。。。</p><p><b> {</b></p><p> delay(7); //延時去抖</p><p><b
76、> if(!k1)</b></p><p><b> {</b></p><p> a++; //變量a加1</p><p> } while(!k1); //等待按鍵彈起</p><p><b> }</b></p><p> /
77、******************當a=0時************************************/ </p><p> if(a==0) //當a=0時,系統(tǒng)為正常進行,會自動計算距離,會檢測是否報警。</p><p><b> { </b></p><p> while(!RX); //當RX為
78、零時等待</p><p> TR0=1; //開啟計數</p><p> while(RX); //當RX為1計數并等待</p><p> TR0=0; //關閉計數</p><p> m=S; //將計算出的值 賦給 變量m ; m值會在數碼管
79、上顯示。</p><p> warn(); //報警函數</p><p> Conut(); //計算</p><p> shezhideng=1; //關閉設置指示燈</p><p> } </p><p> /*****************
80、當a=1時*************************************/ </p><p> if(a==1) //當a等于1時</p><p><b> { </b></p><p> m=Slong; //將Slong的值 賦給m ,使數碼管顯示報警值,然后好進行修改。
81、</p><p> Conut(); //計算</p><p> shezhideng=0; //設置指示燈點亮 </p><p> speak=1; //關閉報警</p><p> if(!k2) //按下按鍵</p><p><
82、;b> {</b></p><p> delay(10); //延時去抖</p><p><b> if(!k2)</b></p><p><b> {</b></p><p> Slong+=10; //沒按下一次,數值加10</p>
83、<p><b> }</b></p><p> while(!k2); //等待按鍵 彈起</p><p><b> }</b></p><p> else if(!k3) </p><p><b> {</b></p>
84、;<p> delay(10);</p><p><b> if(!k3)</b></p><p><b> {</b></p><p> Slong-=10;</p><p> } while(!k3);</p><p><b> }&l
85、t;/b></p><p><b> }</b></p><p> /******************當a=2時************************************/ </p><p> if(a==2) //當a等于2時 。 目的是 當再次按K1鍵時,使a=0. 達到循環(huán)的作用
86、。</p><p><b> {</b></p><p> a=0; // 使a等于0, 讓程序進入 相應的運行。 請看上面的a=0時系統(tǒng)為正常進行,會自動計算距離,會檢測是否報警。</p><p><b> }</b></p><p><b> }&l
87、t;/b></p><p> warn() //報警函數</p><p><b> {</b></p><p> if(S<=Slong ) //當距離小于等于設定的報警值時</p><p><b> {</b></p><
88、;p> speak=0; //蜂嚀器報警</p><p><b> }</b></p><p> if(S>Slong) //當距離大于設定的報警值時</p><p><b> {</b></p><p> speak=1; // 蜂嚀器不報警。&
89、lt;/p><p><b> }</b></p><p><b> }</b></p><p> Conut(void) //計算 所測距離的值。</p><p><b> {</b></p><p> time=TH0
90、*256+TL0;</p><p><b> TH0=0;</b></p><p><b> TL0=0;</b></p><p> S=(time*1.7)/100; //算出來是CM</p><p> if((S>=700)||flag==1) //超出測量范圍顯示“-”&
91、lt;/p><p><b> { </b></p><p><b> flag=0;</b></p><p> disbuff[0]=10; //“-”</p><p> disbuff[1]=10; //“-”</p><p> disbu
92、ff[2]=10; //“-”</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> disbuff[0]=m%1000/100;</p><p>
93、 disbuff[1]=m%1000%100/10;</p><p> disbuff[2]=m%1000%10 %10;</p><p><b> }</b></p><p><b> }</b></p><p> /************************************
94、********************/</p><p> void zd0() interrupt 1 //T0中斷用來計數器溢出,超過測距范圍</p><p><b> {</b></p><p> flag=1; //中斷溢出標志</p><p
95、><b> }</b></p><p> /********************************************************/</p><p> void zd3() interrupt 3 //</p><p><b> {</b></p>
96、<p><b> TH1=0xf8;</b></p><p><b> TL1=0x30;</b></p><p> Display(); // 刷新數碼管</p><p><b> timer++;</b></p><p> if(timer&g
97、t;=50)</p><p><b> {</b></p><p><b> timer=0;</b></p><p> TX=1; </p><p> _nop_(); //短暫延時</p><p><b&g
98、t; _nop_(); </b></p><p><b> _nop_(); </b></p><p><b> _nop_(); </b></p><p><b> _nop_(); </b></p><p><b> _nop_(); <
99、;/b></p><p><b> _nop_(); </b></p><p><b> _nop_(); </b></p><p><b> _nop_(); </b></p><p><b> _nop_(); </b></p>
100、;<p><b> _nop_(); </b></p><p><b> _nop_(); </b></p><p><b> _nop_(); </b></p><p><b> _nop_(); </b></p><p><
101、b> _nop_(); </b></p><p><b> _nop_(); </b></p><p><b> _nop_();</b></p><p><b> _nop_(); </b></p><p><b> _nop_(); &
102、lt;/b></p><p><b> _nop_(); </b></p><p><b> _nop_();</b></p><p><b> TX=0;</b></p><p><b> } </b></p><p&g
103、t;<b> }</b></p><p> void main( void ) //主函數</p><p><b> { </b></p><p> TMOD=0x11; //設T0為方式1,GATE=1;</p><p><b> TH0=0;
104、</b></p><p> TL0=0; </p><p> TH1=0xf8; //2MS定時</p><p><b> TL1=0x30;</b></p><p> ET0=1; //允許T0中斷</p><p>
105、 ET1=1; //允許T1中斷</p><p> TR1=1; //開啟定時器</p><p> EA=1; //開啟總中斷</p><p><b> while(1)</b></p><p><b> {</b>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設計---基于超聲波測距的倒車雷達設計
- 超聲波測距倒車雷達系統(tǒng)的研究【畢業(yè)設計】
- 畢業(yè)設計-超聲波倒車雷達
- 超聲波倒車雷達畢業(yè)設計
- 畢業(yè)設計——超聲波倒車測距系統(tǒng)設計
- 超聲波測距倒車雷達設計開題報告
- 課程設計--超聲波倒車雷達測距
- 數字超聲波倒車測距儀設計-畢業(yè)設計
- 超聲波測距倒車雷達系統(tǒng)的設計【開題報告】
- 畢業(yè)設計---超聲波倒車雷達系統(tǒng)的設計
- 超聲波測距倒車雷達系統(tǒng)的研究【畢業(yè)設計+開題報告+文獻綜述】
- 超聲波測距倒車雷達系統(tǒng)的設計【文獻綜述】
- 超聲波測距畢業(yè)設計
- 超聲波測距畢業(yè)設計
- 超聲波倒車雷達系統(tǒng)設計
- 超聲波測距畢業(yè)設計
- 基于單片機的超聲波測距倒車雷達設計畢業(yè)論文
- 超聲波倒車雷達系統(tǒng)的設計
- 超聲波測距雷達設計1
- 超聲波測距畢業(yè)設計 (2)
評論
0/150
提交評論