溫度補(bǔ)償 論文(1)課件_第1頁
溫度補(bǔ)償 論文(1)課件_第2頁
溫度補(bǔ)償 論文(1)課件_第3頁
溫度補(bǔ)償 論文(1)課件_第4頁
溫度補(bǔ)償 論文(1)課件_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1 畢業(yè)設(shè)計(jì)超聲波測距系統(tǒng)姓 名 系 別、 專 業(yè) 導(dǎo) 師 姓 名、職 稱 完 成 時 間 165摘要STC89C52是STC系列單片機(jī)里應(yīng)用比較廣泛的一款,在自動控制領(lǐng)域里享有很高的價值,以其易用性和多功能性受到了廣大電子設(shè)計(jì)愛好者的好評。本次設(shè)計(jì)主要是利用STC89C52單片機(jī)、超聲波傳感器完成測距報(bào)警系統(tǒng)的制作,以STC89C52為主控芯片,利用超聲波對距離的檢測,將前方物體的距離探測出來,然后單片機(jī)處理運(yùn)算,與設(shè)定的報(bào)警距離值進(jìn)行比較判斷,當(dāng)測得距離小于設(shè)定值時,STC89C52發(fā)出指令控制蜂鳴器報(bào)警。通過DS18B20進(jìn)行溫度補(bǔ)償,減少溫度帶來的干擾,提高測量精度。關(guān)鍵詞:超聲波傳感

2、器、STC89C52、DS18B20 11 緒論1.1 課題背景及意義 由于超聲測距是一種非接觸檢測技術(shù),不受光線、被測對象顏色等的影響,較其它儀器更衛(wèi)生,更耐潮濕、粉塵、高溫、腐蝕氣體等惡劣環(huán)境,具有少維護(hù)、不污染、高可靠、長壽命等特點(diǎn)。因此可廣泛應(yīng)用于紙業(yè)、礦業(yè)、電廠、化工業(yè)、水處理廠、污水處理廠、農(nóng)業(yè)用水、環(huán)保檢測、食品(酒業(yè)、飲料業(yè)、添加劑、食用油、奶制品)、防汛、水文、明渠、空間定位、公路限高等行業(yè)中??稍诓煌h(huán)境中進(jìn)行距離準(zhǔn)確度在線標(biāo)定,可直接用于水、酒、糖、飲料等液位控制,可進(jìn)行差值設(shè)定,直接顯示各種液位罐的液位、料位高度。因此,超聲在空氣中測距在特殊環(huán)境下有較廣泛的應(yīng)用。利用超

3、聲波檢測往往比較迅速、方便、計(jì)算簡單、易于實(shí)現(xiàn)實(shí)時控制,并且在測量精度方面能達(dá)到工業(yè)實(shí)用的指標(biāo)要求,因此為了使移動機(jī)器人能夠自動躲避障礙物行走,就必須裝備測距系統(tǒng),以使其及時獲取距障礙物的位置信息(距離和方向)。因此超聲波測距在移動機(jī)器人的研究上得到了廣泛的應(yīng)用。同時由于超聲波測距系統(tǒng)具有以上的這些優(yōu)點(diǎn),因此在汽車倒車?yán)走_(dá)的研制方面也得到了廣泛的應(yīng)用。1.2 本設(shè)計(jì)完成的工作(1)熟悉51單片機(jī)集成開發(fā)環(huán)境,運(yùn)用C語言編寫工程文件;(2)熟練應(yīng)用所選用單片機(jī)的內(nèi)部結(jié)構(gòu)、資源,以及軟硬件調(diào)試設(shè)備的基本方法;(3)自行構(gòu)建基于單片機(jī)的最小系統(tǒng),完成相關(guān)硬件電路的設(shè)計(jì)實(shí)現(xiàn);(4)了解超聲波測距原理,

