版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
PAGEPAGEIII摘要本文是利用超聲波測距的原理而設(shè)計的一種液位測距系統(tǒng)。該系統(tǒng)采用STC12C5A08S2單片機(jī)為核心控制器,并為超生測距模塊提供觸發(fā)控制信號,在發(fā)射超聲波的同時,啟動單片機(jī)的內(nèi)部定時器開始計時,超聲波在空氣中傳播遇到障礙物后反射回波,超聲波接收電路檢測到回波信號時停止計時,則根據(jù)公式:S=Vt/2即可計算出液位距離。文中設(shè)計的系統(tǒng)著重解決了超聲波測距的時間計算和溫度補(bǔ)償問題。其中通過溫度傳感器將溫度值采集到單片機(jī)中,經(jīng)過一定的數(shù)值修正即可得到當(dāng)時溫度值下的超聲波傳播速度V。本文采用了硬件和軟件相結(jié)合的設(shè)計方法,在軟件方面,采用了匯編語言進(jìn)行程序編寫。在數(shù)據(jù)處理上充分利用匯編語言的查表優(yōu)勢,建立了速度修正值表和數(shù)碼管顯示值表,可以便捷、明了地進(jìn)行數(shù)據(jù)處理和顯示。關(guān)鍵詞:超聲波測距STC12C5A08S2溫度補(bǔ)償液位測距系統(tǒng)TitleDesignofliquidlevelbasedonultrasonicdistancemeasurementsystemAbstractThisarticledesignsaliquidlevelmeasurementsystemwhichisbasedontheprincipleofultrasonicdistancemeasurement.ThesystemtakesSTC12C5A08S2asthecoreofthesystemcontroller.TheSCMprovidescontrolsignalsforultrasonicdistancemeasurementmodules,andstartsthemonolithicintegratedcircuitinternaltimertoworkwhileemittingultrasonic.Ultrasonicreflectionechoafterthecommunicationobstaclesintheair,andtheSCMstopstimingwhentheechosignalisdetectedbytheultrasonicreceiver.Accordingtotheformula:S=Vt/2,theliquidleveldistanceiscalculated.Thesystemisdesignedtofocusonthetimeandtemperaturecompensationofultrasonicdistancemeasurement.ThetemperaturevalueiscollectedintheSCMthroughthetemperaturesensor,undergoingacertainnumericalcorrectiontogettheultrasonicwavepropagationvelocityunderthetemperature.Thisarticleusesacombinationofhardwareandsoftwaredesign.Insoftware,weuseassemblylanguagetoprogram.FulluseofAssemblylanguagereferencetableadvantagesindataprocessing,weestablishedthespeedcorrectiontableandthedigitaldisplayvaluestablewhichcanbeconvenientandclearfordataprocessinganddisplay.Keywords:Ultrasonicdistance-measuring;STC12C5A08S2;Temperaturecompensation;Liquidlevelmeasurementsystem目錄1引言 11.1測距在工業(yè)方面的應(yīng)用 11.2現(xiàn)有的測距方法及其優(yōu)缺點 11.3超聲波測距的原理及優(yōu)點 21.4課題研究的意義 22總體方案論證 22.1系統(tǒng)方案簡化 32.2系統(tǒng)軟件設(shè)計說明 43系統(tǒng)硬件電路設(shè)計 43.1HC—SR04超聲波測距模塊簡介 43.2單片機(jī)的選型(STC12C5A08S2) 63.3顯示電路的設(shè)計 93.4溫度傳感器的選型 104系統(tǒng)軟件設(shè)計 114.1主程序設(shè)計 124.2子程序設(shè)計 134.3數(shù)碼管顯示程序 185系統(tǒng)調(diào)試與分析 19結(jié)論 21致謝 22參考文獻(xiàn) 23附錄A匯編程序清單 24圖一系統(tǒng)完整電氣原理圖 26PAGEPAGE281引言1.1測距在工業(yè)方面的應(yīng)用在現(xiàn)代工業(yè)現(xiàn)場,測距技術(shù)的應(yīng)用可以說是無處不在。在水利水電、污水處理領(lǐng)域,利用測距技術(shù)可對水面高度實現(xiàn)實時監(jiān)測。在冶金、物料液位、管道等不宜直接接觸的場合,非接觸式測量技術(shù)發(fā)揮了重要作用。激光測距技術(shù)作為非接觸式測量技術(shù)的一種,可以實現(xiàn)對工業(yè)生產(chǎn)線上的物料傳送定位、電梯的運(yùn)行監(jiān)測、移動機(jī)器人的測距定位等。在車載導(dǎo)航、石油、化工等領(lǐng)域,超聲波測距技術(shù)都得到了廣泛的應(yīng)用。1.2現(xiàn)有的測距方法及其優(yōu)缺點最早的測距技術(shù)大多是基于機(jī)械傳動工作原理的測距,隨著工業(yè)控制的需求,慢慢過渡到機(jī)電一體化式測距,而隨著系統(tǒng)集成性的需要正朝著智能式測距發(fā)展。其中作為機(jī)械式測距技術(shù)的代表,機(jī)械鋼帶式液位計優(yōu)點是結(jié)構(gòu)簡單、價格低廉,但是機(jī)械傳動部件較多,安裝、維護(hù)比較困難,且只限于測液位。非接觸式測距技術(shù)因其獨特的優(yōu)勢已經(jīng)廣泛應(yīng)用于工業(yè)現(xiàn)場控制?,F(xiàn)在典型的非接觸測距方法有雷達(dá)探測、激光探測、CCD探測和超聲波測距等方法。其中激光具有穿透力強(qiáng)、強(qiáng)度高等特點適合在惡劣天氣如大霧天或遠(yuǎn)距離測距系統(tǒng)中使用,成本較高。而CCD測距不需要信號發(fā)射器,主要利用光電耦合器將光信號轉(zhuǎn)化為電信號,所得模擬信號經(jīng)A/D轉(zhuǎn)換電路后轉(zhuǎn)化為便于處理的數(shù)字信號。全過程需要采集大量的信息,計算量大。相比之下,超聲波測距因其獨特的優(yōu)勢適合短距離的測距系統(tǒng),特別是在工業(yè)現(xiàn)場不易人們直接接觸的場合發(fā)揮了很大的作用。超聲波主要應(yīng)用于車輛導(dǎo)航、物料定位、建筑工地以及空氣中和水下目標(biāo)的探測、定位等場合。從上世紀(jì)八十年代開始,國外就開始利用微電子技術(shù)和計算機(jī)等高科技成果,帶動液位測量技術(shù)的發(fā)展。就目前為止,工業(yè)中運(yùn)用的液位測量方式就有幾十種,比如常見的有壓電式、應(yīng)變式、電容式等。這些方法同早期的機(jī)械測量相比,運(yùn)用比較簡單,但大都采用了如壓力值、電氣量等中間量來反映液位值,增加了測量誤差。而超聲波測距卻可實現(xiàn)精確測距,改善了系統(tǒng)的精度。因此,無論是工業(yè)現(xiàn)場控制,還是人們的日常生活中,超聲波的應(yīng)用已經(jīng)很成熟。1.3超聲波測距的原理及優(yōu)點超聲波測距模塊主要有超聲波發(fā)射和接受兩部分,給定的觸發(fā)信號經(jīng)過放大電路放大后產(chǎn)生超聲波,并開啟定時/計數(shù)器計時;當(dāng)超聲波在傳播途中遇到障礙物后反射回波,測距模塊接收電路檢測到反射回波時就停止計時。通過查表獲取聲速在當(dāng)時溫度的修正值V,從定時/計數(shù)器中獲取傳播時間t,即可根據(jù)公式S=Vt/2計算出測試點到障礙物之間的距離S。由于超聲波在空氣中的方向感很強(qiáng),探測距離很遠(yuǎn),基于超生波的測距被廣泛應(yīng)用,而且其數(shù)據(jù)處理比較簡單,利用軟件編程即可實現(xiàn)計算機(jī)實時控制,通過溫度補(bǔ)償更是可以大大提高測量精度,基本上可以滿足工業(yè)現(xiàn)場控制要求。超聲波液位測量采用高速高性能的單片機(jī)為微控制器不僅能夠?qū)崿F(xiàn)定點連續(xù)測量液位,還可以提供需要的信號進(jìn)行遠(yuǎn)距離控制。與價格昂貴、系統(tǒng)復(fù)雜的激光測量系統(tǒng)相比,超聲波測距成本較低、系統(tǒng)可靠性高。應(yīng)用于工業(yè)現(xiàn)場的超聲波測距系統(tǒng)大多沒有復(fù)雜的傳動、運(yùn)動部件,安裝、維護(hù)時比較方便,尤其是在氣體或液體中測量時超聲波測距系統(tǒng)性能表現(xiàn)出較大的優(yōu)越性。比如在工業(yè)或生活污水處理現(xiàn)場中,超聲波測距技術(shù)就得到了很好的應(yīng)用。1.4課題研究的意義在石油、化工、渠道、污水處理等領(lǐng)域的過程控制當(dāng)中,經(jīng)常要對管道、倉儲進(jìn)行液位的實時監(jiān)測。尤其是在石油、化工和污水處理等領(lǐng)域,工業(yè)現(xiàn)場的環(huán)境很惡劣,若采用接觸式測量,則各種腐蝕性液體、氣體等會損壞傳感器探頭而影響測量精度和可靠性。在這種環(huán)境下,非接觸式測量成為人們的首選,而超聲波測距因為系統(tǒng)可靠性高、不易受環(huán)境因素(如磁場、腐蝕性氣體或液體等)影響,能夠滿足一般工業(yè)精度要求,得到了很廣泛的應(yīng)用和發(fā)展。隨著技術(shù)的發(fā)展和需要,新型的、智能化超聲波測距逐漸得到應(yīng)用,因此,通過超聲波液位測距系統(tǒng)設(shè)計,掌握超聲波測距原理的應(yīng)用及液位測距系統(tǒng)硬件電路的設(shè)計,通過編程實現(xiàn)液位測距功能,可以讓我們更加熟悉一個系統(tǒng)設(shè)計的流程及應(yīng)具備的基本知識,提高我們的實戰(zhàn)能力和經(jīng)驗。2總體方案論證文中利用超聲波測距的原理設(shè)計了一套液位測距系統(tǒng)。利用超聲波在空氣中傳播遇到障礙物后反射回波,并通過回波接收電路檢測回波信號,用t表示超聲波從發(fā)出到檢測到回波信號的時間,V為超聲波在空氣中的傳播速度,則可計算出液位的距離S=Vt/2。采用硬件設(shè)計和軟件設(shè)計相結(jié)合的方式,選用單片機(jī)為微控制器,超聲波發(fā)射和接收器分別通過相應(yīng)電路與單片機(jī)相連,這樣就可以通過單片機(jī)來控制超聲波的發(fā)射和接收,并利用單片機(jī)的內(nèi)部定時器/計數(shù)器計算超聲波的傳輸時間t。對于超聲波的傳播速度V的溫度補(bǔ)償問題,可以通過溫度傳感器與單片機(jī)連接,實時測得溫度值并通過公式V=331.5+0.607T來修正速度V[13]。文中設(shè)計系統(tǒng)的控制框圖(如圖2.1)。圖2.1系統(tǒng)控制結(jié)構(gòu)框圖2.1系統(tǒng)方案簡化為了系統(tǒng)設(shè)計的簡單化,在超聲波發(fā)射和接受這塊進(jìn)行了簡化,經(jīng)過比較和文獻(xiàn)資料的查閱,選用HC—SR04超聲波測距集成模塊代替復(fù)雜的超聲波發(fā)射、接收和檢波電路,這樣系統(tǒng)控制就簡單的多。只需要單片機(jī)提供一定的電平觸發(fā)信號,HC—SR04模塊就會自動發(fā)射、接收和檢測回波信號。簡化后的系統(tǒng)控制框圖(如圖2.2)。圖2.2系統(tǒng)控制結(jié)構(gòu)簡化框圖2.2系統(tǒng)軟件設(shè)計說明系統(tǒng)的軟件部分是使用keil軟件編程,程序采用匯編語言編寫。充分利用匯編語言查表的優(yōu)勢,在程序中建立了超聲波傳播速度修正值表和4位共陰數(shù)碼管顯示值表,從而大大簡化了數(shù)據(jù)處理和顯示。單片機(jī)通過P1.3、和P1.4口控制超聲波測距模塊的觸發(fā)和接收回波信號。對于超聲波傳播時間t的計算,利用單片機(jī)的內(nèi)部定時器/計數(shù)器通過軟件編程來實現(xiàn)。在發(fā)射超聲波的同時啟動定時器T0,當(dāng)接收到回波信號時關(guān)閉T0停止計數(shù)。事先設(shè)置單片機(jī)工作頻率為11.0592MHz,則計數(shù)一次代表1US。最終的速度計算結(jié)果通過P0口輸給數(shù)碼管顯示部分。數(shù)碼管的選通與控制是通過P2口經(jīng)74HC138譯碼器來實現(xiàn)。3系統(tǒng)硬件電路設(shè)計該超聲波液位測距系統(tǒng)硬件電路主要有四大部分組成,主要是HC—SR04超聲波測距集成模塊、溫度傳感器、單片機(jī)和數(shù)碼管顯示部分。本章將分別從這四大部分進(jìn)行設(shè)計和說明,包括器件的選型和模塊的電氣連接等。3.1HC—SR04超聲波測距模塊簡介HC—SR04超聲波測距模塊主要包括超聲波發(fā)射器、超生波接收器和相關(guān)的控制電路。該模塊主要是利用超聲波的測距原理,適用于2cm~450cm的非接觸測量。該模塊有4個引腳,分別是VCC、Trig、Echo、GND,實物圖(如圖3.1)。其中VCC是電源端,接DC5V電源,GND是接地端,Trig為觸發(fā)控制信號的輸入端,在試驗中接單片機(jī)的P1.3口,Echo是回波信號輸出端,接單片機(jī)的P1.4端口。圖3.1HC—SR04實物圖3.1.1HC—SR04主要電氣參數(shù)介紹電氣參數(shù)HC—SR04超聲波測距模塊工作電壓DC5V工作電流15mA最遠(yuǎn)射程450cm最近射程2cm輸入觸發(fā)信號10us的TTL脈沖輸出回響信號輸出TTL電平信號,與射程成比例3.1.2超聲波測距模塊工作時序圖HC—SR04模塊工作時只需要單片機(jī)的P1.3口送一個不低于10us的高電平觸發(fā)信號,模塊內(nèi)部會自動循環(huán)發(fā)出8個40KHz的脈沖,且模塊的回響信號輸出端會自動檢測回波信號,當(dāng)檢測到回響信號時該端口會輸出一個高電平信號,該高電平信號的持續(xù)時間與檢測距離成比例。其工作時序圖(如圖3.2所示)。圖3.2工作時序圖3.2單片機(jī)的選型(STC12C5A08S2)作為液位測距系統(tǒng)的核心控制部分,單片機(jī)擔(dān)負(fù)著給HC—SR04超聲波測距模塊發(fā)送觸發(fā)信號和超聲波的傳輸時間計時、溫度值采集、距離計算及結(jié)果輸出等功能。經(jīng)過資料的查閱和對比,最終選擇價格便宜、性能穩(wěn)定、低功耗的STC12C5A08S2單片機(jī)。選擇該型號單片機(jī)的另一個重要因素是在導(dǎo)師的實驗室有許多現(xiàn)成的該型號單片機(jī),這樣就節(jié)省了系統(tǒng)設(shè)計的額外成本。3.2.1STC12C5A08S2簡介STC12C5A08S2是STC公司生產(chǎn)的一種單片機(jī),是增強(qiáng)型8051單片機(jī)的一種,兼容傳統(tǒng)51單片機(jī)的指令系統(tǒng)。STC12C5A08S2采用雙列直插式封裝共40管腳,有8K的Flash存儲空間,兩個16位的定時器T0、T1。以下是STC12C5A08S2單片機(jī)的引腳功能圖3.3及相關(guān)介紹。圖3.3STC12C5A08S2單片機(jī)管腳圖電源端:40管腳是VCC端,連接供電電源+5V。20管腳是GND端,工作時接地。時鐘電路端XTAL2和XTAL1引腳:XTAL1是內(nèi)部時鐘電路反相放大器輸入端,接外部晶振的一個引腳。當(dāng)直接使用外部是時鐘電源時,XTAL1作為外部時鐘源的輸入端(STC12C5A08S2應(yīng)用技術(shù)手冊)。XTAL2則是內(nèi)部時鐘電路反相放大器的輸出端,和外部晶振的另一端相連,當(dāng)直接使用外部時鐘電源時,此引腳可懸空,此時XTAL2實際將XTAL1輸入的時鐘進(jìn)行輸出(STC12C5A08S2應(yīng)用技術(shù)手冊)。串口部分:在此著重介紹在系統(tǒng)設(shè)計中用到的P0、P1、P2口相關(guān)串口。P0.0—P0.7P0口可以作為標(biāo)準(zhǔn)的8位輸入/輸出口,此時內(nèi)部有弱上拉電阻而無需外接上拉電阻。P0口也可以分時作為數(shù)據(jù)/地址復(fù)用總線。在本系統(tǒng)中P0口用作數(shù)據(jù)輸出口,對應(yīng)數(shù)據(jù)的AD0-AD7。P1.0—P1.7P1口是8位標(biāo)準(zhǔn)的I/O口,部分管腳有擴(kuò)展功能。在本系統(tǒng)中利用P1.7口連接溫度傳感器的信號輸入端。P2.0—P2.7P2口內(nèi)部也有弱上拉電阻,可以作為輸入/輸出口,也可以作為8位地址總線使用。在本系統(tǒng)設(shè)計中,就是利用P2.0、P2.1、P2.2分別連接74HC138地址譯碼器的A、B、C端進(jìn)行地址的擴(kuò)展和選通。3.2.2單片機(jī)最小應(yīng)用系統(tǒng)一個單片機(jī)的最小應(yīng)用系統(tǒng)包涵如下幾個部分:工作電源、接地、復(fù)位電路、晶振電路等。該系統(tǒng)中單片機(jī)的所用晶振為11.0592MHz,因此只需利用STC12C5A08S2單片機(jī)的第一復(fù)位功能鍵即可。當(dāng)系統(tǒng)工作頻率大于12MHz時需采用STC12C5A08S2的第二復(fù)位功能鍵,在此不做詳細(xì)介紹。至于晶振電路部分,采用的是可以更換晶振的電路設(shè)計,在本系統(tǒng)中所采用晶振頻率為12MHz。STC12C5A08S2單片機(jī)的最小應(yīng)用系統(tǒng)的電路圖(如圖3.4)。圖3.4STC12C5A08S2單片機(jī)最小應(yīng)用系統(tǒng)電路圖3.3顯示電路的設(shè)計系統(tǒng)的顯示采用的數(shù)碼管顯示電路,測量的距離結(jié)果用4位共陰極的數(shù)碼管顯示。數(shù)碼管的a、b、c、d、e、f、g、dp分別對應(yīng)一個發(fā)光二級管,其中dp代表小數(shù)點。每個數(shù)碼管都有一個公共的外部選通端COM,當(dāng)選擇共陰極連接時,8個發(fā)光二級管的陰極都連接到COM端。在系統(tǒng)中,單片機(jī)的P0.0—P0.7口分別對應(yīng)連接每個數(shù)碼管的a、b、c、d、e、f、g、dp的陽極,當(dāng)相應(yīng)P0口輸出高電平時相應(yīng)的發(fā)光二級管就會亮,從而顯示出對應(yīng)的數(shù)值。在利用單片機(jī)的數(shù)碼管顯示時有兩種顯示方式可選,即數(shù)碼管的動態(tài)顯示和靜態(tài)顯示。而本系統(tǒng)主要采用的是動態(tài)顯示的方式。相比較與數(shù)碼管的靜態(tài)顯示,采用動態(tài)顯示可以省掉繁瑣的電路連接,可以直接通過74HC138譯碼器分別與相應(yīng)數(shù)碼管的公共端COM相連,再利用人的視覺差逐個選通每個數(shù)碼管顯示相應(yīng)數(shù)字,這樣動態(tài)的掃描顯示,在人眼看來就會是連續(xù)的穩(wěn)定顯示了。顯示模塊的電路圖(如圖3.5)。圖3.5數(shù)碼管顯示電路原理圖3.4溫度傳感器的選型溫度值的多少直接影響超聲波的傳播速度V的值,能夠?qū)崟r準(zhǔn)確地采集溫度值就可以解決超聲波測距中的溫度補(bǔ)償問題。所以選擇合適的溫度傳感器可以使系統(tǒng)的硬件電路更簡單化,從而提高測距系統(tǒng)的性能穩(wěn)定性。3.4.1溫度傳感器的類型及特點人們對溫度傳感器的研究和應(yīng)用起步較早,現(xiàn)在技術(shù)已經(jīng)相當(dāng)成熟。在不同的工業(yè)應(yīng)用場合會有不同工作原理的傳感器的應(yīng)用。溫度傳感器大致有如下幾個類型:熱電阻式傳感器、熱電偶式傳感器、半導(dǎo)體集成模擬溫度傳感器、半導(dǎo)體集成數(shù)字溫度傳感器等幾種。熱電阻式溫度傳感器:其工作原理是利用導(dǎo)體或半導(dǎo)體的的電阻值隨溫度變化而變化的特性來測量溫度的[9]。主要特點是測量精度高,響應(yīng)速度快,性能穩(wěn)定。但是線路電阻的變化會導(dǎo)致溫度測量的偏差,需要額外的補(bǔ)償電路來消除偏差。熱電偶式溫度傳感器:其主要是基于熱電效應(yīng)原理來工作的,具有測量范圍廣、精度高、結(jié)構(gòu)簡單、使用方便等優(yōu)點[9]。半導(dǎo)體集成模擬溫度傳感器:利用晶體二極管或三極管PN結(jié)的結(jié)電壓隨溫度變化的原理來工作的,主要優(yōu)點是具有較好的線性度,而且反應(yīng)很靈敏,測溫范圍也很廣,可以測到-50--150°C[9]。無論是上述哪種原理的溫度傳感器,其主要都是將溫度信號轉(zhuǎn)化為可以測量的電信號,再經(jīng)過相應(yīng)的信號放大電路放大到合適值范圍,再經(jīng)A/D轉(zhuǎn)換將測量信號轉(zhuǎn)化為數(shù)字量顯示出來。與這些溫度傳感器相比,半導(dǎo)體集成數(shù)字傳感器因自帶A/D轉(zhuǎn)換部分而是應(yīng)用電路設(shè)計更趨簡單。目前DS18B20數(shù)字式溫度傳感器是應(yīng)用最廣泛的數(shù)字式傳感器之一。3.4.2數(shù)字式DS18B20溫度傳感器簡介DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司推出的一種改進(jìn)型智能溫度傳感器。DS18B20溫度傳感器使用比較方便,可以直接從讀出數(shù)字溫度值,并且可根據(jù)實際應(yīng)用的需要通過簡單的編程實現(xiàn)9—12位的數(shù)字值讀數(shù)方式[6]。DS18B20只有3個管腳:1電源線,2信號線,3接地線。它的通信只需單根信號線聯(lián)結(jié)。在本設(shè)計系統(tǒng)中它的信號通信端跟單片機(jī)的P1.7口相連,其接線圖如下圖3.6所示。圖3.6溫度傳感器連線圖4系統(tǒng)軟件設(shè)計本系統(tǒng)軟件部分設(shè)計包括主程序、子程序(時間計算、速度計算)和顯示子程序組成。編程語言選擇的是匯編語言,能夠做到直接控制硬件電路,且能精確計算程序運(yùn)行時間。在數(shù)據(jù)處理上雖不能做到高精度,但充分利用了匯編語言編程的易于查表的優(yōu)勢,建立了時間值和速度修正值表,并且在編程時做了一定的簡化處理,旨在重點掌握系統(tǒng)的工作原理及控制流程。4.1主程序設(shè)計主程序先是對單片機(jī)環(huán)境的初始化,設(shè)置定時器T0的工作方式為16位的計數(shù)器模式,并對其做清零處理。接著就是對顯示單元清零,即對輸出P0口清零;然后調(diào)用聲速V修正值子程序得到超聲波傳播速度后調(diào)用距離計算子程序計算距離S;最后是顯示子程序的調(diào)用。輸出顯示結(jié)果后延時一段時間再次重啟超聲波測距模塊進(jìn)行下次測量。主程序流程圖如圖4.1所示。圖4.1主程序流程圖4.2子程序設(shè)計4.2.1溫度采集程序設(shè)計單片機(jī)上電復(fù)位后,需對傳感器DS18B20執(zhí)行復(fù)位命令并開始采集溫度數(shù)值。其工作流程大致如下:上電啟動后通過單片機(jī)初始化DS18B20,然后檢測設(shè)備是否存在,若存在則發(fā)送ROM命令,然后發(fā)送溫度轉(zhuǎn)換命令獲取溫度值。溫度采集程序流程圖如下圖4.2所示。圖4.2溫度采集程序流程圖主要程序如下:DQBITP1.7;DS18B20的數(shù)據(jù)口位P1.7TPHDATA20H;存放溫度值的高字節(jié)TPLDATA21H;存放溫度值的低字節(jié)ORG0JMPResetORG100HReset:LCALLDS18B20_Reset;設(shè)備復(fù)位MOVA,#0CCH;跳過ROM命令LCALLDS18B20_WriteByte;送出命令MOVA,#044H;開始轉(zhuǎn)換LCALLDS18B20_WriteByte;送出命令JNBDQ,$;等待轉(zhuǎn)換完成LCALLDS18B20_Reset;設(shè)備復(fù)位MOVA,#0CCH;跳過ROM命令LCALLDS18B20_WriteByte;送出命令MOVA,#0BEH;讀暫存存儲器LCALLDS18B20_WriteByte;送出命令LCALLDS18B20_ReadByte;讀溫度低字節(jié)MOVTPL,A;存儲數(shù)據(jù)LCALLDS18B20_ReadByte;讀溫度高字節(jié)MOVTPH,A;存儲數(shù)據(jù)JMP$;**************************************DelayXus:NOPNOPNOPNOPNOPNOPNOPNOPDJNZR7,DelayXusRET;**************************************;復(fù)位DS18B20,并檢測設(shè)備是否存在;**************************************DS18B20_Reset:CLRDQ;送出低電平復(fù)位信號MOVR7,#240;延時至少480usLCALLDelayXusMOVR7,#240LCALLDelayXusSETBD;釋放數(shù)據(jù)線MOVR7,#60;等待60usLCALLDelayXusMOVC,DQ;檢測存在脈沖MOVR7,#240;等待設(shè)備釋放數(shù)據(jù)線LCALLDelayXusMOVR7,#180LCALLDelayXusJCDS18B20_Reset;若沒有檢測到設(shè)備,則繼續(xù)等待RET;**************************************;從DS18B20讀1字節(jié)數(shù)據(jù);**************************************DS18B20_ReadByte:CLRAPUSH0MOV0,#8;8位計數(shù)器ReadNext:CLRDQ;開始時間片MOVR7,#1;延時等待LCALLDelayXusSETBDQ;準(zhǔn)備接收MOVR7,#1LCALLDelayXusMOVC,DQ;讀取數(shù)據(jù)RRCAMOVR7,#60;等待時間片結(jié)束LCALLDelayXusDJNZ0,ReadNextPOP0RET;**************************************;向DS18B20寫1字節(jié)數(shù)據(jù);**************************************DS18B20_WriteByte:PUSH0MOV0,#8;8位計數(shù)器WriteNext:CLRDQ;開始時間片MOVR7,#1;延時等待LCALLDelayXusRRCA;輸出數(shù)據(jù)MOVDQ,CMOVR7,#60;等待時間片結(jié)束LCALLDelayXusSETBDQ;準(zhǔn)備送出下一位數(shù)據(jù)MOVR7,#1LCALLDelayXusDJNZ0,WriteNextPOP0RETEND4.2.1速度查表程序由超聲波測距的溫度補(bǔ)償公式V=331.5+0.607T,建立了一張溫度——V的修正值表格TAB1。結(jié)合實際情況,TAB1包含了0度到40度對應(yīng)的速度修正值。編程時將DS18B20采集的溫度值送到R1中,并將其作為查表偏移量進(jìn)行查表,查表所得結(jié)果仍放R1中。部分程序如下:ORG1000HSTART:MOVA,@R1MOVDPTR,#TAB1MOVCA,@A+DPTRMOVR1,ATAB1:DB014CH,014CH,014DH,014DH,014EH,014FH,014FH,0150H,0150H,0151HDB0152H,0152H,0153H,0153H,0154H,0155H,0155H,0156H,0156H,0157HDB0158H,0158H,0159H,0159H,015AH,015BH,015BH,015CH,015CH,015DHDB015EH,015EH,015FH,015FH,0160H,0161H,0161H,0162H,0162H,0163HDB0164HRET4.2.2距離計算程序由于單片機(jī)選擇12MHz的晶振,則計數(shù)器T0沒計數(shù)一次就代表1uS,設(shè)計時取14℃時的聲速為340m/s,則既可計算出距離:S=(Vt)/2=(17T0/1000)cm。式子中T0是一個16位的數(shù)由TH0和TL0兩個8位組成,在程序中一個8位數(shù)和一個16位數(shù)相乘的原理如下示意圖所示,其中a、b、c都是8位無符號數(shù)。除以1000用結(jié)果右移10次來實現(xiàn)。具體程序如下:ab×c(bc)H(bc)L(ac)H(ac)L(ac)H[(bc)H+(ac)L](bc)LWORK:MOVA,TH0MOVR7,AMOVA,TL0MOVR6,AMOVR5,#11HMOVA,R6MOVB,R5MULAB;b×cMOV@R2,A;(bc)L(R2)MOVR3,B;(bc)HR3MOVA,R7MOVB,R5MULAB;a×cADDA,R3;(bc)H+(ac)LAINCR2MOV@R2,AMOVA,B;(ac)HAADDCA,#00HCLRCINCR2MOV@R2,ALCALLRIGHTRET1;*********循環(huán)右移10位子程序*********RIGHT:MOVR4,#10LOP3:MOVA,@R2RRADECR2MOVA,@R2RRCADECR2MOVA,@R2RRCAINCR2INCR2DECR4DJNZR4,LOP3RET4.3數(shù)碼管顯示程序距離計算結(jié)果需要先轉(zhuǎn)換成相應(yīng)的BCD碼再送往數(shù)碼管顯示,這個可以通過查表來實現(xiàn)轉(zhuǎn)換。結(jié)果的顯示采用動態(tài)掃描的方式顯示,每次通過74HC138譯碼器選通一個數(shù)碼管顯示相應(yīng)的數(shù)字,再經(jīng)過一定的延時掃描顯示下一位數(shù)碼管。其程序流程圖(如圖4.2)。圖4.2數(shù)碼管顯示流程圖5系統(tǒng)調(diào)試與分析系統(tǒng)的硬件部分包含兩大部分:HC—SR04超聲波測距模塊和單片機(jī)開發(fā)板。弄清開發(fā)板上的元件電氣連接后,將STC12C5A08S2單片機(jī)芯片正確插入鎖緊插座,用四根連接線分別將HC—SR04模塊的VCC和GND端接單片機(jī)的VCC和GND端,將Trig端接至單片機(jī)的P1.3口,Echo接單片機(jī)的P1.4口。HC—SR04超聲波測距模塊在通電之前一定要確保接地端可靠接地,否則模塊很容易被燒壞而導(dǎo)致測量失敗。在可靠正確連接之后,在測量時還要盡力確保模塊水平放置,從而減小測量誤差。系統(tǒng)的軟件部分通過Keil軟件編寫并進(jìn)行編譯,修改無誤后下載到單片機(jī)內(nèi)部進(jìn)行測量。圖5.1是通過相關(guān)軟件下載程序到單片機(jī)的截圖。下載成功后即可進(jìn)行測距。圖5.1下載程序到單片機(jī)中測試中選取了室溫14度時聲速為340m/s時80cm—200cm之間的距離進(jìn)行了驗證。將事先編譯好的程序下載到單片機(jī),并沒有顯示預(yù)期的測量數(shù)據(jù),這也是一般調(diào)試經(jīng)常出現(xiàn)的狀況,經(jīng)過反復(fù)幾次下載、執(zhí)行,還是沒有數(shù)據(jù)顯示。針對調(diào)試出現(xiàn)的問題,首先想到的是編譯程序的計算和顯示部分出現(xiàn)了差錯。并將整個程序進(jìn)行了剪切,只保留計算和顯示模塊,并根據(jù)預(yù)期距離給定時計數(shù)器賦值,程序編譯無誤后下載到單片執(zhí)行,測試結(jié)果(如圖5.2所示),顯示結(jié)果和預(yù)期計算相符,由此推斷程序計算、顯示部分沒有錯誤。圖5.2計算、顯示部分調(diào)試結(jié)果圖5.3串口信號變化邏輯分析結(jié)果第二步:檢測調(diào)試超聲波測距模塊的觸發(fā)和響應(yīng)信號。由于實驗中給超聲波測距模塊的觸發(fā)電平是高于10uS的高電平,而回響信號的持續(xù)時間經(jīng)計算也只是微秒級的,因此,使用一般的萬用表是無法檢測到管腳信號變化的。經(jīng)過查閱資料,選擇邏輯分析儀來檢測觸發(fā)信號即P1.3口的電平變化和回響信號即P1.4口的電平變化情況。由于邏輯分析儀每次可以抓取6S的串口電平變化情況,因此可以達(dá)到預(yù)期的檢測功能。調(diào)試結(jié)果(如圖5.3所示)。經(jīng)過多次檢測,我們可以檢測到P1.3口出現(xiàn)了30多微秒的高電平信號,即程序給超聲波測距模塊送了觸發(fā)信號。然而P1.4口卻一直是低電平信號,即超聲波測距模塊并沒有返回回波信號,因此可以推斷導(dǎo)致測試失敗的原因可能是超聲波測距模塊內(nèi)部觸發(fā)無法響應(yīng)的問題。結(jié)論文中設(shè)計的液位測距系統(tǒng)是基于STC12C5A08S2單片機(jī)為核心控制器,采用了HC—SR04超聲波測距集成模塊。由單片機(jī)的P1.3口控制超聲波的發(fā)射,P1.4口控制回波信號的檢測。通過軟件給P1.3口送至少20uS的高電平即可啟動發(fā)射超聲波,檢測P1.4口的電平信號變化,P1.4口由低電平變高電平時啟動單片機(jī)T0計數(shù)器進(jìn)行計數(shù),P1.4口由高電平變低電平時停止計數(shù)。由于單片機(jī)工作頻率為11.0592MHz,則記一次數(shù)就是1uS,從而解決了超聲波傳播時間的計算問題。采用DS18B20數(shù)字溫度傳感器實時采集溫度值對聲速V進(jìn)行修正,從而解決了溫度補(bǔ)償問題。從調(diào)試過程和調(diào)試結(jié)來果看,雖然沒有出現(xiàn)預(yù)期的結(jié)果顯示,但是經(jīng)過了一番的排查,找到了問題的根源,鑒于調(diào)試時間的緊迫性,未能及時更換模塊解決問題,確實有些遺憾,但是通過一些列的設(shè)計,從硬件電路到軟件部分設(shè)計,再小到編程的細(xì)節(jié)問題,自己確實學(xué)到了很多。任何系統(tǒng)設(shè)計都或多或少存在著一定的誤差,而文中設(shè)計的液位測距系統(tǒng)也不例外。對于誤差的分析,相信隨著超聲波測距集成模塊的技術(shù)改進(jìn)誤差會隨之減少。就本系統(tǒng)設(shè)計而言,由于軟件部分采用的是匯編語言編程,在時間的準(zhǔn)確度上做到很好,但在數(shù)據(jù)處理上采用了很多的近似處理,從而給測量結(jié)果帶來了一定的誤差。針對這種情況,可以考慮采用匯編與C語言相結(jié)合來編程,充分利用兩者的優(yōu)勢來減少測量誤差。致謝本液位測距系統(tǒng)設(shè)計是在我的導(dǎo)師吳才章教授的悉心指導(dǎo)下完成的。我真的很慶幸有這樣一位知識淵博、認(rèn)真負(fù)責(zé)的導(dǎo)師。在大學(xué)最后的這幾個月的相處和溝通中,我受益匪淺。吳老師不僅給我輔導(dǎo)了系統(tǒng)設(shè)計原理和單片機(jī)的相關(guān)知識,還為我提供了很多硬件設(shè)備幫助我更好的了解系統(tǒng)的工作原理,對我的畢業(yè)設(shè)計有很大的幫助。此外,在吳老師的實驗室里,我還有幸掌握了一些其他設(shè)備的使用和操作方法,學(xué)到了一些吳老師所做科研項目的知識,相信這些都是我在別處無法學(xué)到的。在此我由衷的感謝吳老師的耐心指導(dǎo)和幫助,相信在以后的工作和學(xué)習(xí)中我會努力做到更好。此外,我要感謝我的專業(yè)課老師們,他們引導(dǎo)我入門并掌握基礎(chǔ)知識,要知道這是所有擴(kuò)展的開始!我還要感謝身邊可愛的同學(xué)們和實驗室里盡職盡責(zé)的學(xué)長研究生們,尤其是我的學(xué)長王繼偉同學(xué)。他在單片機(jī)的匯編語言方面很有建樹,給了我很大的幫助和建議。從Keil軟件的入門到匯編語言的細(xì)節(jié)問題,他都給了我耐心解釋和指導(dǎo)。當(dāng)我做完系統(tǒng)設(shè)計回過頭看時,我覺得我的導(dǎo)師吳教授、我的學(xué)長王繼偉,還有身邊其他可愛的同學(xué)們,他們給我最大的幫助不是去解決什么具體的問題,而是在于遇到問題時該如何去解決。慢慢的我開始享受著去查各種文獻(xiàn)資料,遇到硬件的使用時我會首先去找到相應(yīng)芯片的技術(shù)手冊,去了解芯片的管腳功能及相關(guān)的擴(kuò)展功能,然后我會去查閱相關(guān)的應(yīng)用資料啦,去學(xué)學(xué)高手們的應(yīng)用經(jīng)驗嘍!我覺得不論系統(tǒng)設(shè)計的怎么樣,測量的精度高不高,關(guān)鍵是我們能全身心的投入到設(shè)計中去,真正弄懂系統(tǒng)的工作原理,自己動手去做,掌握去解決問題的方法和途徑。最后,我還要感謝各位評委老師能在百忙之中查看我的系統(tǒng)設(shè)計說明書。由于閱歷和經(jīng)驗的不足,這次系統(tǒng)設(shè)計中還存在著很多的缺陷和不足。我相信您的嚴(yán)格是對我的負(fù)責(zé),您的批評是對我的認(rèn)可,您的意見是我學(xué)習(xí)改進(jìn)的方向參考文獻(xiàn)[1]馬瑩,鄭文斌.基于單片機(jī)的超聲波液位檢測系統(tǒng)設(shè)計[J].海峽科學(xué),2007(10)[2]張敏,寇為剛.基于超聲波的自動測距系統(tǒng)設(shè)計[J].自動化技術(shù)與應(yīng)用,2011(04)[3]趙廣濤,程蔭杭.基于超聲波傳感器的測距系統(tǒng)設(shè)計[J].微計算機(jī)信息,2006(01)[4]莫德舉,劉艷艷.超聲波液位測量方法的研究[J].儀器儀表與分析監(jiān)測,2007(01)[5]卜英勇.一種高精度超聲波測距方法的研究[J].鄭州大學(xué)學(xué)報,2006(27)[6]樓然苗,李光飛.單片機(jī)課程設(shè)計指導(dǎo)[M].北京:北京航空航天大學(xué)出版社,2007.7[7]田志宏,曹建光,劉秀紅.超聲波傳感器在電動輪椅車上的應(yīng)用研究[J].傳感技術(shù)學(xué)報,2007(20)[8]彭翠云,趙廣耀,戎海龍.汽車倒車系統(tǒng)中超聲波測距模塊的設(shè)計[J].壓電與聲光,2008(30)[9]孫寶元,楊玉清.傳感器及其應(yīng)用手冊[M].北京:機(jī)械工業(yè)出版社,2004.5[10]應(yīng)崇福主編.超聲學(xué)[M].北京:科學(xué)出版社,1990[11]MurugavelRaju.UltrasonicDistanceMeasurementWiththeMSP430.AplicationReportSLAA136A.2001[12]彭廣亮.新型超聲波液位計的開發(fā)研究[D].河北工業(yè)大學(xué),2011[13]趙小強(qiáng),趙連玉.超聲波測距系統(tǒng)中的溫度補(bǔ)償[J].組合機(jī)床與自動化加工技術(shù),2008(11)[14]趙亮,王余.基于AT89S51單片機(jī)超聲波測距儀器設(shè)計[J].內(nèi)江科技,2009(02)[15]姚來鳳,馮益華,王麗.超聲波及超聲檢測[J].山東輕工業(yè)學(xué)院學(xué)報(自然科學(xué)版),2007(02)[16]李冬梅.國內(nèi)外液位計量儀表技術(shù)發(fā)展動向[J].儀器儀表用戶,2002(05)[17]焦冰,唐慧強(qiáng),葉松,溫雅婷.液位測量中超聲回波信號的采集與處理[J].測控技術(shù),2010(08)[18]李戈,孟祥杰,王曉華,王重修.國內(nèi)超聲波測距研究應(yīng)用現(xiàn)狀[J].測繪科學(xué),2011(07)[19]武鋒,趙明.超聲波液位計的選型及其在原型水位自動檢測系統(tǒng)中的實際應(yīng)用[J].治淮,2011(08)附錄A匯編程序清單ORG0100HSTART:MOVR1,#40H;40H-43H為顯示數(shù)據(jù)存放單元(40H為最高位)MOVR0,#44H;44H-46H為距離計算結(jié)果緩存單元(44H為最低位)MOVR2,#0BHCLEARDISP:MOV@R1,#00HINCR1DJNZR2,CLEARDISP;清顯示單元MOVP0,#00HMOVTMOD,#05H;T0用作計數(shù)器工作在方式1MOVTH0,#00HMOVTL0,#00HREST:CLRP1.3 CLRP1.4 ;超聲波模塊復(fù)位START1:SETBP1.3MOVR0,#20HDJNZR0,$CLRP1.3;給P1.3口送至少20uS的高電平信號啟動測距模塊LOP1:JNBP1.4,LOP1 SETBTR0;P1.4口由低電平變?yōu)楦唠娖綍r開啟計數(shù)器T0LOP2;JBP1.4,LOP2 CLRTR0;P1.4口由高電平變?yōu)榈碗娖綍r停止計數(shù)START2:MOVA,TH0MOVR7,AMOVA,TL0 MOVR6,AMOVR5,#11HLCALLWORK ;調(diào)用距離計算子程序MOVA,(44H) MOVB,#64HDIVAB MOVR1,#41H MOV@R1,A;百位放在41H單元內(nèi) MOVA,B MOVB,#0AH DIVABINCR1 MOV@R1,A;十位放在42H單元內(nèi)INCR1 MOVA,B MOV@R1,A;個位放在43H單元內(nèi) MOVR2,#0C8H;測量間隔控制(約4mS×200=800mS)LOP3:LCALLDISPLAY DJNZR2,LOP3SJMPREST;*********距離計算子程序(S=計算值*17/1000cm)*********
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度美團(tuán)團(tuán)購服務(wù)合同范本升級版8篇
- 二零二五年度高空作業(yè)腳手架租賃與施工總承包合同3篇
- 2025版協(xié)議離婚特殊規(guī)定及婚姻財產(chǎn)分割與子女撫養(yǎng)合同3篇
- 2025版臨時工特殊工種作業(yè)安全協(xié)議書4篇
- 2025年度酒店式公寓房間長期租賃服務(wù)協(xié)議3篇
- 2025年度個人企業(yè)全額承包經(jīng)營合作協(xié)議范本4篇
- 2025年度新能源電池殼體模具開發(fā)與加工服務(wù)協(xié)議4篇
- 2025年度文化創(chuàng)意園區(qū)場地租賃安全管理與文化創(chuàng)新合同4篇
- 水電消防工程2025年度施工及進(jìn)度管理合同2篇
- 2025新生入學(xué)教育法律協(xié)議書(定制版)2篇
- GB/T 16895.3-2024低壓電氣裝置第5-54部分:電氣設(shè)備的選擇和安裝接地配置和保護(hù)導(dǎo)體
- GJB9001C質(zhì)量管理體系要求-培訓(xùn)專題培訓(xùn)課件
- 二手車車主寄售協(xié)議書范文范本
- 窗簾采購?fù)稑?biāo)方案(技術(shù)方案)
- 基于學(xué)習(xí)任務(wù)群的小學(xué)語文單元整體教學(xué)設(shè)計策略的探究
- 人教版高中物理必修一同步課時作業(yè)(全冊)
- 食堂油鍋起火演練方案及流程
- 《呼吸衰竭的治療》
- 2024年度醫(yī)患溝通課件
- 2024年中考政治總復(fù)習(xí)初中道德與法治知識點總結(jié)(重點標(biāo)記版)
- 2024年手術(shù)室的應(yīng)急預(yù)案
評論
0/150
提交評論