基于單片機(jī)的超生波測(cè)距系統(tǒng)課程設(shè)計(jì)報(bào)告書(shū)_第1頁(yè)
基于單片機(jī)的超生波測(cè)距系統(tǒng)課程設(shè)計(jì)報(bào)告書(shū)_第2頁(yè)
基于單片機(jī)的超生波測(cè)距系統(tǒng)課程設(shè)計(jì)報(bào)告書(shū)_第3頁(yè)
基于單片機(jī)的超生波測(cè)距系統(tǒng)課程設(shè)計(jì)報(bào)告書(shū)_第4頁(yè)
基于單片機(jī)的超生波測(cè)距系統(tǒng)課程設(shè)計(jì)報(bào)告書(shū)_第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月 25 / 28摘要本文主要介紹了基于超聲波傳感器的測(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)模塊的方案

2、33.3溫度采集模塊的方案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溫度采集

3、模塊子程序146.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)

4、保檢測(cè)、食品(酒業(yè)、飲料業(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),因此在汽車(chē)倒車(chē)?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)模塊:觸

5、發(fā)、中斷接收、距離計(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、塊控制口,就可以在接收口等待高電平輸出,一有輸出就可以開(kāi)定時(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)模塊

7、的方案方案1:采用PIC單片機(jī)。PIC單片機(jī)的各個(gè)型號(hào)的兼容性強(qiáng),功能全,型號(hào)多,抗干擾能力強(qiáng)。缺點(diǎn):PIC單片機(jī)價(jià)格貴,燒寫(xiě)器較貴,燒寫(xiě)程序比較麻煩。方案2:采用MCS-51單片機(jī)。MCS-51系列單片機(jī)是8位增強(qiáng)型。51單片機(jī)具有功能強(qiáng),體積小,可靠性好和價(jià)格便宜的優(yōu)點(diǎn),并且編程較為容易,程序的燒寫(xiě)也較為簡(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圍精度為±0.5,當(dāng)電源

8、電壓在5-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以上的高電平,就可以在接收口等待高電平輸出.一有輸出就可以開(kāi)定時(shí)器計(jì)時(shí),當(dāng)此口變?yōu)榈碗娖綍r(shí)就可以讀定時(shí)器的值,此時(shí)就為此次測(cè)距的時(shí)間,這樣就可算出距離。3.5 顯示模塊的方案方案一:選用數(shù)碼管顯示,用普通的數(shù)碼管顯示簡(jiǎn)單的數(shù)字、字母,數(shù)碼管分時(shí)顯示距離和溫度。方案二:選用液晶顯

9、示,顯示的容更加的豐富。根據(jù)所學(xué)知識(shí)與方案顯示容的設(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),并從該起始狀態(tài)

11、開(kā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ù)位鍵重新開(kāi)始運(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部有一個(gè)反相振蕩放大器,XTAL1和XTAL2分別是該反向振蕩放大器的輸入端和輸出端。本設(shè)計(jì)采用的晶振頻率為12MHZ。51系列單片機(jī)還可使用外部時(shí)鐘,在使用外部時(shí)

12、鐘時(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ì)得先了解L

13、CD的各個(gè)引腳然后再設(shè)置其各個(gè)引腳和單片機(jī)連接的的I/O口。LCD1602液晶顯示模塊的讀寫(xiě)操作,屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。1602液晶模塊部的控制器共有11條控制指令,如表5-1所示:表5-1 LCD1602液晶模塊部的控制器共有11條控制指令序號(hào)指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開(kāi)/關(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寫(xiě)數(shù)到CGRAM或DDRAM)10要寫(xiě)的數(shù)據(jù)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)容 根據(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讀寫(xiě)選擇端13D6數(shù)據(jù)口6E使能端14D7數(shù)據(jù)口7D0數(shù)據(jù)口8D1數(shù)據(jù)口5.2.2 1602操作時(shí)序1602的操作

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

16、0管腳圖圖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 DS18B20

17、工作時(shí)序圖(1) 初始化(時(shí)序圖見(jiàn)5-7)圖5-7初始化時(shí)序(2)寫(xiě)數(shù)據(jù)(時(shí)序圖見(jiàn)圖5-8)圖5-8寫(xiě)數(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、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ù)DS18B20

19、的相關(guān)資料編寫(xiě)了溫度采集程序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+) j=tmp

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

21、le(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=tmpread();

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

23、不讀EN=0;write_(0x38);/7*5 2*16; 八位數(shù)據(jù)接口write_(0x0c); /開(kāi)顯示,無(wú)光標(biāo)write_(0x06);/地址自動(dòng)加一write_(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_(0x80); /光標(biāo)在第一行第一列 for(i=0;i<7;i+) write_data(table1i);/顯示“juli:”

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

25、1+0x30);write_(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)散射開(kāi)那么回波信號(hào)就會(huì)減弱,這樣就會(huì)導(dǎo)致測(cè)量結(jié)果的誤差增大,這是本設(shè)計(jì)不可避免的誤差。7.3 超聲波模塊探頭距離兩個(gè)超聲波探頭即發(fā)射探頭和接收探頭和障礙物之間存在一個(gè)幾何角度,當(dāng)兩個(gè)探頭的距離很

26、近并遠(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開(kāi)發(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é)附錄一:源程序#include <reg52.h> #define uchar un

27、signed 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 table1=" juli:"uchar code table3=&quo

28、t; 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()/微秒延時(shí) uchar a ; for(a=0;a<100;a+); void writ

29、e_(uchar common) /1602寫(xiě)指令函數(shù)RS=0;P0=common;delay(1);EN=1;delay(1);EN=0;void write_data(uchar Data) /1602寫(xiě)數(shù)據(jù)函數(shù)RS=1;P0=Data;delay(1);EN=1;delay(1);EN=0;void init_1602()RW=0;/只寫(xiě)不讀EN=0;write_(0x38);/7*5 2*16; 八位數(shù)據(jù)接口write_(0x0c); /開(kāi)顯示,無(wú)光標(biāo)write_(0x06);/地址自動(dòng)加一write_(1);/清屏/顯示數(shù)據(jù)void display(uint temp) uchar

30、ge,shi,bai,qian,i; qian=temp/1000; bai=temp%1000/100; shi=temp%100/10; ge=temp%10; write_(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_(0x80+11);for(i=0;i<2;i+)write_data(table2i);write_(0x80+0x40);for(i=0;i

31、<8;i+)write_data(table3i);write_data(ly_dis0+0x30);write_data(ly_dis1+0x30);write_(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>0)i-;bit tmpreadbit(void) /讀一位 uint i; bit dat; DS=0; i+; /小延時(shí)一下 DS=1;

32、 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 tmpwritebyte(uchar dat) /寫(xiě)一個(gè)字節(jié) uint i; uchar j; bit testb; for(j=1;j<=8

33、;j+) testb=dat&0x01; dat=dat>>1; if(testb) / 寫(xiě)1部分 DS=0; i+;i+; DS=1; i=8; while(i>0)i-; else DS=0; /寫(xiě)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); tmpwritebyte(0

溫馨提示

  • 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)論