4、溫度補(bǔ)償實(shí)現(xiàn)方法。 2 總體方案設(shè)計(jì) 本設(shè)計(jì)包括硬件和軟件設(shè)計(jì)兩個部分。模塊劃分為超聲波、按鍵控制、四位數(shù)碼管顯示、報(bào)警、DS18B20溫度補(bǔ)償?shù)茸幽K。就此設(shè)計(jì)的核心模塊來說,單片機(jī)就是設(shè)計(jì)的中心單元,所以此系統(tǒng)也是單片機(jī)應(yīng)用系統(tǒng)的一種應(yīng)用。單片機(jī)應(yīng)用系統(tǒng)也是有硬件和軟件組成。硬件包括單片機(jī)、輸入/輸出設(shè)備、以及外圍應(yīng)用電路等組成的系統(tǒng),軟件是各種工作程序的總稱。單片機(jī)應(yīng)用系統(tǒng)的研制過程包進(jìn)行比較處理。然后控制蜂鳴器報(bào)警。系統(tǒng)總體的設(shè)計(jì)方框圖如圖1所示。電源STC89C52主控制器模塊超聲波傳感器模塊按鍵控制DS18B20溫度補(bǔ)償4位數(shù)碼管顯示模塊蜂鳴器報(bào)警模塊 圖1 系統(tǒng)總體方框圖2.1

5、硬件設(shè)計(jì)2.1.1 主控制器模塊方案1: 選用一片CPLD(如EPM7128LC84-15)作為系統(tǒng)的核心部件,實(shí)現(xiàn)控制與處理的功能。CPLD具有速度快、編程容易、資源豐富、開發(fā)周期短等優(yōu)點(diǎn),可利用VHDL語言進(jìn)行編寫開發(fā)。但CPLD在控制上較單片機(jī)有較大的劣勢。同時,CPLD的處理速度非???,而超聲波測距對處理速度要求不可能太高,那么對系統(tǒng)處理信息的要求也就不會太高,在這一點(diǎn)上,MCU就已經(jīng)可以勝任了。若采用該方案,必將在控制上遇到許許多多不必要增加的難題。為此,我們不采用該種方案,進(jìn)而提出了第二種設(shè)想。方案2: 采用單片機(jī)作為整個系統(tǒng)的核心,用其處理超聲波數(shù)據(jù),以實(shí)現(xiàn)其既定的性能指標(biāo)。充分

6、分析我們的系統(tǒng),其關(guān)鍵在于實(shí)現(xiàn)超聲波測距,而在這一點(diǎn)上,單片機(jī)就顯現(xiàn)出來它的優(yōu)勢控制簡單、方便、快捷。這樣一來,單片機(jī)就可以充分發(fā)揮其資源豐富、有較為強(qiáng)大的控制功能及可位尋址操作功能、價格低廉等優(yōu)點(diǎn)。因此,這種方案是一種較為理想的方案。在綜合考慮了傳感器等諸多因素后,我們決定采用一片單片機(jī),充分利用STC89C52單片機(jī)的資源。 綜上所述,我們選擇了方案2。2.1.3 電源模塊 由于本系統(tǒng)采用電池供電,我們考慮了如下幾種方案為系統(tǒng)供電。方案1:采用12V蓄電池為系統(tǒng)供電。蓄電池具有較強(qiáng)的電流驅(qū)動能力以及穩(wěn)定的電壓輸出性能。但是蓄電池的體積過于龐大,在使用極為不方便。因此我們放棄了此方案。方案2

7、:采用4節(jié)1.5 V干電池共4.5做電源,經(jīng)過實(shí)驗(yàn)驗(yàn)證系統(tǒng)工作時,單片機(jī)、傳感器的工作電壓穩(wěn)定能夠滿足系統(tǒng)的要求,而且電池更換方便。綜上所述采用方案22.1.4 顯示模塊方案1:用LCD液晶進(jìn)行顯示。LCD由于其顯示清晰,顯示內(nèi)容豐富、清晰,顯示信息量大,使用方便,顯示快速而得到了廣泛的應(yīng)用。對于此系統(tǒng)我們顯示要求并不是很高,用LCD顯示沒有充分發(fā)揮出LCD的顯示優(yōu)勢,因此我們放棄了此方案。方案2: 用數(shù)碼管進(jìn)行顯示。數(shù)碼管由于顯示速度快,使用簡單,顯示效果簡潔明了而得到了廣泛應(yīng)用。在這里我們需要顯示的是測得的距離值和溫度值,用數(shù)碼管顯示足以滿足要求,因此我們選擇了此方案。2.1.5 溫度補(bǔ)償

