超音波油量測(cè)量?jī)x的設(shè)計(jì)_第1頁(yè)
超音波油量測(cè)量?jī)x的設(shè)計(jì)_第2頁(yè)
超音波油量測(cè)量?jī)x的設(shè)計(jì)_第3頁(yè)
超音波油量測(cè)量?jī)x的設(shè)計(jì)_第4頁(yè)
超音波油量測(cè)量?jī)x的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

STYLEREF"標(biāo)題1"附錄2源代碼PAGEPAGEIII超音波油量測(cè)量?jī)x的設(shè)計(jì)摘要由于超聲波傳播不易受到干擾,能量消耗較慢,在介質(zhì)中傳播的距離較長(zhǎng)。因此,超聲波常用于距離測(cè)量,如油量測(cè)量?jī)x、液位測(cè)量?jī)x等,都可以通過超聲波來實(shí)現(xiàn)。本系統(tǒng)的設(shè)計(jì)主要包括兩部分,即硬件電路和軟件程序。硬件電路主要包括單片機(jī)電路、發(fā)射電路、接收電路、顯示電路、溫度補(bǔ)償模塊和電源電路,另外還有復(fù)位電路和LED控制電路等。本文采用以AT89C51單片機(jī)為核心的低成本、高精度、微型化數(shù)字顯示超聲波油量測(cè)量?jī)x的硬件電路。整個(gè)電路采用模塊化設(shè)計(jì),由信號(hào)發(fā)射和接收、供電、油量測(cè)量、顯示等模塊組成。關(guān)鍵詞:AT89C51;超聲波;油量測(cè)量?jī)x

ABSTRACTInairmedium,theultrasonicrangingsensorbecauseofitsgoodperformance,lowcost,easytouse,intherobotpositioningsystem,vehicleautomaticnavigation,vehiclesafetydrivingassistantsystem,urbantrafficmanagementandmonitoringsystemforhighwaymanagement,aswellastheriver,thewellandtheexplorationofthewarehouseandmateriallevelareused.Duetotheultrasonicpropagationisnoteasytointerference,energyconsumptionslow,inthemediumtransmissiondistanceisfarther,soultrasonicoftenusedfordistancemeasurement,suchasrangefinderandlevelmeasurementinstrumentcanbedonebyultrasound.Thedesignofthissystemmainlyincludestwoparts,namely,thehardwarecircuitandsoftwareprogram.Hardwarecircuitmainlyincludingmicrocontrollercircuit,transmittingcircuit,receivingcircuit,displaycircuitandpowersupplycircuit,andresetcircuitandLEDcontrolcircuit,etc.BasedontheAT89C51single-chipmicrocomputerasthecoreoflowcost,highprecision,miniaturization,digitaldisplay,thehardwareoftheultrasonicrangefinder.ThewholecircuitUSESmodulardesign,thesignaltransmittingandreceiving,powersupply,suchastemperaturemeasurement,displaymodules.Keywords:AT89C51;Ultrasound;Rangefinder

