版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
]。已知超聲波速度與溫度的關(guān)系如下:式中:r—?dú)怏w定壓熱容與定容熱容的比值,對(duì)空氣為1.40,R—?dú)怏w普適常量,,M—?dú)怏w分子量,空氣為,T—絕對(duì)溫度,273K+T℃。近似公式為:式中:C0為零度時(shí)的聲波速度332m/s;T為實(shí)際溫度(℃)。對(duì)于超聲波油位測(cè)量?jī)x精度要求達(dá)到1mm時(shí),就必須把超聲波傳播的環(huán)境溫度考慮進(jìn)去。例如當(dāng)溫度0℃時(shí)超聲波速度是332m/s,30℃時(shí)是350m/s,溫度變化引起的超聲波速度變化為18m/s。若超聲波在30℃的環(huán)境下以0℃的聲速測(cè)量100m距離所引起的測(cè)量誤差將達(dá)到5m,測(cè)量1m誤差將達(dá)到5mm。超聲發(fā)生器可分為兩類:一類是用電方法產(chǎn)生超聲,另一類是用機(jī)械方法產(chǎn)生超聲。電學(xué)模式包括壓電模式和電學(xué)模式,機(jī)械模式包括卡爾頓笛子、液體哨子和空氣哨子等,它們產(chǎn)生的超聲波的頻率、功率和諧波特性不同,其用途也不同。目前,壓電式超聲波傳感器在短距離測(cè)量中得到了廣泛的應(yīng)用。
第三章系統(tǒng)硬件設(shè)計(jì)系統(tǒng)硬件主要由單片機(jī)系統(tǒng)和顯示電路、超聲波發(fā)射電路、超聲波檢測(cè)接收電路和溫度補(bǔ)償電路組成。隨著超聲波測(cè)量技術(shù)的不斷進(jìn)步,在任何目標(biāo)物的超聲波測(cè)量中都存在著超聲波的發(fā)射和接收問(wèn)題。當(dāng)使用超聲波技術(shù)測(cè)量多種目標(biāo)時(shí),超聲波的傳輸和接收性能將會(huì)不足。超聲波的作用與其大小、形狀以及靈敏度都沒(méi)有直接的關(guān)系,因?yàn)樗鼈兊脑矶际窍嗤?,因此需要提升超聲測(cè)量的精度以及分辨力都需要在超聲波的發(fā)射以及接受中著手,這是改良超聲波測(cè)量?jī)x器的重點(diǎn)與難點(diǎn)。發(fā)射電路利用單片機(jī)的P1.0端口對(duì)40kHz左右的方波脈沖信號(hào)進(jìn)行編程輸出,同時(shí)開(kāi)啟內(nèi)部計(jì)數(shù)器t0。因?yàn)閱纹瑱C(jī)端口輸出的功率比較微弱,因此需要在電路中加上功率放大電路以達(dá)到油量測(cè)量的要求,以此讓驅(qū)動(dòng)超聲傳感器UCM-40T1發(fā)射超聲波的距離較遠(yuǎn)。由于UCM40T的超聲回波很弱(幾十毫伏級(jí)),且噪聲很強(qiáng),因此在放大電路中必須考慮放大信號(hào)和噪聲抑制。本文采用CX20106A集成電路對(duì)接收探頭接收到的信號(hào)進(jìn)行放大和濾波處理。這些信號(hào)通過(guò)P2.7端口發(fā)送到MCU進(jìn)行處理。為了節(jié)省硬件考慮,顯示電路采用動(dòng)態(tài)掃描顯示。通過(guò)單片機(jī)編程,將內(nèi)部計(jì)數(shù)得到的時(shí)間數(shù)據(jù)轉(zhuǎn)換成距離信息,由三個(gè)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組成的推挽式電路來(lái)用作功率放大,使發(fā)射的距離增大,以達(dá)到油量測(cè)量的需求,另一個(gè)則給了超聲波發(fā)射換能器TCT40-16T,最后以聲波的形式發(fā)射到空氣中。發(fā)射部分的電路如圖3-1所示。一方面,圖中輸出端的上拉電阻r31和r32可以提高74hc04輸出高電平的驅(qū)動(dòng)能力,另一方面可以提高超聲換能器的阻尼效應(yīng),縮短其自由振蕩時(shí)間。圖3-1超聲波發(fā)射電路框3.1.1發(fā)射電路設(shè)計(jì)方案①發(fā)射波形的重復(fù)性為了獲得高分辨率,發(fā)射電路的設(shè)計(jì)應(yīng)保證發(fā)射的超聲波波形具有良好的重復(fù)性;而且,發(fā)射的超聲波應(yīng)盡可能簡(jiǎn)單,即發(fā)射的每一個(gè)振動(dòng)都應(yīng)近似于同一頻率的振動(dòng),從而使帶阻放大器SS濾波器可以消除干擾,每次都能收到相同的振動(dòng)峰值。為了避免超聲波在障礙物表面反射造成的各種損失和干擾。超聲波就是在換能器電晶片振動(dòng)時(shí)由周圍的空氣而產(chǎn)生的波形,它的波形與晶片振動(dòng)的頻率應(yīng)當(dāng)是一樣的。因此,發(fā)射電路的設(shè)計(jì)要科學(xué),以減少對(duì)發(fā)射功率以及波形重復(fù)性的影響。傳輸電路通常分為單脈沖傳輸、多脈沖傳輸和連續(xù)傳輸。測(cè)距中使用的超聲波通常是通過(guò)不連續(xù)的單脈沖傳輸?shù)?,每次測(cè)距時(shí)都會(huì)發(fā)射和接收一次。傳感器晶片的振動(dòng)是間歇性的。該方法距離測(cè)試距離太近,系統(tǒng)采用間歇多脈沖傳輸,系統(tǒng)自動(dòng)識(shí)別測(cè)量距離,并設(shè)置發(fā)射脈沖數(shù)。②發(fā)射波形電壓及功率傳感器的發(fā)送器電壓主要取決于發(fā)送器信號(hào)損耗和接收器的靈敏度。它綜合了各種損耗因素,包括往返傳輸損耗、聲傳輸損耗、聲反射損耗和環(huán)境噪聲損耗。另外,實(shí)際發(fā)射機(jī)的最大輸入電壓為20VP-P,單片機(jī)的最大輸出電壓為5V,發(fā)射機(jī)發(fā)射信號(hào)。功率直接決定了發(fā)射探頭發(fā)射超聲波信號(hào)的距離,因此在考慮電壓的同時(shí),應(yīng)考慮如何提高功率,使發(fā)射電路更加合理。3.1.2發(fā)射電路常用方案從以上分析可知,發(fā)射電路設(shè)計(jì)的主要目的是提高發(fā)射探頭的電壓和功率輸入。該系統(tǒng)用單片機(jī)P1.0傳輸一組方波脈沖信號(hào)。其輸出波形穩(wěn)定可靠,但輸出電流和功率很低。它不能驅(qū)動(dòng)發(fā)射傳感器發(fā)出足夠強(qiáng)度的超聲波信號(hào)。因此這里增加了一個(gè)單電源B型互補(bǔ)對(duì)稱功率放大器電路,如圖3-2所示。圖3-2超聲波發(fā)射電路3.2接收電路設(shè)計(jì)當(dāng)接收換能器晶片受到超聲波的垂直作用時(shí),由于共振,機(jī)械振動(dòng)逐漸加強(qiáng)。由于壓電效應(yīng)晶片兩側(cè)的等電荷交替,電荷量很小。它只能提供很小的交流電壓信號(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í)刻。前置放大器電路單元的功能是放大有用的信號(hào),抑制其它噪聲和干擾,從而達(dá)到最大的信噪比,有利于后續(xù)電路的設(shè)計(jì)。圖3-3前置放大電路圖電路如圖3-3所示,由于超聲換能器的輸出電阻一般都比較大,所以前置放大器應(yīng)當(dāng)要有很大的輸出阻抗;另外,換能器的輸出電壓一般都很低,因此前置放大器就必須要有很高的精度以及很小的輸入偏置電壓。前置放大器是一個(gè)反向比例的放大器,能夠避免地線噪聲的干擾,它的主要組成部分有阻抗放大器TL082、電阻R2、R3和Rp。組成反向比例放大電路,這樣可以減小地線噪聲的影響。由電路的基本知識(shí),可列出:I(3-1)I(3-2)根據(jù)放大器理想化的兩個(gè)重要概念:1.集成運(yùn)放兩個(gè)輸入端之間的凈輸入電壓U通常接近于零,即U=U-UO,若把它理想化,則有U=0,但不是短路,故常稱為虛短。2.集成運(yùn)放兩輸入端幾乎不取用電流,即凈輸入電流I0,如把它理想化,則有,但不是斷開(kāi),故常稱為虛斷。故可知本電路中:U,且I所以有(3-3)上式表明,輸出電壓與輸入電壓成比例運(yùn)算關(guān)系,式中的負(fù)號(hào)表示與反相。電路的電壓放大倍數(shù)為:(3-4)利用反相比例放大器可實(shí)現(xiàn)對(duì)交直流輸入信號(hào)的放大,且電路結(jié)構(gòu)簡(jiǎn)單,只需要調(diào)節(jié)和阻值即可實(shí)現(xiàn)調(diào)節(jié)電壓放大倍數(shù)。圖中運(yùn)放的同相輸入端接有電阻,參數(shù)選擇時(shí)應(yīng)使兩輸入端外接直流通路等效電阻平衡,即,靜態(tài)時(shí)使輸入級(jí)偏置電流平衡并讓輸入級(jí)的偏置電流在運(yùn)算放大器的兩個(gè)輸入端的外接電阻上產(chǎn)生相等的壓降,以便消除放大器的偏置電流及漂移對(duì)輸出端的影響,故又稱為平衡電阻。根據(jù)本設(shè)計(jì)系統(tǒng)需要,接收傳感器輸出電壓很?。〝?shù)十毫伏),故分別取;;,即放大電路將輸入信號(hào)放大200倍。3.3單片機(jī)顯示電路設(shè)計(jì)顯示器是一種典型的輸出設(shè)備,其應(yīng)用非常廣泛。幾乎所有的電子產(chǎn)品都使用顯示器,區(qū)別僅僅在于顯示器的結(jié)構(gòu)不同。最簡(jiǎn)單的顯示器可以使LED發(fā)光二極管給出一個(gè)簡(jiǎn)單的開(kāi)關(guān)信息,而更復(fù)雜和完整的顯示器應(yīng)該是CRT顯示器或液晶顯示器,在顯示范圍4米內(nèi)有一個(gè)更大的屏幕,用三位LED來(lái)顯示距離的XXXcm值。液晶屏。綜合學(xué)科的實(shí)際需求用數(shù)碼管顯示,用單片機(jī)編程,表示距離的XXXcm值。LED數(shù)碼管顯示與單片機(jī)接口通常涉及以下幾個(gè)問(wèn)題:(1)LED數(shù)碼管顯示用普通陰極管或普通陽(yáng)極管(2)用于從數(shù)字轉(zhuǎn)換為行程信息的軟硬件解碼(3)動(dòng)態(tài)掃描或靜態(tài)掃描顯示掃描問(wèn)題1:使用共陰極數(shù)碼管或共陽(yáng)極數(shù)碼管沒(méi)有明顯的優(yōu)缺點(diǎn)。如圖3-4(a)所示,每個(gè)數(shù)碼管由八個(gè)發(fā)光二極管組成,其中七個(gè)由七個(gè)8形筆畫(huà)組成,編號(hào)為A、B、C、D、E、F、G,以及一個(gè)標(biāo)記為dp的小數(shù)點(diǎn)。當(dāng)發(fā)光二極管打開(kāi)時(shí),相應(yīng)的行程或點(diǎn)會(huì)亮起,通過(guò)控制不同的二極管打開(kāi)可以顯示不同的符號(hào)。發(fā)光二極管的陰極稱為普通陰極數(shù)碼管,如圖3-4(b)所示,發(fā)光二極管的陽(yáng)極稱為普通陽(yáng)極,如圖3-4(c)所示。兩種數(shù)碼管在單片機(jī)編程時(shí),只有不同的行程信息碼。圖3-4數(shù)碼管結(jié)構(gòu)圖問(wèn)題2:軟件解碼是將每個(gè)數(shù)字的筆畫(huà)信息預(yù)存到內(nèi)存中的表格中,然后根據(jù)要顯示的每個(gè)數(shù)字執(zhí)行查找過(guò)程,找到相應(yīng)的筆畫(huà)信息并發(fā)送到數(shù)碼管顯示器。硬件解碼采用CD4511、74LS46、74LS47、74LS48、74LS49等七段BCD碼直接鎖存、解碼和驅(qū)動(dòng)筆畫(huà)信息。問(wèn)題3:動(dòng)態(tài)掃描顯示接口是單片機(jī)中應(yīng)用最廣泛的顯示方式之一。其接口電路是將所有同名端顯示器的八個(gè)行程段A-H連接起來(lái),每個(gè)顯示器的公共極COM由I/O線獨(dú)立控制。當(dāng)CPU將字體代碼發(fā)送到現(xiàn)場(chǎng)輸出端口時(shí),所有的監(jiān)視器都會(huì)收到相同的字體代碼,但是顯示是否亮取決于由I/O控制的COM終端,因此我們可以決定何時(shí)顯示哪個(gè)。所謂動(dòng)態(tài)掃描,就是我們用分時(shí)方法依次控制每個(gè)顯示器的COM終端,使每個(gè)顯示器都打開(kāi)。在旋轉(zhuǎn)上光掃描過(guò)程中,每個(gè)顯示器的上光時(shí)間極短(約1毫秒)。然而,由于人類視覺(jué)的持續(xù)性和發(fā)光二極管的余輝效應(yīng),雖然實(shí)際上每臺(tái)顯示器都沒(méi)有同時(shí)點(diǎn)亮,但只要掃描速度足夠快,就會(huì)給人的印象是一組穩(wěn)定的顯示數(shù)據(jù)不會(huì)閃爍。采用靜態(tài)掃描方式控制照明LED數(shù)碼管的無(wú)位置信號(hào),同時(shí)點(diǎn)亮各數(shù)碼管。每個(gè)數(shù)碼管應(yīng)顯示數(shù)字?jǐn)?shù)據(jù)的筆畫(huà),并同時(shí)發(fā)送給每個(gè)數(shù)碼管。它的原理相對(duì)簡(jiǎn)單。靜態(tài)掃描顯示易于編程,顯示清晰,亮度一般較高,但它需要大量的I/O接口線和大量的硬件芯片,成本較高。因此,多采用動(dòng)態(tài)掃描。AT89C52AT89C52圖3-5顯示部分電路圖針對(duì)上述三個(gè)問(wèn)題,從節(jié)約單片機(jī)的接口資源、降低硬件芯片成本等方面進(jìn)行了實(shí)際考慮。本單元電路設(shè)計(jì)如圖3-5所示。采用三位通用陰極數(shù)字顯示管。顯示字符從MCUP2端口發(fā)送到閂鎖74HC574,然后由顯示驅(qū)動(dòng)芯片uln2o03顯示以驅(qū)動(dòng)數(shù)碼管。P.1-P.3分別控制每個(gè)位的動(dòng)態(tài)顯示。3.3.1LCD顯示部分本設(shè)計(jì)的顯示部分采用字符LCD1602液晶顯示測(cè)量距離值。LCD1602顯示2行16字的容量。液晶顯示器具有功耗低、體積小、顯示內(nèi)容豐富、超薄輕便、使用方便等優(yōu)點(diǎn),與數(shù)碼管相比,更專業(yè)美觀。使用時(shí),p0可與LCD的數(shù)據(jù)線連接,p2口可與LCD的控制線連接,如圖所示。圖3-6LCD1602液晶顯示電路其中,LCD1602的第四個(gè)RS是寄存器選擇,第五個(gè)RW是讀寫(xiě)信號(hào)線,第六個(gè)E是啟用碼。foot7-14:d0-d7是一條8位雙向數(shù)據(jù)線。需要注意的是,為了便于接線,單片機(jī)終端的D0-D7為D1-D0,與LCD/602相連。相反,在編寫(xiě)軟件時(shí)需要對(duì)其進(jìn)行處理,使其正確閱讀。3.3.2報(bào)警部分采用一個(gè)蜂鳴器,由P1.2輸出一定頻率的信號(hào),在連接到蜂鳴器之前,經(jīng)過(guò)一個(gè)三極管9012的放大。報(bào)警部分的連線,如圖3-7所示。圖3-10報(bào)警電路
第四章軟件設(shè)計(jì)和測(cè)量結(jié)果分析4.1系統(tǒng)軟件設(shè)計(jì)系統(tǒng)程序結(jié)構(gòu):(1)DS18B20溫度傳感器接口模塊,分為初始化程序、寫(xiě)入命令以及讀取子程序等部分;(2)基于YB1602的顯示模塊,分為初始化子程序、寫(xiě)入子程序以及顯示子程序;(3)溫度補(bǔ)償與距離計(jì)算模塊、分為超聲波發(fā)送控制程序、接收處理程序、溫度補(bǔ)償子程序等;(4)本次設(shè)計(jì)使用C語(yǔ)言編寫(xiě)程序,C語(yǔ)言相比匯編有許多的優(yōu)勢(shì);編譯器使用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滿足該速度要求;超聲波每隔60ms發(fā)送一次。(3)按鍵S為測(cè)量啟動(dòng)鍵;(4)系統(tǒng)采用AT89S52的內(nèi)時(shí)鐘:12MHz;(5)沒(méi)有使用看門(mén)狗功能;(6)超聲波發(fā)送一定時(shí)間后才開(kāi)始啟動(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;//開(kāi)放總中斷Init_LCD();}4.2外部中斷子程序如圖所示,中斷服務(wù)程序是響應(yīng)單片機(jī)的外部中斷。在系統(tǒng)主程序中,發(fā)射的4OKHz脈沖信號(hào)遇到障礙物反射后,經(jīng)接收檢測(cè)電路產(chǎn)生外中斷信號(hào)至單片機(jī)。在中斷服務(wù)程序中,首先進(jìn)行必要的現(xiàn)場(chǎng)保護(hù),然后讀取并處理進(jìn)入中斷服務(wù)程序點(diǎn)的計(jì)數(shù)值,并計(jì)算出相應(yīng)的距離值,轉(zhuǎn)換成十進(jìn)制,最后發(fā)送到P2顯示輸出端口。ET0=1;//開(kāi)定時(shí)器0中斷TR0=1;//啟動(dòng)定時(shí)器0TESTTEMP();//啟動(dòng)溫度轉(zhuǎn)換while(1){if(sta_flag)//10MS到了(sta_flag=1){while(0==CSBIN);//收到回波 TR1=0; //關(guān)閉計(jì)數(shù)器1jsh=TH1;jsl=TL1; //讀取計(jì)數(shù)器高低位的數(shù)值HEXtoBCD();//轉(zhuǎn)換成BCD碼JULIJS();//計(jì)算距離if(15==count)//900MS到,檢測(cè)溫度{temp=GET_WD();//讀取溫度count=0;TESTTEMP();//重新啟動(dòng)轉(zhuǎn)換LCD_DISP();//刷新顯示}sta_flag=0; //標(biāo)準(zhǔn)位復(fù)位}if(distance<=110){beep(150);} } }}4.3定時(shí)器中斷子程序定時(shí)器中斷子程序流程圖如圖4-2所示。由于51單片機(jī)是16位定時(shí)器,最大計(jì)時(shí)時(shí)間為65536us,當(dāng)測(cè)量距離很長(zhǎng)時(shí),定時(shí)器會(huì)溢出,因此為了使單片機(jī)正常工作,必須相應(yīng)設(shè)置溢出中斷。同時(shí),由于電路的測(cè)量距離限制在5米以內(nèi),當(dāng)測(cè)量距離超過(guò)5米時(shí),接收探頭無(wú)法檢測(cè)到回波,即定時(shí)器不能在沒(méi)有外部中斷的情況下關(guān)閉。程序如下:voidDelay(uinttime){while(time--);}/****************************延時(shí)1MS*************************/voiddelay1ms(uintms){uinti,j;for(i=0;i<ms;i++)for(j=0;j<100;j++);}圖4-2定時(shí)中斷子程序流程4.4實(shí)現(xiàn)重要功能的程序分析4.4.1實(shí)現(xiàn)溫度讀取功能uintRead_Temperature(void) //讀取溫度,返回整數(shù)值{uintc; reset(); //復(fù)位18b20芯片 tu=0; //先置位溫度正負(fù)標(biāo)示為正if(r){ write(0xCC); //跳過(guò)多傳感器識(shí)別skiorom write(0xBE); //發(fā)讀內(nèi)部9字節(jié)內(nèi)容指令 c=read(); //讀兩個(gè)字 reset(); //讀完兩個(gè)字節(jié)后復(fù)位 write(0xCC); //跳過(guò)多傳感器識(shí)別skiorom write(0x44); //發(fā)啟動(dòng)溫度變換指令if(c>0x1000){c=c+1;tu=1;} //若溫度小于0,tu=1 c>>=4; //去掉低四位即為整數(shù)溫度值,無(wú)需*0.0625 returnc; }else{returnr;} //返回0XFF表示未檢測(cè)到18B20芯片}4.4.2實(shí)現(xiàn)根據(jù)溫度轉(zhuǎn)化聲速intC_speed(void)//根據(jù)溫度查算聲速值{uchary;y=Read_Temperature(); //采溫度if(r){ //若溫度有變化則按溫度值取聲速 { T_C=y; //溫度值=變化后的溫度值 if(tu==0)speed=332+T_C*0.607;//溫度為正則+聲速 elsespeed=332-T_C*0.607;//溫度為負(fù)則-聲速 } }elsespeed=346.5; //若1820不存在即無(wú)法讀取溫度,聲速=346.5M/S(取25度)returnspeed;}4.4.3實(shí)現(xiàn)距離計(jì)算floatDis_count() //距離計(jì)算函數(shù){ floatcm; cm=TH1*256+TL1; cm-=7610; //減去限制10M的初值+可調(diào)誤差值 cm*=speed; //計(jì)算距離uS*34650m cm/=20000; //轉(zhuǎn)換為s單程 returncm;}4.5測(cè)量結(jié)果分析如某臺(tái)儀器有兩把測(cè)尺,精尺長(zhǎng)10m,粗尺長(zhǎng)1000m,現(xiàn)各測(cè)得距離值為:精測(cè)(用10m測(cè)尺)5.524m粗測(cè)(用1000m測(cè)尺)866.6m顯示距離865.524m顯示距離值是取粗測(cè)的百米、十米位與精測(cè)的米位及小數(shù)位組合而成。但是由于儀器本身存在各種誤差,以及外界條件的影響,使得各測(cè)尺的測(cè)量值總帶有誤差,會(huì)造成距離銜接上的錯(cuò)誤。a)米位數(shù)值很大,而粗測(cè)米位又是偏大的正誤差精測(cè)(用10m測(cè)尺)9.958m粗測(cè)(用1000m測(cè)尺)270.0m顯示距離279.958mb)米位數(shù)值很小,而粗測(cè)米位又是偏小的負(fù)誤差精測(cè)(用10m測(cè)尺)0.058m粗測(cè)(用1000m測(cè)尺)269.9m顯示距離260.058m為了防止粗差,可以用“置中運(yùn)算法”和“比較試探法”來(lái)有效地處理測(cè)尺銜接的問(wèn)題。
結(jié)語(yǔ)本設(shè)計(jì)以AT89C52為核心,借助模擬數(shù)字電氣技術(shù)與單片機(jī)技術(shù)的結(jié)合,解決了超聲波油位測(cè)量?jī)x中的一些難題。超聲波能量轉(zhuǎn)換集成電路作為超聲波的接收電路,使用靈活。在論述超聲波油位測(cè)量?jī)x原理、硬件電路實(shí)現(xiàn)和軟件設(shè)計(jì)方法的基礎(chǔ)上,完成了超聲波油位測(cè)量?jī)x的設(shè)計(jì)要求。利用單片機(jī)的操作控制功能和超聲波的特點(diǎn),設(shè)計(jì)了一種簡(jiǎn)單的測(cè)距系統(tǒng)。隨著科學(xué)技術(shù)的飛速發(fā)展,超聲波的應(yīng)用將越來(lái)越廣泛。然而,就目前的技術(shù)水平而言,人們可以使用的超聲波技術(shù)仍然非常有限。因此,這是一個(gè)蓬勃發(fā)展、前景無(wú)限的技術(shù)和產(chǎn)業(yè)領(lǐng)域。從選題、方案論證到具體設(shè)計(jì),我查閱了大量的資料。對(duì)于一些困難的問(wèn)題,我得到了老師和同學(xué)的幫助。在三年的專業(yè)學(xué)習(xí)和生活中,我一直感受到導(dǎo)師的細(xì)心指導(dǎo)和無(wú)私關(guān)懷,受益匪淺。在此,我謹(jǐn)對(duì)各位老師表示深切的感謝和崇高的敬意。
致謝歷時(shí)幾個(gè)多月的緊張學(xué)習(xí)和努力,我的畢業(yè)設(shè)計(jì)終于如期、順利的完成了。此次畢業(yè)設(shè)計(jì)是對(duì)我們?nèi)粘K鶎W(xué)理論的一次綜合性評(píng)測(cè),也是將理論應(yīng)用到實(shí)踐的一項(xiàng)考察。首先我要感謝我的指導(dǎo)老師,在教學(xué)任務(wù)繁忙的情況下,抽出時(shí)間幫助我糾正我在設(shè)計(jì)當(dāng)中出現(xiàn)的問(wèn)題,并耐性地為我的論文作校正,是他的定期檢查和指導(dǎo)使得我們的畢業(yè)設(shè)計(jì)高質(zhì)量完成。同時(shí),我也要感謝在設(shè)計(jì)過(guò)程中幫助過(guò)我的同學(xué),是他們不厭其煩的解答才使得我的設(shè)計(jì)能夠順利完成。答辯組的導(dǎo)師對(duì)我論文進(jìn)行了嚴(yán)格的考核,并且在我進(jìn)行答辯的過(guò)程中提出了非常有用的意見(jiàn),我都悉心的接受,并且重新發(fā)現(xiàn)論文的不足,盡快的修改完成,感謝答辯組的各位導(dǎo)師能夠?qū)ξ艺撐淖龀隹陀^的評(píng)價(jià)。我還要感謝在大學(xué)的這幾年學(xué)校對(duì)我們投入的精力,學(xué)校的老師不辭辛苦為我們上課和輔導(dǎo),讓我們更好的掌握的專業(yè)的知識(shí),提高我們的實(shí)際問(wèn)題的處理能力,這將成為我人生中難忘的經(jīng)歷。在最后要祝愿學(xué)校的領(lǐng)導(dǎo)教師以及和我一起奮斗的同學(xué)們工作順利,事業(yè)有成,也要祝愿學(xué)校的前景更加輝煌。
參考文獻(xiàn)[1]陶潔,肖桂鳳,遲權(quán)德.基于AT89C52單片機(jī)的超聲波油位測(cè)量?jī)x儀的設(shè)計(jì)[J].電子設(shè)計(jì)工程,2012,02:135-137+140.[2]李翠花,梁德民,周曉美.高精度的超聲波油位測(cè)量?jī)x系統(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è)距儀的設(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.[15]JunWu,JiguiZhu,LinghuiYang,MengtingShen,BinXue,ZhexuLiu.Ahighlyaccurateultrasonicrangingmethodbasedononsetextractionandphaseshiftdetection[J].Measurement,2014,47.
附錄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); //寫(xiě)入LCD命令voidWrite_Data(uchar); //寫(xiě)入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í),后開(kāi)始發(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í)避開(kāi)直達(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; //開(kāi)總中斷}/******************距離計(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ù)通過(guò)全局變量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); //跳過(guò)讀序號(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); //跳過(guò)讀序號(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ù)線,開(kāi)始讀數(shù)據(jù)dat>>=1;DQ=1; //拉高數(shù)據(jù)線,停止讀數(shù)據(jù)if(DQ)dat|=0x80; //拼裝處理Delay(15);}return(dat); //注意讀取的為補(bǔ)碼}/*********************寫(xiě)數(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; //移位,為寫(xiě)入下一位數(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); //寫(xiě)首地址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); //寫(xiě)入要顯示的數(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); //寫(xiě)入要顯示的數(shù)據(jù)(數(shù)據(jù)傳輸)}}/*********檢查L(zhǎng)CD忙狀態(tài)***********/bitLCD_BUSY() //lcd_busy為1時(shí),忙,等待。lcd-busy為0時(shí),閑,可寫(xiě)指令與數(shù)據(jù){bitBS;RW=1;RS=0;E=1;delay1ms(1);BS=(bit)(P0&0x80);E=0;returnBS;}/*******************寫(xiě)指令函數(shù)******************************/voidWrite_Comm(ucharlcdcomm) //寫(xiě)指令{ while(LCD_BUSY());RS=0;RW=0;E=1;delay1ms(1); P0=lcdcomm;delay1ms(1);E=0;}/*********************寫(xiě)數(shù)據(jù)函數(shù)****************************/voidWrite_Data(ucharlcddata)//寫(xiě)數(shù)據(jù){ while(LCD_BUSY()); RS=1;RW=0;E=1;delay1ms(1);P0=lcdd
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能戶外廣告安裝與維護(hù)服務(wù)合同范本
- 2025年度哈爾濱市住宅產(chǎn)權(quán)轉(zhuǎn)移及抵押貸款合同
- 中英雙語(yǔ)文書(shū):簡(jiǎn)易離婚合同指導(dǎo)(2024版)版
- 2025年度合租房屋租賃合同集錦(含租客維修責(zé)任)
- 2025年度教育顧問(wèn)聘請(qǐng)合同(全新升級(jí)版)
- 2025年度智能城市基礎(chǔ)設(shè)施建設(shè)合同協(xié)議書(shū)
- 2025年度廣西古建筑牌坊工程承攬合同規(guī)范文本
- 2025年度可再生能源發(fā)電項(xiàng)目投資合同協(xié)議
- 2025年度黃砂開(kāi)采與銷售一體化合同參考
- 2025年度國(guó)際貿(mào)易貨物質(zhì)量檢驗(yàn)與認(rèn)證服務(wù)合同
- 安全生產(chǎn)法律法規(guī)匯編(2025版)
- 2024年英語(yǔ)高考全國(guó)各地完形填空試題及解析
- 2024至2030年中國(guó)餐飲管理及無(wú)線自助點(diǎn)單系統(tǒng)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024年服裝門(mén)店批發(fā)管理系統(tǒng)軟件項(xiàng)目可行性研究報(bào)告
- 體育概論(第二版)課件第三章體育目的
- T-GDASE 0042-2024 固定式液壓升降裝置安全技術(shù)規(guī)范
- 香港朗文4B單詞及句子
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制課件第五章運(yùn)動(dòng)中的中樞控制
- 財(cái)務(wù)部規(guī)范化管理 流程圖
- 斷絕關(guān)系協(xié)議書(shū)范文參考(5篇)
- 農(nóng)村集體“三資”管理流程圖
評(píng)論
0/150
提交評(píng)論