8、模塊方案1: 采用PT100作為溫度補(bǔ)償電路的溫度傳感器。PT100傳感器是利用鉑電阻的阻值隨溫度變化而變化、并呈一定函數(shù)關(guān)系的特性來進(jìn)行測溫的,具有抗振動、穩(wěn)定性好、準(zhǔn)確度高、耐高壓等優(yōu)點(diǎn)。但使用起來比較復(fù)雜。方案2: 采用DS18B20作為溫度補(bǔ)償電路的溫度傳感器。DS18B20的數(shù)字溫度輸出通過 “ 一線 ” 總線( 1-Wire是一種獨(dú)特的數(shù)字信號總線協(xié)議,它將獨(dú)特的電源線和信號線復(fù)合在一起,僅使用一條口線;每個芯片唯一編碼,支持聯(lián)網(wǎng)尋址、零功耗等待等,是所需硬件連線最少的一種總線)這種獨(dú)特的方式,可以使多個 DS18B20方便地組建成傳感器網(wǎng)絡(luò),為整個測量系統(tǒng)的建立和組合提供了更大可

9、能性。它在測溫精度、轉(zhuǎn)換時間、傳輸距離、分辨率等方面比其他溫度傳感器有了很大的進(jìn)步,給用戶帶來了更方便的使用和更令人滿意的效果。 通過比較,DS18B20直接輸出數(shù)字溫度值,不需要校正,因此選擇方案2。2.1.6 報(bào)警模塊方案1: 采用語音芯片提示,優(yōu)點(diǎn)可以自由設(shè)定要提示的聲音。缺點(diǎn)使用復(fù)雜,需要專門的編程軟件,成本高控制復(fù)雜,不便于普及。方案2: 采用蜂鳴器提示,電路簡單實(shí)用,可靠性高。綜上所述我們選擇方案22.2 最終方案經(jīng)過反復(fù)論證,我們最終確定了如下方案:1、主控芯片采用STC89C52單片機(jī)作為主控制器。2、用3節(jié)干電池供電。3、用數(shù)碼管顯示。4、采用DS18B20做溫度補(bǔ)償。3 硬

10、件實(shí)現(xiàn)及單元電路設(shè)計(jì)3.1 主控制模塊主控制最小系統(tǒng)電路如圖5所示。 圖2 單片主控電路3.2 單片機(jī)的時鐘電路與復(fù)位電路設(shè)計(jì)本系統(tǒng)采用STC系統(tǒng)列單片機(jī),相比其他系列單片機(jī)具有很多優(yōu)點(diǎn)。一般STC單片機(jī)資源比其他單片機(jī)要多,而且執(zhí)行速度快;STC系列單片機(jī)使用串口對單片機(jī)進(jìn)行燒寫,下載程序較為方便;STC51單片機(jī)內(nèi)部集成了看門狗電路;且具有很強(qiáng)抗干擾能力。本系統(tǒng)采用內(nèi)部方式的時鐘電路和加電自復(fù)位的復(fù)位電路,如下圖3圖4所示:圖3 時鐘電路圖4 復(fù)位電路由于單片機(jī)P0口內(nèi)部不含上拉電阻,為高阻態(tài),不能正常地輸出高/低電平,因而該組I/O口在使用時必須外接上拉電阻。3.3 超聲波測距模塊 超聲

