基于單片機(jī)的汽車防撞測距警報(bào)系統(tǒng)畢業(yè)論文_第1頁
已閱讀1頁,還剩48頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  基于單片機(jī)的汽車防撞測距警報(bào)系統(tǒng)</p><p>  學(xué)院名稱: 電氣信息學(xué)院 </p><p>  專 業(yè): 測控技術(shù)與儀器 </p><p>  班 級(jí): </p><p>  姓

2、 名: </p><p>  指導(dǎo)教師姓名: </p><p>  指導(dǎo)教師職稱: 講 師 </p><p>  2012年6月 </p><p>  基于單片機(jī)的汽

3、車防撞測距警報(bào)系統(tǒng)</p><p>  摘要: 本文介紹了一種單片機(jī)控制的汽車防撞測距報(bào)警系統(tǒng),此系統(tǒng)利用AT89C52單片機(jī)作為主控制器,結(jié)合超聲波測距原理,通過發(fā)射和接收超聲波信號(hào),再由單片機(jī)進(jìn)行數(shù)據(jù)處理,通過數(shù)碼管顯示距離,當(dāng)超過設(shè)定的距離時(shí)蜂鳴器報(bào)警。該系統(tǒng)采用軟、硬結(jié)合的方法,具有模塊化和多用化的特點(diǎn)。該論文對系統(tǒng)各個(gè)單元的原理進(jìn)行了介紹。對組成的各系統(tǒng)電路的芯片進(jìn)行了介紹,并闡述了它們的工作原理。此系

4、統(tǒng)具有結(jié)構(gòu)簡單,精度高,使用方便等特點(diǎn)。</p><p>  關(guān)鍵詞:單片機(jī);超聲波 ;測距</p><p>  Automobile’s Anti-collision Distance Alarm System Based on MUC</p><p>  Abstract: This article describes a microprocessor cont

5、rolled car crash ranging alarm system, this system using AT89C52 microcontroller as the main controller, combined with the principle of ultrasonic distance measurement by transmitting and receiving ultrasonic signals, an

6、d then by the microcontroller for data processing, through digitaldisplay distance, buzzer alarm when exceeds a set distance. The system uses a soft hard combination, modular and multi-use characteristics. The paper intr

7、oduced</p><p>  Keywords: Single-chip microcomputer ;Ultrasonic wave;Measuring distance</p><p><b>  目錄</b></p><p><b>  前言1</b></p><p>  第一章 系統(tǒng)設(shè)

8、計(jì)方案3</p><p>  1.1總體方案設(shè)計(jì)3</p><p>  1.2方案的比較與確定3</p><p>  1.3 方案的確定9</p><p>  第二章 系統(tǒng)硬件設(shè)計(jì)10</p><p>  2.1 單片機(jī)最小系統(tǒng)10</p><p>  2.1.1 AT89C52芯片

9、10</p><p>  2.1.2 復(fù)位電路12</p><p>  2.1.3 時(shí)鐘電路13</p><p>  2.2 超聲波發(fā)射電路和接受電路14</p><p>  2.2.1 HC-SR04主要技術(shù)參數(shù)14</p><p>  2.2.2 HC-SR04工作原理15</p><

10、;p>  2.3顯示電路15</p><p>  2.4 報(bào)警電路15</p><p>  2.5 L298N驅(qū)動(dòng)電路17</p><p>  2.6系統(tǒng)原理18</p><p>  第三章 系統(tǒng)軟件的設(shè)計(jì)19</p><p>  3.1系統(tǒng)軟件實(shí)現(xiàn)功能19</p><p> 

11、 3.2 主程序19</p><p>  3.3 顯示子程序和報(bào)警子程序21</p><p>  第四章 系統(tǒng)調(diào)試與分析26</p><p>  4.1 硬件調(diào)試26</p><p>  4.2 軟件調(diào)試26</p><p>  4.3 數(shù)據(jù)測量與分析27</p><p><b

12、>  結(jié)束語28</b></p><p><b>  參考文獻(xiàn)29</b></p><p><b>  致謝31</b></p><p>  附錄1 原理圖32</p><p>  附錄2 元件清單34</p><p>  附錄3 源程序35&l

13、t;/p><p>  附錄4 實(shí)物圖44</p><p><b>  前言</b></p><p>  隨著我國經(jīng)濟(jì)迅速發(fā)展,人民生活水平不斷提高。汽車已經(jīng)成為人們?nèi)粘I钪斜夭豢缮俚囊徊糠郑覈钠嚁?shù)量逐年上升,但是隨著汽車駕駛員數(shù)量的逐漸增加也引發(fā)了一系列的問題。汽車的數(shù)量在大副攀升,交通擁擠狀況也日趨嚴(yán)重,撞車、盜竊[1]事件屢屢發(fā)生,造

14、成了不可避免的人身傷亡和經(jīng)濟(jì)損失,針對這種情況,設(shè)計(jì)一種響應(yīng)快,可靠性高且較為經(jīng)濟(jì)的汽車防撞報(bào)警系統(tǒng)勢在必行。超聲波測距法是最常見的一種距離測距方法[2-4],應(yīng)用于汽車的前后左右防撞的近距離和低速狀況下。在汽車防撞報(bào)警系統(tǒng)中,超聲波作為一種特殊的聲波,同樣具有聲波傳輸?shù)幕疚锢硖匦浴凵?,反射,干涉,衍射,散射。汽車防撞?bào)警器[5]將單片機(jī)的實(shí)時(shí)控制及數(shù)據(jù)處理功能,與超聲波的測距技術(shù)、傳感器技術(shù)相結(jié)合,可檢測汽車運(yùn)行中后方障礙物與汽

15、車的距離及汽車車速,通過數(shù)顯裝置顯示距離,并由報(bào)警電路根據(jù)距離遠(yuǎn)近情況發(fā)出警告聲。</p><p>  本課題把硬件電路和軟件有機(jī)的結(jié)合起來,完成汽車行車、倒車報(bào)警系統(tǒng)的設(shè)計(jì),能夠了解單片機(jī)技術(shù)的現(xiàn)狀,而且通過對電路系統(tǒng)的設(shè)計(jì),學(xué)習(xí)掌握了數(shù)字電路從原理圖到PCB版的全部過程,形成完善的設(shè)計(jì)思路以及思想,并通過對汽車超聲波報(bào)警器的軟件設(shè)計(jì)的過程,鍛煉應(yīng)用C以及相關(guān)匯編語言等軟件設(shè)計(jì)電路程序的能力為以后參與實(shí)際工作奠

16、定良好的設(shè)計(jì)基礎(chǔ)。</p><p>  由于計(jì)算機(jī)技術(shù)和高速設(shè)備的快速發(fā)展,數(shù)字化采集和分析的超聲波信號(hào)的持續(xù)發(fā)展成為了可能。國內(nèi)也出現(xiàn)了各種類型的數(shù)字超聲波檢測設(shè)備,并已成為超聲波探測發(fā)展方向。廈門大學(xué)一些學(xué)者們研究的超聲波回聲剖面分析,該方法主要是在測距中通過兩次探測求取回波包絡(luò)曲線來得到回波的起點(diǎn),這種方法處理后的超聲波傳播時(shí)間的準(zhǔn)確性大大的得到改善。意大利Carullo等人推出了一種自適應(yīng)的系統(tǒng),使用一個(gè)

