基于溫度補(bǔ)償?shù)某暡y(cè)距設(shè)計(jì)(共33頁(yè))_第1頁(yè)
基于溫度補(bǔ)償?shù)某暡y(cè)距設(shè)計(jì)(共33頁(yè))_第2頁(yè)
基于溫度補(bǔ)償?shù)某暡y(cè)距設(shè)計(jì)(共33頁(yè))_第3頁(yè)
基于溫度補(bǔ)償?shù)某暡y(cè)距設(shè)計(jì)(共33頁(yè))_第4頁(yè)
基于溫度補(bǔ)償?shù)某暡y(cè)距設(shè)計(jì)(共33頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上目 錄 1緒論1.1設(shè)計(jì)目的 隨著國(guó)民經(jīng)濟(jì)的迅速發(fā)展,超聲波在機(jī)械制造、石油化工、航空航天等領(lǐng)域發(fā)揮著越來(lái)越重要的作用。超聲波測(cè)距作為一種非接觸式距離測(cè)量方法,具有不受外界光及電磁場(chǎng)等因素影響的優(yōu)點(diǎn),實(shí)現(xiàn)電路簡(jiǎn)單、成本低;同時(shí),還具有易于定向發(fā)射、方向性好、對(duì)人體傷害小等特點(diǎn)。上述優(yōu)勢(shì)使得與超聲波測(cè)距領(lǐng)域相關(guān)的儀器設(shè)備在數(shù)據(jù)處理、檢測(cè)性能和工程設(shè)計(jì)系統(tǒng)化等方面有了更大的發(fā)展空間。利用超聲波定位技術(shù)是蝙蝠等一些無(wú)目視能力的生物作為防御天敵及捕獲獵物的生存手段, 這些生物體可發(fā)射人們聽不到的超聲波 ( 20KH 以上的機(jī)械波) ,借助空氣介質(zhì)傳播, 根據(jù)獵物或障礙物反射回

2、來(lái)的回波的時(shí)間間隔及強(qiáng)弱,判斷獵物的性質(zhì)或障礙物的位置。在影響超聲波測(cè)距誤差的因素中,溫度的影響是比較大的,超聲波的傳播速度在不同的溫度下是不同的,那就要得出其傳播速度與環(huán)境溫度t的關(guān)系式。因此用常溫下的超聲波速度341m/s來(lái)計(jì)算不同溫度環(huán)境下的超聲波測(cè)距的距離是有很大誤差的。為了提高測(cè)距精度,我們必須對(duì)超聲波的速度進(jìn)行溫度補(bǔ)償,用溫度傳感器測(cè)環(huán)境溫度的數(shù)值,從而得到改環(huán)境下的超聲波速度1.2設(shè)計(jì)意義隨著社會(huì)經(jīng)濟(jì)的快速發(fā)展,人們生活水平的不斷提高,交通運(yùn)輸業(yè)的日益興旺,汽車數(shù)量的越來(lái)越多。交通擁擠的狀況也日趨嚴(yán)重,撞車事件也經(jīng)常的發(fā)生,造成了很嚴(yán)重的人員傷亡和財(cái)產(chǎn)損失,針對(duì)這一情況,設(shè)計(jì)一種

3、響應(yīng)快,可靠性高且較為經(jīng)濟(jì)的汽車防撞報(bào)警系統(tǒng)事在必行,最常見的一種測(cè)量距離的方法是超聲波測(cè)距,應(yīng)用于汽車的近距離防撞。還有城市的快速發(fā)展,排水系統(tǒng)往往落后于城市建設(shè),經(jīng)常出現(xiàn)已經(jīng)建設(shè)好建筑設(shè)施再重新開挖排水設(shè)施的情況,這樣經(jīng)常會(huì)造成城市污水的到處排放,影響城市衛(wèi)生,針對(duì)這一情況,設(shè)計(jì)污水疏通移動(dòng)機(jī)器人的自動(dòng)控制系統(tǒng)是非常必要的,而這個(gè)自動(dòng)控制系統(tǒng)核心就是超聲波測(cè)距。以上舉得只是超聲波應(yīng)用領(lǐng)域中的一小部分的例子,當(dāng)今生活中還有很多方面需要用到超聲波測(cè)距,來(lái)解決人們?nèi)粘I钪杏龅降膯?wèn)題,因此設(shè)計(jì)一款超聲波測(cè)距儀是非常重要的一件事。1.3系統(tǒng)功能超聲波測(cè)距儀的設(shè)計(jì)要求如下:1) 測(cè)量范圍小于等于5米