目錄第1章緒論 11.1研究背景 11.2研究意義 11.3國(guó)內(nèi)外研究現(xiàn)狀 2第2章超聲波油量測(cè)量的原理及誤差分析 42.1超聲波油量測(cè)量的原理 42.2超聲波油量測(cè)量誤差分析 5第3章系統(tǒng)硬件設(shè)計(jì) 73.1發(fā)射電路設(shè)計(jì) 73.1.1發(fā)射電路設(shè)計(jì)方案 83.1.2發(fā)射電路常用方案 83.2接收電路設(shè)計(jì) 93.3單片機(jī)顯示電路設(shè)計(jì) 113.3.1LCD顯示部分 133.3.2報(bào)警部分 143.4溫度補(bǔ)償模塊 14第4章軟件設(shè)計(jì)和測(cè)量結(jié)果分析 164.1系統(tǒng)軟件設(shè)計(jì) 164.2外部中斷子程序 194.3定時(shí)器中斷子程序 21總結(jié)與展望 23參考文獻(xiàn) 24致謝 25附錄1系統(tǒng)整體圖 26附錄2源代碼 27PAGE32第1章緒論1.1研究背景超聲波檢測(cè)技術(shù)是在電子學(xué)、材料學(xué)、物理學(xué)等多種學(xué)科的基礎(chǔ)上研發(fā)的,能夠進(jìn)行非接觸測(cè)量,能夠在眾多領(lǐng)域應(yīng)用。作為波的一種,超聲波具有波的所有性質(zhì)。超聲波檢測(cè)主要是通過超聲波、在介質(zhì)中的傳播以及接收超聲波回波的物理形式來進(jìn)行的。超聲波主要是因?yàn)闄C(jī)械振動(dòng)而產(chǎn)生的,能夠在不一樣的結(jié)構(gòu)通過不一樣的速度來進(jìn)行傳遞。在空氣介質(zhì)中,輕塵、輕煙、電磁干擾和有毒氣體不會(huì)影響超聲燃料測(cè)量傳感器的性能。此外,超聲波還具有成本效益和易于使用。由于超聲波具有很強(qiáng)的方向性,能量消耗較慢,在介質(zhì)中傳播的距離較長(zhǎng)。因此,超聲波常被用于距離測(cè)量,如超聲波測(cè)距儀和液位測(cè)量?jī)x,這些都可以通過超聲波來實(shí)現(xiàn)。為了使移動(dòng)機(jī)器人能自動(dòng)避障行走,就必須裝備測(cè)距系統(tǒng),以使其及時(shí)獲取距障礙物的距離信息(距離和方向)。超聲波測(cè)距系統(tǒng),就是為機(jī)器人了解其前方、左側(cè)和右側(cè)的環(huán)境而提供一個(gè)運(yùn)動(dòng)距離信息。1.2研究意義隨著中西部地區(qū)的不斷發(fā)展,我國(guó)的油品計(jì)量行業(yè)也迎來了新的發(fā)展空間,同時(shí)也對(duì)油品計(jì)量系統(tǒng)技術(shù)提出了更高的要求。液位控制技術(shù)比油量系統(tǒng)控制技術(shù)更為重要。一項(xiàng)技術(shù)也成為衡量石油公司技術(shù)含量的一項(xiàng)指標(biāo)。傳統(tǒng)的液位控制不能進(jìn)行遠(yuǎn)距離集中控制,自動(dòng)化程度低,調(diào)節(jié)精度差等,不能單靠手工操作來適應(yīng)。隨著科學(xué)技術(shù)的不斷進(jìn)步,控制系統(tǒng)改造的必要性,被控對(duì)象越復(fù)雜,對(duì)控制精度的要求就越高。由于被控對(duì)象和過程的非線性、時(shí)變性,多參數(shù)間的強(qiáng)耦合、隨機(jī)干擾等因素,使得建立被控對(duì)象的精確數(shù)學(xué)模型變得很困難。在這些復(fù)雜的系統(tǒng)面前,傳統(tǒng)的控制方法無法滿足控制精度,而且系統(tǒng)穩(wěn)定性差。具有體積小、安裝方便、功能齊全、性價(jià)比高等優(yōu)點(diǎn)。因此,它具有廣闊的應(yīng)用前景,有助于識(shí)別可能存在的故障。通過微型計(jì)算機(jī)對(duì)燃燒和供水系統(tǒng)進(jìn)行自動(dòng)控制和調(diào)節(jié),保證供油正常到供氣,保持系統(tǒng)穩(wěn)定,保證安全經(jīng)濟(jì)運(yùn)行。隨著科技的不斷攀升,現(xiàn)在的油量控制基本上都能實(shí)現(xiàn)全自動(dòng)化,且在安全性、實(shí)用性、經(jīng)濟(jì)性上都給予了充分的考慮,此設(shè)計(jì)在全面考慮各方面要求的基礎(chǔ)上,利用單片機(jī)系統(tǒng)的小巧便利可行實(shí)惠做出了油量液位控制系統(tǒng)。1.3國(guó)內(nèi)外研究現(xiàn)狀最近幾年,超聲波技術(shù)有了一定的成果,加上它本身存在的高精度、無損以及非接觸等優(yōu)勢(shì),使得超聲波技術(shù)在眾多領(lǐng)域中得到了應(yīng)用,比如材料科學(xué)、醫(yī)學(xué)、生物科學(xué)等等方面。超聲波油量測(cè)量技術(shù)是在聲學(xué)、儀器工程學(xué)科的基礎(chǔ)上形成的邊緣技術(shù)學(xué)科。它在移動(dòng)機(jī)器人、汽車主動(dòng)碰撞系統(tǒng)、交通車流檢測(cè)系統(tǒng)等等多個(gè)方面都得到了廣泛的應(yīng)用,且有不錯(cuò)的成效。從控制系統(tǒng)的角度來看,一個(gè)測(cè)量精準(zhǔn)度高、抗干擾能力強(qiáng)的傳感器具有重要的意義,因此超聲波傳感器在超聲波油量測(cè)量系統(tǒng)中不可或缺。KimiyukiMitsui,MakotoKoike,HidehikoTsukamoto則在像散焦點(diǎn)差探測(cè)理論的基礎(chǔ)上提出了超聲傳感器。在進(jìn)行超聲波油量測(cè)量時(shí),精度十分重要。李茂山等學(xué)者仔細(xì)的講述了超聲波的測(cè)量距離原理,并畫出了詳細(xì)的進(jìn)行超聲波油量測(cè)量的流程圖,還提出了幾種對(duì)超聲筆油量測(cè)量造成影響的因素。本文設(shè)計(jì)中,簡(jiǎn)略的說到過超聲波油量測(cè)量誤差產(chǎn)生的主導(dǎo)因素和對(duì)超聲筆測(cè)長(zhǎng)儀的校正;以鄭豐隆為代表的學(xué)者為了讓超聲波的精度更高,從硬件方面設(shè)計(jì)了一種外圍電路,以此提高技術(shù)參考頻率,最后讓儀器系統(tǒng)精度有所提升。讓系統(tǒng)在10米以內(nèi)的范圍的滿度相對(duì)誤差低于0.1%;以葛萬成為代表的學(xué)者對(duì)超聲筆的傳播的運(yùn)行具體時(shí)間進(jìn)行了研究,借助于一個(gè)經(jīng)過適當(dāng)選擇的偽隨機(jī)二進(jìn)制序列信號(hào)作為超聲波的發(fā)送信號(hào),可通過相應(yīng)的方式把外部帶來的干擾信號(hào)的影響消除或者降低到最小限度,以此提高了精準(zhǔn)度。系統(tǒng)中采樣周期為50us時(shí),距離誤差為8。Smm;FigneroaJ.F.,LamancuseJ.S.研發(fā)了一種計(jì)時(shí)方式,主要利用回波時(shí)延由峰值時(shí)延和相位時(shí)延相加而得的方式,兩者主要是應(yīng)用不一樣的檢測(cè)方式來得到峰值時(shí)延以及相位時(shí)延的,兩者相加就是回波傳播的時(shí)間;本文系統(tǒng)的測(cè)量限制為2米,改進(jìn)之后測(cè)量盲區(qū)為10cm。在測(cè)試系統(tǒng)中,單片機(jī)能夠讓系統(tǒng)變得簡(jiǎn)單,還能夠通過軟件對(duì)測(cè)試信號(hào)進(jìn)行數(shù)字濾波、波行整形以及誤差補(bǔ)償?shù)鹊炔僮?。韓寶亮以及孫偉細(xì)兩位學(xué)者詳細(xì)的講述了測(cè)量距離的理論,和以單片機(jī)為主導(dǎo)的硬件構(gòu)造,對(duì)于不一樣的反射面被測(cè)物對(duì)超聲油量測(cè)量的影響做了詳細(xì)的研究,并深入的研究了盲區(qū)產(chǎn)生的因素。在空氣中,油量測(cè)量的最大范圍為5米,量程在一半以上時(shí),測(cè)量的精度為0.01。