17、特殊的發(fā)射波形,取得良好的回波包絡(luò)和環(huán)境噪聲估計(jì),設(shè)置一定的回聲開平電路,且采用自動(dòng)增益控制放大器的優(yōu)點(diǎn),通過這些措施來提高超聲檢測精度。此外,也有很多的文獻(xiàn)研究,利用數(shù)字信號(hào)處理技術(shù)和小波變換理論來提高傳輸時(shí)間的準(zhǔn)確性。這種研究已取得了良好效果。</p><p>  目前,計(jì)算機(jī)價(jià)格大幅度下降,采用非一體化超聲波檢測儀器,計(jì)算機(jī)可發(fā)揮它一機(jī)多用的各種功能,這種方法可以節(jié)約很多。過去那種全功能的儀器設(shè)置,還不如單

18、獨(dú)的超聲儀,計(jì)算機(jī)可充分發(fā)揮各自特點(diǎn)。高智能化檢測儀器只能滿足檢測條件,使用環(huán)境,重復(fù)性測試內(nèi)容等基本情況一樣,才可充分發(fā)揮其特有功能。儀器設(shè)計(jì)也應(yīng)從實(shí)際情況出發(fā),才能滿足用戶的要求。綜上所述,我國超聲波儀器的研制與生產(chǎn),有較大發(fā)展,有的型號(hào)已超過國外同類儀器水平。</p><p>  第一章 系統(tǒng)設(shè)計(jì)方案</p><p><b>  1.1總體方案設(shè)計(jì)</b><

19、;/p><p>  按照系統(tǒng)設(shè)計(jì)的功能要求,初步確定設(shè)計(jì)系統(tǒng)主要由晶振電路、復(fù)位電路、超聲波發(fā)射電路、超聲波接收電路、驅(qū)動(dòng)電路、顯示電路、報(bào)警電路組成。見系統(tǒng)框圖1-1。</p><p><b>  圖1-1 系統(tǒng)框圖</b></p><p>  由于超聲波發(fā)射與接收電路是整個(gè)系統(tǒng)最重要部分,因此確定一種好的設(shè)計(jì)方案關(guān)系到整個(gè)系統(tǒng)的精確性和安全可靠

20、性。本設(shè)計(jì)通過多種方案比較,最后達(dá)到最佳方案確定。</p><p>  1.2方案的比較與確定</p><p>  方案一:40kHz的超聲波發(fā)送脈沖信號(hào)由單片機(jī)的P1.0口送出,發(fā)出一系列的脈沖群,每一個(gè)脈沖群的持續(xù)時(shí)間大約為0.5ms左右。信號(hào)經(jīng)過三極管放大,再經(jīng)過阻抗匹配電路即變壓器(變壓器輸入輸出比為1:10)后,驅(qū)動(dòng)超聲波發(fā)射頭,發(fā)射換能器兩端就加上了高電壓,內(nèi)部的壓電晶片開始

21、震動(dòng),經(jīng)過壓電換能器將發(fā)出40kHz的脈沖超聲波。當(dāng)超聲波遇到障礙物時(shí)就會(huì)產(chǎn)生反射波,發(fā)射波返回到超聲波傳感器[ 7-8]上,盡管發(fā)射部分的脈沖電壓比較高,但是由回波引起的接受壓電晶片產(chǎn)生的射頻電壓幅度近距離有幾毫伏,遠(yuǎn)距離還不到幾毫伏,由于在較遠(yuǎn)距離的情況下,聲的回波很弱,因而轉(zhuǎn)換為電信號(hào)的幅值也很小,為此要求將信號(hào)放大6000倍左右。信號(hào)經(jīng)過放大整形電路產(chǎn)生一個(gè)負(fù)脈沖信號(hào),使單片機(jī)產(chǎn)生中斷。</p><p>

22、  在接收端第一級(jí),要求其放大倍數(shù)為了C945這62倍左右,所以選擇只三極管,達(dá)到了放大倍數(shù)。第二三級(jí)選用了一枚集成放大器NE5532,它集成了兩個(gè)放大器,可達(dá)到預(yù)定放大倍數(shù)。</p><p>  方案二:由施密特振蕩器和數(shù)字功放電路組成,由P1.0口發(fā)出的同步脈沖信號(hào)如圖1-2。它啟動(dòng)振蕩器,輸出40kHz的高頻信號(hào),經(jīng)整形及功放電路,加至發(fā)射換能器,發(fā)出40kHz的超聲波。</p><p&

23、gt;  接收電路主要由回波放大接收及比較控制電路組成,如圖1-2所示。</p><p>  圖1-2 接收控制及接口電路</p><p>  初始,比較器A1同相端已經(jīng)通過調(diào)整Rr,使其電壓略高于2.5V。因此A1應(yīng)輸出高電平,但由于D1相位作用,A1輸出低電平,即RS觸發(fā)器的=0,Q=1, =1,= 0。當(dāng)P1.0發(fā)出啟動(dòng)信號(hào),在A點(diǎn)形成正脈沖,經(jīng)N1反相,= 0,D1相位釋放,= 1

24、,Q=0,= 1(正跳),T0計(jì)數(shù)器開始計(jì)數(shù)。脈沖過后,= 1,=1,Q=0,= 1。回波信號(hào)經(jīng)放大濾波,送至比較器A1的反相端,它是疊加在2.5V電壓上的交變40kHz的信號(hào)。它的前沿使A1輸出低電平。=0,= 1,Q=1,= 0(負(fù)跳),即獲得負(fù)跳沿信號(hào),CPU響應(yīng)中斷,T0計(jì)數(shù)停,計(jì)數(shù)值N1送存RAM。</p><p>  由于發(fā)射探頭和接收探頭都是平行放置且距離較近,發(fā)射探頭發(fā)射超聲波時(shí),接收探頭會(huì)引起強(qiáng)

25、烈的感應(yīng)信號(hào),因此必須將其隱去。當(dāng)P1.0輸出啟動(dòng)信號(hào),主控同步脈沖加至比較器A2時(shí),A2輸出一個(gè)遠(yuǎn)大于2.5V的電壓,經(jīng)過D2降壓后約為7.5V左右,加至A1同相端,又C2的延遲作用,A1同相端產(chǎn)生一定寬度和高度的方波,它的幅度和寬度均大于發(fā)射串?dāng)_信號(hào),A1輸出端即RS觸發(fā)器的端仍為高電平,這樣串?dāng)_信號(hào)將被隱去。這段時(shí)間稱為盲區(qū),約2ms。</p><p>  方案三:(1)發(fā)射電路。發(fā)射電路由555多諧振蕩器

26、和數(shù)字功率放大器組成。采用555 多諧振蕩器可以實(shí)現(xiàn)寬范圍占空比的調(diào)節(jié),并且電路設(shè)計(jì)簡單占用面積小。如圖1-3所示,由單片機(jī)P1.0口發(fā)出同步脈沖信號(hào),該同步脈沖啟動(dòng)多諧振蕩器,使其輸出20kHz的高頻電壓信號(hào),經(jīng)過整形及功放電路加至超聲波換能器探頭,根據(jù)逆壓電效應(yīng),產(chǎn)生振動(dòng)頻率為20kHz 的超聲波。</p><p> ?。?)接收電路。接受電路主要由回波放大接收電路及比較電路組成。如圖1-4所示,首先調(diào)節(jié)可調(diào)

27、電阻使比較器A1 同相端電位高于2.5V。由于D1輸出低電平, 而反相器N 輸出高電平,所以有RS 觸發(fā)器的=0,=1,Q=1,=0當(dāng)P1.0發(fā)出啟動(dòng)信號(hào)(如圖1-3中(1)所示)經(jīng)過微分電路形成的同步脈沖信號(hào)通過反相器N 的反相功能,=0,D1 箝位釋放=1,Q=0,=1(正跳變),T0 計(jì)數(shù)器開始記數(shù),脈沖經(jīng)過之后==1,Q=0,=1。 回波信號(hào)經(jīng)過放大濾波送至比較器A1的反相端,它是疊加在2.5V上的頻率為20KHz的高頻電壓信號(hào)