4、2) 測(cè)量誤差小于0.3cm3) 進(jìn)行溫度補(bǔ)償4) 以LCD顯示溫度和距離 2設(shè)計(jì)方案2.1方案設(shè)計(jì) 利用超聲波檢測(cè)距離,設(shè)計(jì)比較方便,計(jì)算處理也較簡(jiǎn)單,其測(cè)量精度也能達(dá)到使用要求。超聲波發(fā)生器可以分為兩大類:一類是用機(jī)械方式產(chǎn)生超聲波,一類是用電氣方式產(chǎn)生超聲波。電氣方式包括壓電型、電動(dòng)型等;機(jī)械方式有加爾統(tǒng)笛、液哨和氣流旋笛等。目前在近距離測(cè)量方面常用的是壓電式超聲波換能器。根據(jù)設(shè)計(jì)要求并綜合各方面因素,本設(shè)計(jì)采用 AT89C51 單片機(jī)作為控制器,用動(dòng)態(tài)掃描法實(shí)現(xiàn)LCD數(shù)字顯示,超聲波驅(qū)動(dòng)信號(hào)用單片機(jī)的定時(shí)器。單片機(jī)發(fā)出 40kHz 的信號(hào)經(jīng)放大后通過(guò)超聲波發(fā)射器輸出;超聲波接收器將接收

5、到的超聲波信號(hào)經(jīng)放大器放大,用鎖相環(huán)電路進(jìn)行檢波處理后,啟動(dòng)單片機(jī)中斷程序,測(cè)得時(shí)間為 t,再由軟件進(jìn)行判別、計(jì)算,得出距離數(shù)并送 LCD 顯示。2.2方案論證方案一:基于單片機(jī)的超聲波測(cè)距方案,基于單片機(jī)的超聲波測(cè)距是以單片機(jī)編程產(chǎn)生40KHZ的頻率,經(jīng)過(guò)發(fā)射驅(qū)動(dòng)放大,使發(fā)射端發(fā)射超聲波,經(jīng)被測(cè)物反射回來(lái),通過(guò)反射電路,放大,整形,處理,測(cè)出距離。方案二:基于CPLD的超聲波測(cè)距系統(tǒng)。基于CPLD的超聲波測(cè)距系統(tǒng)采用CPLD器件控制超聲波的發(fā)射與接收,從而計(jì)算出測(cè)量的距離,其運(yùn)用VHDL編寫程序,并且配合MAX-plus進(jìn)行軟硬件的仿真與調(diào)試。利用CPLD具有性能高、成本低的特點(diǎn),但是單片機(jī)

6、能夠準(zhǔn)確計(jì)時(shí),測(cè)距精度高,而且單片機(jī)控制方便,計(jì)算簡(jiǎn)單,所以綜合更方面因素本文采用STC89C52單片機(jī)作為控制器,用動(dòng)態(tài)掃描法實(shí)現(xiàn)LED數(shù)字顯示,超聲波驅(qū)動(dòng)信號(hào)用單片機(jī)的定時(shí)器。3硬件設(shè)計(jì)3.1設(shè)計(jì)方案 本文介紹了一種采用脈沖回波方式,基于STC89C52單片機(jī)的超聲波測(cè)距系統(tǒng)。該系統(tǒng)充分利用單片機(jī)的硬件和軟件資源,自動(dòng)實(shí)現(xiàn)超聲波的發(fā)射與接收控制。該系統(tǒng)充分考慮了環(huán)境溫度對(duì)超聲波傳播速度的影響,通過(guò)單片機(jī)中計(jì)數(shù)器所計(jì)超聲波往返所經(jīng)歷的時(shí)間,通過(guò)公式換算就可以計(jì)算出超聲波發(fā)射器與被測(cè)物之間的距離。其主要包括單片機(jī)控制模塊,超聲波發(fā)射模塊,超聲波接收模塊,LCD1602顯示模塊,溫度補(bǔ)償模塊,報(bào)

7、警模塊,和掃描驅(qū)動(dòng)模塊這幾個(gè)部分。其可以實(shí)現(xiàn)非接觸測(cè)量物體的距離,并通過(guò)LCD1602液晶顯示出來(lái),當(dāng)距離小于1M時(shí)實(shí)現(xiàn)報(bào)警。 圖3.1超聲波測(cè)距儀總設(shè)計(jì)框圖3.2 STC89C52外圍電路設(shè)計(jì)3.2.1單片機(jī)STC89C52 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完 全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng) 可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提 供高靈活、超有效的

8、解決方案。 STC89C52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時(shí)鐘電路。另外,STC89C52 可降至0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工 作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié), 單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。 外形及引腳排列如圖3.2所示。 鐘電路引腳、I/O引腳、控制線引腳。根據(jù)開發(fā)的需要和單片機(jī)的結(jié)構(gòu),我們就可