第2章超聲波油量測(cè)量的原理及誤差分析超聲波發(fā)射器向一定的方向發(fā)射超聲波時(shí)開始計(jì)時(shí),當(dāng)超聲波遇到障礙的時(shí)候會(huì)立刻返回,超聲波接收器會(huì)接收到返回的信號(hào),并且停止計(jì)時(shí)。超聲波以340米/秒的速度在空氣中傳播。當(dāng)我們把計(jì)算器記錄為時(shí)間t時(shí),我們可以得到從發(fā)射點(diǎn)到障礙物的距離,距離用s表示,則s=340t/2。這就是所謂的時(shí)間差油量測(cè)量法。2.1超聲波油量測(cè)量的原理超聲波在媒質(zhì)中的反射、折射、衍射、散射等傳播規(guī)律,與可聽聲波的規(guī)律沒有本質(zhì)上的區(qū)別。但是超聲波的波長(zhǎng)很短,只有幾厘米,甚至千分之幾毫米。直線傳播的能力越強(qiáng),超聲波的波長(zhǎng)越短,這種特性就越顯著。功率特性──當(dāng)聲音在空氣中傳播時(shí),推動(dòng)空氣中的微粒往復(fù)振動(dòng)面對(duì)微粒做功。聲波功率就是表示聲波做功快慢的物理量。在相同強(qiáng)度下,聲波的頻率越高,它所具有的功率就越大。由于超聲波頻率很高,所以超聲波與一般聲波相比,它的功率是非常大的。空化作用──當(dāng)超聲波在液體中傳播時(shí),由于液體微粒的劇烈振動(dòng),會(huì)在液體內(nèi)部產(chǎn)生小空洞。這些小空洞迅速脹大和閉合,會(huì)使液體微粒之間發(fā)生猛烈的撞擊作用,從而產(chǎn)生幾千到上萬個(gè)大氣壓的壓強(qiáng)。這種粒子間的劇烈相互作用使液體的溫度突然升高,起到良好的攪拌、乳化兩種不混溶液體(如水和油)的作用,并加速溶質(zhì)的溶解和加速化學(xué)反應(yīng)。這種由超聲波作用在液體中所引起的各種效應(yīng)稱為超聲波的空化作用。超聲波測(cè)油原理跟雷達(dá)的原理是相同的。油量測(cè)量的公式表示為:L=C×T上式中的L表示為實(shí)際距離;C表示為超聲波在空氣中的傳播速度;T表示為時(shí)間差。超聲波油量測(cè)量技術(shù)在倒車提醒、建筑工地以及工業(yè)現(xiàn)場(chǎng)等領(lǐng)域應(yīng)用的較為廣泛,當(dāng)前最大的測(cè)程為100m,在精度上還有所欠缺,只能夠精確到1cm。超聲波有定向發(fā)射、方向性好、強(qiáng)度易控制以及與被測(cè)量物體不用直接接觸測(cè)量等等優(yōu)點(diǎn),是測(cè)量液體高度的理性方式。而在液位測(cè)量精度需要達(dá)到1mm,而我國(guó)目前只能夠做到1cm的精度。因此仔細(xì)的研究了超聲波油量測(cè)量誤差產(chǎn)生的主要因素,然后把測(cè)量時(shí)間差精確到了1μs,還對(duì)LM92油量傳感器進(jìn)行了聲波傳播速度的補(bǔ)償,最后設(shè)計(jì)出的超聲波油量測(cè)量?jī)x能夠精確到1mm了。2.2超聲波油量測(cè)量誤差分析通過超聲波的油量測(cè)量公式L=C×T,我們能夠知道油量測(cè)量的誤差因素有兩點(diǎn):1.超聲波的傳播速度;2.測(cè)量距離傳播的時(shí)間。1)時(shí)間誤差如果需要油量測(cè)量誤差精確到毫米級(jí),那么就假設(shè)超聲波的速度C=344m/s,把.超聲波的傳播速度誤差忽視。則油量測(cè)量誤差s△t<(0.001/344)≈0.000002907s,也就是2.907微秒。如果超聲波的傳播速度是準(zhǔn)確的,那么就只有把測(cè)量距離傳播的時(shí)間精確到1μs,才能夠保障距離誤差在毫米級(jí)。應(yīng)用12MHz晶體作為時(shí)鐘基準(zhǔn)的89C51單片機(jī)定時(shí)器可以把計(jì)算精度到微秒級(jí),所以,本設(shè)計(jì)選用了是89C51定時(shí)器,以保障距離誤差在毫米級(jí)。2)超聲波傳播速度誤差考慮到環(huán)境溫度對(duì)超聲波傳播速度的影響,通過溫度補(bǔ)償?shù)姆椒▽?duì)傳播速度予以校正,以提高測(cè)量精度。超聲波速度與油量的關(guān)系如下所示:r表示為氣體定壓熱容與定容熱容的比值,空氣為1.40,R表示為氣體普適常量,8.314kg·mol-1·K-1,M表示為氣體分子量,空氣為28.8×10-3kg·mol-1,T表示為絕對(duì)溫度,273K+T℃。公式近似為:C=C0+0.607×T℃其中C0表示零度時(shí)的聲波速度332米/秒;T表示為實(shí)際溫度(℃)。當(dāng)超聲波的距離精度到了毫米級(jí)時(shí),就應(yīng)當(dāng)思量超聲波的傳播速度的溫度。比方說在0℃時(shí),超聲波的傳播速度為332米/秒,在30℃時(shí),傳播速度為350米/秒,而因?yàn)橛土康牟町愖尦暡ㄋ俣犬a(chǎn)生了18米/秒的變化。如果30℃的油量中,超聲波用在0℃油量傳播速度計(jì)算,就會(huì)有5米的誤差,也就是1米就有5mm的誤差。超聲波發(fā)生器的兩種類型如下所示:(1)用電氣方式產(chǎn)生超聲波。有壓電型以及電動(dòng)型兩種形式;(2)用機(jī)械方式產(chǎn)生超聲波。包括加爾統(tǒng)笛、液哨以及氣流旋笛等方式。它們所產(chǎn)生的超聲波的頻率、功率、和聲波特性各不相同,因而用途也各不相同。當(dāng)前在進(jìn)行近距離的測(cè)量時(shí),只需要選用一般的壓電式超聲波換能器即可。

