傳感器原理課程設(shè)計(jì)基于單片機(jī)的超生波測(cè)距系統(tǒng)_第1頁(yè)
傳感器原理課程設(shè)計(jì)基于單片機(jī)的超生波測(cè)距系統(tǒng)_第2頁(yè)
傳感器原理課程設(shè)計(jì)基于單片機(jī)的超生波測(cè)距系統(tǒng)_第3頁(yè)
傳感器原理課程設(shè)計(jì)基于單片機(jī)的超生波測(cè)距系統(tǒng)_第4頁(yè)
傳感器原理課程設(shè)計(jì)基于單片機(jī)的超生波測(cè)距系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(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、 jiangxinormaluniversity傳感器原理課程設(shè)計(jì)題目: 基于超聲波傳感器的測(cè)距系統(tǒng)院系名稱:物理與通信電子學(xué)院學(xué)生姓名: 學(xué)生學(xué)號(hào): 1208063015 專 業(yè): 電子信息工程 任課老師: 完成時(shí)間: 2015年6月 摘要本文主要介紹了基于超聲波傳感器的測(cè)距系統(tǒng)的工作原理、硬件電路的設(shè)計(jì)和軟件設(shè)計(jì)。該測(cè)距系統(tǒng)由單片機(jī)最小系統(tǒng)模塊、溫度采集模塊、超聲波測(cè)距模塊,lcd顯示模塊組成。能夠完成距離和溫度的測(cè)量、顯示等功能。關(guān)鍵詞:超聲波測(cè)距,單片機(jī)最小系統(tǒng),溫度采集摘要i1引言22 設(shè)計(jì)要求23 方案論證23.1 方案論證與比較33.2 單片機(jī)最小系統(tǒng)模塊的方案33.3溫度采集模

2、塊的方案43.4超聲波測(cè)距模塊的方案43.5 顯示模塊的方案45 系統(tǒng)設(shè)計(jì)55.1單片機(jī)最小系統(tǒng)模塊的設(shè)計(jì)55.1.1復(fù)位電路的設(shè)計(jì)55.1.2 時(shí)鐘電路設(shè)計(jì)65.1.3單片機(jī)的i/o口的分配65.2 lcd1602顯示模塊的設(shè)計(jì)75.2.1 1602接口信號(hào)說(shuō)明85.2.2 1602操作時(shí)序85.3 ds18b20溫度采集模塊的設(shè)計(jì)95.3.1 ds18b20的分辨率105.3.2 ds18b20工作時(shí)序圖105.4超聲波測(cè)距模塊的設(shè)計(jì)116 軟件設(shè)計(jì)126.1 程序流程圖136.1.1 主程序流程圖136.1.2 外部中斷0流程圖146.2子程序設(shè)計(jì)146.2.1溫度采集模塊子程序146.

3、2.2 lcd顯示子程序167 誤差分析187.1 溫度187.2 障礙物表面材料187.3 超聲波模塊探頭距離188總結(jié)18參考文獻(xiàn)19附錄一:源程序20附錄二:實(shí)物圖261引言近年來(lái),隨著電子測(cè)量技術(shù)的發(fā)展,運(yùn)用超聲波作出精確測(cè)量已成可能。由于的經(jīng)濟(jì)發(fā)展,電子測(cè)量技術(shù)應(yīng)用也越來(lái)越廣泛,而超聲波測(cè)量精確高,成本低,性能穩(wěn)定則備受青睞。由于超聲測(cè)距是一種非接觸檢測(cè)技術(shù),不受光線、被測(cè)對(duì)象顏色等的影響,較其它儀器更衛(wèi)生,更耐潮濕、粉塵、高溫、腐蝕氣體等惡劣環(huán)境,具有少維護(hù)、不污染、高可靠、長(zhǎng)壽命等特點(diǎn)。因此可廣泛應(yīng)用于紙業(yè)、礦業(yè)、電廠、化工業(yè)、水處理廠、污水處理廠、農(nóng)業(yè)用水、環(huán)保檢測(cè)、食品(酒業(yè)

4、、飲料業(yè)、添加劑、食用油、奶制品)、防汛、水文、明渠、空間定位、公路限高等行業(yè)中??稍诓煌h(huán)境中進(jìn)行距離準(zhǔn)確度在線標(biāo)定,可直接用于水、酒、糖、飲料等液位控制,可進(jìn)行差值設(shè)定,直接顯示各種液位罐的液位、料位高度。利用超聲波檢測(cè)往往比較迅速、方便、計(jì)算簡(jiǎn)單、易于實(shí)現(xiàn)實(shí)時(shí)控制,由于超聲波測(cè)距系統(tǒng)具有以上的這些優(yōu)點(diǎn),因此在汽車倒車?yán)走_(dá)的研制方面也得到了廣泛的應(yīng)用。2 設(shè)計(jì)要求設(shè)計(jì)并制作一個(gè)基于超聲波傳感器的測(cè)距系統(tǒng),基本要求如下:測(cè)量范圍為0.2-1m;測(cè)量精度為±2mm;并能實(shí)時(shí)顯示。3 方案論證 根據(jù)本題設(shè)計(jì)要求,確定了本系統(tǒng)的原理框圖如圖3-1所示。單片機(jī)最小系統(tǒng)模塊:觸發(fā)、中斷接收、