28、。如圖1-3中的(3)所示,其前上升沿使A1輸出低電平,=0,=1,Q=1,=0(負(fù)跳變);即獲得負(fù)跳沿信號(hào),CPU 響應(yīng)中斷請求,使T0計(jì)數(shù)器停止計(jì)數(shù),記數(shù)值N 送存RAM。</p><p> ?。?)盲區(qū)干擾信號(hào)的消隱。通常發(fā)射換能器和接收換能器都是平行放置且距離較近。當(dāng)發(fā)射探頭發(fā)射超聲波時(shí)接收換能器接收到的第一個(gè)波是串?dāng)_直通波,也稱泄漏波它是近源的波束旁瓣或通過繞射由發(fā)射換能器直接到達(dá)接收換能器而造成的。因

29、此,通常接收探頭會(huì)引起強(qiáng)烈的感應(yīng)信號(hào)。所以必須將其隱去,當(dāng)P1.0輸出啟動(dòng)信息,同步脈沖加至比較器A2時(shí),A2 輸出一遠(yuǎn)大于2.5V 的電壓, 經(jīng)D2降壓后大約等于7.5V,加至A1同相端,由于C1延遲作用,A1同相端將產(chǎn)生一定寬度和高度的方波,如圖1-3中的(4)所示。它的寬度和幅度都大于發(fā)射串?dāng)_信號(hào),A1 輸出端即RS觸發(fā)器S端仍為高電平,這樣串?dāng)_信號(hào)將被隱去,這段時(shí)間稱為盲區(qū),約2毫秒。</p><p> 

30、 圖1-3 測距脈沖圖</p><p>  圖1-4 超聲波回波接收電路</p><p>  方案四:(1)發(fā)射電路。發(fā)射電路由脈沖產(chǎn)生電路和發(fā)射電路組成。脈沖產(chǎn)生電路的主要任務(wù)是產(chǎn)生40kHz 脈沖電壓。它由與非門和電阻電容構(gòu)成振蕩電路,由單片機(jī)P1.1 口控制其是否工作。脈沖產(chǎn)生電路的輸出電壓經(jīng)脈沖變壓器升壓后輸出到超聲傳感器。其中,脈沖變壓器對脈沖電壓變換值的大小直接影響測距范圍,

31、應(yīng)盡量提供脈沖變壓器副邊電壓幅值。</p><p> ?。?)接收電路。接收電路的主要任務(wù)是檢測回波,并向單片機(jī)發(fā)出中斷以停止計(jì)時(shí)。接收電路設(shè)計(jì)的好壞直接影響超聲波在空氣中傳播時(shí)間的測量。接收部分電路由檢波電路、濾波放大電路和整形電路組成。檢波電路拾取回波中的正半波,以便后級(jí)電路放大;整形電路把回波信號(hào)整理為單片機(jī)系統(tǒng)能夠接收的信號(hào)并向單片機(jī)申請中斷以停止計(jì)時(shí)。接收電路的主體是濾波放大電路。由于超聲回波信號(hào)十分微

32、弱并含有噪聲,S/N較小,所以接收電路設(shè)置了兩級(jí)高Q值的濾波放大電路。濾波放大電路采用二階帶通濾波放大器,一級(jí)和二級(jí)濾波放大電路采用相同的結(jié)構(gòu)和參數(shù)。其電路如圖1-6所示。圖1-6中,R11、R12、C13、C14、R15 和運(yùn)算放大器Amp1A 組成了一級(jí)濾波放大電路;R21、R22、C23、C24、R25 和運(yùn)算放大器Amp1B 組成了二級(jí)濾波放大電路。</p><p>  圖1-5發(fā)射部分電路</p&

33、gt;<p>  圖1-6 一次和二次濾波放大電路</p><p>  發(fā)射接收電路中應(yīng)考慮的各種問題。發(fā)射波形如圖 1-7,傳感器的振蕩波形要經(jīng)過一段時(shí)間才能達(dá)到穩(wěn)定狀態(tài),理論上信號(hào)的幅度時(shí)指數(shù)上升的,Q 各周期后達(dá)到滿幅度的 95%,1.5Q 個(gè)周期后達(dá)到 99%。為提高傳感器的靈敏度,Q 值一般不能太低,為使傳感器充分振蕩起來,發(fā)射脈寬要求不能小于 Q 個(gè)振蕩周期,才能使發(fā)射幅度基本達(dá)到最大。

34、考慮到測量“盲區(qū)”影響,這里選擇脈寬為 120μs,包含 5 個(gè)調(diào)制的 44kHz 的方波信號(hào)。</p><p><b>  圖1-7 發(fā)射波形</b></p><p>  測距器的發(fā)射波形如圖1-7,在規(guī)定時(shí)刻將一持續(xù)時(shí)間為τ的正弦波加到傳感器上,然后關(guān)閉發(fā)射電路,打開接收通道,接收來自障礙物的反射波。 </p><p>  傳感器發(fā)射電壓大

35、小主要取決于發(fā)射信號(hào)損失及接收機(jī)的靈敏度,綜合各種損耗的因素,包括往返傳播損失,聲波傳輸損失,聲波反射損失,環(huán)境噪聲損失,接收預(yù)放大單元的作用是對有用的信號(hào)進(jìn)行放大,并抑制其它的噪聲和干擾,從而達(dá)到最大信噪比,以利檢測單元的正確檢測。</p><p>  如何達(dá)到信號(hào)的最佳接收關(guān)系整個(gè)系統(tǒng)的準(zhǔn)確性和安全性,所以也應(yīng)考慮到影響接收信號(hào)的各方面問題。在傳感器接收到的信號(hào)中,除了障礙物反射的回波外,總混有雜波和干擾脈沖

36、等環(huán)境噪聲。室內(nèi)環(huán)境中噪聲主要集中在低頻段,遠(yuǎn)離回波信號(hào)頻率,因此系統(tǒng)的總噪聲系數(shù)主要有接收機(jī)的內(nèi)部噪聲決定,其功率譜寬度遠(yuǎn)大于接收機(jī)的通頻帶。我們可以近似的將其作為白噪聲處理,根據(jù)已有知識(shí),輸入為已知信號(hào)加白噪聲的條件下,匹配濾波器的輸出信噪比最大。匹配濾波器具有以下特點(diǎn):(1)輸出最大信噪比與信號(hào)波形無關(guān);(2)匹配濾波器對信號(hào)的幅度和時(shí)延具有適應(yīng)性,即對只有幅度和出現(xiàn)時(shí)間不同的信號(hào),它們的匹配濾波器是相同的;(3)匹配濾波器與相關(guān)

37、接收和相關(guān)器具有等效性。</p><p>  實(shí)際上很難得到精確的匹配濾波器,由于單個(gè)射頻脈沖的頻譜是連續(xù)的,用普通的窄帶濾波器就能把其主峰部分(w 附近)濾波出來,適當(dāng)?shù)倪x擇濾波器的通帶寬度就能取得與匹配濾波器相差不多的效果。</p><p>  圖 1-8信號(hào)放大器原理圖</p><p>  接收放大器的作用是放大有用信號(hào),并抑止其它噪聲與干擾,從而達(dá)到最大的信