11、波模塊采用現(xiàn)成的超聲波模塊,該模塊可提供 2cm-400cm 的非接觸式距離感測功能,測距精度可達(dá)高到 3mm。模塊包括超聲波發(fā)射器、接收器與控制電路?;竟ぷ髟恚翰捎?IO 口 TRIG 觸發(fā)測距,給至少 10us 的高電平信號;模塊自動發(fā)送 8 個 40khz 的方波,自動檢測是否有信號返回;有信號返回,通過 IO 口 ECHO 輸出一個高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間。測試距離=(高電平時間*聲速(340M/S)/2。實(shí)物如下圖5。其中VCC 供5V 電源,GND 為地線,TRIG 觸發(fā)控制信號輸入,ECHO 回響信號輸出等四支線。圖5 超聲波模塊實(shí)物3.3.1 超

12、聲波的基本特性超聲波是一種在彈性介質(zhì)中的機(jī)械振蕩,其頻率超過20KHz,分橫向振蕩和縱向振蕩兩種,超聲波可以在氣體、液體及固體中傳播,其傳播速度不同。它有折射和反射現(xiàn)象,且在傳播過程中有衰減。超聲波的基本特性如下所述:1 波長波的傳播速度是用頻率乘以波長來表示。電磁波的傳播速度是3108m/s,而聲波在空氣中的傳播速度很慢,約為344m/s (20時)。在這種比較低的傳播速度下,波長很短,這就意味著可以獲得較高的距離和方向分辨率。正是由于這種較高的分辨率特性,才使我們有可能在進(jìn)行測量時獲得很高的精確度。2 反射要探測某個物體是否存在,超聲波就能夠在該物體上得到反射。由于金屬、木材、混凝土、玻璃

13、、橡膠和紙等可以反射近乎100的超聲波,因此我們可以很容易地發(fā)現(xiàn)這些物體。由于布、棉花、絨毛等可以吸收超聲波,因此很難利用超聲波探測到它們。同時,由于不規(guī)則反射,通??赡芎茈y探測到凹凸表面以及斜坡表面的物體,這些因素決定了超聲波的理想測試環(huán)境是在空曠的場所,并且測試物體必須反射超聲波。3 溫度效應(yīng)聲波傳播的速度“c”可以用下列公式表示。c=331.5+0.607t (m/s)式中,t=溫度 ()也就是說,聲音傳播速度隨周圍溫度的變化而有所不同。因此,要精確的測量與某個物體之間的距離時,始終檢查周圍溫度是十分必要的,尤其冬季室內(nèi)外溫差較大,對超聲波測距的精度影響很大,此時可用18B20作溫度補(bǔ)償

14、來減小溫度變化所帶來的測量誤差,考慮到本設(shè)計(jì)的測試環(huán)境是在室內(nèi),而且超聲波主要是用于實(shí)現(xiàn)避障功能,對測量精度要求不高,所以關(guān)于溫度效應(yīng)對系統(tǒng)的影響問題在這里不做深入的探討。4. 衰減傳播到空氣中的超聲波強(qiáng)度隨距離的變化成比例地減弱,這是因?yàn)檠苌洮F(xiàn)象所導(dǎo)致的在球形表面上的擴(kuò)散損失,也是因?yàn)榻橘|(zhì)吸收能量產(chǎn)生的吸收損失。如圖11所示,超聲波的頻率越高,衰減率就越高,超聲波的傳播距離也就越短,由此可見超聲波的衰減特性直接影響了超聲波傳感器有效距離。T/R-40-12型超聲波傳感器的震蕩頻率為40KHz,傳播10米超聲波信號強(qiáng)度便衰減到40個聲壓級,此時超聲波接收探頭就很難接收到回波信號。因此,從理論上

15、分析,本設(shè)計(jì)超聲波測距部分的實(shí)際范圍是10cm500cm,理想的避障范圍是10cm100cm,由于所購買玩具小車的回轉(zhuǎn)半徑為40cm所以實(shí)際壁障安全距離應(yīng)設(shè)在50cm80cm之間。圖6 聲壓在不同距離下的衰減特性3.3.2 超聲波的電器特性1聲壓特性聲壓級 (S.P.L.) 是表示音量的單位,利用下列公式予以表示。S.P.L.= 20logP/Pre (dB)式中,“P”為有效聲壓 (bar),“Pre”為參考聲壓 (210-4bar)如圖12所示為幾種常用超聲波傳感器的聲壓圖。圖7 超聲波傳感器的聲壓圖2靈敏度特性靈敏度是表示聲音接收級的單位,使用下列公式予以表示。靈敏度= 20log E/

16、P (dB)式中,“E”為所產(chǎn)生的電壓 (Vrms),“P”為輸入聲壓(bar)。超聲波傳感器的靈敏度直接影響著系統(tǒng)測距范圍,如圖8所示為幾種中常見超聲波傳感器的靈敏度圖,從圖中可以發(fā)現(xiàn)40KHz時傳感器的聲壓級最高,也就是說40KHz時所對應(yīng)的靈敏度最高。圖8 超聲波傳感器靈敏度示意圖3輻射特性把超聲波傳感器安裝在臺面上。然后,測量角度與聲壓 (靈敏度) 之間的關(guān)系。為了準(zhǔn)確地表達(dá)輻射,與前部相對比,聲壓 (靈敏度) 級衰減6dB的角度被稱為半衰減角度,用1/2表示。超聲波設(shè)備的外表面尺寸較小易于獲得精確的輻射角度。如圖9所示為幾種常見超聲波傳感器的輻射特性示意圖。圖9 超聲波傳感器輻射特性