5、距離計(jì)算超聲波測(cè)距模塊 lcd顯示模塊溫度采集模塊 圖3-1 原理框圖3.1 方案論證與比較 根據(jù)題目的要求,我提出了以下的兩種系統(tǒng)設(shè)計(jì)方案供選擇:方案1:由單片機(jī)編程產(chǎn)生40khz的方波,由io口輸出,再經(jīng)過(guò)放大電路,驅(qū)動(dòng)超聲波發(fā)射探頭發(fā)射超聲波。發(fā)射出去的超聲波經(jīng)障礙物反射回來(lái)后,由超聲波接收頭接收到信號(hào),通過(guò)接收電路的檢波放大、積分整形及一系列處理,送至單片機(jī)。單片機(jī)利用聲波的傳播速度和發(fā)射脈沖到接收反射脈沖的時(shí)間間隔計(jì)算出障礙物的距離,并由單片機(jī)控制顯示出來(lái)。 方案2:由單片機(jī)控制集成超聲波測(cè)距模塊hc-sr04,通過(guò)用一io口發(fā)一個(gè)10us以上的高電平給集成模塊控制口,就可

6、以在接收口等待高電平輸出,一有輸出就可以開定時(shí)器計(jì)時(shí),當(dāng)此口變?yōu)榈碗娖綍r(shí)就可以讀定時(shí)器的值,并由單片機(jī)實(shí)時(shí)檢測(cè)。單片機(jī)利用聲波的傳播速度和發(fā)射脈沖到接收反射脈沖的時(shí)間間隔計(jì)算出障礙物的距離,并由單片機(jī)控制顯示出來(lái)。由于超聲波也是一種聲波,其聲速c與溫度有關(guān),所以溫度的影響不能忽略不計(jì),本方案中對(duì)聲速c還添加了溫度補(bǔ)償。通過(guò)上述兩種方案的比較,由于集成超聲波測(cè)距模塊hc-sr04提供2cm至400cm的非接觸式距離感測(cè)功能,測(cè)距精度可達(dá)3mm,模塊自身包括超聲波發(fā)射器、接收器與控制電路,且編程和制作相比方案一容易許多。因此本超聲波測(cè)距系統(tǒng)的設(shè)計(jì)采用方案2。3.2 單片機(jī)最小系統(tǒng)模塊的方案方案1:

7、采用pic單片機(jī)。pic單片機(jī)的各個(gè)型號(hào)的兼容性強(qiáng),功能全,型號(hào)多,抗干擾能力強(qiáng)。缺點(diǎn):pic單片機(jī)價(jià)格貴,燒寫器較貴,燒寫程序比較麻煩。方案2:采用mcs-51單片機(jī)。mcs-51系列單片機(jī)是8位增強(qiáng)型。51單片機(jī)具有功能強(qiáng),體積小,可靠性好和價(jià)格便宜的優(yōu)點(diǎn),并且編程較為容易,程序的燒寫也較為簡(jiǎn)單。綜合上面兩個(gè)方案以及本人日常學(xué)習(xí)到的單片機(jī),選擇方案二作為本設(shè)計(jì)的核心處理模塊。3.3溫度采集模塊的方案采用溫度傳感器ds18b20。ds18b20具有體積小、質(zhì)量輕、精密度高、全數(shù)字化、性能穩(wěn)定等優(yōu)點(diǎn)。它的測(cè)量范圍在-50至+125,在-10至+85范圍內(nèi)精度為±0.5,當(dāng)電源電壓在5