第3章系統(tǒng)硬件設(shè)計(jì)本設(shè)計(jì)中的硬件的主要結(jié)構(gòu)有單片機(jī)系統(tǒng)及顯示電路、超聲波發(fā)射電路、超聲波檢測(cè)接收電路以及油量補(bǔ)償電路。目前的超聲檢測(cè)技術(shù)已得到一定程度的改進(jìn)。當(dāng)使用超聲波技術(shù)測(cè)量多種目標(biāo)時(shí),超聲波的傳輸和接收性能將會(huì)不足。超聲波的作用與其大小、形狀以及靈敏度都沒有直接的關(guān)系,因?yàn)樗鼈兊脑矶际窍嗤?,因此需要提升超聲測(cè)量的精度以及分辨力都需要在超聲波的發(fā)射以及接受中著手,這是改良超聲波測(cè)量?jī)x器的重點(diǎn)與難點(diǎn)。本設(shè)計(jì)中的發(fā)射電路選用的是單片機(jī)P1.0端口,編程輸出的是40KHz左右的方波脈沖信號(hào),此外,還開啟了內(nèi)部計(jì)數(shù)器T0。因?yàn)閱纹瑱C(jī)端口輸出的功率比較微弱,因此需要在電路中加上功率放大電路以達(dá)到油量測(cè)量的要求,以此讓驅(qū)動(dòng)超聲傳感器UCM-40T1發(fā)射超聲波的距離較遠(yuǎn)。本設(shè)計(jì)選用的是CX20106A集成電路,讓它對(duì)接受探頭接收到的信號(hào)進(jìn)行放大、濾波操作,信號(hào)會(huì)通過P2.7端口傳送到單片機(jī)中做最后的處理。從成本的角度出發(fā),本文的顯示電路會(huì)選用動(dòng)態(tài)掃描顯示。距離信息會(huì)通過單片機(jī)中的時(shí)間計(jì)數(shù)來得到,最后會(huì)在LED數(shù)碼管上顯示。3.1發(fā)射電路設(shè)計(jì)超聲波的發(fā)射部分主要是讓超聲波發(fā)射器TCT40-16T能夠產(chǎn)生了40kHz左右的方波脈沖信號(hào)而設(shè)計(jì)的。一般產(chǎn)生40kHz左右的方波脈沖信號(hào)有以下兩種方式:(1)使用由555振蕩產(chǎn)生或軟件編程輸出;(2)用由單片機(jī)軟件編程輸出。本文選用的就是這種方式,編程是由單片機(jī)P1.0端口輸出0kHz左右的方波脈沖信號(hào),但是單片機(jī)的端口輸出功率不能夠滿足要求,使40kHz方波脈沖信號(hào)變成了兩路,其中一個(gè)給了由74HC04組成的推挽式電路來用作功率放大,使發(fā)射的距離增大,以達(dá)到油量測(cè)量的需求,另一個(gè)則給了超聲波發(fā)射換能器TCT40-16T,最后以聲波的形式發(fā)射到空氣中。發(fā)射部分的電路,如圖3-1所示。圖中輸出端上拉電阻R31,R32有兩個(gè)作用,第一,為反向器74HC04輸出高電平增加驅(qū)動(dòng)力,第二,增強(qiáng)超聲換能器的阻尼效果,以減少它自由振蕩的時(shí)間。圖3-1圖3-1超聲波發(fā)射電路框圖3.1.1發(fā)射電路設(shè)計(jì)方案①發(fā)射波形的重復(fù)性為了得到高的分辨力,發(fā)射電路應(yīng)當(dāng)要保障發(fā)射的超聲波波形的重復(fù)率較高;另外,發(fā)射的超聲波有盡可能的簡(jiǎn)單,也就是發(fā)射波的多個(gè)振動(dòng)頻率盡量是一樣的,方便接收時(shí)使用帶通濾波器消除干擾以及保障每以次接收到的是相同的一個(gè)振動(dòng)波峰。這主要是為了減少超聲波在障礙物表面反射時(shí)引起的多種損耗以及影響。超聲波就是在換能器電晶片振動(dòng)時(shí)由周圍的空氣而產(chǎn)生的波形,它的波形與晶片振動(dòng)的頻率應(yīng)當(dāng)是一樣的。因此,發(fā)射電路的設(shè)計(jì)要科學(xué),以減少對(duì)發(fā)射功率以及波形重復(fù)性的影響。發(fā)射電路的發(fā)射方法有以下三種:?jiǎn)蚊}沖發(fā)射、多脈沖發(fā)射以及連續(xù)發(fā)射。超聲波油量測(cè)量間斷性單脈沖發(fā)射就是每油量測(cè)量一次,發(fā)送、接收一次。間斷地激發(fā)換能器晶片振動(dòng)方式測(cè)量的距離不遠(yuǎn);本文選用的是間斷多脈沖發(fā)射,系統(tǒng)會(huì)根據(jù)自動(dòng)識(shí)別被油量測(cè)量的距離來設(shè)定發(fā)射脈沖個(gè)數(shù)。②發(fā)射波形電壓及功率傳感器所發(fā)射的電壓大小直接關(guān)系到發(fā)射信號(hào)的損耗和接收機(jī)的靈敏度。通過分析雙向傳播損耗、聲透射損耗、聲反射損耗和環(huán)境噪聲損耗,可以研究電壓大小與損耗之間的關(guān)系。此外,還可以對(duì)實(shí)際發(fā)射傳感器的最大電壓(20Vp-p)和系統(tǒng)正常工作時(shí)的最大電壓(5V)進(jìn)行分析,發(fā)射信號(hào)的功率與發(fā)射探頭傳遞的信號(hào)距離有直接的聯(lián)系,因此需要把電壓與功率都進(jìn)行具體的研究,然后設(shè)計(jì)出最科學(xué)的發(fā)射電路。3.1.2發(fā)射電路常用方案上面我們對(duì)發(fā)射電路進(jìn)行了具體的分析,能夠知道發(fā)射電路的合理性就影響發(fā)射探頭的電壓、功率高低的主要因素。本設(shè)計(jì)選用的是單片機(jī)P1.0發(fā)射一組方波脈沖信號(hào),它的輸出波形較為穩(wěn)定,但是它的輸出電流、功率都比較的低,不能夠達(dá)到推動(dòng)發(fā)射傳感器產(chǎn)生較強(qiáng)的超聲信號(hào)的要求,因此我們?cè)谥虚g加入了一個(gè)單電源乙類互補(bǔ)對(duì)稱功率放大電路,下圖3-2即是。圖3-2超聲波發(fā)射電路3.2接收電路設(shè)計(jì)當(dāng)接收換能器晶片接收超聲波的垂直的行動(dòng),它會(huì)產(chǎn)生越來越強(qiáng)烈的機(jī)械振動(dòng)由于共振,因?yàn)閴弘娦?yīng)晶圓形式雙方交替的等量異號(hào)電荷,但電荷的數(shù)量并不多,導(dǎo)致只能夠提供一個(gè)弱交流電壓信號(hào),沒有多余的電流信號(hào)。因此,自此應(yīng)當(dāng)加入一個(gè)前置放大電路是交變電壓信號(hào)變大。此外,還要對(duì)有可能產(chǎn)生影響信號(hào)的因素進(jìn)行處理,可以再加上一個(gè)濾波信號(hào),驅(qū)動(dòng)后的比較器輸出電位跳變,作為確定接收到的時(shí)刻。下圖3-3即是前置放大電路圖,它主要把有用的信號(hào)放大,以及減少噪聲的影響,使信噪比變化最大,并方便后面電路的設(shè)計(jì)。圖3-3前置放大電路圖由于超聲換能器的輸出電阻一般都比較大,所以前置放大器應(yīng)當(dāng)要有很大的輸出阻抗;另外,換能器的輸出電壓一般都很低,因此前置放大器就必須要有很高的精度以及很小的輸入偏置電壓。前置放大器是一個(gè)反向比例的放大器,能夠避免地線噪聲的干擾,它的主要組成部分有阻抗放大器TL082、電阻R、以及R。根據(jù)基本的電路知識(shí),可列出下式:I(3-2)I(3-3)理想放大器的重要特征有:1.集成運(yùn)放兩個(gè)輸入端之間的凈輸入電壓U一般是接近于零的,也就是U=U-UO,理想中U=0,它不是短路,被人們?nèi)∶麨樘摱獭?.集成運(yùn)放兩輸入端基本上不用電流,也就是凈輸入電流I0,理想中,它不是真正的斷開,被人們?nèi)∶麨樘摂?。故可知本電路中:U,且I所以有(3-4)上式即是輸出電壓與輸入電壓的關(guān)系式,其中“-”表示與相反。(3-5)上式即是電壓放大關(guān)系式,交直流輸入信號(hào)可以通過反相比例放大器來放大,它的電路設(shè)計(jì)比較容易,調(diào)節(jié)、的值即可增大電壓放大倍數(shù)。運(yùn)放的同相輸入端連接著,在選擇參數(shù)時(shí),要讓兩端的外接電流通路等效電阻平衡,也就是令,在靜態(tài)的時(shí)候,要讓輸入級(jí)偏置電流平衡,且使運(yùn)算放大器的兩個(gè)輸入端的外接電阻上有相同的壓降,來達(dá)到消除放大器的偏置電流以及漂移對(duì)輸出端的影響的目的,故又稱為平衡電阻。本系統(tǒng)需要的接收接收傳感器輸出電壓很小,所以令;;,即放大電路將輸入信號(hào)放大200倍。3.3單片機(jī)顯示電路設(shè)計(jì)顯示器作為一個(gè)輸出裝置,應(yīng)用是十分廣泛,絕大多數(shù)的電子設(shè)備都需要用到顯示器,它最大的差別也就是在結(jié)構(gòu)類型上。綜合課題的實(shí)際要求由數(shù)碼管,通過單片機(jī)編程實(shí)現(xiàn)顯示,表示距離的XXXcm數(shù)值。LED數(shù)碼管顯示與單片機(jī)接口一般有3個(gè)常見的問題:(1)采用共陰極管或者共陽極管顯示(2)由數(shù)碼轉(zhuǎn)換為筆劃信息借軟件譯碼或者硬件譯碼(3)使用動(dòng)態(tài)掃描或者靜態(tài)掃描的方式顯示上面說到的問題(1)選用共陰極管或者共陽極管顯示,這點(diǎn)沒有上面影響。下面3-4(a)即是數(shù)碼管,一個(gè)數(shù)碼管中8個(gè)發(fā)光二極管,組成“8”形式的七個(gè)數(shù)碼管的編號(hào)分別為a、b、c、d、e、f、g,還有一個(gè)為小數(shù)點(diǎn),標(biāo)為DP。如果某一端的發(fā)光二極管被導(dǎo)通,則那一段將會(huì)發(fā)光,因此是通過控制二極管的導(dǎo)通來顯示數(shù)值的。發(fā)光二極管的陰極管并聯(lián)在一起的時(shí)候被稱之為共陰,下圖中的(b)即是;而發(fā)光二極管的陽極并聯(lián)在一起時(shí)被稱之為共陽,下圖中的(c)即是。圖3-4數(shù)碼管結(jié)構(gòu)圖問題(2)所說的軟件譯碼即是把所有數(shù)碼的筆劃信息建立一個(gè)表格預(yù)儲(chǔ)于內(nèi)存中,后面就會(huì)按照顯示的每一數(shù)碼管來進(jìn)行一段查表程序,查的與之對(duì)應(yīng)的筆畫會(huì)傳輸?shù)较鄳?yīng)的數(shù)碼管上顯示;硬件譯碼采用的是BCD碼七段鎖存、譯碼以及驅(qū)動(dòng)芯片將筆畫直接翻譯過來。問題(3)所說的動(dòng)態(tài)掃描顯示是在單片機(jī)中應(yīng)用較為廣泛的一種方式。它的接口電路是把顯示器中的8個(gè)數(shù)段都連接在一起,所有的顯示器的公共極COM都是受到自己獨(dú)有的I/O線控制。CPU在向字段輸出口輸出字形碼的時(shí)候,每一個(gè)顯示器都收到的字形碼都是一樣的,但是具體哪一個(gè)亮是受到COM端控制的,也就是I/O控制,因此我們就可以自由的控制哪個(gè)亮哪個(gè)暗。動(dòng)態(tài)掃描顯示使用的是分時(shí)的方式,按順序控制COM端,讓所有的顯示器有順序的亮。在輪流點(diǎn)亮掃描顯示中,所有的顯示器的點(diǎn)亮?xí)r間都是一樣的,且短,但是因?yàn)槿藗兊囊曈X以及發(fā)光二極管的余輝效果能夠讓人們看到一組穩(wěn)定的顯示數(shù)據(jù),不過這需要掃描的速度快。采用靜態(tài)掃描方式控制點(diǎn)亮LED數(shù)碼管無位選信號(hào),各數(shù)碼管是同時(shí)點(diǎn)亮的;每數(shù)碼管應(yīng)顯示數(shù)碼的筆劃信息也分路同時(shí)送給。其原理比較簡(jiǎn)單。靜態(tài)掃描顯示編程容易,顯示比較清晰,亮度一般較高;但要求占用很多I/O接口線和增用不少硬件芯片,成本較高。因此,動(dòng)態(tài)掃描用得更多。圖3-5顯示部分電路圖上面我們對(duì)3個(gè)問題進(jìn)行了詳細(xì)的分析,從成本的角度出發(fā),本文的電路圖即為上圖3-5所示,選用的是3位共陰極數(shù)碼顯示管,顯示字符通過單片機(jī)的P2口傳輸?shù)芥i存器74HC574鎖存,在到顯示驅(qū)動(dòng)芯片ULN2003驅(qū)動(dòng)數(shù)碼管來進(jìn)行顯示,P0.1-P0.3是對(duì)3位字符進(jìn)行控制的。3.3.1LCD顯示部分本系統(tǒng)的顯示部分選用的是字符型TC1602液晶。TC1602顯示的容量為2行16個(gè)字。因?yàn)橐壕э@示屏相對(duì)于數(shù)碼管有很多的優(yōu)勢(shì),如微功耗、體積小、顯示內(nèi)容豐富等等。在應(yīng)用的時(shí)候,可以把P0與LCD的數(shù)據(jù)線相連,P2口與LCD的控制線相連,如下圖3-6:圖3-6TC1602液晶顯示電路圖中的TC1602第4腳RS表示為寄存器選擇,第5腳RW表示為讀寫信號(hào)線,第6腳E表示為使能端。第7-14腳:D0-D7表示為8位雙向數(shù)據(jù)線。需要格外留意的是:為了布線方便,單片機(jī)端的D0-D7是接到LCD/602的D1-D0,正好相反,所以在編寫軟件時(shí)應(yīng)當(dāng)做一些處理,以達(dá)到讀數(shù)準(zhǔn)確的目的。3.3.2報(bào)警部分選用的是一個(gè)蜂鳴器,由P1.2輸出一定頻率的信號(hào),在連接到蜂鳴器之前,通過一個(gè)三極管9012放大。報(bào)警部分的連線,如圖3-7所示。圖3-10報(bào)警電路3.4溫度補(bǔ)償模塊由于聲音的速度在不同的溫度下有所不同,因此為提高精度,應(yīng)通過溫度補(bǔ)償對(duì)超聲波的傳播速度進(jìn)行校正。系統(tǒng)采用DS18B20傳感器測(cè)量溫度,DS18B20溫度傳感器具有不受外界干擾、精度高、測(cè)溫范圍寬等優(yōu)點(diǎn)。單片機(jī)口接DS18B20數(shù)據(jù)總線,控制DS18B20進(jìn)行溫度轉(zhuǎn)換和傳輸數(shù)據(jù),數(shù)據(jù)總線接10kΩ的上拉電阻,作用是使總線控制器在溫度轉(zhuǎn)換期間無需一直保持高電平。圖3-11溫度傳感器DS18B20電路圖3-12溫度補(bǔ)償模塊電路