17、示意圖分析以上研究結(jié)果不難看出超聲波傳感器工作在40KHz范圍內(nèi)具有最大的聲壓級和最高的靈敏度,這為設(shè)計(jì)中選擇合適的超聲波傳感器指明了方向。3.3.3 超聲波的工作原理市面上常見的超聲波傳感器多為開放型,其內(nèi)部結(jié)構(gòu)如圖10所示,一個復(fù)合式振動器被靈活地固定在底座上。該復(fù)合式振動器是由諧振器以及一個金屬片和一個壓電陶瓷片組成的雙壓電晶片元件振動器。諧振器呈喇叭形,目的是能有效地輻射由于振動而產(chǎn)生的超聲波,并且可以有效地使超聲波聚集在振動器的中央部位。當(dāng)電壓作用于壓電陶瓷時,就會隨電壓和頻率的變化產(chǎn)生機(jī)械變形。另一方面,當(dāng)振動壓電陶瓷時,則會產(chǎn)生一個電荷。利用這一原理,當(dāng)給由兩片壓電陶瓷或一片壓電

18、陶瓷和一個金屬片構(gòu)成的振動器,所謂叫雙壓電晶片元件,施加一個電信號時,就會因彎曲振動發(fā)射出超聲波。相反,當(dāng)向雙壓電晶片元件施加超聲振動時,就會產(chǎn)生一個電信號。圖10 超聲波傳感器內(nèi)部結(jié)構(gòu)圖圖11 避障原理 如圖15所示,超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時刻的同時開始計(jì)時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計(jì)時。超聲波在空氣中的傳播速度為340m/s,根據(jù)計(jì)時器記錄的時間t,就可以計(jì)算出發(fā)射點(diǎn)距障礙物的距離(s),即:s=340t/2就是所謂的時間差測距法圖12 超聲波接口電路圖3.4 聲音報(bào)警電路的設(shè)計(jì)如下圖所示,用一個Speaker和三極

19、管、電阻接到單片機(jī)的P13引腳上,構(gòu)成聲音報(bào)警電路,如圖13示為聲音報(bào)警電路。圖13 聲音報(bào)警電路圖3.5 顯示模塊 顯示模塊采用數(shù)碼管顯示接口電路如圖14圖14 數(shù)碼管電路3.6 溫度補(bǔ)償電路 溫度采用DS18B20傳感器進(jìn)行測量,P2.4接DS18B20數(shù)據(jù)總線,控制DS18B20進(jìn)行溫度轉(zhuǎn)換和傳輸數(shù)據(jù),同時數(shù)據(jù)總線上還接10k的上拉電阻。本系統(tǒng)對DS18B20采用外部供電,其優(yōu)點(diǎn)在于I/O線不需要強(qiáng)上拉,而且總線控制器無需在溫度轉(zhuǎn)換期間一直保持高電平。這樣在轉(zhuǎn)換期間可以允許在單線總線上進(jìn)行其他數(shù)據(jù)傳輸,硬件結(jié)構(gòu)如圖15所示圖15 溫度傳感器接口電路圖4 系統(tǒng)軟件設(shè)計(jì)方案如圖16所示為超聲

20、波測距主程序流程圖。系統(tǒng)初始化報(bào)警結(jié)束測得距離與設(shè)定值比較,小于距離比較,報(bào)警是否持續(xù)開始啟動報(bào)警電路開始報(bào)警再次檢測等待下次報(bào)警結(jié)束YNNYYN圖16 系統(tǒng)軟件的整體流程圖4.1 DS18B20初始化程序流程圖在DS18B20工作之前需要進(jìn)行初始化,流程圖如17:發(fā)復(fù)位命令發(fā)跳過ROM命令 初始化成功 結(jié)束 圖17 初始化程序流程圖4.2 超聲波溫度和速度的關(guān)系溫度()超聲波的速度(m/s)近似值C=331.3+0.606*T-20319.18319-19319.786-18320.392-17320.998-16321.604-15322.21322-14322.816-13323.422

21、-12324.028-11324.634-10325.24325-9325.846-8326.452-7327.058-6327.664-5328.27328-4328.876-3329.482-2330.088-1330.6940331.33311331.9062332.5123333.1184333.7245334.333346334.9367335.5428336.1489336.75410337.3633711337.96612338.57213339.17814339.78415340.3934116340.99617341.60218342.20819342.81420343.42