8、-10v之間,穩(wěn)定度為1時(shí),其各方面特性都滿足了本系統(tǒng)的設(shè)計(jì)要求。此外ds18b20可直接將溫度轉(zhuǎn)化成串行數(shù)字信號(hào)供處理器處理,可以簡(jiǎn)化硬件電路和提高可靠性。3.4超聲波測(cè)距模塊的方案采用hc-sr04超聲波模塊。本模塊性能穩(wěn)定,測(cè)度距離精確,模塊高精度,盲區(qū)小的優(yōu)點(diǎn)。本模塊使用方法簡(jiǎn)單,一個(gè)控制口發(fā)一個(gè)10us以上的高電平,就可以在接收口等待高電平輸出.一有輸出就可以開定時(shí)器計(jì)時(shí),當(dāng)此口變?yōu)榈碗娖綍r(shí)就可以讀定時(shí)器的值,此時(shí)就為此次測(cè)距的時(shí)間,這樣就可算出距離。3.5 顯示模塊的方案方案一:選用數(shù)碼管顯示,用普通的數(shù)碼管顯示簡(jiǎn)單的數(shù)字、字母,數(shù)碼管分時(shí)顯示距離和溫度。方案二:選用液晶顯示,顯示

9、的內(nèi)容更加的豐富。根據(jù)所學(xué)知識(shí)與方案顯示內(nèi)容的設(shè)定,我選擇了方案二。4 工作原理 測(cè)距原理如圖4-1所示:超聲波發(fā)射探頭 s h d 測(cè)量目標(biāo) 超聲波接收探頭圖4-1被測(cè)距離。式中:s為超聲波傳播距離的一半,h為發(fā)射探頭和接受探頭之間的距離。由于s遠(yuǎn)大于h,因此可近似認(rèn)為d=s,則d=s=ct2,t為發(fā)射超聲波與接收超聲波的時(shí)間間隔,c為超聲波在空氣中的傳播速度。在空氣中,常溫下超聲波的傳播速度是334ms,但其傳播速度c易受空氣中溫度的影響,聲速與溫度關(guān)系如表4-1所示,由此可修正超聲波傳播速度為 表4-1 聲速與溫度關(guān)系表溫度()-30-20-10 0 10 20 30 40聲速(m/s)

10、313319325 332 338 344 350 356可見(jiàn),只要測(cè)得超聲波發(fā)射和接收回波的時(shí)間差t以及環(huán)境溫度t,就能得到較為精確的距離。測(cè)溫是通過(guò)ds18b20來(lái)實(shí)現(xiàn),通過(guò)程序?qū)囟茸x出并送到lcd顯示,并將此溫度作為測(cè)距的溫度補(bǔ)償。5 系統(tǒng)設(shè)計(jì) 本系統(tǒng)選用的模塊包括:?jiǎn)纹瑱C(jī)最小系統(tǒng)模塊、溫度采集模塊、超聲波測(cè)距模塊、lcd1602顯示模塊。5.1單片機(jī)最小系統(tǒng)模塊的設(shè)計(jì) 此次的課程設(shè)計(jì)的核心部分是單片機(jī)的控制,本次選用的是atmel公司生產(chǎn)的芯片stc89c52,主要是它的價(jià)格便宜,而且在學(xué)習(xí)中接觸較多比較熟悉,容易獲得。 5.1.1復(fù)位電路的設(shè)計(jì)復(fù)位使單片機(jī)處于起始狀態(tài),并從該起始狀

11、態(tài)開始運(yùn)行。stc89c52的rst引腳為復(fù)位端,該引腳連續(xù)保持2個(gè)機(jī)器周期(24個(gè)時(shí)鐘振動(dòng)周期)以上高電平,就可以使單片機(jī)復(fù)位。單片機(jī)的外部復(fù)位有上電復(fù)位和按鍵電平復(fù)位。由于單片機(jī)運(yùn)行過(guò)程中,其本身的干擾或外界干擾會(huì)導(dǎo)致出錯(cuò),此時(shí)我們可按復(fù)位鍵重新開始運(yùn)行??紤]到本系統(tǒng)的運(yùn)行和調(diào)試,復(fù)位電路采用按鍵復(fù)位方式,如圖5-1所示。 圖5-1 復(fù)位電路5.1.2 時(shí)鐘電路設(shè)計(jì)時(shí)鐘電路是單片機(jī)的心臟,它控制著單片機(jī)的工作節(jié)奏。stc89c52內(nèi)部有一個(gè)反相振蕩放大器,xtal1和xtal2分別是該反向振蕩放大器的輸入端和輸出端。本設(shè)計(jì)采用的晶振頻率為12mhz。51系列單片機(jī)還可使用外部時(shí)鐘,在使用外