9、以 圖3.2 STC89C52的芯片引腳圖 STC89C52共有40個(gè)引腳,大致可分為4類:電源引腳、時(shí)實(shí)現(xiàn)單片機(jī)的自動(dòng)工作,即實(shí)現(xiàn)自動(dòng)化!3.2.2復(fù)位電路與震蕩電路 單片機(jī)STC89C52作為主控芯片,控制整個(gè)電路的運(yùn)行。其需要一個(gè)復(fù)位電路,復(fù)位電路的功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào),直至系統(tǒng)電源穩(wěn)定后,撤消復(fù)位信號(hào)。復(fù)位電路的設(shè)計(jì)圖如圖3.3所示。 圖3.3復(fù)位電路圖 STC89C52中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別為該反向放大器的輸入端和輸出端。這個(gè)反向放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器。 外接12M振蕩器及電容C

10、1、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。由于外接電容容量的大小會(huì)輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度及溫度穩(wěn)定性因此電容選擇30pF10pF。 圖3.4振蕩電路圖 3.3 LCD顯示模塊的設(shè)計(jì)3.3.1字符型液晶顯示模塊圖3.5 液晶面板 字符型液晶顯示模塊是一類專門用于顯示字母,數(shù)字,符號(hào)等的點(diǎn)陣式液晶顯示模塊。在顯示器件上的電極圖型設(shè)計(jì),它是由若干個(gè)5*7或5*11等點(diǎn)陣符位組成。每一個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。點(diǎn)陣字符位之間有一空點(diǎn)距的間隔起到了字符間距和行距的作用,模塊見圖3.5。3.3.2 字符型液晶顯示模塊引腳VSS為地電源,VDD接5V正電源,V

11、L為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。RW為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電平時(shí)可以寫入數(shù)據(jù)。E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。DB0DB7為8位雙向數(shù)據(jù)線,BLK和BLA是背光燈電源。模塊引腳如表3.1。表3.1 字符型液晶顯示模塊引腳編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)

12、引腳說(shuō)明1VSS電源地9D2Data I/O2VDD電源正極10D3Data I/O3VL液晶顯示偏壓信號(hào)11D4Data I/O4RS數(shù)據(jù)/命令12D5Data I/O5R/W讀/寫13D6Data I/O6E使能信號(hào)14D7Data I/O7D0Data I/O45BLA背光源正級(jí)8D1Data I/O16BLK背光源負(fù)級(jí)3.3.3 字符型液晶顯示模塊內(nèi)部結(jié)構(gòu) 液晶顯示模塊WM-C1602N的內(nèi)部結(jié)構(gòu)如圖3.6分為三部份:一為L(zhǎng)CD控制器,二為L(zhǎng)CD驅(qū)動(dòng)器,三為L(zhǎng)CD顯示裝置。與單片機(jī)接口見圖3.6圖3.6 LCD1602內(nèi)部結(jié)構(gòu)圖3.7 液晶接口3.4溫度傳感器DS18B20電路設(shè)計(jì)3.

13、4.1 溫度傳感器DS18B20簡(jiǎn)介DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有3引腳TO92小體積封裝形式,溫度測(cè)量范圍為55125,可編程為9位12位A/D轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)0.0625,被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出,其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生,多個(gè)DS18B20可以并聯(lián)到3根或2根線上,CPU只需一根端口線就能與諸多DS18B20通信(每個(gè)溫度傳感器的ROM里有不同的識(shí)別號(hào)碼),占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。以上特點(diǎn)使DS18B20非常適用于遠(yuǎn)距離多點(diǎn)溫度檢測(cè)系統(tǒng)。   

14、 DS18B20內(nèi)部結(jié)構(gòu)如圖3.8所示,主要由4部分組成:64位ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列如圖3.9所示,DQ為數(shù)字信號(hào)輸入輸出端;GND為電源地;VDD為外接供電電源輸入端。    ROM中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼,每個(gè)DS18B20的64位序列號(hào)均不相同,ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。 圖3.8 DS18B20內(nèi)部結(jié)構(gòu)圖 圖3.9 DS18B20管腳圖3.4

15、.2 DS18B20的主要特性(1)適應(yīng)電壓范圍更寬,電壓范圍:3.05.5V,在寄生電源方式下可由數(shù)據(jù)線供電。 (2)獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。 (3)DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫。 (4)DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。 (5)溫范圍55125,在-10+85時(shí)精度為±0.5。 (6)可編程的分辨率為912位,對(duì)應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.062

16、5,可實(shí)現(xiàn)高精度測(cè)溫。 (7)在9位分辨率時(shí)最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快。 (8)測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以"一線總線"串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力。 (9)負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作。計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù), 當(dāng)計(jì)數(shù)器 1的預(yù)置值減到0時(shí)溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù)。如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫

17、度寄存器中的數(shù)值即為所測(cè)溫度。圖3.10中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中振蕩器溫度特性的非線性,以產(chǎn)生高分辨率的溫度測(cè)量。其輸出用于修正計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過(guò)程,直至溫度寄存器值達(dá)到被測(cè)溫度值,這就是DS18B20的測(cè)溫原理。圖3.10 DS18B20測(cè)溫原理圖另外,由于 DS18B20單總線通信功能是分時(shí)完成的,因此他有嚴(yán)格的時(shí)隙概念, 因此讀寫時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為: 初始化DS18B20(發(fā)復(fù)位脈沖)發(fā)ROM功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。3.5數(shù)據(jù)采集模塊DS18B20有4個(gè)主要的數(shù)據(jù)部件:A:64位激光RO

18、M。64位激光ROM從高位到低位依次為8位CRC、48位序列號(hào)和8位家族代碼(28H)組成。B:溫度靈敏元件。 C:非易失性溫度報(bào)警觸發(fā)器TH和TL??赏ㄟ^(guò)軟件寫入用戶報(bào)警上下限值。D:配置寄存器。配置寄存器為高速暫存存儲(chǔ)器中的第五個(gè)字節(jié)。其中R0、R1:溫度計(jì)分辨率設(shè)置位,其對(duì)應(yīng)四種分辨率如下表所列,出廠時(shí)R0、R1置為缺省值:R0=1,R1=1(即12位分辨率),用戶可根據(jù)需要改寫配置寄存器以獲得合適的分辨率。表 3.2 分辨率關(guān)系表R0R1分辨率/bit最大轉(zhuǎn)換時(shí)間/us00993.750110187.510113751112750高速暫存存儲(chǔ)器由9個(gè)字節(jié)組成,其分配如表3.2所示。當(dāng)溫

19、度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第0和第1個(gè)字節(jié)。單片機(jī)可通過(guò)單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式如表3.3所示。對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位S=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),先將補(bǔ)碼變?yōu)樵a,再計(jì)算十進(jìn)制值。表3.3 DS18B20存儲(chǔ)器溫度LSB溫度MSBTHTL保留保留計(jì)數(shù)寄存器計(jì)數(shù)寄存器8位CRC3.6 HC-SR04超聲波測(cè)距模塊1.概述HC-SR04超聲波測(cè)距模塊可實(shí)現(xiàn)2cm4.5m的非接觸測(cè)距功能,擁有2.45.5V的寬電壓輸入范圍,靜態(tài)功耗低于2mA,自帶溫度傳感器對(duì)測(cè)距結(jié)果進(jìn)行校正,同時(shí)具有GPIO,串口

20、等多種通信方式,內(nèi)帶看門狗,工作穩(wěn)定可靠。主要技術(shù)參數(shù)如下表:表3.4主要技術(shù)參數(shù)電氣參數(shù)HC-SR04超聲波測(cè)距模塊工作電壓DC 2.4V5.5V靜態(tài)電流2mA工作溫度-20+70度輸出方式電平或UART(跳線帽選擇)感應(yīng)角度小于15度探測(cè)距離2cm-450cm探測(cè)精度0.3cm+1%UART模式下串口配置波特率9600,起始位1位,停止位1位,數(shù)據(jù)位8位,無(wú)奇偶校驗(yàn),無(wú)流控制。本模塊實(shí)物圖及尺寸如圖3.10所示圖3.10 HC-SR04正反面圖本模塊的尺寸:45mm*20mm*1.6mm。板上有兩個(gè)半徑為1mm的機(jī)械孔2.電平觸發(fā)測(cè)距工作原理在模塊上電前,首先去掉模式選擇跳線上的跳線帽,使

21、模塊處于電平觸發(fā)模式。電平觸發(fā)測(cè)距的時(shí)序如圖3.11所示:圖3.11 HC-SR04測(cè)距時(shí)序圖圖3.11表明:只需要在Trig/TX管腳輸入一個(gè)10US以上的高電平,系統(tǒng)便可發(fā)出8個(gè)40KHZ的超聲波脈沖,然后檢測(cè)回波信號(hào)。當(dāng)檢測(cè)到回波信號(hào)后,模塊將距離值轉(zhuǎn)化為340m/s時(shí)的時(shí)間值的2倍,通過(guò)Echo端輸出一高電平,可根據(jù)此高電平的持續(xù)時(shí)間來(lái)計(jì)算距離值。即距離值為:(高電平時(shí)間*340m/s)/2。3.串口觸發(fā)測(cè)距工作原理在模塊上電前,首先插上模式選擇跳線上的跳線帽,使模塊處于串口觸發(fā)模式。在此模式下只需要在Trig/TX管腳輸入0X55(波特率9600),系統(tǒng)便可發(fā)出8個(gè)40KHZ的超聲波

