【基于單片機的超聲波測距系統(tǒng)設(shè)計與實現(xiàn)11000字(論文)】_第1頁
【基于單片機的超聲波測距系統(tǒng)設(shè)計與實現(xiàn)11000字(論文)】_第2頁
【基于單片機的超聲波測距系統(tǒng)設(shè)計與實現(xiàn)11000字(論文)】_第3頁
【基于單片機的超聲波測距系統(tǒng)設(shè)計與實現(xiàn)11000字(論文)】_第4頁
【基于單片機的超聲波測距系統(tǒng)設(shè)計與實現(xiàn)11000字(論文)】_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于單片機的超聲波測距系統(tǒng)設(shè)計與實現(xiàn)TOC\o"1-3"\h\u71441引言 466112總體設(shè)計 5311942.1總體設(shè)計要求 5130252.2方案選擇 523462.2.1控制芯片的選擇 572052.2.2超聲波模塊的選擇 550862.3整體方案設(shè)計 610572.3.1系統(tǒng)概述 6124812.3.2系統(tǒng)框圖 6265202.4單片機最小系統(tǒng)電路 6118072.4.1單片機介紹 6301662.4.2單片機最小系統(tǒng) 9305922.5HC-SR04模塊 11102442.5.1HC-SR04模塊使用器件 11302402.5.2HC-SR04模塊工作原理 13113282.5.3超聲波模塊電路 14108032.5.4顯示電路 1526442.6報警模塊 15274452.6.1蜂鳴器的介紹 15223322.6.2蜂鳴器報警電路 16286302.6.3發(fā)光二極管 16137982.6.4報警模塊電路 175882.7按鍵輸入模塊 1758303軟件設(shè)計 19112693.1程序語言及開發(fā)環(huán)境 19300053.2程序流程圖 19153743.2.1總體流程圖 1922363.2.2數(shù)碼管程序流程圖設(shè)計 20260363.2.3超聲波模塊HC-SR04程序流程圖設(shè)計 21209174硬件組裝與調(diào)試 23248714.1元器件的選擇與測量 23255724.2電路的調(diào)試 2315684.2.1調(diào)試方法 2399824.2.2調(diào)試步驟 24227534.3實驗測試 25174574.3.1目的 2510294.3.2方法 25289734.3.3結(jié)果分析 2519960總結(jié) 263138參考文獻 2720242附錄 281引言傳感器技術(shù)是現(xiàn)代信息技術(shù)的主要內(nèi)容之一。信息技術(shù)包括計算機技術(shù)、通信技術(shù)和傳感器技術(shù),計算機技術(shù)相當于人的大腦,通信相當于人的神經(jīng),而傳感器就相當于人的感官。比如溫度傳感器、光電傳感器、濕度傳感器、超聲波傳感器、紅外傳感器、壓力傳感器等等,其中,超聲波傳感器在測量方面有著廣泛、普遍的應(yīng)用。超聲波測距系統(tǒng)適用于汽車雷達、機器人自動避障行走、建造場所等場合。所以在超聲波檢測方面有較高的作用。對本課題的研究與設(shè)計,還能進一步提高自己的電路設(shè)計水平,深入對單片機的理解和應(yīng)用。以單片機為核心的超聲波的測量設(shè)計簡單、方便,而且測精度要求極高。本課題研究的超聲波倒車防撞報警系統(tǒng)就是用單片機控制的。通過超聲波發(fā)射器向某一方向發(fā)射超聲波,單片機在發(fā)射時刻同時開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即反射回來,超聲波接收器收到反射波就立即停止計時。超聲波在空氣中的傳播速度為V,根據(jù)計時器記錄的時間T,就可以計算出發(fā)射點距障礙物的距離。本系統(tǒng)利用單片機控制超聲波的發(fā)射和對超聲波自發(fā)射至接收往返時間的計時。接收電路的輸出端接單片機的外部中斷源輸入口。系統(tǒng)定時發(fā)射超聲波,在啟動發(fā)射電路的同時啟動單片機內(nèi)部的定時器,超聲波來回的時間會被定時器記載。超聲波的反射波到達終點,電路終端有變化產(chǎn)生,在單片機的外部中斷源輸入口產(chǎn)生一個信號,單片機會支持請求,中斷程序,記下時間,測量長短,結(jié)果輸出給LED顯示。

2總體設(shè)計2.1總體設(shè)計要求(1)測量范圍0.02m-4m;(2)測量精度1cm;(3)數(shù)碼管顯示測量結(jié)果;(4)可設(shè)置報警值,報警值可以斷電保存;(5)當小于報警值時,進行聲光報警。2.2方案選擇2.2.1控制芯片的選擇方案一:采用DSP作為系統(tǒng)控制器。DSP(digital

signal

processor)是一種獨特的微處理器,是以數(shù)字信號來處理大量信息的器件。DSP具有對元件值的容限不敏感,受溫度、環(huán)境等外部因素影響小,容易實現(xiàn)集成,可分時復(fù)用,共享處理器,方便調(diào)整處理器的系數(shù)實現(xiàn)自適應(yīng),可用于頻率非常低的信號等優(yōu)點。但DSP硬件電路比較復(fù)雜,且價格昂貴,數(shù)字系統(tǒng)由耗電的有源器件構(gòu)成,沒有無源設(shè)備可靠。