12、部時(shí)鐘時(shí),外部時(shí)鐘必須從xtal1輸入,而xtal2懸空。圖5-2為晶振電路圖5-2 晶振電路5.1.3單片機(jī)的i/o口的分配首先對(duì)lcd和單片機(jī)的連接分配i/o口,lcd的e,rw,rs端分別為p0.0-p0.2,然后再對(duì)hc-sr04進(jìn)行i/o口分配,hc-sr04的觸發(fā)控制信號(hào)輸入口trig為p1.4,回響信號(hào)輸出口echo為p3.2;ds18b20溫度傳感器是單總線的結(jié)構(gòu),和單片機(jī)的通訊只需要一個(gè)i/o口,可以設(shè)置p1.3為ds18b20溫度傳感器的總線和單片機(jī)的通訊接口。5.2 lcd1602顯示模塊的設(shè)計(jì)在本設(shè)計(jì)中采用lcd 1602來(lái)充當(dāng)顯示的作用,對(duì)lcd模塊的電路的設(shè)計(jì)得先了

13、解lcd的各個(gè)引腳然后再設(shè)置其各個(gè)引腳和單片機(jī)連接的的i/o口。lcd1602液晶顯示模塊的讀寫操作,屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表5-1所示:表5-1 lcd1602液晶模塊內(nèi)部的控制器共有11條控制指令序號(hào)指令rsr/wd7d6d5d4d3d2d1d01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001i/ds4顯示開/關(guān)控制0000001dcb5光標(biāo)或字符移位000001s/cr/l*6置功能00001dlnf*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)

14、存貯器地址9讀忙標(biāo)志或地址01bf計(jì)數(shù)器地址10寫數(shù)到cgram或ddram)10要寫的數(shù)據(jù)內(nèi)容11從cgram或ddram讀數(shù)11讀出的數(shù)據(jù)內(nèi)容 根據(jù)lcd1602的引腳定義和資料設(shè)計(jì)了測(cè)距系統(tǒng)的顯示模塊,電路圖如下圖5-3圖5-35.2.1 1602接口信號(hào)說(shuō)明1602接口信號(hào)說(shuō)明如表5-2所示表5-2 1602接口說(shuō)明編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1vss電源地9d2數(shù)據(jù)口2vdd電源正極10d3數(shù)據(jù)口3vo液晶顯示對(duì)比度調(diào)節(jié)端11d4數(shù)據(jù)口4rs數(shù)據(jù)/命令選擇端12d5數(shù)據(jù)口5r/w讀寫選擇端13d6數(shù)據(jù)口6e使能端14d7數(shù)據(jù)口7d0數(shù)據(jù)口8d1數(shù)據(jù)口5.2.2 1602操作時(shí)序1

15、602的操作時(shí)序圖(見(jiàn)圖5-4)圖5-4 1602操作時(shí)序分析時(shí)序圖可知1602液晶的流程如下(1) 通過(guò)rs確定是寫數(shù)據(jù)還是寫命令。寫命令包括液晶的光標(biāo)顯示/不顯示、光標(biāo)閃爍/不閃爍、需不需要移動(dòng)屏幕、在液晶什么位置顯示等。寫數(shù)據(jù)是指要顯示什么內(nèi)容。(2) 讀/寫控制端設(shè)置為寫模式,即低電平。(3) 將數(shù)據(jù)或命令送至數(shù)據(jù)線。(4) 給e一個(gè)高脈沖將數(shù)據(jù)送入液晶控制器,完成寫操作。5.3 ds18b20溫度采集模塊的設(shè)計(jì)ds18b20的管腳排列如圖5-5所示,dq為數(shù)字信號(hào)輸入/輸出端;gnd 為電源地;vdd為外接供電電源輸人端。本溫度控制系統(tǒng)采用外接供電方式,電路圖如下圖5-6所示圖5-5