第4章軟件設(shè)計(jì)和測(cè)量結(jié)果分析4.1系統(tǒng)軟件設(shè)計(jì)系統(tǒng)程序結(jié)構(gòu):(1)DS18B20油量傳感器接口有三個(gè)模塊,即初始化程序、寫入命令、讀取子程序;(2)在YB1602的顯示模塊的基礎(chǔ)上可以把它分為初始化子程序、寫入子程序、顯示子程序;(3)油量補(bǔ)償與距離計(jì)算模塊有超聲波發(fā)送控制程序、接收處理程序、油量補(bǔ)償子程序等;(4)本系統(tǒng)使用C語言編寫程序,C語言相比匯編有諸多的優(yōu)點(diǎn);編譯器使用KeilVersion2進(jìn)行程序編譯,Keil功能強(qiáng)大使用方便。主程序有系統(tǒng)初始化、按鍵處理、各個(gè)子程序的調(diào)度管理等部分。如圖4-1所示描述了各個(gè)模塊的關(guān)系:圖4-1系統(tǒng)軟件方框圖系統(tǒng)主程序:本設(shè)計(jì)主程序的思想如下:(1)油量為兩位顯示,距離為四位顯示單位為mm;(2)油量每隔900ms采樣一次,DS18B20在12位精度下轉(zhuǎn)換周期為750ms,因此900ms能達(dá)到速度的需求;超聲波每隔60ms發(fā)送一次。(3)按鍵S為測(cè)量啟動(dòng)鍵;(4)系統(tǒng)采用AT89S52的內(nèi)時(shí)鐘:12MHz;(5)沒有使用看門狗功能;(6)超聲波發(fā)送一定時(shí)間后才開始啟動(dòng)檢測(cè),減少直達(dá)信號(hào)引起的干擾。因此系統(tǒng)最小測(cè)量在112mm左右;系統(tǒng)主程序如下:voidmain(void){uchari,j;for(i=0;i<255;i++)for(j=0;j<255;j++);//延時(shí),等待系統(tǒng)外圍復(fù)位完成sys_init();//初始化display();//顯示sta_flag=0;//標(biāo)準(zhǔn)復(fù)位waitforstarting://檢測(cè)按鍵while(START);for(i=0;i<20;i++)delay1ms();if(START)gotowaitforstarting;BUZZER=0;//蜂鳴器鳴音一次提示按鍵按下i=100000;while(i--);BUZZER=1;i=100000;while(i--);TR0=1;//啟動(dòng)定時(shí)器0ET0=1;testtemp();//啟動(dòng)油量轉(zhuǎn)換while(1){if(sta_flag)//60MS到了,超聲波已經(jīng)發(fā)送{while(0==CSBIN);//等待超聲波返回TR1=0;jsh=TH1;//停止計(jì)數(shù)jsl=TL1;if(15==count)//1S到,檢測(cè)油量{temp=wd();count=0;testtemp();//重新啟動(dòng)轉(zhuǎn)換display();//刷新顯示}computer();//計(jì)算距離hextobcd();//轉(zhuǎn)化成BCD碼sta_flag=0;//標(biāo)志清零}}}voidsys_init(void){uchari;for(i=0;i<29;i++)//顯示清零{num[i]=0;}TMOD=0x11;TH0=0x15;TL0=0xA0;P0=0;CNT=0;//超聲波發(fā)送關(guān)閉CSBIN=1;EA=1;//開放總中斷Init_LCD();}4.2外部中斷子程序如圖所示,中斷服務(wù)程序是響應(yīng)單片機(jī)的外部中斷。圖4-2外部中斷子程序在本設(shè)計(jì)中,發(fā)射的40KHz脈沖信號(hào)在遇到障礙物之后,會(huì)出現(xiàn)反射的現(xiàn)象,然后接受探頭傳感器會(huì)把外中斷信號(hào)傳輸?shù)絾纹瑱C(jī)中。在中斷服務(wù)例程中,首先進(jìn)行現(xiàn)場(chǎng)保護(hù),然后讀取進(jìn)入中斷服務(wù)例程的計(jì)數(shù)值,處理數(shù)據(jù)計(jì)算距離值,將其轉(zhuǎn)換為十進(jìn)制的數(shù)值,最后發(fā)送給P2端口顯示輸出。voidJULIJS()//使用全局變量,可以定義為空{(diào)floatc,d,s;uintt;if(temp<0x8000)c=331.4+0.61*temp*0.0625; else //油量為負(fù)c=331.4-0.61*temp*0.0625;t=jsh*256+jsl-120; //計(jì)算計(jì)數(shù)值d=(c*t*0.001)/2;d*=d;s=d-7.98;distance=sqrt(s); //修正后的值,數(shù)據(jù)通過全局變量distance傳輸}/****************轉(zhuǎn)換成2進(jìn)制***************/voidHEXtoBCD() {floattp;unsignedlonginttmp;fuhao=0; //油量符號(hào)位if(temp<0x8000)tp=temp*0.0625;else //油量為負(fù),則求補(bǔ)碼得到原碼{BUMA();tp=temp*0.0625;fuhao=1;}tp*=10;tmp=tp;num[12]=tmp/100; //數(shù)據(jù)轉(zhuǎn)換后放到顯示數(shù)組里面if(fuhao)num[12]=num[12]|0x80; //最高位加上符號(hào)位num[13]=tmp/10-(tmp/100)*10;tmp=distance;num[25]=tmp/1000;tmp%=1000;num[26]=tmp/100;tmp%=100;num[27]=tmp/10;tmp%=10;num[28]=tmp/1;}4.3定時(shí)器中斷子程序下圖4-3即是定時(shí)器的定時(shí)中斷子程序流程。本文選用的是51單片機(jī),它是16位定時(shí)器,最大計(jì)時(shí)時(shí)間是65536us,如果測(cè)量的距離非常遠(yuǎn),定時(shí)器就會(huì)自動(dòng)溢出;因此需要對(duì)溢出中斷進(jìn)行詳細(xì)的設(shè)置,以此讓51單片機(jī)正常運(yùn)行。此外,電路的最大測(cè)量距離為5米。如果測(cè)量距離大于5米,則無法通過接收探頭測(cè)量回波,這意味著不會(huì)產(chǎn)生外部中斷,并且不能執(zhí)行關(guān)閉定時(shí)器的操作。圖4-3定時(shí)中斷子程序流程程序如下:voidtimer1(void)interrupt2using1 {TR1=0;} //關(guān)閉定時(shí)器/計(jì)數(shù)器1 /*********定時(shí)器0溢出中斷函數(shù),每60MS溢出****************/voidtimer0(void)interrupt1using0 //定時(shí)器0{TH0=0x15;TL0=0xA0; //定時(shí)器0設(shè)定初值TH1=0; TL1=0; //計(jì)數(shù)器1清零sta_flag=1; count++;_nop_();_nop_();_nop_();_nop_();CNT=1; //先延時(shí),后開始發(fā)送40KHz的超聲波_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();//40KHZ的倒數(shù)就是25us,12個(gè)_nop_();就是24usCNT=0; //保持一段時(shí)間高電平_nop_();_nop_();_nop_();_nop_();TR1=1; //延時(shí),避免直達(dá)信號(hào)干擾,啟動(dòng)定時(shí)器/計(jì)數(shù)器1delay15(50); //延時(shí)避開直達(dá)信號(hào)}

總結(jié)與展望超聲波油量測(cè)量的原理是利用超聲波的發(fā)射和接收,根據(jù)超聲波傳播的時(shí)間來計(jì)算出傳播距離。實(shí)用的測(cè)距方法有兩種,一種是在被測(cè)距離的兩端,一端發(fā)射,另一端接收的直接波方式,適用于身高計(jì);另一種是發(fā)射波被物體反射回來后接收的反射波方式,適用于測(cè)距儀;此次設(shè)計(jì)采用反射波方式。超聲波油量測(cè)量?jī)x單片機(jī)采用AT89C51。采用12MHz高精度的晶振,以獲得較穩(wěn)定時(shí)鐘頻率,減小測(cè)量誤差。單片機(jī)用P1.0端口輸出超聲波換能器所需的40kHz的方波信號(hào),利用外中斷0口監(jiān)測(cè)超聲波接收電路輸出的返回信號(hào)。顯示電路采用簡(jiǎn)單實(shí)用的4位共陽LED數(shù)碼管,段碼用74LS244驅(qū)動(dòng),位碼用PNP三極管8550驅(qū)動(dòng)。本系統(tǒng)是以AT89C51單片機(jī)為核心,通過模數(shù)電技術(shù)以及單片機(jī)技術(shù)的結(jié)合,解決了超聲波油量測(cè)量的存在的一些問題。利用單片機(jī)的操作和控制功能,利用超聲波的特性,設(shè)計(jì)了一套簡(jiǎn)單的油量測(cè)量系統(tǒng)。超聲波檢測(cè)的使用往往快捷、方便、計(jì)算簡(jiǎn)單、易于實(shí)現(xiàn)實(shí)時(shí)控制,并能在測(cè)量精度方面滿足工業(yè)和實(shí)際的要求。隨著科學(xué)技術(shù)的飛速發(fā)展,超聲波的應(yīng)用將越來越廣泛。當(dāng)前的超聲波技術(shù)水平還有很多的缺陷,所以,這是一個(gè)正在蓬勃發(fā)展而又有無限前景的技術(shù)以及產(chǎn)業(yè)領(lǐng)域。從課題選擇、方案論證到具體設(shè)計(jì),我查閱了大量的資料。對(duì)一些疑難的問題,我得到了老師和同學(xué)的幫助。在三年的專科學(xué)習(xí)和生活期間,也始終感受著導(dǎo)師的精心指導(dǎo)和無私的關(guān)懷,我受益匪淺。在此向老師們表示深深的感謝和崇高的敬意。