38、噪比,以利于檢測電路的正確檢測。放大器組成框圖如圖 1-8,采用三級(jí)放大電路。前置放大主要起阻抗匹配的作用,使輸入信號(hào)功率最大。帶通放大器選擇最佳時(shí)間帶寬積,以達(dá)到匹配濾波的效果。模擬開關(guān)起收發(fā)隔離的作用。在測量近距離時(shí),模擬開關(guān)閉合,發(fā)射信號(hào)可以進(jìn)入接收通道;測量遠(yuǎn)距離時(shí),模擬開關(guān)斷開,發(fā)射信號(hào)不可以進(jìn)入接收通道。程控放大器分為 2 檔,分別放大 10 倍和 100 倍,由控制端 A1,A0 控制。</p><p&

39、gt;<b>  1.3 方案的確定</b></p><p>  綜合以上四種方案比較,最后確定直接采用超聲波測距模塊。該電路簡單方便,經(jīng)濟(jì)實(shí)用。比較適合本設(shè)計(jì)需要。</p><p>  由AT89C52單片機(jī)編程,執(zhí)行程序后P1.0口產(chǎn)生脈沖信號(hào),經(jīng)HC-SRO4超聲波測距模塊,產(chǎn)生超聲波和接收。將超聲波調(diào)制脈沖變?yōu)榻蛔冸妷盒盘?hào),送入MAX232接收器中進(jìn)行處理。輸

40、出端7高電平越變?yōu)榈碗娖剑鳛橹袛嗾埱笮盘?hào),送至單片機(jī)處理。在啟動(dòng)發(fā)射電路的同時(shí)啟動(dòng)單片機(jī)內(nèi)部的定時(shí)器T0,利用定時(shí)器的計(jì)數(shù)功能記錄超聲波發(fā)射的時(shí)間和收到反射波的時(shí)間。當(dāng)收到超聲波反射波時(shí),接收電路輸出端產(chǎn)生一個(gè)負(fù)跳變,在INTO或INT1端產(chǎn)生一個(gè)中斷請求信號(hào),單片機(jī)響應(yīng)外部中斷請求,執(zhí)行外部中斷服務(wù)子程序,讀取時(shí)間差,計(jì)算距離。</p><p>  第二章 系統(tǒng)硬件設(shè)計(jì)</p><p>

41、;  硬件電路主要包括六個(gè)部分:單片機(jī)外圍電路、超聲波發(fā)射和接收電路、顯示電路、報(bào)警電路、L298N驅(qū)動(dòng)電路組成。運(yùn)用L298N芯片驅(qū)動(dòng)小車行使,利用HC-SR04超聲波傳感器模塊來實(shí)現(xiàn)測距功能。</p><p>  2.1 單片機(jī)最小系統(tǒng)</p><p>  單片機(jī)最小系統(tǒng)通常作為系統(tǒng)的最前端,它既是協(xié)調(diào)整機(jī)工作的控制器,又是數(shù)據(jù)處理器。本設(shè)計(jì)中單片機(jī)最小系統(tǒng)主要是由AT89C52芯片、

42、復(fù)位電路、時(shí)鐘電路組成。</p><p>  2.1.1 AT89C52芯片</p><p>  AT89C52是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單

43、元,AT89C52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用。</p><p>  89C52相對于89C51優(yōu)越性包括:第一是RAM空間增大:AT89C51有128字節(jié)的內(nèi)部RAM,稱為DATA存儲(chǔ)區(qū)。AT89C52的內(nèi)部RAM擴(kuò)展為256字節(jié),其中高128字節(jié),位于從80H開始的地址空間中,稱為IDATA存儲(chǔ)區(qū),但I(xiàn)DATA區(qū)的訪問只能是間接尋址方式。第二是內(nèi)部Flash變大:AT89C51有4 kB的內(nèi)部Flash

44、PERAM,而AT89C52的內(nèi)部Flash PERAM增加1倍,達(dá)到8kB。 第三是中斷源增加:在AT89C52申P(guān)1.0和P1.1還可分別作為定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.O/T2)和(P1.1/T2EX),也就是說,P1.0同時(shí)可作為定時(shí)器針數(shù)器T2的外部計(jì)數(shù)輸入和輸出占空比50%的時(shí)鐘脈沖端口,Pl.l同時(shí)可作為定時(shí)器/計(jì)數(shù)器T2捕獲厘新裝載觸發(fā)和方向控制端口。故AT89C52除了具備AT89C51的定時(shí)器/汁數(shù)器T和定

45、時(shí)器/計(jì)數(shù)器Tl,還額外增加了一個(gè)定時(shí)器/計(jì)數(shù)器12。而定時(shí)器/計(jì)數(shù)器T2的控制和狀態(tài)位單獨(dú)位于,I2CON、T2MOD,定時(shí)器/計(jì)數(shù)器12在16位捕獲方式或自動(dòng)重新裝載方式下的捕獲/重載寄存器組是(TCA02H、RC</p><p>  AT89C52具有40個(gè)引腳,主要管腳有:XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(9 腳)為復(fù)位輸入端口,外接

46、電阻電容組成的復(fù)位電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5V電源的正負(fù)端。P0~P3 為可編程通用I/O 腳,其功能用途由軟件定義,在本設(shè)計(jì)中,P0 端口(32~39 腳)被定義為N1 功能控制端口,分別與N1的相應(yīng)功能管腳相連接,13 腳定義為IR輸入端,10 腳和11腳定義為I2C總線控制端口,分別連接N1的SDAS(18腳)和SCLS(19腳)端口,12 腳、27 腳及28 腳定義為握手信號(hào)功能端口,連接

47、主板CPU 的相應(yīng)功能端,用于當(dāng)前制式的檢測及會(huì)聚調(diào)整狀態(tài)進(jìn)入的控制功能。芯片引腳圖如圖2-1所示。 </p><p>  圖2-1 AT89C52單片機(jī)芯片</p><p>  根據(jù)系統(tǒng)設(shè)計(jì)要求,各接口功能[9-11]如下:</p><p>  P1.0: 產(chǎn)生輸出一個(gè)脈沖信號(hào)。</p><p>  INT0: 產(chǎn)生中斷請求,接前方測距電路

48、。</p><p>  INT1: 產(chǎn)生中斷請求,接前方測距電路。</p><p>  P0.0: 用于顯示輸出,接顯示器。</p><p>  P0.1: 用于顯示輸出,接顯示器。</p><p>  P0.2: 用于顯示輸出,接顯示器。</p><p>  P0.3: 用于顯示輸出,接顯示器。</p>

49、<p>  P0.4: 用于顯示輸出,接顯示器。</p><p>  P0.5: 用于顯示輸出,接顯示器。</p><p>  P0.6: 用于顯示輸出,接顯示器。</p><p>  P0.7: 用于顯示輸出,接顯示器。</p><p>  L298N與單片機(jī)連接:</p><p>  P1.2:用于連接

50、IN1。</p><p>  P1.3: 用于連接IN2。</p><p>  P1.4: 用于連接ENA。</p><p>  P1.5: 用于連接IN3。</p><p>  P1.6: 用于連接IN4。</p><p>  P1.7: 用于連接ENB。</p><p>  P2.5: 接報(bào)

51、警電路</p><p>  XTAL1:接外部晶振的一個(gè)引腳。在單片機(jī)內(nèi)部,它是一反相放大器輸入端,這個(gè)放大器構(gòu)成了片內(nèi)振蕩器。它采用外部振蕩器時(shí),引腳應(yīng)接地。</p><p>  XTAL2:接外部晶振的一個(gè)引腳。在片內(nèi)接至振蕩器的反相放大器輸出端和內(nèi)部時(shí)鐘發(fā)生器輸入端。當(dāng)采用外部振蕩器時(shí),則此引腳接外部振蕩信號(hào)的輸入。</p><p>  RST:AT89C52

52、 的復(fù)位信號(hào)輸入引腳,高電位工作,當(dāng)要對芯片又時(shí),只要將此引腳電位提升到高電位,并持續(xù)兩個(gè)機(jī)器周期以上的時(shí)間,AT89C52 便能完成系統(tǒng)復(fù)位的各項(xiàng)工作,使得內(nèi)部特殊功能寄存器的內(nèi)容均被設(shè)成已知狀態(tài)。</p><p>  2.1.2 復(fù)位電路</p><p> ?。?)單片機(jī)AT89C52作為主控芯片,控制整個(gè)電路的運(yùn)行。單片機(jī)外圍需要一個(gè)復(fù)位電路,復(fù)位電路的功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào)