16、 ds18b20管腳圖圖5-6 ds18b20電路圖5.3.1 ds18b20的分辨率ds18b20溫度傳感器可完成對(duì)溫度的測(cè)量,溫度分辨率的設(shè)定能夠影響到溫度傳感器的轉(zhuǎn)換時(shí)間和轉(zhuǎn)換的精確度。溫度的分辨率設(shè)置如表5-3所示。表5-3:溫度分辨率設(shè)置表r1r0分辨率溫度最大轉(zhuǎn)換時(shí)間009位93.75ms0110位187.5ms1011位375ms1112位750ms由于本系統(tǒng)的主要誤差是溫度影響聲速,故對(duì)溫度采集的精度要求較高,所以選擇ds18b20的分辨率位12位,在12位分辨率的時(shí)候的溫度采集精度是0.0625度,滿足系統(tǒng)精度的要求,所以r1和r0的設(shè)置分別為r1=1,r0=1。5.3.2

17、ds18b20工作時(shí)序圖(1) 初始化(時(shí)序圖見(jiàn)5-7)圖5-7初始化時(shí)序(2)寫數(shù)據(jù)(時(shí)序圖見(jiàn)圖5-8)圖5-8寫數(shù)據(jù)時(shí)序(3) 讀數(shù)據(jù)(時(shí)序圖見(jiàn)圖5-9)圖5-9讀數(shù)據(jù)時(shí)序5.4超聲波測(cè)距模塊的設(shè)計(jì)超聲波測(cè)距測(cè)距模塊采用hc-sr04模塊,其芯片如圖5-10所示:圖5-10hr-sr04超聲波集成模塊工作原理采用的是i/o觸發(fā)測(cè)距,給至少10 us的高電平信號(hào)。另外,此模塊可以自動(dòng)發(fā)送8個(gè)40 khz的方波脈沖,并能夠自動(dòng)檢測(cè)是否有信號(hào)返回,如果檢測(cè)到有信號(hào)返回則通過(guò)i/o口輸出低電平,高電平的持續(xù)時(shí)間就是超聲波從發(fā)射到返回所用的時(shí)間,則所測(cè)量的距離=(高電平時(shí)間

18、15;聲速)/2,時(shí)序圖如圖5-11。圖5-11此模塊不宜帶電連接,如果要帶電連接,則先讓模塊的 gnd 端先連接。測(cè)距時(shí),被測(cè)物體的面積不少于 0.5 平方米且要盡量平整。否則會(huì)影響測(cè)試結(jié)果。6 軟件設(shè)計(jì)6.1 程序流程圖6.1.1 主程序流程圖 數(shù)據(jù)初始化 定時(shí)器初始化 顯示初始化進(jìn)入while循環(huán) 溫度計(jì)算 聲速計(jì)算 讀取定時(shí)器值 距離清零 lcd顯示 距離計(jì)算超聲波測(cè)量觸發(fā)等待中斷是否觸發(fā) 否是6.1.2 外部中斷0流程圖 外部中斷0入口讀取當(dāng)前定時(shí)器值 置測(cè)量成功標(biāo)志 返回6.2子程序設(shè)計(jì)子程序包括了lcd顯示模塊程序,ds18b20溫度采集模塊程序。6.2.1溫度采集模塊子程序根據(jù)

19、ds18b20的相關(guān)資料編寫了溫度采集程序void dsreset(void) /ds18b20初始化 uint i; ds=0; i=103; while(i>0)i-; ds=1; i=4; while(i>0)i-;bit tmpreadbit(void) /讀一位 uint i; bit dat; ds=0; i+; /小延時(shí)一下 ds=1; i+;i+; dat=ds; i=8; while(i>0)i-; return (dat);uchar tmpread(void) /讀一個(gè)字節(jié) uchar i,j,dat; dat=0; for(i=1;i<=8;i+

20、) j=tmpreadbit(); dat=(j<<7)|(dat>>1); /讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個(gè)字節(jié)在dat里 return(dat); /將一個(gè)字節(jié)數(shù)據(jù)返回void tmpwritebyte(uchar dat) /寫一個(gè)字節(jié) uint i; uchar j; bit testb; for(j=1;j<=8;j+) testb=dat&0x01; dat=dat>>1; if(testb) / 寫1部分 ds=0; i+;i+; ds=1; i=8; while(i>0)i-; else ds=0; /寫0部分 i