方案二:采用單片機作為系統(tǒng)控制器。單片機具有可靠性強、性價比搞、電壓低、功耗低等優(yōu)點得到迅猛發(fā)展和大范圍推廣,單片機算術(shù)運算功能強,軟件編程靈活,自由度大,可用軟件編程實現(xiàn)各種邏輯功能,本身帶有定時器、計數(shù)器,可以用來定時和計數(shù),并且其功耗低,體積小,計數(shù)成熟和成本低等優(yōu)點?;谝陨戏治?,擬定方案二,用STC89C51單片機作為控制器。2.2.2超聲波模塊的選擇方案一:采用分立元件,自行設(shè)計超聲波電路,包括超聲波的發(fā)射電路、接收電路,以及相關(guān)的放大電路和濾波電路。方案二:采用市面上流行的HC-SR04超聲波模塊。方案比較:方案一中,各個模塊都是用分立元件搭建的,由于缺少超聲波調(diào)試的儀器,做起來難度比較大,特別是后期的調(diào)試。而采用方案二中的HC-SR04模塊,該模塊價格低廉,質(zhì)量穩(wěn)定,使用簡單方便,很適合本設(shè)計的超聲波測距系統(tǒng),故采用方案二。

2.3整體方案設(shè)計2.3.1系統(tǒng)概述整個系統(tǒng)以STC89C51單片機為核心器件,配合電阻電容晶振等器件,構(gòu)成單片機的最小系統(tǒng)。其它個模塊圍繞著單片機最小系統(tǒng)展開。其中包括,超聲波檢測模塊HC-SR04,作為距離傳感器,進行測量的距離;顯示模塊,采用數(shù)碼管作為顯示模塊,負責顯示測量到的距離值;按鍵模塊,主要是進行報警值的設(shè)置;蜂鳴器和LED的報警電路,當測量值小于報警值的,進行聲光報警;最后一個是電源模塊,采用5V的USB供電,本系統(tǒng)如需移動測量時,可采用移動電源進行供電。2.3.2系統(tǒng)框圖超聲波測距電源電路超聲波測距電源電路數(shù)碼管顯示數(shù)碼管顯示按鍵電路設(shè)置電路報警電路STC89C51按鍵電路設(shè)置電路報警電路STC89C51圖2.3系統(tǒng)框圖2.4單片機最小系統(tǒng)電路2.4.1單片機介紹(1)概述STC89C51是一個低電壓,高性能CMOS8位單片機,片內(nèi)含8kbytes的可反復(fù)擦寫的Flash只讀程序存儲器和256bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,功能強大的STC89C51單片機可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場合。STC89C51有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線。STC89C51有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。(2)主要功能特性◆兼容MCS51指令系統(tǒng);◆8k可反復(fù)擦寫(>1000次)FlashROM;◆32個雙向I/O口;◆256x8bit內(nèi)部RAM;◆3個16位可編程定時/計數(shù)器中斷;◆時鐘頻率0-24MHz;◆2個串行中斷;◆可編程UART串行通道;◆2個外部中斷源;◆共8個中斷源;◆2個讀寫中斷口線;◆3級加密位;◆低功耗空閑和掉電模式;◆軟件設(shè)置睡眠和喚醒功能;(3)8051單片機的引腳功能MCS-51系列單片機一般采用40個引腳,雙列直插式封裝,用HMOS工藝制造,其外部引腳排列如圖2.4所示。其中,各引腳的功能為:圖2.4STC89C51引腳圖①主電源引腳VCC(40腳),接+5V電源正端;GND(20腳),接+5V電源地端;②外接晶體或外部振蕩器引腳XTAL1(19腳),接外部晶振的一個引腳。在單片機內(nèi)部,它是一個反相放大器的輸入端。當采用外部振蕩器時,此引腳應(yīng)接 地。XTAL2(18腳),接外部晶振的另一個引腳。在片內(nèi)接至反相放大器的輸出端和內(nèi)部時鐘電路的輸入端。當采用外部振蕩器時,此腳接外部振蕩器的輸出端。③控制信號線RESET(9腳),復(fù)位信號輸入端,復(fù)位/掉電時內(nèi)部RAM的備用電源輸入端。ALE(30腳),地址鎖存允許/編程脈沖輸入,用ALE鎖存從P0口輸出的低8 位地址。在對片內(nèi)EPROM編程時,編程脈沖由此輸入。PSEN(29腳),外部程序存儲器讀選通信號,低電平有效。EA(31腳),訪問外部存儲器允許/編程電壓輸入。EA為高電平時,訪問內(nèi)部存儲器;低電平時,訪問外部存儲器。④多功能I/O口引腳8051單片機設(shè)有4個雙向I/O口(P0、P1、P2、P3),每一組I/O口線都可以獨立地用作輸入或輸出口,其中:P0口(32~39腳)——雙向口(三態(tài)),可作為輸入/輸出口,可驅(qū)動8個LSTTL門電路。實際應(yīng)用中常作為分時使用的地址/數(shù)據(jù)總線口,對外部程序或數(shù)據(jù)存儲器尋址時低8位地址與數(shù)據(jù)總線分時使用P0口:先送低8位地址信號到P0口,由地址鎖存信號ALE的下降沿將地址信號鎖存到地址鎖存器后,再作為數(shù)據(jù)總線的口線對數(shù)據(jù)進行輸入或輸出。P1口(1~8腳)——準雙向口(三態(tài)),可驅(qū)動4個LSTTL門電路。用作輸入線時,口鎖存器必須由單片機先寫入“1”,每一位都可編程為輸入或輸出線。P2口(21~28)——準雙向口(三態(tài)),可驅(qū)動4個LSTTL門電路??勺鳛檩斎?輸出口,實際應(yīng)用中一般作為地址總線的高8位,與P0口一起組成16位地址總線,用于對外部存儲器的接口電路進行尋址。P3口(10~17腳)——準雙向口(三態(tài)),可驅(qū)動4個LSTTL門電路。雙功能口,作為第一功能使用時,與P1口一樣;作為第二功能使用時,每一位都有特定用途,其特殊用途如表2.4所示:表2.4P3口第二用途端口引腳第二功能注釋P3.0RXD串行口數(shù)據(jù)接收端P3.1TXD串行口數(shù)據(jù)發(fā)送端P3.2/INT0外中斷請求0P3.3/INT1外中斷請求1P3.4T0定時/計數(shù)器0外部計數(shù)信號輸入P3.5T1定時/計數(shù)器1外部計數(shù)信號輸入P3.6/WR外部RAM寫選通信號輸出P3.7/RD外部RAM讀選通信號輸出2.4.2單片機最小系統(tǒng)STC89C51的最小系統(tǒng)如圖2.5所示,整個最小系統(tǒng)由三個部分組成,晶振電路部分、復(fù)位電路部分、電源電路等三個部分組成。晶振電路包括2個30pF的電容C2和C3,以及12M的晶振X1。電容的作用在這里是起振作用,幫助晶振更容易的起振,取值范圍是15-33pF。晶振的取值也可以是24M,晶振的取值越高,單片機的執(zhí)行速度越快。在進行電路設(shè)計的時候,晶振部分越靠近單片機越好。單片機復(fù)位電路就好比電腦的重啟部分,當電腦在使用中出現(xiàn)死機,按下重啟按鈕電腦內(nèi)部的程序從頭開始執(zhí)行。單片機也一樣,當單片機系統(tǒng)在運行中,受到環(huán)境干擾出現(xiàn)程序跑飛的時候,按下復(fù)位按鈕內(nèi)部的程序自動從頭開始執(zhí)行。復(fù)位電路由10uF的極性電容C1和10K的電阻R4構(gòu)成。利用電容電壓不能突變的性質(zhì),可以知道,當系統(tǒng)一上電,RESET腳將會出現(xiàn)高電平,并且這個高電平持續(xù)的時間由電路的RC值來決定。典型的51單片機當RESET腳的高電平持續(xù)兩個機器周期以上就將復(fù)位,所以適當組合RC的取值就可以保證可靠的復(fù)位。在電路圖中,電容的的大小是10uF,電阻的大小是10k。所以根據(jù)公式,可以算出電容充電到電源電壓的0.7倍(單片機的電源是5V,所以充電到0.7倍即為3.5V),需要的時間是10K×10UF=0.1S。也就是說在電腦啟動的0.1S內(nèi),電容兩端的電壓時在0-3.5V增加,這個時候RESET引腳所接收到的電壓是5V-1.5V。在5V正常工作的51單片機中小于1.5V的電壓信號為低電平信號,而大于1.5V的電壓信號為高電平信號。所以在開機0.1S內(nèi),單片機系統(tǒng)自動復(fù)位(RESET引腳接收到的高電平信號時間為0.1S左右)。最后一個是電源部分,采用5V的USB直接供電,可采用手機充電器、電腦USB口、移動電源等設(shè)備進行供電。此外,除了單片機最小系統(tǒng)的3個部分之外,這里還多了一些外部電路。由于STC89C51的P0口是漏極開路輸出,因此在P0口接了一個10K的排阻R1,使得P0口可以作為普通的I/O口使用,本設(shè)計用P0口來做數(shù)碼管的數(shù)據(jù)口。特別注意的是,對于31腳(EA),當接高電平時,單片機在復(fù)位后從內(nèi)部ROM的0000H開始執(zhí)行;當接低電平時,復(fù)位后直接從外部ROM的0000H開始執(zhí)行。由于我們的程序存儲在了單片機內(nèi)部,所以EA要接高電平,保證單片機是從內(nèi)部讀取程序去執(zhí)行的。圖2.5單片機最小系統(tǒng)2.5HC-SR04模塊HC-SR04超聲波測距模塊可提供2cm-400cm的非接觸式距離感測功能,其結(jié)構(gòu)簡單,使用單片機控制電路簡單容易,而且價格便宜。該模塊包括超聲波發(fā)射、接收與控制電路。實物如圖2.6。圖2.6HC-SR04模塊實物圖2.5.1HC-SR04模塊使用器件(1)MAX232MAX232芯片是美信公司專為RS-232標準串口設(shè)計的單電源電平轉(zhuǎn)換芯片,使用+5v單電源供電。此處用于對T40-16激勵電壓的放大。MAX232共14個引腳(圖2.7)共14個,可分為三個部分。第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個電源,提供給RS-232串口電平的需要。第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個數(shù)據(jù)通道。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道;8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。第三部分是供電,15腳GND、16腳VCC(+5v)。圖2.7MAX232引腳圖(2)TL074TL074(圖2.8)是常用的低噪聲JFET輸入四運算放大器。1、2、3腳是通道1的輸出端、反相輸入端、同相輸入端;5、6、7腳是通道2的同相輸入端、反相輸入端、輸出端;8、9、10腳是通道3的輸出端、反相輸入端、同相輸入端;12、13、14腳是通道4的同相輸入端、反相輸入端、輸出端;4腳是正電源,11腳是負電源。圖2.8TL074引腳圖(3)T40-16與R40-16為了研究和利用超聲波,人們已經(jīng)設(shè)計和制成了許多超聲波發(fā)生器??傮w上講,超聲波發(fā)生器可以分為兩大類:電氣方式產(chǎn)生超聲波,主要包括壓電型、磁致伸縮型和電動型等;機械方式產(chǎn)生超聲波,主要包括加爾統(tǒng)笛、液哨和氣流旋笛等。它們所產(chǎn)生的超聲波的頻率、功率和聲波特性各不相同,因而用途也各不相同。目前較為常用的是壓電式超聲波發(fā)生器。壓電式超聲波發(fā)生器實際上是利用壓電晶體的諧振來工作的。其內(nèi)部有兩個壓電晶片和一個共振板。當它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時,壓電晶片將會發(fā)生共振,并帶動共振板振動,便產(chǎn)生超聲波。反之,如果兩電極間未外加電壓,當共振板接收到超聲波時,將壓迫壓電晶片作振動,將機械能轉(zhuǎn)換為電信號,這時它就成為超聲波接收器了。模塊使用T40-16T/R(圖2.9)超聲波換能器即為壓電型。圖2.9傳感器實物圖T40-16T/R的特性如下:標稱頻率(KHz):40KHz;發(fā)射電壓at10V(0dB=0.02mPa):≥110dB;接收靈敏度at40KHz(0dB=V/ubar):≥-70dB;探測距離(m):0.02-10;外徑(mm):16;類別:通用型;使用方式:T為發(fā)射頭,R為接收頭,TR為收發(fā)兼用;適用范圍:家用電器及其它電子設(shè)備的超聲波遙控裝置;超聲波測距及汽車倒車防撞裝置;液面探測;超聲波接近開關(guān)及其它應(yīng)用的超聲波場合。2.5.2HC-SR04模塊工作原理(1)電氣參數(shù)HC-SR04模塊參數(shù)如下表2.10所示。表2.10模塊參數(shù)電氣參數(shù)HC-SR04超聲波模塊工作電壓DC5V工作電流15mA工作頻率40khz最遠射程4m最近射程2cm測量角度15°輸入觸發(fā)信號10us的TTL脈沖輸入回響信號輸出TTL電平信號,與射程成比例規(guī)格尺寸45*20*15cm(2)基本工作原理采用IO口TRIG觸發(fā)測距,給至少10us的高電平信號。接著模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回。一旦有信號返回,通過IO口ECHO輸出一個高電平,高電平持續(xù)時間就是超聲波從發(fā)射到返回的時間。利用該時間乘以超聲波在空氣中的速度再除以二,就可以算出被測物體距離超聲波模塊的距離了。為防止發(fā)射信號對回響信號的影響,測量周期一般要60ms以上。HC-SR04模塊的工作時序如下圖(圖2.11)所示。圖2.11超聲波時序圖2.5.3超聲波模塊電路超聲波模塊一共引出四個引腳,其中一個接VCC,一個接GND,剩下兩個分別接到單片機的IO口。在本設(shè)計中,把超聲波的ECHO引腳接到單片機的P23口,TRIG引腳接到單片機的P22,電路圖如圖2.12所示:圖2.12超聲波模塊電路2.5.4顯示電路本數(shù)碼管模塊的電路的連接圖如圖2.13所示。第1腳和第2腳分別接到了電路的GND和VCC,這2個腳是數(shù)碼管工作的電源輸入腳。第3腳通過一個10K的電位器連接到地端,可通過調(diào)節(jié)該電位器來調(diào)節(jié)數(shù)碼管的對比度。第4腳是數(shù)碼管的寄存器控制腳,接到了單片機的P13腳上。第5腳是數(shù)碼管的讀寫控制腳,接到了單片機的P14腳上。第6腳是數(shù)碼管的使能腳,接到了單片機的P15腳上。第7腳到第14腳是數(shù)碼管的數(shù)據(jù)/地址8位總線,接到了單片機的P0口上。最后第15腳和第16腳是數(shù)碼管的背光電源腳,直接連接系統(tǒng)VCC和GND。圖2.13數(shù)碼管模塊連接圖2.6報警模塊本設(shè)計不但具有超聲波測距功能,還具有報警功能。可以給本系統(tǒng)設(shè)定一個報警值,當測量到的距離小于報警值時,蜂鳴器鳴叫,LED燈亮起,達到聲光報警的功能。2.6.1蜂鳴器的介紹蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計算機、打印機、復(fù)印機、報警器、電子玩具、汽車電子設(shè)備、電話機、定時器等電子產(chǎn)品中作發(fā)聲器件。蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。當接通電源后多諧振蕩器起振,輸出1.5~2.5kHZ的音頻信號,阻抗匹配器推動壓電蜂鳴片發(fā)聲。電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn)生磁場。振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發(fā)聲。本設(shè)計使用的是電磁式蜂鳴器。此外,蜂鳴器還有有源蜂鳴器與無源蜂鳴器的區(qū)別。注意這里的“源”不是指電源,而是指震蕩源。也就是說,有源蜂鳴器內(nèi)部帶震蕩源,所以只要一通電就會叫;而無源內(nèi)部不帶震蕩源,所以如果用直流信號無法令其鳴叫,必須用2K-5K的方波去驅(qū)動它。本設(shè)計使用的是有源蜂鳴器。2.6.2蜂鳴器報警電路蜂鳴器的驅(qū)動電路如圖2.14所示。由于蜂鳴器的工作電流一般比較大,以致于單片機的I/O口是無法直接驅(qū)動,所以要利用三極管來驅(qū)動。三極管的控制腳(基極)也是接到單片機P20上,所以單片機的P20一旦輸出低電平,蜂鳴器就會報警鳴叫。圖2.14三極管驅(qū)動電路2.6.3發(fā)光二極管發(fā)光二極管簡稱為LED。由含鎵(Ga)、砷(As)、磷(P)、氮(N)等的化合物制成。當電子與空穴復(fù)合時能輻射出可見光,因而可以用來制成發(fā)光二極管。在電路及儀器中作為指示燈,或者組成文字或數(shù)字顯示。它是半導(dǎo)體二極管的一種,可以把電能轉(zhuǎn)化成光能。發(fā)光二極管與普通二極管一樣是由一個PN結(jié)組成,也具有單向?qū)щ娦浴.斀o發(fā)光二極管加上正向電壓后,從P區(qū)注入到N區(qū)的空穴和由N區(qū)注入到P區(qū)的電子,在PN結(jié)附近數(shù)微米內(nèi)分別與N區(qū)的電子和P區(qū)的空穴復(fù)合,產(chǎn)生自發(fā)輻射的熒光。不同的半導(dǎo)體材料中電子和空穴所處的能量狀態(tài)不同。當電子和空穴復(fù)合時釋放出的能量多少不同,釋放出的能量越多,則發(fā)出的光的波長越短。砷化鎵二極管發(fā)紅光,磷化鎵二極管發(fā)綠光,碳化硅二極管發(fā)黃光,氮化鎵二極管發(fā)藍光。發(fā)光二極管的反向擊穿電壓大于5伏。它的正向伏安特性曲線很陡,使用時必須串聯(lián)限流電阻以控制通過二極管的電流。2.6.4報警模塊電路對于LED報警電路(圖2.15),LED的正極接到了電源的正極,負極串聯(lián)一個1K的電阻后連到了單片機的P21上。因此只要單片機的P21輸出低電平即可點亮該LED燈。圖2.15蜂鳴器電路2.7按鍵輸入模塊鍵盤是人與單片機打交道的主要設(shè)備。在單片機應(yīng)用中鍵盤用得最多的形式是獨立鍵盤及矩陣鍵盤。它們各有自己的特點,其中獨立鍵盤硬件電路簡單,而且在程序設(shè)計上也不復(fù)雜,一般用在對硬件電路要求不高的簡單電路中;矩陣鍵盤與獨立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨立鍵盤復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢得多,因此它更適合于多按鍵電路。其次就是消除在按鍵過程中產(chǎn)生的“毛刺”現(xiàn)象。這里采用最常用的方法,即延時重復(fù)掃描法,延時法的原理為:“毛刺”脈沖一般持續(xù)時間短,約為幾ms,而我們按鍵的時間一般遠遠大于這個時間,所以當單片機檢測到有按鍵動靜后再延時一段時間后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無效。本設(shè)計中由于采用的按鍵數(shù)量較少,只有3個按鍵,分別是“設(shè)置”、“加”、“減”,故采用了獨立鍵盤的方式,分別連到了單片機的P10、P11和P12。按鍵的連接圖2.16所示:圖2.16按鍵電路