22、脈沖,然后檢測(cè)回波信號(hào)。當(dāng)檢測(cè)到回波信號(hào)后,模塊還要進(jìn)行溫度值的測(cè)量,然后根據(jù)當(dāng)前溫度對(duì)測(cè)距結(jié)果進(jìn)行校正,將校正后的結(jié)果通過(guò)Echo/RX管腳輸出。輸出的距離值共兩個(gè)字節(jié),第一個(gè)字節(jié)是距離的高8位(HDate),第二個(gè)字節(jié)為距離的低8位(LData),單位為毫米。即距離值為 (HData*256 +LData)mm。4.串口觸發(fā)測(cè)溫工作原理在模塊上電前,首先插上模式選擇跳線上的跳線帽,使模塊處于串口觸發(fā)模式。在此模式下只需要在Trig/TX管腳輸入0X50(波特率9600),系統(tǒng)便啟動(dòng)溫度傳感器對(duì)當(dāng)前溫度進(jìn)行測(cè)量,然后將溫度值通過(guò)Echo/RX管腳輸出。測(cè)量完成溫度后,本模塊會(huì)返回一個(gè)字節(jié)的溫

23、度值(TData), 實(shí)際的溫度值為TData-45。例如通過(guò)TX發(fā)送完0X50后,在RX端收到0X45,則此時(shí)的溫度值為 69(0X45的10進(jìn)制值)-45 = 24度。3.7報(bào)警電路設(shè)計(jì) 如果距離小于1M,則單片機(jī)STC89C52則給P3.7口一個(gè)信號(hào),使得報(bào)警電路工作,實(shí)現(xiàn)報(bào)警。如圖3.11所示。 圖3.11報(bào)警電路圖 4 軟件設(shè)計(jì)4.1系統(tǒng)軟件設(shè)計(jì)說(shuō)明 進(jìn)行測(cè)量控制系統(tǒng)設(shè)計(jì)時(shí),除了系統(tǒng)硬件設(shè)計(jì)外,大量的工作就是如何根據(jù)每個(gè)測(cè)量對(duì)象的實(shí)際需要設(shè)計(jì)應(yīng)用程序。因此,軟件設(shè)計(jì)在微機(jī)測(cè)量控制系統(tǒng)設(shè)計(jì)中占重要地位。本軟件設(shè)計(jì)主要是對(duì)距離進(jìn)行測(cè)量、顯示。因此,整個(gè)軟件可分為按照硬件電路對(duì)單

24、片機(jī)位定義;發(fā)射子程序;接收子程序;顯示子程序;延時(shí)子程序等。4.2主程序的設(shè)計(jì) 圖4.1主程序流程圖主程序首先是對(duì)系統(tǒng)環(huán)境初始化,設(shè)置定時(shí)器T0工作模式為16位定時(shí)計(jì)數(shù)器模式。置位總中斷允許位EA并給顯示端口P1和P3清0。然后調(diào)用超聲波發(fā)生子程序送出一個(gè)超聲波脈沖,為了避免超聲波從發(fā)射器直接傳送到接收器引起的直射波觸發(fā),需要延時(shí)約0.1 ms后,才打開外中斷0接收返回的超聲波信號(hào)。由于采用的是12 MHz的晶振,計(jì)數(shù)器每計(jì) 一個(gè)數(shù)就是1s,當(dāng)主程序檢測(cè)到接收成功的標(biāo)志位后,將計(jì)數(shù)器T0中的數(shù)(即超聲波來(lái)回所用的時(shí)間)按式計(jì)L=(T/2)*V 算,即可得被測(cè)物體與測(cè)距儀之間的距離,設(shè)計(jì)時(shí)取2

25、0時(shí)的聲速為344 m/s則有:L=(T/2)*V =172T0/10000cm 其中,T0為計(jì)數(shù)器T0的計(jì)算值。    測(cè)出距離后結(jié)果將以十進(jìn)制BCD碼方式送往LCD顯示約0.5s,然后再發(fā)超聲波脈沖重復(fù)測(cè)量過(guò)程。4.3超聲波發(fā)射子程序和超聲波接收中斷子程序設(shè)計(jì)超聲波測(cè)距儀主程序利用外中斷0檢測(cè)返回超聲波信號(hào),一旦接收到返回超聲波信號(hào)(即INT0引腳出現(xiàn)低電平),立即進(jìn)入中斷程序。進(jìn)入中斷后就立即關(guān)閉計(jì)時(shí)器T0停止計(jì)時(shí),并將測(cè)距成功標(biāo)志字賦值1。如果當(dāng)計(jì)時(shí)器溢出時(shí)還未檢測(cè)到超聲波返回信號(hào),則定時(shí)器T0溢出中斷將中斷0關(guān)閉,并將測(cè)距成功標(biāo)志字賦