參考文獻(xiàn)[1]陶潔,肖桂鳳,遲權(quán)德.基于AT89C52單片機(jī)的超聲波油量測(cè)量?jī)x的設(shè)計(jì)[J].電子設(shè)計(jì)工程,2012,02:135-137+140.[2]李翠花,梁德民,周曉美.高精度的超聲波油量測(cè)量系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].合肥學(xué)院學(xué)報(bào)(自然科學(xué)版),2012,01:41-44.[3]沈燕,高曉蓉,孫增友,李金龍.基于單片機(jī)的超聲波油量測(cè)量?jī)x設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012,07:126-129.[4]劉春,陳林.探析基于單片機(jī)油量測(cè)量?jī)x的設(shè)計(jì)與實(shí)現(xiàn)[J].制造業(yè)自動(dòng)化,2012,09:140-142.[5]徐軍,孫振偉,王華東.基于ARM處理器的兩路超聲波油量測(cè)量?jī)x設(shè)計(jì)[J].壓電與聲光,2012,06:958-962.[6]張敏,寇為剛.基于超聲波的自動(dòng)油量測(cè)量系統(tǒng)設(shè)計(jì)[J].自動(dòng)化技術(shù)與應(yīng)用,2011,04:106-110.[7]李世軍,周惠芳,金徐歡.基于單片機(jī)的超聲波油量測(cè)量?jī)x的研究與設(shè)計(jì)[J].湖南工程學(xué)院學(xué)報(bào)(自然科學(xué)版),2011,02:13-15.[8]安長(zhǎng)俊,周家婕.基于PICmicro系列單片機(jī)的超聲波油量測(cè)量?jī)x設(shè)計(jì)[J].科教文匯(上旬刊),2011,08:104+106.[9]張海英.基于單片機(jī)超聲波油量測(cè)量?jī)x的設(shè)計(jì)[J].科技信息,2011,22:557-558.[10]高美霞,柏建普.單片機(jī)控制的超聲波油量測(cè)量?jī)x汽車倒車系統(tǒng)的設(shè)計(jì)[J].自動(dòng)化技術(shù)與應(yīng)用,2011,11:58-60+65.[11]孔德華.談超聲波油量測(cè)量?jī)x硬件系統(tǒng)中的單片機(jī)系統(tǒng)[J].電子世界,2011,15:13+16.[12]張野.基于STC89C52單片機(jī)的超聲波油量測(cè)量?jī)x設(shè)計(jì)[J].科技與企業(yè),2015,03:91.[13]虞新軍,鄧玉良.基于MSP430單片機(jī)控制的超聲波油量測(cè)量?jī)x軟件系統(tǒng)設(shè)計(jì)[J].科技傳播,2015,10:161+160.[14]于姣.基于單片機(jī)帶油量補(bǔ)償?shù)某暡ㄓ土繙y(cè)量?jī)x設(shè)計(jì)[J].電子科技,2015,08:56-59.