3軟件設(shè)計3.1程序語言及開發(fā)環(huán)境C語言是一種計算機程序設(shè)計語言,它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾實驗室的DennisM.Ritchie于1972年推出,1978年后,C語言已先后被移植到大、中、小及微型機上,它可以作為工作系統(tǒng)設(shè)計語言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計語言,編寫不依賴計算機硬件的應(yīng)用程序。它的應(yīng)用范圍廣泛,具備很強的數(shù)據(jù)處理能力,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語言,適于編寫系統(tǒng)軟件、三維、二維圖形和動畫,具體應(yīng)用例如單片機以及嵌入式系統(tǒng)開發(fā)。KeilC51是美國KeilSoftware公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調(diào)試工具也會令你事半功倍。3.2程序流程圖3.2.1總體流程圖本系統(tǒng)的軟件流程圖如圖3.1所示。最開始先進行數(shù)碼管的初始化,包括數(shù)碼管功能初始化和數(shù)碼管顯示內(nèi)容初始化。接著進入一個死循環(huán)的過程,進入循環(huán)的第一個任務(wù)就是啟動超聲模塊,將測得的距離通過數(shù)碼管顯示出來,接著判斷該測得的距離是否小于設(shè)置的值,如果小于的話,則進行聲光報警。完成第一個任務(wù)后,就進行按鍵的掃描,判斷是否有按鍵被按下,有的話,則進入報警值的設(shè)置操作。至此,完成了一次循環(huán)的過程,繼續(xù)進入循環(huán),進行下一輪的距離檢測和按鍵掃描。開始開始 數(shù)碼管初始化數(shù)碼管初始化超聲波初始化 超聲波初始化數(shù)碼管顯示當前信息數(shù)碼管顯示當前信息否否低于距離蜂鳴器報警是是否否返回距離間距離加是按鍵設(shè)置是否按下按鍵低于距離蜂鳴器報警是是否否返回距離間距離加是按鍵設(shè)置是否按下按鍵圖3.1程序流程圖3.2.2數(shù)碼管程序流程圖設(shè)計開始開始數(shù)碼管初始化數(shù)碼管初始化定位行列坐標定位行列坐標顯示一個字符顯示一個字符否數(shù)據(jù)顯示完?否數(shù)據(jù)顯示完?是是結(jié)束結(jié)束圖3.2數(shù)碼管顯示流程圖開始3.2.3超聲波模塊HC-SR04程序流程圖設(shè)計開始給給Trig引腳高脈沖等待Echo返回高電平等待Echo返回高電平啟動定時器啟動定時器0等待Echo等待Echo高電平結(jié)束關(guān)閉定時器0關(guān)閉定時器0計算定時器0時間計算定時器0時間通過時間,算出距離通過時間,算出距離結(jié)束結(jié)束圖3.3超聲波模塊程序流程圖4硬件組裝與調(diào)試4.1元器件的選擇與測量本次設(shè)計的元器件主要有:STC89C51單片機、晶振、電阻、電容、按鍵、開關(guān)、電源座、三極管、發(fā)光二極管、蜂鳴器、傳感器、液晶等。這些元器件的引腳需要我們認真查找資料,了解每個器件的特性再進行焊接。這些元器件直接根據(jù)型號到電子元器件市場就很容易買到。其中焊接時要注意元件正負極性,電阻電容大小、芯片引腳順序等細節(jié)。一般電阻的大小可以通過色環(huán)讀取,或直接用萬用表進行測量;電容和晶振等的大小會標準在元件本身;元件的正負可以遵循長正短負的原則,一些特殊元件可以通過查找資料獲知正負極。4.2電路的調(diào)試調(diào)試是指系統(tǒng)的調(diào)整、改進與測試。測試是在電路組裝后對電路的參數(shù)與工作狀態(tài)進行測量,調(diào)整則是在測試的基礎(chǔ)上對電路的某些參數(shù)進行修正,使?jié)M足設(shè)計要求。在進行調(diào)試前應(yīng)擬訂出測試項目、測試步驟、調(diào)試方法和所用儀器等,做到心中有數(shù),保證調(diào)試工作圓滿完成。4.2.1調(diào)試方法調(diào)試方法原則有兩種。第一種是邊安裝邊調(diào)試的方法。它是把復(fù)雜的電路按原理框圖上的功能分成單元進行安裝和調(diào)試,在單元調(diào)試的基礎(chǔ)上逐步擴大安裝和調(diào)試的范圍,最后完成整機調(diào)試。這種方法在新設(shè)計的電路中比較常用。第二種方法是在整個電路系統(tǒng)全部焊接完畢后,實行一次性調(diào)試。這種方法比較適用于電路相對來說比較簡單,系統(tǒng)不復(fù)雜的電路調(diào)試。4.2.2調(diào)試步驟(1)通電前檢查電路焊接完畢后,不要急于通電,首先要根據(jù)原理電路認真對照檢查電路中的接接線是否正確,包括錯線(連線一端正確、另一端錯誤),少線(安裝時漏掉的線),多線(連線的兩端在電路圖上都是不存在的)和短路(特別是間距很小的引腳及焊點間),并且還要檢查每個元件引腳的使用端數(shù)是否與圖紙相符。查線時最好用指針式萬用表“Ω×1”檔進行檢查,或是用數(shù)字萬用表“Ω”檔的蜂鳴器來測量,而且要盡可能直接測量元器件引腳,這樣同時可以發(fā)現(xiàn)接觸不良的地方。(2)通電觀察在電路安裝沒有錯誤的情況下接通電源(先關(guān)斷電源開關(guān),待接通電源連線之后再打開電路的電源開關(guān))。但接通電源后不要立即進行電路功能的測試,首先要充觀察整個電路有無異?,F(xiàn)象,電路中元器件是否有發(fā)熱燒壞等現(xiàn)象,是否有漏電現(xiàn)象,電源是否有短路和開路現(xiàn)象等。如果電路在測試過程中出現(xiàn)異常,首先應(yīng)該立即關(guān)閉電源,檢查后排除故障再重新通電測試。然后再按要求測量各元器件引腳電源的電壓,而不只是測量各路總電源電壓,以保證元器件正常工作。(3)單元電路調(diào)試在調(diào)試單元電路時應(yīng)明確本部分的調(diào)試要求。調(diào)試順序應(yīng)按照電路原理圖中信號流向進行,這樣可以把整個電路進行分步調(diào)試,把前面調(diào)試好的電路的輸出信號作為后一級電路的輸入信號。從而保證電路的調(diào)試更加順利方便。單元調(diào)試包括靜態(tài)和動態(tài)調(diào)試。靜態(tài)調(diào)試一般是指在沒有外加信號的條件下測試電路各點的電位,特別是有源器件的靜態(tài)工作點。通過它可以及時發(fā)現(xiàn)已經(jīng)損壞和處于臨界狀態(tài)的元器件。動態(tài)調(diào)試是用前級的輸出信號或自身的信號測試單元的各種指標是否符合設(shè)計要求,包括信號幅值、波形形狀、相位關(guān)系、放大倍數(shù)和頻率等。對于信號產(chǎn)生電路一般只看動態(tài)指標。把靜態(tài)和動態(tài)測試的結(jié)果與設(shè)計的指標加以比較,經(jīng)深入分析后對電路與參數(shù)提出合理的修正。在調(diào)試過程中應(yīng)有詳盡記錄。(4)整機聯(lián)調(diào)各單元電路調(diào)試好以后,并不見得由它們組成的整體電路性能一定會好,因此還要進行整體電路調(diào)試。整體電路調(diào)試主要是觀察和測量動態(tài)性能,把測量的結(jié)果與設(shè)計指標逐一對比,找出問題及解決辦法,然后對電路及其參數(shù)進行修正,直到全部電路的性能完全符合設(shè)計要求為止。4.3實驗測試4.3.1目的本次實驗是為了測試搭建的基于單片機的超聲波測距系統(tǒng)的精度、可測距范圍、在誤差允許下的可測距范圍、溫度對測距系統(tǒng)的影響。4.3.2方法按照超聲傳感器的測距范圍4~400CM,在距目標板在4CM、10CM、20CM、30CM、40CM、50CM、60CM、70CM、80CM、90CM、1M、1.5M、2M、2.5M、3M時進行測距,通過LCD顯示補償前和補償后的測距結(jié)果的對比。在溫度方面,選用20℃、25℃、30℃,35℃、40℃在室內(nèi)或者室外進行測距。4.3.3結(jié)果分析在測量的過程中發(fā)現(xiàn),當測距范圍小于2CM時幾乎很難測到距離,經(jīng)分析可知由于距離太小,發(fā)射超聲波的頻率較高,在短距離內(nèi),短時間發(fā)射探頭會發(fā)射多次超聲波,接收探頭也多次接收到回波,幾乎無法測量數(shù)據(jù)。而且當測距范圍大于2.5米時,由于發(fā)射功率并不是很大,反射回來的回波經(jīng)過一定距離后接收探頭不能接收到,所以并不能達到傳感器廠家資料所給的4米范圍。此次實驗也充分的說明的溫度補償?shù)闹匾?聲速不能簡單地取340M/S,必須經(jīng)過溫度的補償,在特別的區(qū)域,甚至還要考慮濕度對其的影響。盡管說經(jīng)過溫度的補償以后還是有誤差,但在比未補償前誤差小了一倍不止。通過以上數(shù)據(jù)發(fā)現(xiàn),系統(tǒng)本身的精度也會受溫度的影響,在不考慮溫度對聲速的補償情況下,溫度越高,系統(tǒng)本身的精度也越高。