26、值2以表示此次測(cè)距不成功。 圖4.2外部中斷流程圖4.4溫度測(cè)量子程序設(shè)計(jì)DS18B20對(duì)時(shí)序和電性參數(shù)要求很高, 所以單片機(jī)在通過(guò)單總線接口訪問(wèn) DS18B20時(shí), 其工作流程必需要遵守嚴(yán)格的操作時(shí)序,如果順序中任意一步缺少或順序錯(cuò)亂, DS18B20將不會(huì)響應(yīng)。DS18B20的操作順序是: 第一步: 對(duì) DS18B20初始化; 第二步: 發(fā)送ROM 命令;第三步: 發(fā)送功能命令。超聲波測(cè)距系統(tǒng)上電后,單片機(jī)開始初始化 DS18B20,檢測(cè)現(xiàn)場(chǎng)溫度,軟件控制 DS18B20的具體流程如圖 4.3所示。圖4.3 DS18B20總體操作流程4.5報(bào)警子程序 如果距離小于下限或大于上限,則單片機(jī)S

27、TC89C52則給IO口一個(gè)信號(hào),使得報(bào)警電路工作,實(shí)現(xiàn)報(bào)警。圖4.4 報(bào)警子程序 4.6距離計(jì)算子程序本段程序中temp是從DS18BB0讀取的16位二進(jìn)制溫度數(shù)值,在對(duì)速度進(jìn)行溫度補(bǔ)償?shù)臅r(shí)候需要根據(jù)DS18B20協(xié)議轉(zhuǎn)換成浮點(diǎn)數(shù)tp。void calculater()float v; /聲速float tp; /溫度time=TH0*256+TL0;TH0=0;TL0=0;if(temp<0x8000) /溫度為正直tp=temp*0.0625;else /溫度為負(fù)值tp=temp*(-0.0625);c=331.4+0.61*tp; /溫度補(bǔ)償distance=(time*c/(2

28、*100)/100; 5 結(jié)果與結(jié)論5.1結(jié)果設(shè)計(jì)的最終結(jié)果是使超聲波測(cè)距儀能夠產(chǎn)生超聲波,實(shí)現(xiàn)超聲波的發(fā)送與接收,從而實(shí)現(xiàn)利用超聲波方法測(cè)量物體間的距離,以數(shù)字的形式顯示測(cè)量距離。經(jīng)過(guò)實(shí)驗(yàn)表明,這套系統(tǒng)軟硬件設(shè)計(jì)合理、抗干擾能力較好、實(shí)時(shí)性良好,實(shí)驗(yàn)結(jié)果比較符合預(yù)期要求。5.2結(jié)論采用高精度的溫度傳感器 DS18B20可實(shí)現(xiàn)對(duì)超聲波測(cè)距系統(tǒng)的溫度測(cè)量和補(bǔ)償,即根據(jù)經(jīng)驗(yàn)公式,對(duì)波速進(jìn)行校正。通過(guò)引入DS18B20,使超聲波測(cè)距系統(tǒng)的測(cè)量精度有了很大的提高, 使得應(yīng)用領(lǐng)域也有所擴(kuò)展,其不僅可用于倒車?yán)走_(dá)、物位測(cè)量等一般場(chǎng)合, 且在移動(dòng)機(jī)器人領(lǐng)域?qū)?huì)有廣泛的應(yīng)用前景。 致謝隨著論文的完成,我的大學(xué)

29、生活,也得以劃下了完美的句點(diǎn)。經(jīng)過(guò)幾個(gè)月的查找資料、整理材料、設(shè)計(jì)方案和寫論文,今天終于可以順利的完成論文的最后的謝辭了。設(shè)計(jì)得以完成,要感謝的人實(shí)在太多了,在本次畢業(yè)設(shè)計(jì)的過(guò)程中非常感謝周榮生老師的細(xì)心指導(dǎo)。導(dǎo)師淵博的專業(yè)知識(shí),嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,精益求精的工作作風(fēng),對(duì)我影響深遠(yuǎn),不僅使我樹立了遠(yuǎn)大的學(xué)術(shù)目標(biāo)、掌握了基本的研究方法,還使我明白了許多待人接物與為人處世的道理。本論文從選題到完成,每一步都是在周老師的指導(dǎo)下完成的,傾注了大量的心血。在此,謹(jǐn)向趙老師表示崇高的敬意和衷心的感謝!趙老師要指導(dǎo)很多同學(xué)的設(shè)計(jì),加上本來(lái)就有的教學(xué)任務(wù),工作量之大可想而知,但在一次次的教導(dǎo)中,使我在設(shè)計(jì)之外明白