21、=8; while(i>0)i-; ds=1; i+;i+; void tmpchange(void) /發(fā)送溫度轉(zhuǎn)換命令 dsreset(); /初始化ds18b20 delayb(1); /延時(shí) tmpwritebyte(0xcc); / 跳過(guò)序列號(hào)命令 tmpwritebyte(0x44); /發(fā)送溫度轉(zhuǎn)換命令int tmp() /獲得溫度 int temp; uchar a,b; dsreset(); delayb(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); /發(fā)送讀取數(shù)據(jù)命令 a=tmpread(); /連續(xù)讀兩個(gè)字節(jié)數(shù)據(jù) b=tmp

22、read(); temp=b; temp<<=8; temp=temp|a; /兩字節(jié)合成一個(gè)整型變量。 return temp; /返回溫度值6.2.2 lcd顯示子程序根據(jù)1602的資料編寫了距離、溫度顯示模塊的程序void write_com(uchar common) /1602寫指令函數(shù)rs=0;p0=common;delay(1);en=1;delay(1);en=0;void write_data(uchar data) /1602寫數(shù)據(jù)函數(shù)rs=1;p0=data;delay(1);en=1;delay(1);en=0;void init_1602() /初始化16

23、02rw=0;/只寫不讀en=0;write_com(0x38);/7*5 2*16; 八位數(shù)據(jù)接口write_com(0x0c); /開顯示,無(wú)光標(biāo)write_com(0x06);/地址自動(dòng)加一write_com(1);/清屏void display(uint temp) /顯示函數(shù) uchar ge,shi,bai,qian,i;/分別為距離的千、百、十、個(gè)位 qian=temp/1000; bai=temp%1000/100; shi=temp%100/10; ge=temp%10; write_com(0x80); /光標(biāo)在第一行第一列 for(i=0;i<7;i+) write

24、_data(table1i);/顯示“juli:”字樣write_data(qian+0x30); /顯示距離數(shù)值write_data(bai+0x30);write_data(shi+0x30);write_data(ge+0x30);write_com(0x80+11); /光標(biāo)在第一行第12列for(i=0;i<2;i+)write_data(table2i);/顯示“mm”字母write_com(0x80+0x40); /光標(biāo)在第二行第一列for(i=0;i<8;i+)write_data(table3i); /顯示“wendu:”字樣write_data(ly_dis0+

25、0x30); /顯示溫度數(shù)值write_data(ly_dis1+0x30);write_com(0x80+0x40+11); /光標(biāo)第二行第12列for(i=0;i<1;i+)write_data(table4i); /顯示“c”字母 7 誤差分析7.1 溫度環(huán)境溫度影響聲速是本設(shè)計(jì)中存在誤差最主要的原因。當(dāng)溫差較大時(shí),前后兩次測(cè)距的誤差肯定前后相差較大,故本設(shè)計(jì)采用了溫度補(bǔ)償?shù)姆椒▉?lái)減少溫度的影響。7.2 障礙物表面材料因?yàn)檎系K物的發(fā)射面比較粗糙會(huì)引起發(fā)射信號(hào)散射開那么回波信號(hào)就會(huì)減弱,這樣就會(huì)導(dǎo)致測(cè)量結(jié)果的誤差增大,這是本設(shè)計(jì)不可避免的誤差。7.3 超聲波模塊探頭距離兩個(gè)超聲波探頭

26、即發(fā)射探頭和接收探頭和障礙物之間存在一個(gè)幾何角度,當(dāng)兩個(gè)探頭的距離很近并遠(yuǎn)小于與被測(cè)物距離時(shí)這個(gè)幾何角度被忽略不計(jì),這樣測(cè)得的距離才約等于實(shí)際距離,這也是本設(shè)計(jì)不可避免的誤差。8總結(jié)此測(cè)距系統(tǒng)的硬件電路比較簡(jiǎn)單,都是使用現(xiàn)成模塊搭建。在實(shí)際測(cè)量中,性能指標(biāo)也達(dá)到了設(shè)計(jì)要求。 本次設(shè)計(jì)的步驟如下: 1、根據(jù)任務(wù)要求選擇合理方案 2、元件的選擇 3、硬件設(shè)計(jì)(本設(shè)計(jì)選用的是51開發(fā)板和超聲波測(cè)距集成模塊) 4、軟件設(shè)計(jì) 5、對(duì)整個(gè)系統(tǒng)進(jìn)行調(diào)試,使其達(dá)到要求參考文獻(xiàn)郭天祥.51單片機(jī)c語(yǔ)言教程m.北京:電子工業(yè)出版社郁有文.常健.程繼紅.傳感器原理及工程應(yīng)用(第四版).西安電子科技大學(xué)出版社 附錄一