致謝本論文是在導(dǎo)師的諄諄教誨和指導(dǎo)下完成的,從選題、構(gòu)思到定稿無不滲透著導(dǎo)師的心血和汗水;導(dǎo)師淵博的知識(shí)和嚴(yán)謹(jǐn)?shù)膶W(xué)風(fēng)使我受益終身,在此表示深深的敬意和感謝。這次寫論文的經(jīng)歷也會(huì)使我終身受益,我感受到,做論文是要真真正正用心去做的一件事情,是真正的自己學(xué)習(xí)的過程和研究的過程。沒有認(rèn)真學(xué)習(xí)和鉆研,自己就不可能有研究的能力,就不可能有自己的研究,就不會(huì)有所收獲和突破。希望這個(gè)經(jīng)歷,在今后的學(xué)習(xí)和生活中能夠繼續(xù)激勵(lì)我前進(jìn)。另外,還要特別感謝我的家人,他們時(shí)刻關(guān)心我,給我提供了學(xué)習(xí)的機(jī)會(huì),時(shí)時(shí)刻刻為我鼓勁、為我加油,進(jìn)而促使我不斷成長(zhǎng)和進(jìn)步。同時(shí),也要感謝寢室的室友以及所有關(guān)心我的朋友,感謝他們陪伴我走過了很多美好的時(shí)光,在我遇到困難時(shí)他們關(guān)心我、幫助我。在完成畢業(yè)論文的過程中,很多朋友都給了我無私的幫助和支持,在此表示由衷的謝意!最后,因本人水平有限,論文肯定還有不少不足之處,懇請(qǐng)各位老師批評(píng)指正,我希望可以有機(jī)會(huì)繼續(xù)去完善,我將不斷努力繼續(xù)充實(shí)自己。

附錄1系統(tǒng)整體圖