53、,直至系統(tǒng)電源穩(wěn)定后,撤消復(fù)位信號(hào)。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時(shí)才撤銷復(fù)位信號(hào),以防電源開關(guān)或電源插頭分-合過程中引起的抖動(dòng)而影響復(fù)位。該設(shè)計(jì)采用含有電阻的復(fù)位電路,復(fù)位電路可以有效的解決電源毛刺和電源緩慢下降(電池電壓不足)等引起的問題,在電源電壓瞬間下降時(shí)可以使電容迅速放電,一定寬度的電源毛刺也可令系統(tǒng)可靠復(fù)位。復(fù)位電路如圖2-2所示。</p><p><b>  圖2-2 復(fù)位電路<

54、;/b></p><p> ?。?)復(fù)位是單片機(jī)的初始化操作,使CPU及各專用存儲(chǔ)器處于一個(gè)確定的初始狀態(tài),其中把PC的內(nèi)容初始化為0000H,使單片機(jī)從0000H單元開始執(zhí)行程序,除了系統(tǒng)的正常開機(jī)(上電)復(fù)位外,當(dāng)程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死循環(huán)狀態(tài)時(shí),為擺脫困境,可按復(fù)位鍵進(jìn)行復(fù)位,復(fù)位電路由片外和片內(nèi)兩部分電路組成。AT89C52的RST引腳為復(fù)位引腳,只要在RST引腳上出現(xiàn)兩個(gè)機(jī)器周期以上的

55、高電平,即可實(shí)現(xiàn)復(fù)位。復(fù)位通常有上電復(fù)位和按鍵復(fù)位兩種方法。本設(shè)計(jì)采用的是上電復(fù)位,開機(jī)時(shí)電容器是空的,上電后就對電容充電,充電電流,在電阻上形成正電壓,RST引腳就處于高電平,就可以達(dá)到復(fù)位的目的。</p><p>  在實(shí)際應(yīng)用系統(tǒng)中,為了保證復(fù)位電路可靠工作,常將RC電路接施密特電路后再接入單片機(jī)復(fù)位端和外圍電路復(fù)位端。這特別適合于應(yīng)用現(xiàn)場干擾大、電壓波動(dòng)大的工作環(huán)境,并且,當(dāng)系統(tǒng)有多個(gè)復(fù)位端時(shí),能保證可靠

56、地同步復(fù)位。</p><p>  2.1.3 時(shí)鐘電路</p><p>  時(shí)鐘電路用于產(chǎn)生單片機(jī)工作所需要的時(shí)鐘信號(hào),單片機(jī)本身就是一個(gè)復(fù)雜的同步時(shí)序電路,為了保證同步工作方式的實(shí)現(xiàn),電路應(yīng)在惟一的時(shí)鐘信號(hào)控制下嚴(yán)格地按時(shí)序進(jìn)行工作 。該時(shí)鐘電路由兩個(gè)電容和一個(gè)晶體振蕩器組成。X1是接外部晶體管的一個(gè)引腳。在單片機(jī)內(nèi)部,它是一個(gè)反相放大器的輸入端,這個(gè)放大器構(gòu)成了片內(nèi)振蕩器。輸出端為引腳

57、X2,在芯片的外部通過這兩個(gè)引腳接晶體振蕩器和微調(diào)電容,形成反饋電路,構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。晶振電路如圖 2-3 所示。</p><p><b>  圖2-3 晶振電路</b></p><p>  電路中的C3和C4一般取30PF左右,而晶體振蕩器的頻率范圍通常是1.2~12MHz,而電路中采用12MHz,晶體振蕩器的頻率越高,振蕩頻率就越高。</p>

58、<p>  2.2 超聲波發(fā)射電路和接受電路</p><p>  本設(shè)計(jì)采用的是HC-SRO4超聲波測距模塊[12],它有發(fā)生電路和接受電路構(gòu)成。模塊性能穩(wěn)定,測度距離精確。能和國外的SRF05、SRF02等超聲波測距模塊相媲美。模塊精度高,盲區(qū)達(dá)到(2cm),有穩(wěn)定的測距功能。本模塊可提供全套測距程序:C51,PIC18F877,超聲波LCD1602顯示,超聲波LCD12864顯示,數(shù)碼管顯示,串

59、口顯示等,測距參考程序。</p><p>  2.2.1 HC-SR04主要技術(shù)參數(shù)</p><p> ?。?)使用電壓:DC5V; </p><p> ?。?)靜態(tài)電流:小于2mA;</p><p> ?。?)電平輸出:高5V; </p><p> ?。?)電平輸出:底0V;</

60、p><p> ?。?)感應(yīng)角度:不大于15度; </p><p> ?。?)探測距離:2cm-450cm ;</p><p> ?。?)高精度:可達(dá)0.3cm;</p><p> ?。?)接線方式:VCC、trig(控制端)、 echo(接收端)、GND</p><p>  2.2.2 HC-SR04工作原理&l

61、t;/p><p> ?。?)采用IO觸發(fā)測距,給至少10us的高電平信號(hào);</p><p> ?。?)模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測是否有信號(hào)返回;</p><p> ?。?)有信號(hào)返回,通過IO輸出一高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。</p><p><b>  2.3顯示電路</b><

62、;/p><p>  顯示器是一個(gè)典型的輸出設(shè)備,而且其應(yīng)用是極為廣泛的,幾乎所有的電子產(chǎn)品都要使用顯示器,其差別僅在于顯示器的結(jié)構(gòu)類型不同而已。最簡單的顯示器可以使LED 發(fā)光二極管,給出一個(gè)簡單的開關(guān)量信息,而復(fù)雜的較完整的顯示器應(yīng)該是 CRT監(jiān)視器或者屏幕較大的 LCD 液晶屏。綜合課題的實(shí)際要求以及考慮單片機(jī)的接口資源,采用工業(yè)字符型液晶,能夠同時(shí)顯示16x02即32個(gè)字符。</p><p&

63、gt;  1602液晶也叫1602字符型液晶它是一種專門用來顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊它有若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。每位之間有一個(gè)點(diǎn)距的間隔每行之間也有間隔起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒茱@示圖。</p><p>  本設(shè)計(jì)中,1602用來顯示測試的距離,1602顯示電路如圖2-4所示。</p><p><

64、;b>  2.4 報(bào)警電路</b></p><p>  報(bào)警電路的作用是當(dāng)小車與障礙物之間的距離達(dá)到初始設(shè)置距離的時(shí)候,蜂鳴器發(fā)出警報(bào)。報(bào)警電路由一個(gè)三極管、一個(gè)電阻和一個(gè)蜂鳴器組成的。當(dāng)單片機(jī)P1.5端口為低電平時(shí),報(bào)警。報(bào)警電路如圖2-5所示。</p><p><b>  圖2-4顯示電路</b></p><p>  圖2