總結(jié)本文討論了超聲波測距原理、硬件電路實現(xiàn)和軟件設(shè)計方法基礎(chǔ)上,完成了超聲波測距的設(shè)計要求。利用單片機的運算和控制功能,設(shè)計出的一種簡單實用的超聲波的測距系統(tǒng)。利用超聲波檢測往往比較迅速、方便、計算簡單、易于做到實時控制,并且在測量精度方面能達到工業(yè)實用的要求,隨著科學技術(shù)的快速發(fā)展,超聲波的應(yīng)用將越來越廣。但就目前技術(shù)水平來說,人們可以具體利用的超聲波技術(shù)還十分有限,因此,這是一個正在蓬勃發(fā)展而又有無限前景的技術(shù)及產(chǎn)業(yè)領(lǐng)域。超聲波測距儀硬件電路的設(shè)計主要包括單片機系統(tǒng)及顯示電路、超聲波模塊三部分。單片機采用STC89C51,利用12MHz高精度的晶振,以獲得較穩(wěn)定時鐘頻率,減小測量誤差。超聲波模塊使用HC-SR04,該模塊質(zhì)量穩(wěn)定,測量精度高,價格低廉,很適合做成產(chǎn)品。顯示模塊使用數(shù)碼管,該數(shù)碼管可顯示2行,每行16個字符,相對數(shù)碼管來說,可以顯示更加豐富的內(nèi)容。經(jīng)實際測試證明,該類測距工作穩(wěn)定,能滿足一般近距離測距的要求,且成本較低、有良好的性價比。