附錄2源代碼源程序#include<reg52.h>#include<intrins.h>#include<math.h>#defineucharunsignedchar#defineuintunsignedintucharcodedispBUF[33]={"Temperature:Distance:mm"};ucharnumcode[10]={'0','1','2','3','4','5','6','7','8','9'};uintnum[29]={0};ucharjsh,jsl; //計(jì)數(shù)器的高低位ucharcount=0; //10秒計(jì)次數(shù)uintdistance; //距離uinttemp; //油量變量ucharbdataflag; //DS18B20存在標(biāo)準(zhǔn)sbitRS=P2^0; //LCDRSsbitRW=P2^1; //LCDRWsbitE=P2^2; //LCDEsbitDQ=P2^7; //DS18B20數(shù)字端口sbitBusy=P0^7; //LCD忙voidDelay(uinttime);voiddelay1ms(uintms);voiddelay();voiddelay15(ucharus);voidBUMA(void);voidB20_WDAT(uchardat);ucharB20_RDAT(void);voidInit_18B20(void); //初始化18B20voidWrite_Comm(uchar); //寫入LCD命令voidWrite_Data(uchar); //寫入LCD數(shù)據(jù)voidInit_LCD(void);sbitsta_flag=flag^0; //10MS到標(biāo)準(zhǔn)位,flag即通用標(biāo)志位,當(dāng)sta_flag=1時(shí),表示到了10mssbitfuhao=flag^1; //油量的符號(hào)位sbitSTART=P1^0; //啟動(dòng)油量測(cè)量sbitCNT=P2^5; //發(fā)射超聲波sbitCSBIN=P2^6; //返回信號(hào)sbitBUZZER=P3^7;/******************定時(shí)器1溢出***************************/voidtimer1(void)interrupt2using1 {TR1=0;} //關(guān)閉定時(shí)器/計(jì)數(shù)器1 /*********定時(shí)器0溢出中斷函數(shù),每60MS溢出****************/voidtimer0(void)interrupt1using0 //定時(shí)器0{TH0=0x15;TL0=0xA0; //定時(shí)器0設(shè)定初值TH1=0; TL1=0; //計(jì)數(shù)器1清零sta_flag=1; count++;_nop_();_nop_();_nop_();_nop_();CNT=1; //先延時(shí),后開始發(fā)送40KHz的超聲波_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();//40KHZ的倒數(shù)就是25us,12個(gè)_nop_();就是24usCNT=0; //保持一段時(shí)間高電平_nop_();_nop_();_nop_();_nop_();TR1=1; //延時(shí),避免直達(dá)信號(hào)干擾,啟動(dòng)定時(shí)器/計(jì)數(shù)器1delay15(50); //延時(shí)避開直達(dá)信號(hào)}/***************系統(tǒng)初始化*************************/voidSYS_INIT(){uchari;for(i=0;i<29;i++) //顯示清零{num[i]=0;}TMOD=0x11; //工作方式寄存器TMOD,設(shè)置定時(shí)器/計(jì)數(shù)器0和1均為16位定時(shí)/計(jì)數(shù)器TH0=0x15;TL0=0xA0;//設(shè)置定時(shí)器/計(jì)數(shù)器0的初值,60ms溢出P0=0;CNT=0; //P2^5口,發(fā)射發(fā)射超聲波CSBIN=1; //P2^6口,接收信號(hào)EA=1; //開總中斷}/******************距離計(jì)算***************************/voidJULIJS()//使用全局變量,可以定義為空{(diào)floatc,d,s;uintt;if(temp<0x8000)c=331.4+0.61*temp*0.0625; else //油量為負(fù)c=331.4-0.61*temp*0.0625;t=jsh*256+jsl-120; //計(jì)算計(jì)數(shù)值d=(c*t*0.001)/2;d*=d;s=d-7.98;distance=sqrt(s); //修正后的值,數(shù)據(jù)通過全局變量distance傳輸}/****************轉(zhuǎn)換成2進(jìn)制***************/voidHEXtoBCD() {floattp;unsignedlonginttmp;fuhao=0; //油量符號(hào)位if(temp<0x8000)tp=temp*0.0625;else //油量為負(fù),則求補(bǔ)碼得到原碼{BUMA();tp=temp*0.0625;fuhao=1;}tp*=10;tmp=tp;num[12]=tmp/100; //數(shù)據(jù)轉(zhuǎn)換后放到顯示數(shù)組里面if(fuhao)num[12]=num[12]|0x80; //最高位加上符號(hào)位num[13]=tmp/10-(tmp/100)*10;tmp=distance;num[25]=tmp/1000;tmp%=1000;num[26]=tmp/100;tmp%=100;num[27]=tmp/10;tmp%=10;num[28]=tmp/1;}/**************油量轉(zhuǎn)換函數(shù)***************************/voidTESTTEMP(){Init_18B20(); //初始化18B20if(flag){B20_WDAT(0xCC); //跳過讀序號(hào)列號(hào)的操作,忽略ROM匹配B20_WDAT(0x44); //發(fā)送油量轉(zhuǎn)化命令}}/***********讀取油量函數(shù)**************/uintGET_WD(void){uinta=0,b=0,t=0;Init_18B20(); //初始化18B20B20_WDAT(0xCC); //跳過讀序號(hào)列號(hào)的操作B20_WDAT(0xBE); //發(fā)送讀油量命令 a=B20_RDAT();b=B20_RDAT(); //讀取一個(gè)字節(jié)(讀出高8位和低8位)t=b;t<<=8;t=t|a; //字節(jié)合并return(t); //返回結(jié)果給調(diào)用}/***************18B20復(fù)位函數(shù)***********************/voidInit_18B20(){DQ=1; //DQ復(fù)位Delay(10);DQ=0; //單片機(jī)將DQ拉低Delay(80); //480usDQ=1; //拉高總線Delay(10); //稍做延時(shí)后如果x=0則初始化成功,x=1則初始化失敗if(DQ)flag=0;elseflag=1;Delay(20);}/*******************讀數(shù)據(jù)******************************/ucharB20_RDAT(void) //讀取一個(gè)字節(jié){uchari=0;uchardat=0;for(i=8;i>0;i--){DQ=0; //拉低數(shù)據(jù)線,開始讀數(shù)據(jù)dat>>=1;DQ=1; //拉高數(shù)據(jù)線,停止讀數(shù)據(jù)if(DQ)dat|=0x80; //拼裝處理Delay(15);}return(dat); //注意讀取的為補(bǔ)碼}/*********************寫數(shù)據(jù)****************************/voidB20_WDAT(uchardat){uchari=0;for(i=8;i>0;i--){DQ=0; //拉低數(shù)據(jù)線至少15us以作為起始信號(hào)DQ=dat&0x01; //取出低位的一位數(shù)據(jù)Delay(5); //稍作延時(shí)DQ=1; //將數(shù)據(jù)線拉高以作為停止信號(hào)dat>>=1; //移位,為寫入下一位數(shù)據(jù)做準(zhǔn)備}}/*******************數(shù)據(jù)轉(zhuǎn)換函數(shù)**************************/voidBUMA(){temp=~temp; //按位取反 temp+=1;}/**************************LCD顯示函數(shù)*******************/voidLCD_DISP(){uchara,b,d;Init_LCD();Write_Comm(0x01); //清顯示W(wǎng)rite_Comm(0x80); //寫首地址for(a=0;a<16;a++){d=dispBUF[a];if((a>11)&&(a<14)) //如果是結(jié)果位到num[]里面讀取{d=numcode[num[a]]; //待顯示的結(jié)果}if(14==a){d=0xdf;}Write_Data(d); //寫入要顯示的數(shù)據(jù)}Write_Comm(0xc0); //換行,換到第二行for(b=16;b<33;b++){d=dispBUF[b];if((b>24)&&(b<29)){d=numcode[num[b]];}Write_Data(d); //寫入要顯示的數(shù)據(jù)(數(shù)據(jù)傳輸)}}/*********檢查L(zhǎng)CD忙狀態(tài)***********/bitLCD_BUSY() //lcd_busy為1時(shí),忙,等待。lcd-busy為0時(shí),閑,可寫指令與數(shù)據(jù){bitBS;RW=1;RS=0;E=1;delay1ms(1);BS=(bit)(P0&0x80);E=0;returnBS;}/*******************寫指令函數(shù)******************************/voidWrite_Comm(ucharlcdcomm) //寫指令{ while(LCD_BUSY());RS=0;RW=0;E=1;delay1ms(1); P0=lcdcomm;de

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論