27、:源程序 #include <reg52.h> #define uchar unsigned char#define uint unsigned intsbit ds=p13; /定義ds18b20接口 sbit rs=p22; /1602管腳sbit rw=p21;sbit en=p20;sbit trig=p14; /超聲波模塊接口sbit echo=p32; /回波信號(hào)接口在外部中斷0int time;int succeed_flag;int speed;char ltemp;uchar ly_dis2;uchar timel;uchar timeh;uchar code t

28、able1=" juli:"uchar code table3=" wendu:"uchar code table2="mm"uchar code table4="c"void delay(uint z) /毫秒延時(shí) uint x,y; for(x=z;x>0;x-) for(y=110;y>0;y-);void delayb(uint count)/溫度延時(shí) uint i; while(count) i=200; while(i>0) i-; count-; void delay_20us()/

29、微秒延時(shí) uchar a ; for(a=0;a<100;a+); void write_com(uchar common) /1602寫指令函數(shù)rs=0;p0=common;delay(1);en=1;delay(1);en=0;void write_data(uchar data) /1602寫數(shù)據(jù)函數(shù)rs=1;p0=data;delay(1);en=1;delay(1);en=0;void init_1602()rw=0;/只寫不讀en=0;write_com(0x38);/7*5 2*16; 八位數(shù)據(jù)接口write_com(0x0c); /開顯示,無(wú)光標(biāo)write_com(0x0

30、6);/地址自動(dòng)加一write_com(1);/清屏/顯示數(shù)據(jù)void display(uint temp) uchar ge,shi,bai,qian,i; qian=temp/1000; bai=temp%1000/100; shi=temp%100/10; ge=temp%10; write_com(0x80); for(i=0;i<7;i+)write_data(table1i); write_data(qian+0x30);write_data(bai+0x30);write_data(shi+0x30);write_data(ge+0x30);write_com(0x80+1

31、1);for(i=0;i<2;i+)write_data(table2i);write_com(0x80+0x40);for(i=0;i<8;i+)write_data(table3i);write_data(ly_dis0+0x30);write_data(ly_dis1+0x30);write_com(0x80+0x40+11);for(i=0;i<1;i+)write_data(table4i); void dsreset(void) /ds18b20初始化 uint i; ds=0; i=103; while(i>0)i-; ds=1; i=4; while(i

32、>0)i-;bit tmpreadbit(void) /讀一位 uint i; bit dat; ds=0; i+; /小延時(shí)一下 ds=1; i+;i+; dat=ds; i=8; while(i>0)i-; return (dat);uchar tmpread(void) /讀一個(gè)字節(jié) uchar i,j,dat; dat=0; for(i=1;i<=8;i+) j=tmpreadbit(); dat=(j<<7)|(dat>>1); /讀出的數(shù)據(jù)最低位在最前面,這樣剛好/一個(gè)字節(jié)在dat里 return(dat); /將一個(gè)字節(jié)數(shù)據(jù)返回void

33、tmpwritebyte(uchar dat) /寫一個(gè)字節(jié) uint i; uchar j; bit testb; for(j=1;j<=8;j+) testb=dat&0x01; dat=dat>>1; if(testb) / 寫1部分 ds=0; i+;i+; ds=1; i=8; while(i>0)i-; else ds=0; /寫0部分 i=8; while(i>0)i-; ds=1; i+;i+; void tmpchange(void) /發(fā)送溫度轉(zhuǎn)換命令 dsreset(); /初始化ds18b20 delayb(1); /延時(shí) tmpwritebyte(0xcc); / 跳過(guò)序列號(hào)命令 tmpwritebyte(0x44); /發(fā)送溫度轉(zhuǎn)換命令int tmp() /獲得溫度 int temp; uchar a,b; dsreset(); delayb(1); tmpwrit

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論