參考文獻[1]謝維成,楊加國.單片機原理與應(yīng)用及C51程序設(shè)計.北京:清華大學出版社,2016[2]蔡菲娜.單片微型計算機原理和應(yīng)用.杭州:杭州大學出版社,2015[3]李建忠.單片機原理及應(yīng)用.西安:西安電子科技大學出版社,2017[4]張齊等.單片機應(yīng)用系統(tǒng)設(shè)計技術(shù)基于C語言編程.北京:電子工業(yè)出版社,2018[5]吳延海.微型計算機接口技術(shù).重慶:重慶大學出版社,2017[6]李麗霞.單片機在超聲波測距中的應(yīng)用[J].電子技術(shù),2018[7]姜道連,寧延一,袁世良.用AT89C2051設(shè)計超聲波測距儀[J].國外電子元器件,2017[8]張鵬,張有志.一種新型超生測距系統(tǒng)[J].山東:山東大學學報,2018,33(1)[9]賈伯年.傳感器技術(shù).南京:東南大學出版社,2018[10]陳大新,胡學同,周杏鵬.利用FPGA改進超聲波測距模塊設(shè)計[J].傳感器技術(shù),2015,24(2):57~59[11]閻石.數(shù)字電子技術(shù)基礎(chǔ).北京:高等教育出版社,2018[12]樓然苗.51系列單片機設(shè)計實例.北京:北京航空航天大學出版社,2018[13]譚浩強.C程序設(shè)計(第三版).北京:清華大學出版社,2015

