




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于單片機(jī)的超聲波測距系統(tǒng)設(shè)計摘要隨著科學(xué)技術(shù)的快速發(fā)展超聲波將在測距儀中的應(yīng)用越來越廣。它將朝著更加高定位高精度的方向發(fā)展,以滿足日益發(fā)展的社會需求。無庸置疑未來的超聲波測距儀將與自動化智能化接軌與其他的測距儀集成和融合,形成多測距儀。隨著測距儀的技術(shù)進(jìn)步,測距儀將從具有單純判斷功能發(fā)展到具有學(xué)習(xí)功能最終發(fā)展到具有創(chuàng)造力。本課題詳細(xì)介紹了超聲波傳感器的原理和特性,以及STC公司的STC89C52單片機(jī)的性能和特點,并在分析了超聲波測距的原理的基礎(chǔ)上,指出了設(shè)計測距系統(tǒng)的思路和所需考慮的問題,給出了以STC89C52單片機(jī)為核心的低成本、高精度、微型化數(shù)字顯示超聲波測距儀的硬件電路和軟件設(shè)計方法。該系統(tǒng)電路設(shè)計合理、工作穩(wěn)定、性能良好、檢測速度快、計算簡單、易于做到實時控制,并且在測量精度方面能達(dá)到工業(yè)實用的要求。關(guān)鍵詞:超聲波單片機(jī)測距STC89C52UltrasonicrangingsystembasedonSCMAbstractWiththerapiddevelopmentofscienceandtechnology,ultrasoundwillbemorewidelyappliedintherangefinder.ItwillbetowardmorehighsetPrecisionofdirection,inordertomeetthegrowingneedsofthecommunity.Undoubtedly,thefutureofultrasonicdistancemeasurementinstrumentstandardsandautomationofintelligentwillbeintegratedwithotherrangefinderandfusiontoformamulti-rangefinder.Withthemeasuredawayfromtheinstrument'stechnicalprogress,therangefinderwilldevelopfromsimpletojudgethefunctionaldevelopmenttohavealearningfunction,andeventuallydeveloptohasthecreativity.Thissubjecthasintroducedtheprincipleandcharacteristicoftheultrasonicsensorindetail,andtheperformanceandcharacteristicofone-chipcomputerSTC89C52ofSTCCompany,andonthebasisofanalyzingprinciplethatultrasonicwavefindsrange,thesystematicthinkingandquestionsneededtoconsiderthathavepointedoutthatdesignsandfindsrange,providelowcost,thehardwarecircuitofhighaccuracy,ultrasonicrangefinderofminiaturedigitaldisplayandsoftwaredesignIVmethodtakingSTC89C52asthecore,thiscircuitofsystemisreasonableindesign,workingstability,performancegoodmeasuringspeedingsoon,calculatingsimple,apttoaccomplishreal-timecontrol,andcanreachindustry'spracticaldemandinmeasuringtheprecision.Keywords:Ultrasonicwave;One-chipcomputer;Rangefinding;STC89C52中北大學(xué)2012屆畢業(yè)設(shè)計說明書第PAGEII頁共II頁目錄1緒論 11.1超聲波檢測簡介 11.2超聲波檢測的發(fā)展 21.3超聲測距現(xiàn)狀 32超聲波測距儀的設(shè)計 62.1超聲波測距原理 62.2常見測距法 62.3超聲波傳感器 72.3.1超聲波傳感器的原理及結(jié)構(gòu) 72.4系統(tǒng)主要參數(shù)的確定 82.4.1測距儀的工作頻率 82.4.2聲速 82.4.3發(fā)射脈沖寬度 92.4.4測量盲區(qū) 92.5系統(tǒng)設(shè)計方案: 103超聲波測距儀的硬件設(shè)計 113.1硬件模塊選型 113.1.1處理器選型(STC89C52) 113.1.2超聲波模塊選型(HC-SR04) 123.1.3顯示模塊選型 133.1.4時鐘模塊選型 143.1.5E2PROM模塊選型 153.1.6語音模塊選型(蜂鳴器) 153.2系統(tǒng)電路設(shè)計 163.2.1超聲波模塊電路設(shè)計 163.2.2時鐘模塊電路設(shè)計 163.2.3顯示模塊電路設(shè)計 173.2.4語音模塊電路設(shè)計 183.2.5電源電路設(shè)計 183.2.6系統(tǒng)電路設(shè)計總圖 184超聲波測距儀的軟件設(shè)計 204.1超聲波測距器的算法設(shè)計 204.2程序結(jié)構(gòu)圖 204.3主程序 214.4外部中斷子程序 214.5模式0子程序 224.5.1測距子程序 224.5.2顯示子程序 224.5.3語音模塊子程序 234.5.4存儲子程序 234.6模式1子程序 24結(jié)束語 25附錄 26參考文獻(xiàn): 40致謝 41第43頁共42頁1緒論超聲波是指超過人的聽覺范圍以上(16KHZ)的聲波[1]。由于電子技術(shù)及壓電陶瓷材料的發(fā)展,使超聲檢測技術(shù)得到了迅速的發(fā)展。超聲技術(shù)是一門以物理、電子、機(jī)械、及材料學(xué)為基礎(chǔ)的通用技術(shù)之一。超聲技術(shù)是通過超聲波產(chǎn)生、傳播及接收的物理過程而完成的。超聲波具有聚束、定向及反射、透射等特性。超聲檢測技術(shù)是利用超聲波在媒質(zhì)中的傳播特性(聲速、衰減、反射、聲阻抗等)來實現(xiàn)對非聲學(xué)量(如密度、濃度、強(qiáng)度、彈性、硬度、粘度、溫度、流速、流量、液位、厚度、缺陷等)的測定。它的基本原理是基于超聲波在介質(zhì)中傳播時遇到不同的界面,將產(chǎn)生反射,折射,繞射,衰減等現(xiàn)象,從而使傳播的聲時、振幅、波形、頻率等發(fā)生相應(yīng)變化,測定這些規(guī)律的變化,便可得到材料的某些性質(zhì)與內(nèi)部構(gòu)造情況[2]。與傳統(tǒng)超聲技術(shù)完全不同,新的超聲技術(shù)具有以下特點:在不破壞媒質(zhì)特性的情況下實現(xiàn)非接觸性測量[3],環(huán)境適應(yīng)能力強(qiáng),可實現(xiàn)在線測量。1.1超聲波檢測簡介超聲波測量在國防、航空航天、電力、石化、機(jī)械、材料等眾多領(lǐng)域具有廣泛的作用,它不但可以保證產(chǎn)品質(zhì)量、保障安全,還可起到節(jié)約能源、降低成本的作用[4]。超聲波與光波、電磁波、射線等檢測相比,其最大特點是穿透力強(qiáng)。超聲波是一種頻率超過20kHz的機(jī)械波。超聲波作為一種特殊的聲波,同樣具有聲波傳輸?shù)幕疚锢硖匦?-反射、折射、干涉、衍射、散射。超聲波具有方向性集中、振幅小、加速度大等特點,可產(chǎn)生較大力量,并且在不同的媒質(zhì)介面?zhèn)鞑?,超聲波的大部分能量會反射。利用超聲波檢測往往比較迅速,方便,易于做到實時控制,并且在測量精度方面能達(dá)到工業(yè)實用的要求,主要應(yīng)用于倒車?yán)走_(dá)、建筑施工工地以及一些工業(yè)現(xiàn)場,例如:液位、井深、管道長度等場合。超聲波在介質(zhì)(固體、液體、氣體)中傳播時,利用不同介質(zhì)的不同聲學(xué)特性對超聲波傳播的影響來探查物體和進(jìn)行測量的技術(shù)稱為超聲檢測。當(dāng)超聲波以脈沖形式在介質(zhì)中傳播時,利用反射這一性質(zhì),在多種介質(zhì)中均有廣泛的用途。例如在金屬、非金屬中用來探測缺陷的位置和性質(zhì),從而對鋼板、鍛件、焊縫、混凝土、人造石磨等進(jìn)行探傷檢驗;在水中,根據(jù)反射波可以探測潛水艇和魚群,測量海底深度以及探查海底底層等;在人體中則可以協(xié)助臨床診斷疾病(如肝膿腫、腫瘤、膽結(jié)石等)和探測胎兒等[5]。利用超聲連續(xù)波的共振性質(zhì),可以測量高壓容器、鍋爐、輪船甲板等的厚度或腐蝕程度,也可制成機(jī)械濾波器。利用超聲波的哀減特性,可以研究或測量材料的物理性質(zhì)[6]。當(dāng)超聲波射到運動體時,利用多普勒效應(yīng),可以測量流速流量,探測心臟血管搏動等。若將超聲波作為載波傳送某些信號,則可制成水中電話、水中遙測儀等,以進(jìn)行水中通信。利用超聲波在固體,液體中傳播的速度遠(yuǎn)小于電磁波這一特性,可制成超聲延遲線和存儲裝置以及進(jìn)行電視制式的轉(zhuǎn)換。還可利用超聲波檢漏、測量液位、粘度、硬度和溫度等。除此之外,聲發(fā)射、聲成像技術(shù)(包括聲全息成像技術(shù))的發(fā)展更大大豐富了超聲檢測的內(nèi)容。超聲波可在任何物體中傳播,了解被測物體內(nèi)部情況。超聲檢測設(shè)備還具有結(jié)構(gòu)簡單,成本低廉的優(yōu)點,有利于工程實際使用。近十幾年來由于微機(jī)技術(shù)、現(xiàn)代電子技術(shù)、信號處理技術(shù)以及超聲波產(chǎn)生和接收新技術(shù)的發(fā)展,突破了常規(guī)超聲檢測的限制,進(jìn)一步開拓了其適用范圍。1.2超聲波檢測的發(fā)展我國無損檢測技術(shù)是從無到有,從低級階段逐漸發(fā)展到應(yīng)用普及的現(xiàn)階段水平。超聲波檢測儀器的研制生產(chǎn),也大致按此規(guī)律發(fā)展變化。五十年代,我國開始從國外引進(jìn)超聲波儀器[7],多是笨重的電子管式儀器。如英國的UCT-2超聲波檢測儀,重達(dá)24Kg,各單位積極開展試驗研究工作,在一些工程檢測中取得了較好的效果。五十年代末六十年代初,國內(nèi)科研單位進(jìn)口了波蘭產(chǎn)超聲儀,并進(jìn)行仿制生產(chǎn)。隨后,上海同濟(jì)大學(xué)研制出CTS-10型非金屬超聲檢測儀,也是電子管式,儀器重約20Kg。該儀器性能穩(wěn)定,波形清晰。但當(dāng)時這種儀器只有個別科研單位使用,建工部門使用不多。至七十年代中期,因無損檢測技術(shù)仍處于試驗階段,未推廣普及,所以儀器沒有多大發(fā)展,仍使用電子管式的UCT-2,CTS-10型儀器。976年,國家建委科技公司主持召開全國建筑工程檢測技術(shù)交流會后,國家建委將混凝土無損檢測技術(shù)列為重點攻關(guān)項目,組織全國6個單位協(xié)作攻關(guān)。從此,無損檢測技術(shù)開始進(jìn)入有計劃,有目的的研究階段。隨著電子工業(yè)的飛速發(fā)展,半導(dǎo)體元件逐漸代替了電子管器件,更有利于無損檢測技術(shù)的推廣普及。如羅馬尼亞N2701型超聲波測試儀,是由晶體管分立元件組成,具有波形和數(shù)碼顯示,儀器重量1OKg。七十年代,英國C.N.S公司推出僅有3.5Kg重的PUNDIT便攜式超聲儀。1978年10月,中國建筑科學(xué)院研制出JC-2型便攜式超聲波檢測儀。該儀器采用TTL線路,數(shù)碼顯示,儀器重量為5Kg。同期研制出的超聲檢測儀器還有SC-2型,CTS-25型,SYC-2型超聲波檢測儀。從此,我國有了自己生產(chǎn)的超聲波儀器,為推廣應(yīng)用無損檢測技術(shù)奠定了良好的基礎(chǔ)。隨著檢測技術(shù)研究的不斷深入,對超聲檢測儀器的功能要求越來越高,單數(shù)碼顯示的超聲檢測儀測讀會帶來較大的測試誤差,進(jìn)一步要求以后生產(chǎn)的超聲儀能夠具有雙顯及內(nèi)帶有單片機(jī)的微處理功能。隨后具有檢測,記錄,存儲,數(shù)據(jù)處理與分析等多項功能的智能化檢測分析儀相繼研制成功。超聲儀研制呈現(xiàn)一派繁榮景象。其中,煤炭科學(xué)研究院研制的2000A型超聲分析檢測儀,是一種內(nèi)帶微處理器的智能化測量儀器,全部操作都處于微處理器的控制管理之下,所有測量值,處理結(jié)果,狀態(tài)信息都在顯像管上顯示出來,并可接微型打印機(jī)打印。其數(shù)字和波形都比較清晰穩(wěn)定,操作簡單,可靠性高,具有斷電存儲功能,其串口可以方便用戶對儀器的測試數(shù)據(jù)進(jìn)行后處理及有關(guān)程序的開發(fā)。與國內(nèi)同類產(chǎn)品相比,設(shè)計新穎合理,功能齊全,在儀器設(shè)計上有重大突破和創(chuàng)新,達(dá)到了國際先進(jìn)水平。目前,計算機(jī)市場價格大幅度下降,采用非一體化超聲波檢測儀器,計算機(jī)可以發(fā)揮它一機(jī)多用的各種功能,實際上是最大的節(jié)約。過去那種全功能的儀器設(shè)置,還不如單獨的超聲儀,計算機(jī)可以充分發(fā)揮各自特點。高智能化檢測儀器只能滿足檢測條件,使用環(huán)境,重復(fù)性測試內(nèi)容等基本情況一樣,才可充分發(fā)揮其特有功能。儀器設(shè)計也應(yīng)從實際情況出發(fā),才能滿足用戶的要求。綜上所述,我國超聲波儀器的研制與生產(chǎn),有較大發(fā)展,有的型號己超過國外同類儀器水平。1.3超聲測距現(xiàn)狀目前,國內(nèi)學(xué)者對超聲波回波信號處理算法的研究已經(jīng)日漸成熟,但其作為超聲波探測定位的關(guān)鍵技術(shù),仍將是一個重要的研究方向。隨著超聲波回波信號處理方法的不斷完善,如何研發(fā)新型、高性能超聲波換能器以進(jìn)一步拓寬超聲波測距的應(yīng)用空間,作為解決超聲波測距系統(tǒng)不足的根本手段,越來越受到國內(nèi)學(xué)者關(guān)注。通過對以Vmos場效應(yīng)管為開關(guān)元件的超聲波發(fā)射電路進(jìn)行分析,馬慶云等[8]發(fā)現(xiàn)激勵脈沖寬度對超聲波換能器的發(fā)射功率影響極大,換能器取得最大發(fā)射功率所對應(yīng)的激勵脈沖寬度為其諧振周期的一半。該分析結(jié)果對新型超聲波換能器的發(fā)射電路的設(shè)計具有一定的指導(dǎo)作用。針對傳統(tǒng)連續(xù)調(diào)頻超聲波系統(tǒng)需要使用寬帶超聲傳感器的不足,李希勝等[9]提出了一種連續(xù)窄帶調(diào)頻超聲波測距方法。該方法可以利用較低的瞬時超聲波功率實現(xiàn)較高的平均發(fā)射功率,從而利用普通超聲傳感器來組成超聲發(fā)射接收傳感器對,避免了使用價格昂貴的寬帶超聲傳感器。目前國產(chǎn)低功率超聲波探頭,一般不能用于探測15m以外的物體,美國AIRMAR公司生產(chǎn)的AirducerAR30超聲波傳感器的作用距離可達(dá)30m,但價格較高。潘仲明等[10]對大作用距離超聲波傳感技術(shù)進(jìn)行研究,研制了諧振頻率為24.5kHz的新型超聲波傳感器,其作用距離超過了32m,測量誤差小于2%。廖一等[11]提出利用彎曲振動換能器改善聲匹配,將氣介超聲波換能器的最大探測距離提高到35m。現(xiàn)階段,國內(nèi)一些科研人員在超聲波發(fā)射電路的簡化、發(fā)射功率和頻率的控制、最大探測距離的提高等方面對新型超聲波換能器進(jìn)行研究并取得了一定成果,但對新型超聲換能器制作材料、超聲波發(fā)生機(jī)理創(chuàng)新等方面的研究尚有不足。目前市場上普通的超聲波測距系統(tǒng),一般采用發(fā)射單超聲脈沖的方法,這種方法在測距精度和可靠性等方面的研究已較成熟。但是當(dāng)它采用較高頻率超聲波時,會因空氣吸收而較快衰減,導(dǎo)致有效測量距離降低;在通過降低頻率以增大測距范圍時,測距的絕對誤差又會增大[12]。因而該方法存在測量分辨力和有效作用距離的矛盾,極大制約了超聲波傳感器應(yīng)用領(lǐng)域的拓寬?,F(xiàn)階段常見問題的分析及解決:(1)超聲波傳播波速不恒定超聲波在介質(zhì)中的傳播速度隨周圍環(huán)境(溫度、壓力等)的變化而變化,其中溫度的影響最為明顯。常溫下,超聲波的傳播速度為340m/s,溫度每升高1℃,聲速增加約為0.6m/s,因此超聲波測距中一般采用溫度補(bǔ)償?shù)姆椒?,即在?shù)據(jù)處理中對超聲波傳播速度進(jìn)行實時溫度補(bǔ)償。(2)存在盲區(qū)發(fā)射超聲波時,超聲波換能器在驅(qū)動脈沖結(jié)束后,會由于慣性繼續(xù)振動,產(chǎn)生余振。余振期間,由于無法區(qū)分回波信號與余振信號,因此必須等余振停止或衰減到足夠小后,才能允許接收傳感器接受信號。這段時間由于無法檢測超聲波傳播距離,從而出現(xiàn)盲區(qū)。為了減小盲區(qū),即盡快讓余振衰減到零或足夠小,馬志敏[13]提出自動根據(jù)測量距離遠(yuǎn)近調(diào)控發(fā)射功率的方法,即自動根據(jù)距離的遠(yuǎn)近來調(diào)整發(fā)射拖尾波覆蓋信號的寬度,從而消除拖尾波的干擾。QiangLi,Zhang[14]提出增大余振衰減系數(shù)的方法,來加速余振的衰減。郗曉田提出通過減小電容上電壓最大值U的初值來加速余振衰減的方法,也可在一定程度上減小盲區(qū)。(3)超聲波探測器測量分辨力和探測角度范圍的矛盾超聲波測距選用大波束角探測器,可以滿足探測范圍要求,但分辨能力較差,難于準(zhǔn)確地提供目標(biāo)的邊界信息。然而如果采用小波束角探測器,可以滿足分辨能力的需要,但探測范圍很難滿足要求。針對這一矛盾,金元郁等[15]提出步進(jìn)電機(jī)驅(qū)動單套小波束角傳感器做扇形掃描的方法,即步進(jìn)電機(jī)每轉(zhuǎn)過一個步距角,測距系統(tǒng)便在當(dāng)前的角度上測取一個距離信息,結(jié)合當(dāng)前的掃描角度,就得到了一個較為精確,而且兼有距離、方向的位置信息。該方法有效彌補(bǔ)了大波束角探測器分辨能力差,小波束角探測器探測范圍不足的缺點。2超聲波測距儀的設(shè)計2.1超聲波測距原理單片機(jī)發(fā)出超聲波測距是通過不斷檢測超聲波發(fā)射后遇到障礙物所反射的回波,從而測出發(fā)射和接收回波的時間差t,然后求出距離S=vt/2,式中的v為超聲波波速[16]。限制該系統(tǒng)的最大可測距離存在4個因素:超聲波的幅度、反射的質(zhì)地、反射和入射聲波之間的夾角以及接收換能器的靈敏度。接收換能器對聲波脈沖的直接接收能力將決定最小的可測距離。為了增加所測量的覆蓋范圍、減小測量誤差,可采用多個超聲波換能器分別作為多路超聲波發(fā)射/接收的設(shè)計方法。表2.1超聲波波速與溫度的關(guān)系表溫度(℃)-30-20-100102030100聲速(m/s)313319325323338344349386由于超聲波屬于聲波范圍,其波速v與溫度有關(guān)[17]。所以列出了幾種不同溫度下的波速,請看表2.1所示。在測距時由于溫度變化,可通過溫度傳感器自動探測環(huán)境溫度確定計算距離時的波速v,較精確地得出該環(huán)境下超聲波經(jīng)過的路程,提高了測量精確度。波速確定后,只要測得超聲波往返的時間,即可求得距離。單片機(jī)發(fā)出短暫的40kHz信號,經(jīng)放大后通過超聲波換能器輸出;反射后的超聲波經(jīng)超聲波換能器作為系統(tǒng)的輸入,鎖相環(huán)對此信號鎖定,產(chǎn)生鎖定信號啟動單片機(jī)中斷程序,得出時間,再由系統(tǒng)軟件對其進(jìn)行計算、判別后,相應(yīng)的計算結(jié)果被送至LCD顯示電路進(jìn)行顯示。同時判斷如果測得的距離小于1m時,通知報警器報警,并把測距記錄存入E2PROM存儲,供隨時查看測距記錄2.2常見測距法目前最常用測距法有兩種:(1)超聲波測距法:超聲波是頻率20kHz以上的機(jī)械振動波,利用發(fā)射脈沖和接收脈沖的時間間隔推算出距離。超聲波測距法的缺點是波束較寬,其分辨力受到嚴(yán)重的限制,因此,主要用于導(dǎo)航和回避障礙物。(2)激光測距法[18]:激光測距法也可以利用回波法,或者利用激光測距儀,其工作原理如下:氦氖激光器固定在基線上,在基線的一端由反射鏡將激光點射向被測物體,反射鏡固定在電動機(jī)軸上,電動機(jī)連續(xù)旋轉(zhuǎn),使激光點穩(wěn)定地對被測目標(biāo)掃描。由CCD(電荷耦合器件)攝像機(jī)接受反射光,采用圖像處理的方法檢測出激光點圖像,并根據(jù)位置坐標(biāo)及攝像機(jī)光學(xué)特點計算出激光反射角。利用三角測距原理即可算出反射點的位置。我們選用超聲波測距法,這樣會使成本降低。2.3超聲波傳感器2.3.1超聲波傳感器的原理及結(jié)構(gòu)超聲傳感器是一種將其他形式的能轉(zhuǎn)變?yōu)樗桀l率的超聲能或是把超聲能轉(zhuǎn)變?yōu)橥l率的其他形式的能的器件[19]。目前常用的超聲傳感器有兩大類,即電聲型與流體動力型。電聲型主要有:1.壓電傳感器;2.磁致伸縮傳感器;3.靜電傳感器。流體動力型中包括有氣體與液體兩種類型的哨笛。由于工作頻率與應(yīng)用目的不同,超聲傳感器的結(jié)構(gòu)形式是多種多樣的,并且名稱也有不同,例如在超聲檢測和診斷中習(xí)慣上都把超聲傳感器稱作探頭,而工業(yè)中采用的流體動力型傳感器稱為“哨”或“笛”。壓電傳感器屬于超聲傳感器中電聲型的一種。探頭由壓電晶片、楔塊、接頭等組成,是超聲檢測中最常用的實現(xiàn)電能和聲能相互轉(zhuǎn)換的一種傳感器件,是超聲波檢測裝置的重要組成部分。壓電材料分為晶體和壓電陶瓷兩類。屬于晶體的如石英、鈮酸鋰等,屬于壓電陶瓷的有鋯鈦酸鉛、鈦酸鋇等。其具有下列的特性:把這種材料置于電場之中,它就產(chǎn)生一定的應(yīng)變;相反,對這種材料施以外力,則由于產(chǎn)生了應(yīng)變就會在其內(nèi)部產(chǎn)生一定方向的電場。所以,只要對這種材料加以交變電場,它就會產(chǎn)生交變的應(yīng)變,從而產(chǎn)生超聲振動。因此,用這種材料可以制成超聲傳感器。傳感器的主要組成部分是壓電晶片。當(dāng)壓電晶片受發(fā)射電脈沖激勵后產(chǎn)生振動,即可發(fā)射聲脈沖,是逆壓電效應(yīng)。當(dāng)超聲波作用于晶片時,晶片受迫振動引起的形變可轉(zhuǎn)換成相應(yīng)的電信號,是正壓電效應(yīng)。前者用于超聲波的發(fā)射,后者即為超聲波的接收。超聲波傳感器一般采用雙壓電陶瓷晶片制成。這種超聲傳感器需要的壓電材料較少,價格低廉,且非常適用于氣體和液體介質(zhì)中。在壓電陶瓷上加有大小和方向不斷變化的交流電壓時,根據(jù)壓電效應(yīng),就會使壓電陶瓷晶片產(chǎn)生機(jī)械變形,這種機(jī)械變形的大小和方向在一定范圍內(nèi)是與外加電壓的大小和方向成正比的。也就是說,在壓電陶瓷晶片上加有頻率為f的交流電壓,它就會產(chǎn)生同頻率的機(jī)械振動,這種機(jī)械振動推動空氣等媒介,便會發(fā)出超聲波。如果在壓電陶瓷晶片上有超聲機(jī)械波作用,這將會使其產(chǎn)生機(jī)械變形,這種機(jī)械變形是與超聲機(jī)械波一致的,機(jī)械變形使壓電陶瓷晶片產(chǎn)生頻率與超聲機(jī)械波相同的電信號。雙壓電晶片由A、B兩部分構(gòu)成。當(dāng)在AB間施加交流電壓時,若A片的電場方向與極化方向相同,則下面的方向相反,因此,上下一伸一縮,形成超聲波振動。壓電陶瓷晶片有一個固定的諧振頻率,即中心頻率f。發(fā)射超聲波時,加在其上面的交變電壓的頻率要與它的固有諧振頻率一致。這樣,超聲傳感器才有較高的靈敏度。當(dāng)所用壓電材料不變時,改變壓電陶瓷晶片的幾何尺寸,就可非常方便的改變其固有諧振頻率。利用這一特性可制成各種頻率的超聲傳感器。超聲波傳感器的內(nèi)部結(jié)構(gòu)由壓電陶瓷晶片、錐形輻射喇叭、底座、引線、金屬殼及金屬網(wǎng)構(gòu)成,其中,壓電陶瓷晶片是傳感器的核心,錐形輻射喇叭使發(fā)射和接收超聲波能量集中,并使傳感器有一定的指向角,金屬殼可防止外界力量對壓電陶瓷晶片及錐形輻射喇叭的損壞。金屬網(wǎng)也是起保護(hù)作用的,但不影響發(fā)射與接收超聲波。2.4系統(tǒng)主要參數(shù)的確定2.4.1測距儀的工作頻率傳感器的工作頻率是測距系統(tǒng)的主要技術(shù)參數(shù),它直接影響超聲波的擴(kuò)散和吸收損失、障礙物反射損失、背景噪聲,并直接決定傳感器的尺寸。工作頻率的確定主要基于以下幾點考慮:(1)如果測距的能力要求很大,聲波傳播損失就相對增加,由于介質(zhì)對聲波的吸收與聲波頻率的平方成正比,為減小聲波的傳播損失,就必須降低工作頻率。(2)工作頻率越高,對相同尺寸的換能器來說,傳感器的方向性越尖銳,測量障礙物復(fù)雜表面越準(zhǔn),而且波長短,尺寸分辨率高,“細(xì)節(jié)”容易辨識清楚,因此從測量復(fù)雜障礙物表面和測量精度來看,工作頻率要求提高。(3)從傳感器設(shè)計角度看,工作頻率越低,傳感器尺寸就越大,制造和安裝就越困難。綜上所述,由于本測距儀最大測量量程不大,因而選擇測距儀工作頻率在40KHz。這樣傳感器方向性尖銳,且避開了噪聲,提高了信噪比;雖然傳播損失相對低頻有所增加,但不會給發(fā)射和接收帶來困難。2.4.2聲速聲速的精確程度線性的決定了測距系統(tǒng)的測量精度。傳播介質(zhì)中聲波的傳播速度隨溫度、雜質(zhì)含量和介質(zhì)壓力的變化而變化。聲速隨溫度變化公式為V=331.4+0.607T(mm/ms)式中[20],T是溫度。由于該測距系統(tǒng)用于室內(nèi)測量,且量程也不大,溫度可以看作定值。在常溫下,聲音在空氣中的傳播速度可依據(jù)上式計算出為340m/s。2.4.3發(fā)射脈沖寬度發(fā)射脈沖寬度決定了測距儀的測量盲區(qū),也影響測量精度,同時與信號的發(fā)射能量有關(guān)。根據(jù)資料,減小發(fā)射脈沖寬度,可以提高測量精度,減小測量盲區(qū),但同時也減小了發(fā)射能量,對接收回波不利。但是根據(jù)實際的經(jīng)驗,過寬的脈沖寬度會增加測量盲區(qū),對接收回波及比較電路都造成一定困難。在具體設(shè)計中,比較了24μs(1個40KHz脈沖方波),48μs(2個40KHz脈沖方波),240μs(10個40KHz脈沖方波),作為發(fā)射信號后的接收信號,最終選用48μs(2個40KHz脈沖方波)的發(fā)射脈沖寬度。此時,從接收回波信號幅度和測量盲區(qū)兩個方面來衡量比較適中。2.4.4測量盲區(qū)在以傳感器脈沖反射方式工作的情況下,電壓很高的發(fā)射電脈沖在激勵傳感器的同時也進(jìn)入接收部分。此時,在短時間內(nèi)放大器的放大倍數(shù)會降低,甚至沒有放大作用,這種現(xiàn)象稱為阻塞。不同的檢測儀阻塞程度不一樣。根據(jù)阻塞區(qū)內(nèi)的缺陷回波高度對缺陷進(jìn)行定量評價會使結(jié)果偏低,有時甚至不能發(fā)現(xiàn)障礙物,這是需要注意的。由于發(fā)射聲脈沖自身有一定的寬度,加上放大器有阻塞問題,在靠近發(fā)射脈沖一段時間范圍內(nèi),所要求發(fā)現(xiàn)的缺陷往往不能被發(fā)現(xiàn),這段距離,稱為盲區(qū)。具體分析如下:當(dāng)發(fā)射超聲波時,發(fā)射信號雖然只維持一個極短時間,但停止施加發(fā)射信號后,探頭上還存在一定余振(由于機(jī)械慣性作用)。因此,在一段較長時間內(nèi),加在接收放大器輸入端的發(fā)射信號幅值仍具一定幅值高度,可以達(dá)到限幅電路的限幅電平VM;另一方面,接收探頭上接收到的各種反射信號卻遠(yuǎn)比發(fā)射信號小,即使是離探頭較近的表面反射回來的信號,也達(dá)不到限幅電路的限幅電平。當(dāng)反射面離探頭愈來愈遠(yuǎn),接收和發(fā)射信號相隔時間愈來愈長,其幅值也愈來愈小。在超聲波檢測中,接收信號的衰減總是比發(fā)射信號余振衰減慢的多。為保證一定的信噪比,接收信號幅值需達(dá)到規(guī)定的閾值VM,亦即接收信號的幅值必須大于這一閾值才能使接受放大器有輸入信號。2.5系統(tǒng)設(shè)計方案:系統(tǒng)設(shè)計要求:(1)能夠連續(xù)測量,保存測量數(shù)據(jù),并用液晶屏1602顯示距離值;(2)測量范圍在0.1—5m;(3)能根據(jù)距離長短發(fā)出不同頻率的聲音,具有語音播報功能。根據(jù)系統(tǒng)設(shè)計要求,確定系統(tǒng)設(shè)計方案如下:圖2.1超聲波測距儀原理框圖系統(tǒng)設(shè)置有兩個工作模式,通過一個外部中斷開關(guān)選擇工作模式模式0:正常的測距工作模式模式1:遍歷顯示E2PROM中存儲的測距記錄信息3超聲波測距儀的硬件設(shè)計3.1硬件模塊選型3.1.1處理器選型(STC89C52)在這里,我才用的深圳宏晶科技生產(chǎn)的STC89C52RC單片機(jī)[21]。STC89C52單片機(jī)簡介:STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,512字節(jié)RAM,32位I/O口線,看門狗定時器,內(nèi)置4KBEEPROM,MAX810復(fù)位電路,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口。另外STC89X52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個中斷或硬件復(fù)位為止。最高運作頻率35Mhz,6T/12T可選。由于本系統(tǒng)是一個小的嵌入式系統(tǒng),對處理器性能方面要求不是很高;因此就得考慮系統(tǒng)的節(jié)能、設(shè)計簡單、性能穩(wěn)定等方面因素來選擇適合的SCM;在做嵌入式控制方面的處理器主要是單片機(jī)和ARM系列處理器,但對比兩個系列,ARM處理器雖然指令更多,資源更豐富,功能更強(qiáng);但是更耗能,操作更復(fù)雜,設(shè)計難度更大,在此系統(tǒng)中單片機(jī)就能滿足性能要求,且節(jié)能,設(shè)計簡單;故選擇單片機(jī)。在諸多的單片機(jī)中,我們由選擇哪款呢?這還的根據(jù)節(jié)能、設(shè)計簡單、性能滿足要求、可擴(kuò)展性強(qiáng)等原則進(jìn)行選型。在諸多單片機(jī)中,51單片機(jī)資源比較少,因此我們選擇資源更豐富的52單片機(jī);STC89C52和atmel89c52對比:STC89C52RC單片機(jī):8K字節(jié)程序存儲空間;512字節(jié)數(shù)據(jù)存儲空間;內(nèi)帶4K字節(jié)EEPROM存儲空間;可直接使用串口下載。AT89S52單片機(jī):8K字節(jié)程序存儲空間;256字節(jié)數(shù)據(jù)存儲空間;沒有內(nèi)帶EEPROM存儲空間;不能直接使用串口下載??梢奡TC89C52資源更豐富,可寬展性更強(qiáng),成本更低;故選擇STC89C52。3.1.2超聲波模塊選型(HC-SR04)現(xiàn)在市場上各種各樣的超聲波模塊很多,有專門的發(fā)射、接收模塊,有既能發(fā)射又能接收的,本設(shè)計是測距系統(tǒng),應(yīng)采用反射波的模塊,由于市場上已經(jīng)很便宜了,故沒有自己搭超聲模塊的必要。根據(jù)設(shè)計要求,在市場上采購能符合要求的模塊就行。這里采用的HC-SR04,本模塊價格便宜,性能穩(wěn)定,測度距離精確。能和國外的SRF05,SRF02等超聲波測距模塊相媲美。模塊高精度,盲區(qū)(2cm)近,能穩(wěn)定的測距[22]。1、產(chǎn)品特點:HC-SR04超聲波測距模塊可提供2cm-400cm的非接觸式距離感測功能,測距精度可達(dá)高到3mm;模塊包括超聲波發(fā)射器、接收器與控制電路。(1)采用IO觸發(fā)測距,給至少10us的高電平信號;(2)模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回;(3)有信號返回,通過IO輸出一高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間;測試距離=(高電平時間*聲速(340M/S))/2;(1)2、實物圖:圖3.1HC-SR04實物圖上圖接線:VCC供5v電源,GND為地線,TRIG觸發(fā)控制信號輸入,ECHO回響信號輸出線。3、電氣參數(shù):表3.1HR-SR04電氣參數(shù)表電氣參數(shù)HCSR04超聲波模塊工作電壓DC5V工作電流15mA工作頻率40Hz最遠(yuǎn)射程4m最近射程2m測量角度15度輸入觸發(fā)信號10uS的TTL脈沖輸出回響信號輸出TTL電平信號,與射程成比例4、超聲波時序圖:圖3.2超聲波時序以上時序圖表明你只需要提供一個10uS以脈沖觸發(fā)信號,該模塊內(nèi)部將發(fā)出8個40kHz周期電平并檢測回波一旦檢測到有回波信號則輸出回響信號的脈沖寬度與所測的距離成正比由此通過發(fā)射信號到收到的回響信號時間間隔可以計算得到距離。公式:us/58厘米或者us/148英寸;或是:距離高電平時間*聲(340M/S/2建議測量期為60ms以上以防止發(fā)射信號對回響信號的影響。注此模塊不宜帶連接若要帶電連先讓模塊的ND端先接否則會響模塊的正常工作。測距時被測體的面積不少于05平方米且平面盡量要求整否則影響測量的結(jié)果。3.1.3顯示模塊選型顯示模塊可選擇性比較大,可以是最原始的led燈組合指示顯示,可以是點陣,可以用簡單的LCD1602,12864等,在這里選擇微雪公司生產(chǎn)的LCD1602,因為它相比led顯示,顯示更加細(xì)膩,相比12864或更高級的LCD,更節(jié)能,操作更簡單。1602特性:1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字),+5V電壓,對比度可調(diào),內(nèi)含復(fù)位電路提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能,有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM,內(nèi)建有192個5X7點陣的字型的字符發(fā)生器CGROM,8個可由用戶自定義的5X7的字符發(fā)生器CGRAM。3.1.4時鐘模塊選型此模塊的作用是在存儲距離記錄時,要同時記錄發(fā)生的時間,當(dāng)查看測距記錄時才能知道其發(fā)生的時間,這個時間只能從時鐘模塊獲得實時系統(tǒng)時鐘;采用DALLAS公司推出DS1302時鐘芯片,它使用很簡單,且能滿足要求,且有備用電池,主電源掉電后依然能正常工作。確保系統(tǒng)時間的正確性。DS1302的結(jié)構(gòu)及工作原理:DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進(jìn)行計時,具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個31×8的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后備電源雙電源引腳,同時提供了對后備電源進(jìn)行涓細(xì)電流充電的能力。(1)引腳功能及結(jié)構(gòu)DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進(jìn)行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc>2.0V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說明。SCLK為時鐘輸入端。下圖為DS1302的引腳功能圖:圖3.3DS1302管腳圖(2)數(shù)據(jù)輸入輸出(i/O)在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。3.1.5E2PROM模塊選型由于該系統(tǒng)一般只存儲最近一段時間的測距記錄,數(shù)據(jù)量不是很大,所有,利用STC89C52RC自帶的4KE2PROM[14]就行了,相比外接的E2PROM,STC89C52RC自帶的E2PROM操作跟簡單,訪問更快,對于性能本身不是很高的STC89C52RC來說,訪問速度顯得很重要。而且簡化了設(shè)計。3.1.6語音模塊選型(蜂鳴器)這里采用啟盛電子生產(chǎn)的QSI-3610蜂鳴器,用蜂鳴器作為語音模塊,能完成語音提示報警功能,而且對資源占用少,這樣的話SCM的工作效率就會更高。蜂鳴器驅(qū)動方式:由于自激蜂鳴器是直流電壓驅(qū)動的,不需要利用交流信號進(jìn)行驅(qū)動,只需對驅(qū)動口輸出驅(qū)動電平并通過三極管放大驅(qū)動電流就能使蜂鳴器發(fā)出聲音,很簡單;單片機(jī)驅(qū)動他激蜂鳴器的方式有兩種:一種是PWM輸出口直接驅(qū)動,另一種是利用I/O定時翻轉(zhuǎn)電平產(chǎn)生驅(qū)動波形對蜂鳴器進(jìn)行驅(qū)動。PWM輸出口直接驅(qū)動是利用PWM輸出口本身可以輸出一定的方波來直接驅(qū)動蜂鳴器。在單片機(jī)的軟件設(shè)置中有幾個系統(tǒng)寄存器是用來設(shè)置PWM口的輸出的,可以設(shè)置占空比、周期等等,通過設(shè)置這些寄存器產(chǎn)生符合蜂鳴器要求的頻率的波形之后,只要打開PWM輸出,PWM輸出口就能輸出該頻率的方波,這個時候利用這個波形就可以驅(qū)動蜂鳴器了。比如頻率為2000Hz的蜂鳴器的驅(qū)動,可以知道周期為500μs,這樣只需要把PWM的周期設(shè)置為500μs,占空比電平設(shè)置為250μs,就能產(chǎn)生一個頻率為2000Hz的方波,通過這個方波再利用三極管就可以去驅(qū)動這個蜂鳴器了。而利用I/O定時翻轉(zhuǎn)電平來產(chǎn)生驅(qū)動波形的方式會比較麻煩一點,必須利用定時器來做定時,通過定時翻轉(zhuǎn)電平產(chǎn)生符合蜂鳴器要求的頻率的波形,這個波形就可以用來驅(qū)動蜂鳴器了。比如為2500Hz的蜂鳴器的驅(qū)動,可以知道周期為400μs,這樣只需要驅(qū)動蜂鳴器的I/O口每200μs翻轉(zhuǎn)一次電平就可以產(chǎn)生一個頻率為2500Hz,占空比為1/2duty的方波,再通過三極管放大就可以驅(qū)動這個蜂鳴器了。3.2系統(tǒng)電路設(shè)計單片機(jī)采用STC89C52RC。采用12MHz高精度的晶振,以獲得較穩(wěn)定的時鐘頻率,減少測量誤差。單片機(jī)用P2.2端口輸出超聲波換能器所需的40KHz方波信號,用P2.1端口監(jiān)聽返回的回波信號。P0口用來作為顯示器的數(shù)據(jù)輸出端口;P2.0端口用來連接蜂鳴器;P1.0,P1.1,P1.2分別為實時時鐘芯片DS1302的SCLK、I/O、RST管腳接口。3.2.1超聲波模塊電路設(shè)計圖3.4超聲模塊電路圖Trig為模塊的信號發(fā)射端,Echo為回波信號端;當(dāng)Trig收到一個持續(xù)1us的高電平時,模塊自動發(fā)射超聲波信號;當(dāng)模塊接收到回波信號時,Echo被置高電平,且持續(xù)時間就是從超聲波發(fā)射到接收到回波的時間,處理器可根據(jù)高電平時間直接獲得測距用的時間。3.2.2時鐘模塊電路設(shè)計圖3.5DS1302模塊電路圖Y2是DS1302[24]的時鐘振蕩器,Battery是備用電源,當(dāng)VCC電壓低于Battery電壓時,DS1302將自動轉(zhuǎn)換成由備用電源供電,RST是復(fù)位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進(jìn)行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc>2.0V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),SCLK為時鐘輸入端。3.2.3顯示模塊電路設(shè)計圖3.6顯示模塊電路圖V0為液晶顯示器LCD1602[25]對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度)。RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。RW為讀寫信號線,高電平(1)時進(jìn)行讀操作,低電平(0)時進(jìn)行寫操作。E(或EN)端為使能(enable)端。D0~D7為8位雙向數(shù)據(jù)端。3.2.4語音模塊電路設(shè)計圖3.7語音模塊電路圖NPN三極管8050的基極連接在單片機(jī)的P2.0腳上,當(dāng)P2.0為高電平時,三極管導(dǎo)通,Beep蜂鳴器通電,發(fā)出報警聲音,當(dāng)P2.0置低電平時,三極管關(guān)斷,蜂鳴器不響。三極管在這里起到放大作用。3.2.5電源電路設(shè)計圖3.8電源電路圖單片機(jī)電源(220v轉(zhuǎn)5v)設(shè)計電源電路采用LM7805集成穩(wěn)壓器作為穩(wěn)壓器件,用典型接法,220V電源整流濾波后送入LM7805穩(wěn)壓,在輸出端接一個470U和0.1U電容進(jìn)一步濾除紋波,得到5V穩(wěn)壓電源。3.2.6系統(tǒng)電路設(shè)計總圖圖3.9系統(tǒng)電路總原理圖P3.0為外部中斷,外接開關(guān)S3,當(dāng)S3切換時,能完成工作模式的切換;當(dāng)系統(tǒng)上電正常工作時,LED燈會指示工作狀態(tài),P0口外接排阻。4超聲波測距儀的軟件設(shè)計超聲波測距器的軟件設(shè)計主程序由模式0和模式1兩部分組成。模式0部分由超聲波發(fā)射子程序、定時器子程序、計算距離子程序、顯示子程序、報警子程序、實時時鐘子程序和存儲測距記錄等子程序組成;模式1部分循環(huán)顯示最近一段時間的測距記錄。下面對超聲波測距器的算法及本系統(tǒng)的各個部分程序逐一作介紹。4.1超聲波測距器的算法設(shè)計dd圖4.1超聲測距示意圖圖示意了超聲波測距的原理,即超聲波發(fā)生器在某一時刻發(fā)出一個超聲波信號,當(dāng)這個超聲波遇到被測物體后反射回來,就被超聲波接收器所接收到。這樣只要計算出從發(fā)出超聲波信號到接收到返回信號所用的時間,就可算出超聲波發(fā)生器與反射物體的距離。距離的計算公式為:d=(v*t)/2;(2)其中d為被測物與測距器的距離,v為聲速。在使用時,如果溫度變化不大,則可以認(rèn)為聲速是基本不變的。如果測距精度要求很高,則應(yīng)通過溫度補(bǔ)償?shù)姆椒右孕U?。聲速確定后,只要測得超聲波往返的時間t,即可求得距離。4.2程序結(jié)構(gòu)圖系統(tǒng)的程序結(jié)構(gòu)圖如下:圖4.2程序結(jié)構(gòu)圖4.3主程序主程序首先是對系統(tǒng)環(huán)境初始化,包括設(shè)置定時器T0工作模式為16位定時器模式,開啟外部中斷0,初始化好時鐘芯片DS1302和LCD1602,然后進(jìn)入循環(huán)體。主程序流程圖如下圖4.3主程序流程圖4.4外部中斷子程序當(dāng)模式切換開關(guān)按下時,外部中斷0發(fā)生時,系統(tǒng)會發(fā)生工作的切換,外部中斷子程序流程圖如下:圖4.4外部中斷流程圖4.5模式0子程序模式0負(fù)責(zé)正常的測距和相應(yīng)的功能,當(dāng)系統(tǒng)工作在模式0時,程序是一個小的死循環(huán)程序,先調(diào)用測距子程序->調(diào)用顯示子程序->調(diào)用報警子程序->調(diào)用存儲子程序–>返回循環(huán)首部。4.5.1測距子程序測距子程序是工作在模式0下面的,先開啟超聲波模塊,把P2.2端口置高電平,讓其自動發(fā)送40KHz的超聲波信號,延時,關(guān)閉發(fā)射,等待從P2.1返回的回波信號,當(dāng)回波信號到達(dá)時,開啟定時器0,待返回信號結(jié)束,關(guān)閉定時器0,結(jié)束計時,根據(jù)定時器0里記錄的時間和測距原理的公式,計算出距離S。其流程圖如下:圖4.5測距流程圖4.5.2顯示子程序1602的數(shù)據(jù)端口并行連接的是SCM的P0口,先設(shè)置好LCD的環(huán)境參數(shù)和準(zhǔn)備好要寫入的數(shù)據(jù)數(shù)組,因為一次只能寫入一個字符;循環(huán)把數(shù)組里準(zhǔn)備好的數(shù)據(jù)寫入1602顯示子程序的流程圖如下:圖4.6顯示子程序流程圖4.5.3語音模塊子程序蜂鳴器的正端連接到SCM的P2.0端口,當(dāng)SCM給P2.0端口以不同的頻率置高低電平時,蜂鳴器會以不同的頻率發(fā)出不同的聲音報警報警子程序流程圖如下:圖4.7語音子程序流程圖4.5.4存儲子程序E2PROM用的是STC89C52RC自帶的E2PROM,STC89C52RC已經(jīng)給E2PROM分配好寄存器,可通過訪問寄存器直接對E2PROM進(jìn)行讀寫操作存儲子程序流程圖如下:圖4.8存儲子程序流程圖4.6模式1子程序模式1的工作相對比較簡單,只負(fù)責(zé)遍歷顯示存儲在E2PROM里面的測距記錄,完了以后回到模式0。模式1子程序流程圖如下:圖4.9模式1程序流程圖結(jié)束語目前超聲波測距已得到廣泛應(yīng)用,國內(nèi)一般使用專用集成電路根據(jù)超聲波測距原理設(shè)計各種測距儀器,但是專用集成電路的成本較高、功能單一。而以單片機(jī)為核心的測距儀器可以實現(xiàn)預(yù)置、多端口檢測、顯示、報警等多種功能,并且成本低、精度高、操作簡單、工作穩(wěn)定可靠。本文簡要介紹了利用51系列單片機(jī)實現(xiàn)超聲波測距的原理以及實現(xiàn)的方法。單片機(jī)其卓越的性能,本設(shè)計中得到了很好的體現(xiàn),尤其在檢測,控制領(lǐng)域中,具有以下特點:(1)小巧靈活,成本低,易于產(chǎn)品化,它能方便地組裝成各種智能測試,控制設(shè)備及各種智能儀器表。(2)可靠性好,適應(yīng)范圍廣,單片機(jī)芯片本身是按工業(yè)測控環(huán)境要求設(shè)計的,能適應(yīng)各種惡劣的環(huán)境,這是其它原件無法比擬的。(3)易擴(kuò)展,很容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng),控制功能強(qiáng)。單片機(jī)的邏輯控制功能很強(qiáng),指令系統(tǒng)有各種控制功能所用的指令。(4)可以很方便地實現(xiàn)多機(jī)制分布式控制。在一個學(xué)期的設(shè)計和學(xué)習(xí)當(dāng)中,我逐步了解了整個設(shè)計內(nèi)容和過程,并且學(xué)到了很多新的東西。通過對實際工程的了解、設(shè)計不但使我加深了對理論知識的理解,對專業(yè)知識的全面認(rèn)識,更重要的是將理論知識應(yīng)用到了實踐中,應(yīng)用到了實際工程中,真正做到了學(xué)以致用、理論與實踐相結(jié)合。同時,通過對設(shè)計中困難的克服,也鍛煉了我的思考問題、解決問題的能力以及自學(xué)能力,在這次設(shè)計中我也對本專業(yè)前沿的一些知識和發(fā)展方向有了了解,開闊了我的眼界、擴(kuò)大了我的知識面,這些都將為我以后的工作奠定良好的基礎(chǔ)。在這次論文設(shè)計過程中,我學(xué)會了怎樣去根據(jù)課題的要求去設(shè)計電路和調(diào)試電路。動手能力得到很大的提高。從中我發(fā)現(xiàn)自己并不能很好的熟練去使用我所學(xué)到的知識。在以后工作和學(xué)習(xí)中我要加強(qiáng)對使用電路的設(shè)計和選用能力。附錄程序清單:/*************************頭文件header.h************************/#ifndefHEADER_H#defineHEADER_H#include"REG52.h" #include<intrins.h>#defineucharunsignedchar#defineuintunsignedint//管腳定義#defineSPKP2^0;#defineTXP2^1#defineRXP2^2 #defineLCM_EP2^3 //定義LCD引腳#defineLCM_RWP2^4#defineLCM_RSP2.5#defineLCM_DataP0#defineBusy0x80//用于檢測LCM狀態(tài)字中的Busy標(biāo)識#defineT_CLK P1^0 /*實時時鐘時鐘線引腳*/#defineT_IO P1^1 /*實時時鐘數(shù)據(jù)線引腳*/#defineT_RST P1^2 /*實時時鐘復(fù)位線引腳*///全局變量定義uintBlockSize=512; //flash每個扇區(qū)的大小uintADDR=0x2000; //flash扇區(qū)起始地址uintBlockOffset=0;ucharBlockFlag=0; //扇區(qū)標(biāo)示,指定對那個扇區(qū)(1、2、3、4)進(jìn)行操作,默認(rèn)為第0扇區(qū)uintaddr=0;//ADDR+BlockFlag*BlockSize; uinttime=0;uintdistance=0;bit flag=0;bitmodel=1;unsignedcharRange[]="==RangeFinder==";//LCD1602顯示格式unsignedcharASCII[13]="0123475689.-M";unsignedchartable[]="Distance:000.0cm";unsignedchartable1[]="!!!Outofrange";unsignedcharErr[]="Error!!";unsignedchardisbuff[4]={0,0,0,0}; //用于裝距離的個十百千位(mm)unsignedcharinitTimeBuf[8]={00,00,13,28,05,02,12};//初始化時鐘芯片的初始時間//flashDS1302.cvoidflashClear(unsignedintaddr);voidflashWrite(unsignedintaddr,unsignedchardat);unsignedcharflashRead(unsignedintaddr);voidflashClose();voidwriteByte_DS1302(unsignedchard);unsignedcharreadByte_DS1302(void);unsignedcharReadData_DS1302(unsignedcharucAddr);voidWriteData_DS1302(unsignedcharucAddr,unsignedcharucDa);voidsetTime_DS1302(unsignedchar*pClock);voidWriteTime_DS1302(unsignedchar*pSecDa);voidReadTime_DS1302(unsignedchar*pSecDa);voidStart_DS1302(void);voidwitedata_flash(unsignedchardistance);voidLCDdisplay(void);//chaoshen1602.cvoidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData);voidDisplayListChar(unsignedcharX,unsignedcharY,unsignedchar*DData);unsignedintCount_display(void);voidbeep(unsignedintdistance);voidtimerInit(void);voidTimer_Count(void);voidLCMInit(void);voidDelay_Ms(unsignedintms);voidStartModule(void);#endif/***********************chaosheng1602.c******************/#include"header.h"/********************//寫數(shù)據(jù)***************************/voidWriteDataLCM(unsignedcharWDLCM){ LCM_Data=WDLCM; LCM_RS=1; LCM_RW=0; LCM_E=0;//若晶振速度太高可以在這后加小的延時 LCM_E=0;//延時 LCM_E=1;}/*******************//寫指令****************************/voidWriteCommandLCM(unsignedcharWCLCM){ LCM_Data=WCLCM; LCM_RS=0; LCM_RW=0; LCM_E=0; LCM_E=0; LCM_E=1; }/*********************//LCM初始化**************************/voidLCMInit(void){ LCM_Data=0; WriteCommandLCM(0x38,0);//三次顯示模式設(shè)置,不檢測忙信號 Delay_Ms(1); WriteCommandLCM(0x38,0); Delay_Ms(1); WriteCommandLCM(0x38,0); Delay_Ms(1); WriteCommandLCM(0x38,1);//顯示模式設(shè)置,開始要求每次檢測忙信號 WriteCommandLCM(0x08,1);//關(guān)閉顯示 WriteCommandLCM(0x01,1);//顯示清屏 WriteCommandLCM(0x06,1);//顯示光標(biāo)移動設(shè)置 WriteCommandLCM(0x0c,1);//顯示開及光標(biāo)設(shè)置}/******************//按指定位置顯示一個字符*******************/voidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData){ Y&=0x1; X&=0xF; //限制X不能大于15,Y不能大于1 if(Y){ X|=0x40;//當(dāng)要顯示第二行時地址碼+0x40; } X|=0x80; //算出指令碼 WriteCommandLCM(X,1);//發(fā)命令字 WriteDataLCM(DData);//發(fā)數(shù)據(jù)}/*****************//指定位置顯示一串字符**********************/voidDisplayListChar(unsignedcharX,unsignedcharY,unsignedchar*DData){ unsignedcharListLength; ListLength=0; Y&=0x1; X&=0xF;//限制X不能大于15,Y不能大于1 while(DData[ListLength]>0x19)//若到達(dá)字串尾則退出 { if(X<=0xF)//X坐標(biāo)應(yīng)小于0xF { DisplayOneChar(X,Y,DData[ListLength]);//顯示單個字符 ListLength++; X++; } }}/*********************/5ms延時***********************/voidDelay_Ms(unsignedintms){ unsignedintTempCyc=ms*1000; while(TempCyc--);}/*******************//計算距離并顯示*********************/unsignedintCount_display(void){ unsignedlongS=0; StartModle(); //啟動超聲波模塊,延時,關(guān)閉發(fā)射 while(RX==0); //等待返回信號 Timer_Count(); //計時 if(flag==1) //定時器T0溢出中斷時,出錯返回 { TH0=0; TL0=0; flag=0; DisplayListChar(0,0,Err); return-1; } time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.7)/10+10;//算出來是MM//聲音的傳播速度是340米每秒超聲波發(fā)送到返回這個過程相當(dāng)于走了兩趟,//所以要除于2即340/2=1701us所走的路程是0.00017米51單片機(jī)采用12M晶振的時//定時器每加1個數(shù)用的時間是1us距離=(time*0.00017)單位是M化成毫米之后就是//(time*1.7)/10 if((S>=5000)||flag==1)//超出測量范圍 { flag=0; DisplayListChar(0,1,table1); } else { disbuff[0]=S%10; disbuff[1]=S/10%10; disbuff[2]=S/100%10; disbuff[3]=S/1000; DisplayListChar(0,1,table); DisplayOneChar(9,1,ASCII[disbuff[3]]); DisplayOneChar(10,1,ASCII[disbuff[2]]); DisplayOneChar(11,1,ASCII[disbuff[1]]); DisplayOneChar(12,1,ASCII[10]); DisplayOneChar(13,1,ASCII[disbuff[0]]); } returnS/10; //轉(zhuǎn)化成cm}/********************//啟動超聲模塊**********************/voidStartModle() { TX=1; //啟動模塊 _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); TX=0;}/*******************//距離小于100cm時報警*******************/voidbeep(unsignedintdistance) //單位為cm{ unsignedinttimes;//報警響鈴次數(shù)根據(jù)times值不同確保每次響鈴的總時間相同 unsignedintrate; //蜂鳴器頻率單位ms if(distance>=100)//cm return; if(distance>50&&distance<100){ rate=50; //ms times=10; //響10次 } elseif(distance<50){ rate=10; //ms times=50; //響50次 } while(times--){ SPK=!SPK; Delay_Ms(rate); //距離不同延時不同 } SPK=0; //關(guān)閉蜂鳴器}/*********************//定時器初始化*************************/voidtimerInit(void){ TMOD=0x01; //設(shè)T0為方式1,GATE=1;工作在定時器模式EA=1; //開啟總中斷 ET0=1; //允許T0中斷 EX0=1; //開啟外部中斷0 TR0=0; //計數(shù)器關(guān)閉TH0
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 儲能系統(tǒng)采購合同范本
- 廣告物料供貨合同范本
- 合伙買貨車合同范本
- 中專幼師自我鑒定
- 植物生產(chǎn)與環(huán)境練習(xí)題與參考答案
- 經(jīng)絡(luò)腧穴學(xué)模擬習(xí)題(含參考答案)
- 包租協(xié)議合同范本模板
- 醫(yī)療物資購銷合同范本
- 臥室空調(diào)泵采購合同范例
- 廠區(qū)門禁安裝合同范本
- 2019譯林版高中英語全七冊單詞總表
- T-BJCC 1003-2024 首店、首發(fā)活動、首發(fā)中心界定標(biāo)準(zhǔn)
- 園區(qū)宣傳方案
- 銀行承兌匯票和商業(yè)承兌匯票課件
- 特朗普貿(mào)易戰(zhàn)的基本邏輯、本質(zhì)及其應(yīng)對
- 經(jīng)口鼻吸痰法護(hù)理課件
- 《園林生態(tài)學(xué)》課件
- 初中化學(xué)實驗報告單(上)
- 貨物質(zhì)量與安全控制方案
- 高中物理多普勒效應(yīng)練習(xí)題
- 交通事故授權(quán)委托書樣本(通用)
評論
0/150
提交評論