65、-5 系統(tǒng)報(bào)警電路</p><p>  2.5 L298N驅(qū)動(dòng)電路</p><p>  L298N 為SGS-THOMSON Microelectronics 所出產(chǎn)的雙全橋步進(jìn)電機(jī)專用驅(qū)動(dòng)芯片,內(nèi)部包含4信道邏輯驅(qū)動(dòng)電路,是一種二相和四相步進(jìn)電機(jī)的專用驅(qū)動(dòng)器,可同時(shí)驅(qū)動(dòng)2個(gè)二相或1個(gè)四相步進(jìn)電機(jī),內(nèi)含二個(gè)H-Bridge的高電壓、大電流雙全橋式驅(qū)動(dòng)器,接收標(biāo)TTL邏輯準(zhǔn)位信號(hào),可驅(qū)動(dòng)46

66、V、2A以下的步進(jìn)電機(jī),且可以直接透過電源來調(diào)節(jié)輸出電壓;此芯片可直接由單片機(jī)的IO端口來提供模擬時(shí)序信號(hào)。本設(shè)計(jì)是用L298芯片來驅(qū)動(dòng)小車。L298N管腳圖如圖2-6所示。</p><p>  圖2-6 L298N管腳圖</p><p>  單片機(jī)的I/O端口分別與L298N的IN1,IN2,IN3,IN4連接,接受脈沖信號(hào)。1腳和15腳發(fā)射極分別引出以便接入電流采樣電阻,形成電流傳感信

67、號(hào)。 OUT1,OUT2,OUT3,OUT4分別接電機(jī)的一相。5腳,7腳,10腳和12腳接輸入控制電平。ENA,ENB控制使能端,控制電機(jī)的停轉(zhuǎn),高電平有效。驅(qū)動(dòng)電路圖如圖2-7所示。</p><p><b>  圖2-7驅(qū)動(dòng)電路圖</b></p><p><b>  2.6系統(tǒng)原理</b></p><p>  系統(tǒng)原理圖

68、見附錄1。工作原理: 由單片機(jī)AT89C52編程產(chǎn)生方波信號(hào),經(jīng)過P1.0口連接到超聲波模塊發(fā)送超聲,再經(jīng)過放大電路,驅(qū)動(dòng)超聲波發(fā)射探頭發(fā)射超聲波,發(fā)射出的超聲波經(jīng)障礙物反射回來,經(jīng)過P3.2口由超聲波接收頭接收信號(hào)。通過接收電路的檢波放大、積分整形以及一系列的處理,送至單片機(jī)。單片機(jī)利用聲波傳播速度和發(fā)射脈沖到接收反射脈沖的時(shí)間間隔計(jì)算出障礙物的距離,并由單片機(jī)控制顯示模塊,顯示出具體的距離。</p><p>

69、  第三章 系統(tǒng)軟件的設(shè)計(jì)</p><p>  在系統(tǒng)硬件構(gòu)架了超聲波測距的基本功能之后,系統(tǒng)軟件所實(shí)現(xiàn)的功能主要是針對系統(tǒng)功能的實(shí)現(xiàn)及數(shù)據(jù)的處理和應(yīng)用。根據(jù)第二章所述系統(tǒng)硬件設(shè)計(jì)和所完成的功能。</p><p>  3.1系統(tǒng)軟件實(shí)現(xiàn)功能</p><p> ?。?)信號(hào)控制。在系統(tǒng)硬件中,已經(jīng)完成了發(fā)射電路、接收電路、檢測電路、顯示電路、門限檢測的設(shè)計(jì)。在系統(tǒng)軟件

70、中,要完成增益控制信號(hào)、門控信號(hào)、發(fā)射脈沖信號(hào)、峰值采集信號(hào)、遠(yuǎn)近控制信號(hào)的時(shí)序及輸出。</p><p> ?。?)數(shù)據(jù)存儲(chǔ)。為了得到發(fā)射信號(hào)與接收回波間的時(shí)間差,要讀出此刻計(jì)數(shù)器的計(jì)數(shù)值,然后存儲(chǔ)在 RAM 中,而且每次發(fā)射周期的開始,需要對計(jì)數(shù)器清零,以備后續(xù)處理。</p><p> ?。?) 信號(hào)處理。RAM 中存儲(chǔ)的計(jì)數(shù)值并不能作為距離值直接顯示輸出,因?yàn)橛?jì)數(shù)值與實(shí)際的距離值之間轉(zhuǎn)

71、換公式為</p><p><b> ?。?-1)</b></p><p>  其中,T 為發(fā)射信號(hào)到接收之間經(jīng)歷的時(shí)間,Tr 為方波信號(hào)作為計(jì)數(shù)脈沖時(shí)計(jì)數(shù)器的時(shí)間分辨率,N 為計(jì)數(shù)器的值。在這個(gè)部分中,信號(hào)處理包括計(jì)數(shù)值與距離值換算,二進(jìn)制與十進(jìn)制轉(zhuǎn)換。</p><p> ?。?) 數(shù)據(jù)傳輸與顯示。經(jīng)軟件處理得到的距離送顯示輸出,用1602 液

72、晶表示。由于采用了單片機(jī)AT89C52并考慮整個(gè)系統(tǒng)的控制流程,整個(gè)系統(tǒng)軟件都有AT89C52系列單片機(jī)匯編語言實(shí)現(xiàn)。由于距離值的得出及顯示是在中斷子程序中完成的,因此在初始化發(fā)射程序后進(jìn)入中斷響應(yīng)的等待。在中斷響應(yīng)之后,原始數(shù)據(jù)經(jīng)計(jì)數(shù)值與距離值換算子程序,二進(jìn)制與十進(jìn)制轉(zhuǎn)換子程序后顯示輸出。整個(gè)系統(tǒng)軟件功能的實(shí)現(xiàn)可以分為主程序、中斷服務(wù)程序幾個(gè)主要部分。</p><p><b>  3.2 主程序&l

73、t;/b></p><p>  主程序是單片機(jī)程序的主體,整個(gè)單片機(jī)端系統(tǒng)軟件的功能的實(shí)現(xiàn)都是在其中完成的,程序首先完成初始化過程,然后是一個(gè)重復(fù)的控制發(fā)射信號(hào)的過程,即調(diào)用發(fā)射子程序幾遍,而且每次發(fā)射周期結(jié)束都會(huì)判斷在發(fā)射信號(hào)后延時(shí)等待的過程中是否發(fā)生了中斷,即是否有回波產(chǎn)生來判斷程序得流程,有回波的話,再經(jīng)過測距的子程序流來計(jì)算距離,判斷所測距離是否在安全范圍內(nèi),以驅(qū)動(dòng)顯示和報(bào)警電路。主程序流程圖如圖3

74、-1所示。</p><p>  圖3-1 主程序流程圖</p><p>  上電后小車顯示“ Aptitude Crash-”“ worthy System”,按下功能鍵后開始設(shè)定報(bào)警距離值,設(shè)定在10cm以上比較好,設(shè)定時(shí)小車停止一切動(dòng)作,功能鍵按下一次后同時(shí)按+,-鍵設(shè)定值,設(shè)定好后按確定鍵,則設(shè)定值有效,功能鍵按下兩次后小車行駛并開始測距判斷,功能鍵按下三次后,顯示初始顯示狀態(tài)。&l

75、t;/p><p> ?。?)脈沖的產(chǎn)生與超聲波發(fā)射。在脈沖產(chǎn)生前先對定時(shí)/計(jì)數(shù)器T0進(jìn)行初始化,在這里選擇的是工作方式1定時(shí)器模式,所以TMOD應(yīng)該設(shè)定為0x11,再開啟T0的同時(shí)開發(fā)發(fā)射超聲波脈沖。這由單片機(jī)執(zhí)行下面程序來產(chǎn)生。</p><p>  #include <REG52.H></p><p>  sbit csbout=P1^0;