22、34321344.02622344.63223345.23824345.84425346.4534726347.05627347.66228348.26829348.87430349.4835031350.08632350.69233351.29834351.90435352.5135336353.11637353.72238354.32839354.93440355.5435641356.14642356.75243357.35844357.96445358.57溫度補(bǔ)償程序void init2() /T2CON=0x0c; RCAP2H=(65536-5)/256; RCAP2L=(655

23、36-5)%256; TH2=(65536-5)/256; TL2=(65536-5)%256; EA=1; ET2=1; TR2=1; / PT2=1; /T2設(shè)為高優(yōu)先級 void main() init1(); /液晶初始化 xianshi(); /溫度字母 init2(); /T2初始化 tx=0; IT0=0; /外部中斷低電平觸發(fā) init(); /定時器初始化 while(1); void timer1() interrupt 3 tx=tx; k+; if(k=3) k=0; TR0=0; TR0=1; delaynus(6); /除共振 EX0=1; /for(d=0;d=0

24、&TZ10&TZ20&TZ30&TZ40&TZ0;d-); TH0=0x00; TL0=0x00; ET1=1; TR1=1; O+; if(O=100) O=0; TR1=0; ET1=0; TR2=1; ET2=1; void timer0() interrupt 1 /計(jì)時 TR1=0; TR0=0; TH0=0X00; TL0=0X00; TR1=1; void timer2() interrupt 5 TF2=0; EXF2=0; TR2=0; ET2=0; / xianshi(); /溫度字母 readyread(); TL=readonechar(); TH=readonecha

25、r(); TZ=TH*16+TL/16; xianshiwen(TZ); delay(10); TR1=1; ET1=1; 5 系統(tǒng)的安裝與調(diào)試5.1 安裝步驟1.檢查元件的好壞按電路圖買好元件后首先檢查買回元件的好壞,按各元件的檢測方法分別進(jìn)行檢測,一定要仔細(xì)認(rèn)真。而且要認(rèn)真核對原理圖是否一致,在檢查好后才可上件、焊件,防止出現(xiàn)錯誤焊件后不便改正。2.放置、焊接各元件按原理圖的位置放置各元件,在放置過程中要先放置、焊接較低的元件,后焊較高的和要求較高的元件。特別是容易損壞的元件要后焊,在焊集成芯片時連續(xù)焊接時間不要超過10s,注意芯片的安裝方向。6 總結(jié)本設(shè)計(jì)研究了一種基于單片機(jī)技術(shù)的超聲波

26、智能測距報(bào)警系統(tǒng)。該系統(tǒng)通過以STC89C52單片機(jī)為工作處理器核心,DS18B20溫度補(bǔ)償,它是一種新穎的被動式超聲波探測器件,能夠以非接觸測出前方物體距離,并將其轉(zhuǎn)化為相應(yīng)的電信號輸出.該報(bào)警器的最大特點(diǎn)就是使用戶能夠操作簡單、易懂、靈活;且安裝方便、智能性高、誤報(bào)率低。隨著現(xiàn)代人們安全意識的增強(qiáng)以及科學(xué)技術(shù)的快速發(fā)展,相信報(bào)警器必將在更廣闊的領(lǐng)域得到更深層次的應(yīng)用。7 參考文獻(xiàn) 1 宋文緒. 傳感器與檢測技術(shù)M. 北京: 高等教育出版社, 2004.2 余錫存. 單片機(jī)原理及接口技術(shù)M. 西安: 西安電子科技大學(xué)出版社, 2000.3 李全利. 單片機(jī)原理及接口技術(shù)M. 北京: 北京航空

27、航天大學(xué)出版社, 2004.4 薛均義, 張彥斌. MCS-51系列單片微型計(jì)算機(jī)及其應(yīng)用M. 西安: 西安交通大學(xué)出版社, 2005.5 徐愛鈞, 彭秀華. 單片機(jī)高級語言C51應(yīng)用程序設(shè)計(jì)M. 北京: 北京航空航天大學(xué)出版社, 2006.6 康華光. 電子技術(shù)基礎(chǔ)(模擬部分)M. 北京: 高等教育出版社, 2004.附錄1 整機(jī)電路原理圖附錄2 部分源程序#include /調(diào)用單片機(jī)頭文件#define uchar unsigned char /無符號字符型 宏定義變量范圍0255#define uint unsigned int /無符號整型 宏定義變量范圍065535#include

28、 #include eeprom52.h/數(shù)碼管段選定義 0 1 2 3 4 56 7 8 9uchar code smg_du=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff; /斷碼/數(shù)碼管位選定義uchar code smg_we=0xe0,0xd0,0xb0,0x70;uchar dis_smg8 =0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8;uint code wendu_buchang146 = /溫度補(bǔ)償表格331,332