30、了做學(xué)問(wèn)所應(yīng)有的態(tài)度。 同時(shí),設(shè)計(jì)的順利完成,離不開其它各位老師、同學(xué)和朋友的關(guān)心和幫助,感謝徐靜、胡燕同學(xué)給予我的幫助。在整個(gè)的設(shè)計(jì)中,各位老師、同學(xué)和朋友積極的幫助我查資料,提供有利于論文寫作的建議和意見,在他們的幫助下,設(shè)計(jì)得以不斷的完善,最終幫助我順利的寫完論文。通過(guò)此次的設(shè)計(jì),我學(xué)到了很多知識(shí),在設(shè)計(jì)過(guò)程中,通過(guò)查資料和搜集有關(guān)的文獻(xiàn),培養(yǎng)了自學(xué)能力和動(dòng)手能力,由被動(dòng)的接受知識(shí)轉(zhuǎn)換為主動(dòng)的尋求知識(shí),這是學(xué)習(xí)方法上的一個(gè)很大的突破。通過(guò)畢業(yè)設(shè)計(jì),我們學(xué)會(huì)了如何將學(xué)到的知識(shí)轉(zhuǎn)化為自己的東西,學(xué)會(huì)了怎么更好的處理知識(shí)和實(shí)踐相結(jié)合的問(wèn)題。最后再一次感謝所有在畢業(yè)設(shè)計(jì)中曾經(jīng)幫助過(guò)我的良師益友和

31、同學(xué),以及在設(shè)計(jì)中被我引用或參考的論著的作者。參考文獻(xiàn)1趙曉安. MCS-51單片機(jī)原理及應(yīng)用. 天津:天津大學(xué)出版社,2001.3 2 夏繼強(qiáng). 單片機(jī)實(shí)驗(yàn)與實(shí)踐教程. 北京:北京航空航天大學(xué)出版社, 20013 余錫存、曹國(guó)華,單片機(jī)原理及接口技術(shù),陜西: 西安電子科技大學(xué)出版社, 2002.84 李建忠,單片機(jī)原理及應(yīng)用,陜西:西安電子科技大學(xué)出版社,2004.15 肖來(lái)勝、馮建蘭,單片機(jī)技術(shù)實(shí)用教程 ,武漢:華中科技大學(xué)出版社, 2004.106 蔡美琴、張為民,MSC-51系列單片機(jī)系統(tǒng)及其應(yīng)用,北京:高等教育出版社(第二版),北京,2005.7v7 李華. MCS -51系列單片機(jī)

32、實(shí)用接口技術(shù)M . 北京:北京航空航天大學(xué)出版社,19938 周航慈. 單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)M . 北京:北京航空航天大學(xué)出版社,1991附錄附錄一:總原理圖附錄二:程序清單#include<reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned chartypedef unsigned char Uchar;typedef unsigned int Uint16;#define yh 0x80 /LCD第一行的初始位置,因?yàn)長(zhǎng)CD1602字符地址首位D7恒定為1(=80)

33、#define er 0x80+0x40 /LCD第二行初始位置(因?yàn)榈诙械谝粋€(gè)字符位置地址是0x40)/液晶屏的與C51之間的引腳連接定義(顯示數(shù)據(jù)線接C51的P0口)sbit en=P10;sbit rs=P11;sbit DQ_A=P37; /溫度數(shù)據(jù)線/校時(shí)按鍵與C51的引腳連接定義sbit qh=P20; /切換鍵sbit set=P21; /設(shè)置鍵sbit add=P22; /加鍵sbit dec=P23; /減鍵sbit alarm=P27;/蜂鳴器,通過(guò)三極管9012驅(qū)動(dòng),端口低電平響 sbit red=P24;sbit green=P26; sbit RX=P33;sbit

34、 TX=P32;uchar code tab1= "System loading " uchar code tab2= "Distance system "uchar code wd = "Temp: "uchar code jl = "Dis : CM "uchar code yz = "SH: CMSL: CM" /閾值固定符uchar code qk = " "uint tempa,temp;/tempa用于讀取溫度值int sh=400,sl=2;uint time;