76、 //超聲波發(fā)送</p><p>  前方測距電路的輸入端接單片機(jī)P1.0端口,單片機(jī)執(zhí)行上面的程序后,在P1.0 端口輸出一個(gè)脈沖信號(hào),經(jīng)過三極管T放大,驅(qū)動(dòng)超聲波發(fā)射頭發(fā)出脈沖超聲波,且持續(xù)發(fā)射。 </p><p> ?。?)超聲波的接收與處理。超聲波的接收是由外部中斷口INT0是否有中斷脈沖產(chǎn)生來判斷的。定時(shí)子程序轉(zhuǎn)回來的時(shí)候,要對中斷進(jìn)行初始化。選定

77、的是INT0口,工作方式為脈沖方式。</p><p>  #include <REG52.H> </p><p>  sbit csbout=P1^0; //超聲波發(fā)送 </p><p>  sbit csbint=P1^1; //超聲波接收 </p&g

78、t;<p>  聲波接收電路經(jīng)過前置放大、限幅放大、寬頻帶濾波器、檢波器及比較器、整形、置后比較器的一系列工作之后,在信號(hào)輸出端7腳由高電平躍變?yōu)榈碗娖?,作為中斷請求信?hào),送至單片機(jī)處理。 </p><p>  前方測距電路的輸出端接單片機(jī)INT0端口,中斷優(yōu)先級(jí)最高。部分源程序如下:</p><p>  write_com(0x80);

79、 //顯示前方障礙物距離</p><p>  write_com(0x80+0x40); //顯示設(shè)定報(bào)警距離</p><p>  (3)數(shù)據(jù)讀取和儲(chǔ)存。為了得到發(fā)射信號(hào)與接收回波間的時(shí)間差,要讀出T0計(jì)數(shù)器的計(jì)數(shù)值,然后存儲(chǔ)在 RAM 中,而且每次發(fā)射周期的開始,需要對計(jì)數(shù)器清零,以備后續(xù)處理。</p><p> ?。?)計(jì)算

80、超聲波傳播時(shí)間。T0中讀取出來的時(shí)間差數(shù)據(jù)并不能作為距離值直接顯示輸出,因?yàn)闀r(shí)間差值與實(shí)際的距離值之間轉(zhuǎn)換公式為 </p><p><b> ?。?-2)</b></p><p>  其中,V為聲音在常溫下的傳播速度,T為發(fā)射信號(hào)到接收之間經(jīng)歷的時(shí)間[ 13-15]。</p><p>  3.3 顯示子程序和報(bào)警子程序</p>&

81、lt;p>  考慮到提高系統(tǒng)資源的利用率,顯示采用動(dòng)態(tài)顯示法實(shí)現(xiàn)。部分源程序,顯示流程圖和報(bào)警流程圖如圖3-2和3-3所示。超聲波測得的數(shù)據(jù)送至單片機(jī)處理后,由LCD1602顯示出數(shù)據(jù)來。</p><p><b>  圖3-2顯示程序圖</b></p><p>  小車行駛中,超聲波對障礙物距離進(jìn)行測距,然后把數(shù)據(jù)送至單片機(jī)處理,當(dāng)超聲波測得的距離小于設(shè)定值的時(shí)

82、候,蜂鳴器發(fā)出警報(bào),小車停止前進(jìn)。當(dāng)測得的距離大于設(shè)定值時(shí),小車?yán)^續(xù)前進(jìn)。</p><p>  圖3-3 報(bào)警流程圖</p><p><b>  部分源程序如下:</b></p><p>  sbit temp_control=P2^3;//報(bào)警距離設(shè)計(jì) 按一次為距離設(shè)計(jì) , 按兩次為正常工作狀態(tài)</p><p>  

83、sbit temp_1=P2^2; //設(shè)定時(shí)確定鍵控制 </p><p>  sbit temp_add=P2^1; //加鍵</p><p>  sbit temp_sub=P2^0; //減鍵</p><p>  uchar num; //顯示位數(shù)計(jì)數(shù)</p>

84、;<p>  uchar table1[16]=" Distance=_.__M ";</p><p>  uchar table2[16]="Dis_Setup= . M ";</p><p>  uchar code table3[16]=" Aptitude Crash-";</p><p

85、>  uchar code table4[16]=" worthy System ";</p><p>  uchar table5[16]="Dis_Setup= CM";</p><p>  uchar code table6[16]="Key Sure Button ";</p><p>

86、;  ucharcodeASCII[15]={'0','1','2','3','4','5','6','7','8','9','.','_','M'};</p><p>  uint time=0;

87、 //定時(shí)器值</p><p>  unsigned long S=0; //存放距離值</p><p>  unsigned long S_flag = 20; /存放報(bào)警距離值,初始值為20cm</p><p>  unsigned long temp_value;

88、 //設(shè)定值預(yù)放存儲(chǔ)器</p><p>  bit flag =0; //定時(shí)器溢出標(biāo)志</p><p>  uchar disbuff[4] ={ 0,0,0,0,};</p><p>  uint temp_control_m; //控制按鍵次數(shù)</p><p>

89、;  void delay(uint n) //延時(shí)1MS </p><p><b>  { </b></p><p>  uint x,y; </p><p>  for(x=n;x>0;x--) </p><p>  for(y=110;y>0;y

90、--); </p><p><b>  } </b></p><p>  /********************************************************/ </p><p>  void delayms(uint ms) //延時(shí)10MS</p><p><b> 

91、 {</b></p><p>  uchar i=100,j;</p><p>  for(;ms;ms--)</p><p><b>  {</b></p><p>  while(--i)</p><p><b>  {</b></p><

92、p><b>  j=10;</b></p><p>  while(--j);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  voi

93、d write_com(uchar com) //寫地址</p><p><b>  {</b></p><p><b>  lcdrs=0;</b></p><p><b>  P0=com;</b></p><p><b>  lcden=0;</b

94、></p><p><b>  delay(5);</b></p><p><b>  lcden=1;</b></p><p><b>  delay(5);</b></p><p><b>  lcden=0;</b></p>&

95、lt;p><b>  }</b></p><p>  void write_date(uchar date) //寫數(shù)據(jù)</p><p><b>  {</b></p><p><b>  lcdrs=1;</b></p><p><b>  P0=da

96、te;</b></p><p><b>  delay(5);</b></p><p><b>  lcden=1;</b></p><p><b>  delay(5);</b></p><p><b>  lcden=0;</b></

97、p><p><b>  }</b></p><p>  void init() //液晶初始化</p><p><b>  {</b></p><p><b>  lcden=0;</b></p><p>  write_com(0x38);&

98、lt;/p><p>  delay(20);</p><p>  write_com(0x0c);</p><p>  delay(20);</p><p>  write_com(0x06);</p><p>  delay(20);</p><p>  write_com(0x01);</

99、p><p>  delay(20);</p><p>  IN1 = 1; //初始化電機(jī)驅(qū)動(dòng)模塊,使電機(jī)等待正轉(zhuǎn)</p><p><b>  IN2 = 0;</b></p><p><b>  IN3 = 1;</b></p><p><b>  

100、IN4 = 0;</b></p><p><b>  ENA = 0;</b></p><p><b>  ENB = 0;</b></p><p>  baojing = 1; //關(guān)閉報(bào)警</p><p>  temp_value = S_fla

101、g;</p><p><b>  }</b></p><p>  第四章 系統(tǒng)調(diào)試與分析</p><p>  本設(shè)計(jì)由硬件電路和軟件組成,所以系統(tǒng)調(diào)試時(shí)要分為硬件調(diào)試和軟件調(diào)試。硬件調(diào)試由于涉及到較多的模塊,所以調(diào)試起來比較費(fèi)勁,設(shè)計(jì)的不定的因素也比較多,因此調(diào)試的時(shí)候采用分塊調(diào)試方法,排除各個(gè)模塊的干擾。軟件調(diào)試時(shí),不同的CPU,其匯編語言有