29、,333,333,334,334,335,336,336,337,/ 0-9度337,338,339,339,340,341,341,342,342,343,/10-19度343,344,345,345,346,346,347,348,348,349,/20-29度349,350,351,351,352,352,353,354,354,355,/30-39度355,356,357,357,358,358/40-45度;sbit smg_we1 = P34; /數(shù)碼管位選定義sbit smg_we2 = P35;sbit smg_we3 = P36;sbit smg_we4 = P37;sbit

30、 dq = P24;/18b20 IO口的定義uint temperature ; /sbit c_send = P32;/超聲波發(fā)射sbit c_recive = P33;/超聲波接收sbit beep = P23; /蜂鳴器IO口定義uchar smg_i = 3; /顯示數(shù)碼管的個位數(shù)bit flag_300ms ;long distance; /距離uint set_d; /距離uchar flag_csb_juli; /超聲波超出量程uint flag_time0; /用來保存定時器0的時候的uchar menu_1; /菜單設(shè)計(jì)的變量/*小延時函數(shù)*/void delay_uint

31、(uint q)while(q-);/*1ms延時函數(shù)*/void delay_1ms(uint q)uint i,j;for(i=0;iq;i+)for(j=0;j120;j+);/*處理距離函數(shù)*/void smg_display()dis_smg0 = smg_dudistance % 10;dis_smg1 = smg_dudistance / 10 % 10;dis_smg2 = smg_dudistance / 100 % 10 & 0x7f;/*把數(shù)據(jù)保存到單片機(jī)內(nèi)部eeprom中*/void write_eeprom()SectorErase(0x2000);byte_writ

32、e(0x2000, set_d % 256);byte_write(0x2001, set_d / 256);byte_write(0x2058, a_a);/*把數(shù)據(jù)從單片機(jī)內(nèi)部eeprom中讀出來*/void read_eeprom()set_d = byte_read(0x2001);set_d = smg_i)i = 0;smg_we_switch(i); /位選P1 = dis_smgi; /段選 /*18b20初始化函數(shù)*/void init_18b20()bit q;dq = 1;/把總線拿高delay_uint(1); /15usdq = 0;/給復(fù)位脈沖delay_uint(

33、80);/750usdq = 1;/把總線拿高 等待delay_uint(10);/110usq = dq;/讀取18b20初始化信號delay_uint(20);/200usdq = 1;/把總線拿高 釋放總線/*寫18b20內(nèi)的數(shù)據(jù)*/void write_18b20(uchar dat)uchar i;for(i=0;i= 1;/*讀取18b20內(nèi)的數(shù)據(jù)*/uchar read_18b20()uchar i,value;for(i=0;i= 1; /讀數(shù)據(jù)是低位開始dq = 1; /釋放總線if(dq = 1) /開始讀寫數(shù)據(jù) value |= 0x80;delay_uint(5); /

34、60us讀一個時間隙最少要保持60us的時間return value; /返回?cái)?shù)據(jù)/*讀取溫度的值 讀出來的是小數(shù)*/uint read_temp()uint value;uchar low; /在讀取溫度的時候如果中斷的太頻繁了,就應(yīng)該把中斷給關(guān)了,否則會影響到18b20的時序init_18b20(); /初始化18b20write_18b20(0xcc); /跳過64位ROMwrite_18b20(0x44); /啟動一次溫度轉(zhuǎn)換命令delay_uint(50); /500usinit_18b20(); /初始化18b20write_18b20(0xcc); /跳過64位ROMwrite_

35、18b20(0xbe); /發(fā)出讀取暫存器命令EA = 0;low = read_18b20(); /讀溫度低字節(jié)value = read_18b20(); /讀溫度高字節(jié)EA = 1;value 40000) /當(dāng)超聲波超過測量范圍時,顯示3個888TR0 = 0;flag_csb_juli = 2;distance = 888;break ;else flag_csb_juli = 1;if(flag_csb_juli = 1)TR0=0; /關(guān)定時器0定時distance =flag_time0; /讀出定時器0的時間/distance *= 340 / 2 * 0.0001; / 0.017 = 340M / 2 = 170M = 0.017M 算出來是米if(temperature 500) /距離 = 速度 * 時間distance = 888; /如果大于3.8m就超出超聲波的量程 /*定時器0、定時器1初始化*/void time_init() EA = 1; /開總中斷TMOD

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論