附錄電路圖主程序#include<reg52.H>//器件配置文件#include<intrins.h>#include"eeprom52.h"http://傳感器接口sbitRX=P2^3;sbitTX=P2^2;//按鍵聲明sbitS1=P1^4;sbitS2=P1^5;sbitS3=P1^6;sbitDIAN=P0^5;//蜂鳴器sbitFeng=P2^0;//變量聲明unsignedinttime=0;unsignedinttimer=0;unsignedcharposit=0;unsignedlongS=0;unsignedlongBJS;//報警距離charnum=0;//模式0正常模式1調(diào)整charMode=0;bitflag=0,flag_BJ;unsignedcharconstdiscode[]={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7,0x80}; //數(shù)碼管顯示碼0123456789-和不顯示unsignedchardisbuff[4] ={0,0,0,0}; //數(shù)組用于存放距離信息unsignedchardisbuff_BJ[4] ={0,0,0,0};//報警信息sbitW0=P2^4;sbitW1=P2^5;sbitW2=P2^6;sbitW3=P2^7;/******************把數(shù)據(jù)保存到單片機內(nèi)部eeprom中******************/voidwrite_eeprom(){ SectorErase(0x2000); byte_write(0x2000,BJS%255); byte_write(0x2001,BJS/255); byte_write(0x2060,a_a); }/******************把數(shù)據(jù)從單片機內(nèi)部eeprom中讀出來*****************/voidread_eeprom(){ BJS=(byte_read(0x2001)*255)+byte_read(0x2000); a_a=byte_read(0x2060);}/**************開機自檢eeprom初始化*****************/voidinit_eeprom(){ read_eeprom(); //先讀 if(a_a!=1) //新的單片機初始單片機內(nèi)問eeprom { BJS=40; a_a=1; write_eeprom(); //保存數(shù)據(jù) } }//延時100ms(不精確)voiddelay(void){unsignedchara,b,c;for(c=10;c>0;c--)for(b=38;b>0;b--)for(a=130;a>0;a--);}//按鍵掃描voidKey_(){ //+ if(S1==0) { delay(); //延時去抖 delay(); //延時去抖 while(S1==0) { P1=P1|0x0f; } BJS++; //報警值加 if(BJS>500)//最大500 { BJS=1; } write_eeprom(); //保存數(shù)據(jù) } //- elseif(S2==0) { delay(); delay(); //延時去抖 while(S2==0) { P1=P1|0x0f; } BJS--; //報警值減 if(BJS<1) //最小1 { BJS=500; } write_eeprom(); //保存數(shù)據(jù) } //功能 elseif(S3==0) //設(shè)置鍵 { delay(); delay(); //延時去抖 while(S3==0) { P1=P1|0x0f; } Mode++; //模式加 num=0; if(Mode>=2) //加到2時清零 { Mode=0; } }}/**********************************************************************************************************///掃描數(shù)碼管voidDisplay(void) { //正常顯示 if(Mode==0) { num++; if(num==1) { W3=1; W0=1; P0=~discode[disbuff[0]]; DIAN=0; W1=0; } elseif(num==2) { W1=1; P0=~discode[disbuff[1]]; W2=0; } elseif(num>=3) { W2=1; P0=~discode[disbuff[2]]; W3=0; num=0; } } //報警顯示 else { num++; if(num==1) { W3=1; P0=~0xCE; //11001110 W0=0; } elseif(num==2) { W0=1; P0=~discode[disbuff_BJ[0]]; DIAN=0; W1=0; } elseif(num==3) { W1=1; P0=~discode[disbuff_BJ[1]]; W2=0; } elseif(num>=4) { W2=1; P0=~discode[disbuff_BJ[2]]; W3=0; num=0; } }}/**********************************************************************************************************///計算voidConut(void){ time=TH0*256+TL0; //讀出T0的計時數(shù)值 TH0=0; TL0=0; //清空計時器 S=(time*1.7)/100;//算出來是CM if(Mode==0) //非設(shè)置狀態(tài)時 { if((S>=700)||flag==1)//超出測量范圍顯示“-” { flag=0; disbuff[0]=10; //“-” disbuff[1]=10;

溫馨提示

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

評論

0/150

提交評論