102、可能有所差異,所以不易移植。</p><p>  4.1 硬件調(diào)試 </p><p>  硬件調(diào)試分兩步:第一步:系統(tǒng)上電之前,先用萬用表等工具、根據(jù)硬件邏輯設(shè)計(jì)圖,仔細(xì)檢查各個(gè)模塊線路是否連接正確,并核對元器件型號(hào)、規(guī)格和安裝是否符合要求,應(yīng)特別注意電源系統(tǒng)的檢

103、查,防止電源的短路的極性錯(cuò)誤,并重點(diǎn)檢查系統(tǒng)總線是否存在相互之間短路或與其他信號(hào)線的短路。</p><p>  第二步:第一的調(diào)試,只是對系統(tǒng)進(jìn)行初步調(diào)試,可以排除一些明顯的故障,而硬件故障(如各個(gè)部件內(nèi)部存在的故障和部件之間來連接的邏輯錯(cuò)誤)主要是靠軟件和硬件的聯(lián)調(diào)來排除。</p><p><b>  4.2 軟件調(diào)試</b></p><p>

104、;  首先是通過軟件仿真,先進(jìn)行單個(gè)程序仿真,然后再進(jìn)行整體程序仿真,不斷修改,逐步完善其功能。在這步完成后應(yīng)該確定其I/O口的分配,時(shí)鐘的選擇和各輸入信號(hào)的邏輯性及給出系統(tǒng)所需的信號(hào)。調(diào)試的時(shí)候一定要細(xì)心,有耐心,踏踏實(shí)實(shí)的一步一步調(diào),不可急,否則程序會(huì)一塌糊涂。 </p><p>  其過程分為以下幾個(gè)步驟: 第一步:建立源程序。通過計(jì)算機(jī)開發(fā)系統(tǒng)的編輯軟件,按照所要求的格式、語法規(guī)定、源程序輸入到開發(fā)系統(tǒng)中

105、,并存在磁盤上。</p><p>  第二步:在計(jì)算機(jī)上,利用KILE軟件對第一步輸入的源程序進(jìn)行編譯,變?yōu)榭蓤?zhí)行的目標(biāo)代碼。如果源程序有語法錯(cuò)誤,則其錯(cuò)誤將顯示出來,然后返回到第一步進(jìn)行修改,再進(jìn)行編譯,知道語法錯(cuò)誤全部糾正為止。</p><p>  第三步:動(dòng)態(tài)在線調(diào)試。對于和系統(tǒng)無聯(lián)系的程序,可以借助動(dòng)態(tài)在線調(diào)試手段,如單步運(yùn)行、設(shè)置斷點(diǎn)等,發(fā)現(xiàn)邏輯錯(cuò)誤,然后返回刀片第一步修改,直到

106、邏輯錯(cuò)誤糾正為止。對于和系統(tǒng)硬件緊密相關(guān)的程序,則需要軟件,硬件同時(shí)進(jìn)行調(diào)試,將程序燒入CPU,然后將CPU插入系統(tǒng),發(fā)現(xiàn)硬件故障排除故障,發(fā)現(xiàn)邏輯錯(cuò)誤,修改程序,消除邏輯錯(cuò)誤。</p><p>  4.3 數(shù)據(jù)測量與分析</p><p>  介于實(shí)際測量工作的局限性,最后在測量中選取了10cm,15cm,20cm,50cm,四個(gè)距離進(jìn)行測量,每個(gè)距離連續(xù)測量7次,得出測量數(shù)據(jù),如表所4-

107、2示,從表中的數(shù)據(jù)可以看出,測量只和實(shí)際值之間都存在誤差[16],但對于連續(xù)測量的準(zhǔn)確性還是比較高的。對所測的每組數(shù)據(jù)去掉一個(gè)最大值和一個(gè)最小值,在求其平均值,用來作為最終的測量數(shù)據(jù),最后進(jìn)行比較分析。這樣處理數(shù)據(jù)也有一定的科學(xué)道理和合理性。從表中的數(shù)據(jù)開,雖然受到了溫度的影響,此系統(tǒng)是無法避免的,但從全部數(shù)據(jù)來看,本設(shè)計(jì)的絕對誤差都不較小,也比較穩(wěn)定。測距誤差主要來源于以下幾個(gè)方面:</p><p>  超聲波

108、發(fā)射與接收探頭與被測點(diǎn)存在一定角度,這個(gè)角度直接影響到測量距離的精確值,本系統(tǒng)中只能靠目測及簡單的工具微調(diào)超聲波發(fā)射頭和接收頭的中軸線平行,股存在一定誤差。 </p><p>  表4-2 測試數(shù)據(jù)表</p><p>  表4-2數(shù)據(jù)表明,在10—20cm距離之間的測量,本設(shè)計(jì)的精確度相當(dāng)高,誤差比全部控制在1%以下,而在50cm以上的距離的測量中,誤差略又升高,最小的可測距離是由接受換能

109、器對聲波脈沖的直接接受能力決定。</p><p><b>  結(jié)束語</b></p><p>  經(jīng)過幾周的奮戰(zhàn),我的畢業(yè)設(shè)計(jì)終于完成了。在沒有做畢業(yè)設(shè)計(jì)以前覺得畢業(yè)設(shè)計(jì)只是對這幾年來所學(xué)知識(shí)的單純總結(jié),但是通過這次做畢業(yè)設(shè)計(jì)發(fā)現(xiàn)自己的看法有點(diǎn)太片面。畢業(yè)設(shè)計(jì)不僅是對前面所學(xué)知識(shí)的一種檢驗(yàn),而且也是對自己能力的一種提高。通過這次畢業(yè)設(shè)計(jì)使我明白了自己原來知識(shí)還比較欠缺

110、,這次做論文的經(jīng)歷也會(huì)使我終身受益,我感受到做論文是要用心去做的一件事情,是真正的自己學(xué)習(xí)的過程和研究的過程,沒有學(xué)習(xí)就不可能有研究的能力,沒有自己的研究,就不會(huì)有所突破,那也就不叫論文了。</p><p>  通過這次畢業(yè)設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)

111、計(jì)的過程中遇到很多問題,可以說是困難重重,必須要一一解決。同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固,希望這次的經(jīng)歷能讓我在以后學(xué)習(xí)中激勵(lì)我繼續(xù)進(jìn)。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 晏敏、曾云、曾健平等.遠(yuǎn)程汽車防盜報(bào)警系統(tǒng)的設(shè)計(jì)[J].宇航測技術(shù),2004,24(6):49-51

112、.</p><p>  [2] 羅慶生,韓寶玲.一種基于超聲波與紅外線探測技術(shù)的測距定位系統(tǒng)[J].計(jì)算機(jī)測量與控制,2005,13(4):304-301.</p><p>  [3] HERRINGTON D R.Ultrasonic range finder uses few components[J]. EDN,</p><p>  1999,(6):23-2

113、6.</p><p>  [4] Riihijarvi J,Mahonen P,Saarancn M j.ct al.Providing network connectivity for small apliance;Afunctionally minimize-ed embedded Web Server[J].IEEE Comin,2001,39(10):74-79.</p><p>

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論