35、unsigned long dis;float rate;uchar flag_qh,key_num;bit flag_set=0,flag=0;/延時(shí)函數(shù),后面經(jīng)常調(diào)用void delayms(uint xms)/延時(shí)函數(shù),有參函數(shù)uint x,y;for(x=xms;x>0;x-) for(y=110;y>0;y-);/*液晶寫入指令函數(shù)與寫入數(shù)據(jù)函數(shù),以后可調(diào)用*/void write_com(uchar com)/*液晶寫入指令函數(shù)*rs=0;/數(shù)據(jù)/指令選擇置為指令/rw=0; /讀寫選擇置為寫P0=com;/送入數(shù)據(jù)delayms(1);en=1;/拉高使能端,為制造有

36、效的下降沿做準(zhǔn)備delayms(1);en=0;/en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令void write_data(uchar dat)/*液晶寫入數(shù)據(jù)函數(shù)*rs=1;/數(shù)據(jù)/指令選擇置為數(shù)據(jù)/rw=0; /讀寫選擇置為寫P0=dat;/送入數(shù)據(jù)delayms(1);en=1; /en置高電平,為制造下降沿做準(zhǔn)備delayms(1);en=0; /en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令void Lcd_cls()uchar i;write_com(er);for(i=0;i<16;i+)write_data(qki)/*DS18B20溫度采集時(shí)序程序void delay_us(Uin

37、t16 t)/12MHz晶振 while(t-);void Init_18b20_A(void) Uchar n;DQ_A=1;delay_us(8);DQ_A=0;delay_us(80); /600us左右DQ_A=1;delay_us(8);n=DQ_A;delay_us(4);void write_byte_A(Uchar dat)Uchar i;for(i=0;i<8;i+)DQ_A=0;DQ_A=dat&0x01;delay_us(4); /40-50usDQ_A=1;dat>>=1;delay_us(4);Uchar read_byte_A(void)U

38、char i,value;for(i=0;i<8;i+)DQ_A=0;value>>=1;DQ_A=1; /線與if(DQ_A) value|=0x80;delay_us(4);return value;void get_temp_A(void)uchar a,b;Init_18b20_A();write_byte_A(0xcc);write_byte_A(0x44); /啟動(dòng)測(cè)量delay_us(300);Init_18b20_A();write_byte_A(0xcc);write_byte_A(0xbe);a=read_byte_A(); /lsbb=read_byte

39、_A(); /msbtemp=b*256+a; /26.8tempa=temp*0.625;/268/=兩聲提示音 =void TwoAlarm(void)green=1;alarm=0;red=0;delayms(50); alarm=1;red=1;delayms(50);alarm=0;red=0;delayms(50); alarm=1;red=1;/-第一個(gè)界面程序-/void fir_disp(void)uchar i;Lcd_cls();write_com(er);for(i=0;i<16;i+)write_data(jli);/-第二個(gè)界面程序-/void sec_dis

40、p()uchar i; alarm=1;red=1;Lcd_cls();write_com(er);for(i=0;i<16;i+)write_data(yzi);/-第三個(gè)界面程序-/void thi_disp()uchar i; Lcd_cls();write_com(er);for(i=0;i<16;i+)write_data(wdi);write_com(er+10);write_data(0xdf);write_data(0x43); /-切換鍵掃描程序-/void keyscan_qh()if(qh=0)delayms(5);if(qh=0)flag_qh+;while

41、(qh=0);if(flag_qh=3)flag_qh=0;void keyscan_set()if(set=0) delayms(5);if(set=0)while(set=0); key_num+; if(key_num=1)flag_set=1;write_com(er+5);write_com(0x0f);/光標(biāo)顯示并閃爍if(key_num=2)write_com(er+13);if(key_num=3)key_num=0;write_com(0x0c);/光標(biāo)關(guān)閉flag_set=0; if(key_num!=0) if(add=0) delayms(5); if(add=0) w

42、hile(add=0);if(key_num=1)sh+;if(sh>=400)sh=0;write_com(er+3); write_data(0x30+sh/100); write_data(0x30+sh%100/10); write_data(0x30+sh%10);write_com(er+5);if(key_num=2)sl+;if(sl>=400)sl=0;write_com(er+11);write_data(0x30+sl/100);write_data(0x30+sl%100/10);write_data(0x30+sl%10);write_com(er+13)

43、; if(dec=0) delayms(5); if(dec=0) while(dec=0);if(key_num=1)sh-;if(sh<-1)sh=400;write_com(er+3); write_data(0x30+sh/100); write_data(0x30+sh%100/10); write_data(0x30+sh%10);write_com(er+5);if(key_num=2)sl-;if(sl<-1)sl=400;write_com(er+11);write_data(0x30+sl/100);write_data(0x30+sl%100/10);writ

44、e_data(0x30+sl%10);write_com(er+13);void write_TA(uchar addr,uint dat)write_com(er+addr); write_data(0x30+dat/100); write_data(0x30+dat%100/10); write_data(0x2e); write_data(0x30+dat%10);/*/void StartModule() /啟動(dòng)模塊TX=1; /啟動(dòng)一次模塊_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _

45、nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_(); _nop_();TX=0;/*/void Conut(void)uchar num; time=TH0*256+TL0; TH0=0; TL0=0; /if(100<tempa<200)/rate=1.7f; /if(200<tempa<300)/rate=1.8f; /if(300<tempa<999)/rate=1.9f; rate=331.4+0.61*temp; dis=(time*rate/(2*100)

溫馨提示

  • 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ù)覽,若沒有圖紙預(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)論