超聲波測距儀朱淼森_第1頁
超聲波測距儀朱淼森_第2頁
超聲波測距儀朱淼森_第3頁
超聲波測距儀朱淼森_第4頁
超聲波測距儀朱淼森_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、滁州職業(yè)技術(shù)學(xué)院信息工程系設(shè)計課題: 超聲波測距儀 目 錄目 錄2摘 要4第一章 概述11.1 系統(tǒng)功能要求11.1.1基本要求11.1.2發(fā)揮部分11.2 系統(tǒng)設(shè)計方案11.2.1超聲波測距模塊21.2.2顯示模塊21.2.3主控模塊21.2.4電源模塊3充電控制模塊3第二章 硬件設(shè)計32.1 超聲波測距模塊32.1.1設(shè)計方案32.1.2 HC-SR04芯片介紹42.1.3超聲波測距模塊原理42.2 顯示模塊52.2.1設(shè)計方案52.2.2 1602液晶顯示器介紹162.2.3 1602液晶顯示器原理62.3 主控模塊72.3.1設(shè)計方案72.3.2 STC12C5A60S2單片機介紹27

2、2.3.3STC12C5A60S2單片機原理82.4 總體硬件設(shè)計92.4.1總體設(shè)計方案92.4.2完整硬件電路圖9第三章 軟件設(shè)計103.1 1602液晶屏顯示驅(qū)動模塊103.1.1軟件設(shè)計方案103.1.2軟件流程103.1.3軟件代碼113.2 A/D檢測模塊143.2.1軟件設(shè)計方案143.2.2軟件流程圖153.2.3軟件代碼3153.3 超聲波測距模塊173.3.1軟件設(shè)計方案173.3.2軟件流程圖173.3.3軟件代碼183.4 軟件整體流程253.4.1軟件整體設(shè)計方案253.4.2主函數(shù)程序結(jié)構(gòu)25第五章 系統(tǒng)結(jié)果265.1超聲波測距儀性能介紹265.2超聲波測距儀結(jié)果分

3、析26致 謝28參考文獻29摘 要超聲波測距儀要求測量范圍在5cm500cm,測量精度1cm,測量時與被測物體無直接接觸,能夠清晰穩(wěn)定地顯示測量結(jié)果。由于超聲波指向性強,能量消耗緩慢,在介質(zhì)中傳播的距離較遠,因而超聲波常用于距離測量。超聲波測距儀,可以應(yīng)用于汽車倒車、建筑施工工地以及一些工業(yè)現(xiàn)場的位置監(jiān)控,也可用于液位、井深、管道長度等測量的場合。利用超聲波檢測往往比較迅速、方便、易于做到實時控制,并且在測量精度方面能達到工業(yè)實用的要求,因為往往在移動機器人的研制中得到了廣泛的應(yīng)用。本組設(shè)計的超聲波測距儀采用HC-SR04模塊實現(xiàn)了超聲波的發(fā)射與接收,采用STC12C5A60S2單片機做為該測

4、距儀的控制核心,此設(shè)計易于調(diào)試,成本低廉,具有很強的實用價值和良好的市場前景。關(guān)鍵詞:超聲波傳感器,單片機,測距儀第一章 概述聲波分為縱波和橫波等,聲波可以在任意介質(zhì)當中傳播稱之為縱波。當聲波受到尺寸大于其波長的目標物體阻擋時就會產(chǎn)生反射,反射波稱為回聲。假如聲波在介質(zhì)中傳播的速度是已知的,而且聲波從聲源到達目標然后返回聲源的時間可以測量得到,那么就可以計算出從聲源到目標的距離。超聲波測距儀就是基于上面原理而設(shè)計的。這里聲波傳播的介質(zhì)為空氣,采用的是方向性較好的超聲波。1.1 系統(tǒng)功能要求1.1.1基本要求(1)最大測距距離 5m,最小測距距離 5cm。(2)測量精度小于 1cm。(3)人機界

5、面友好,操作方便,用液晶屏或數(shù)碼管顯示測量值。(4)自帶可充電電池作為電源,充電電池用 USB 口充電。1.1.2發(fā)揮部分(1)最大測距距離提高到 10m。(2)測量精度提高到 5mm。(3)使用兩套以上設(shè)備實現(xiàn)“一問一答”的二次雷達工作方式進行距離測量。各套設(shè)備發(fā)射不同編碼波形實現(xiàn)自身個體身份識別,并以此同時測量自身與其它多個個體之間的距離。1.2 系統(tǒng)設(shè)計方案根據(jù)系統(tǒng)功能要求,本此設(shè)計的思路是將系統(tǒng)分為電源模塊、主控模塊、超聲波測距模塊、顯示模塊和充電控制模塊五個部分(如圖1-1所示)進行分步設(shè)計。電源模塊主控模塊充電控制模塊顯示模塊超聲波測距模塊圖1-1系統(tǒng)功能框圖測量距離的方法有很多種

6、,短距離的可以用米尺,遠距離的有激光測距等,超聲波測距適用于高精度的中長距離測量。因為超聲波在標準空氣中的傳播速度為331.45米/秒,由單片機負責計時,系統(tǒng)的測量精度理論上可以達到毫米級。超聲波測距的原理一般采用渡越時間法TOF(timeofflight),也可以稱為回波探測法。超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時刻的同時開始計時,超聲波在介質(zhì)中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計時。根據(jù)傳聲介質(zhì)的不同,可分為液介式、氣介式和固介式三種。根據(jù)所用探頭的工作方式,又可分為自發(fā)自收單探頭方式和一發(fā)一收雙探頭方式。超聲波在空氣中(20)的傳播速度為340m/s

7、(實際速度為344m/s這里取整數(shù)),根據(jù)計時器記錄的時間就可以計算出發(fā)射點距障礙物的距離,公式S=340*t/2。超聲波測距模塊超聲波測距模塊用于實現(xiàn)本系統(tǒng)核心功能,是本次設(shè)計首先考慮的內(nèi)容,超聲波測距模塊的好壞,直接決定了產(chǎn)品的性能。顯示模塊顯示模塊是人際交換的重要平臺之一,顯示模塊的好壞直接決定了用戶的體驗,所以選擇什么樣的顯示器件也是很重要的。主控模塊主控模塊是本次設(shè)計的核心器件,它起到了“大腦”的作用,在一定程度上決定了產(chǎn)品的性能和功能;強大的單片機可以豐富產(chǎn)品功能,增加用戶體驗和產(chǎn)品性能,更利于軟件開發(fā)等。所以選擇什么樣的單片機更加實惠,性能會更好,也是硬件設(shè)計所面臨的挑戰(zhàn)。1.2

8、.4電源模塊電源模塊是超聲波測距儀的“心臟”,只有給超聲波測距儀的各個“器官”提高足夠的功率,這些“器官”才能發(fā)揮自己的作用,所以選擇一個適合超聲波測距儀的“心臟”也是很重要的,在整體上影響了產(chǎn)品的性能,畢竟超聲波測距儀是手持式的,具有便攜的功能,電源模塊也需要短小精悍。充電控制模塊這個模塊在超聲波測距儀中也是不可缺少的,它性能的優(yōu)良關(guān)系到產(chǎn)品的性能和耐用度。根據(jù)設(shè)計要求,我們知道需要用USB接口給充電電池充電,如果我們用USB接口直接連接外部的USB電源的話,那么USB接口標準電壓為5V,電池電壓不低于5V,這時充電就無法進行。我們?yōu)榱丝梢杂肬SB接口對充電電池充電,采用的是:一個USB接口

9、母頭、升壓模塊、JZC-32F繼電器、發(fā)光二極管共同組成充電控制模塊。在超聲波測距儀正常工作時使用電池直接供電,當電量不足時發(fā)管二極管點亮來提示電量不足。在為電源模塊充電時,外接5v充電器連接超聲波測距儀的USB接口,通過升壓模塊來提升充電電壓,用單片機來控制繼電器為電池充電。第二種方案還帶有電池電量檢測功能,可以再電池電量不足的時給予提示,避免了由于電池電量不足而影響超聲波測距精度。第二章 硬件設(shè)計2.1 超聲波測距模塊2.1.1設(shè)計方案超聲波測距模塊用于實現(xiàn)本系統(tǒng)核心功能,是本次設(shè)計首先考慮的內(nèi)容,在設(shè)計時,本組確實考慮了兩種方案。方案一:選取超聲波收發(fā)探頭作為核心器件,配合外部電路以及超

10、聲波信號處理芯片(CX20106)自主設(shè)計測距模塊。這種方案可以控制超聲波的發(fā)射接收頻率,具有很強系統(tǒng)優(yōu)化功能,但是外部電路復(fù)雜,參數(shù)匹配要求較高,且測距的精度和距離不夠高。方案二:購買市面上已經(jīng)成熟的超聲波測距模塊。這種超聲波模塊的發(fā)射接收頻率固定,不具有系統(tǒng)優(yōu)化的可能,但是信號接收精度高,控制簡單。經(jīng)過比較,方案二既能夠滿足設(shè)計要求,同時對控制程序的要求較低,因此選取方案二作為本模塊的設(shè)計方案。 HC-SR04芯片介紹HC-SR04芯片是超聲波模塊,它由STC11單片機、MAX232電平轉(zhuǎn)換芯片、TL074四個集成的運算放大器組成。使用HC-SR04超聲波模塊,可以很方便的與單片機連接,并

11、且超聲波測距的精度很高,驅(qū)動程序也很好編寫。HC-SR04超聲波模塊也是由發(fā)射部分和接收部分組成。發(fā)射部分包括,STC11系列的單片機,MAX232電平轉(zhuǎn)換芯片和超聲波發(fā)射頭組成。接收部分包括:TL074芯片和超聲波接收頭。STC11系列的單片機芯片主要起到控制作用,起到和我們使用的單片機進行通訊,包括TX引腳的啟動電平和RX引腳的接收電平。我們將單片機輸出TX=1,啟動信號后,STC11單片機打開MAX232芯片的電源開關(guān),并且輸出8個40kHz的方波信號給MAX232芯片,MAX232芯片是電平轉(zhuǎn)換芯片,在這里的作用就是電平轉(zhuǎn)換,將5V電平轉(zhuǎn)換到12V輸出。這樣可以提高發(fā)射功率,我們知道功

12、率和電壓和電流有關(guān),現(xiàn)在電流不變,電壓升高,那么超聲波發(fā)射的功率顯然就上升了。功率的提升可以增加超聲波檢測的距離和精度。正是有了這個模塊,所以HC-SR04的性能這能這樣好。TL074芯片是4個集成運放電路。而且它是低噪聲輸入的JFET的運算放大器,可以很好的將超聲波接收頭接收到的信號,進行放大,整形等。通過三極管控制和STC11單片機的通訊信號,拉低或者拉高。所有的信號經(jīng)過STC11單片機處理后,和我們使用的主控芯片進行通訊和數(shù)據(jù)傳輸。超聲波測距模塊原理(1)超聲波測距原理:超聲波是利用反射的原理測量距離的,被測距離一端為超聲波傳感器,另一端必須有能反射超聲波的物體。測量距離時,將超聲波傳感

13、器對準反射物發(fā)射超聲波,并開始計時,超聲波在空氣中傳播到達障礙物后被反射回來,傳感器接收到反射脈沖后立即停止計時,然后根據(jù)超聲波的傳播速度和計時時間就能計算出兩端的距離。測量距離L為L=(t/2)*c 超聲波在空氣中的傳播速度為340m/s,根據(jù)計時器記錄的時間t,就可以計算出發(fā)射點距離障礙物的距離(s)即:s=340t/2。這就是所謂的時間差測距法。 (2)原理圖:圖2-1-1是和單片機連接的原理圖;圖2-1-2是HC-SR04內(nèi)部原理圖。圖2-1-1 HC-SR04原理圖圖2-1-2 HC-SR04內(nèi)部原理圖2.2 顯示模塊2.2.1設(shè)計方案在顯示模塊的設(shè)計方案中,選擇什么型號的顯示器件,

14、關(guān)乎到用戶體驗,本組認為數(shù)碼管不利于控制,且視覺效果不好,所以選取了1602液晶屏作為主要顯示器件,相對于數(shù)碼管,液晶屏的顯示信息數(shù)量更多,而且數(shù)據(jù)更清晰,這樣用戶使用時能更清楚、直觀的明白距離等信息,同時配合發(fā)光二極管作為報警器件,可以擁有更好的用戶體驗。 1602液晶顯示器介紹11602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好

15、)。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。市面上字符液晶大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。2.2.3 1602液晶顯示器原理(1)1602液晶顯示器工作原理: (2)原理圖:圖2-2-1是1602液晶顯示器與單片機連接原理圖;圖2-2-2是1602液晶顯示器的實物圖。圖2-2-1 1602液晶屏接線圖圖2-2-2 1602液晶屏實物圖2.3 主控模塊2.3.1設(shè)計方案主控模塊是控制超聲波發(fā)射與接收的核心器件,選取什么型號的單片機是至

16、關(guān)重要的。STC59C52RC單片機使用起來比較簡單,程序也容易編寫,但是考慮到,以后超聲波測距儀功能的拓展和本次設(shè)計要求,如檢測距離的精度高,且要進行A/D檢測等,經(jīng)過挑選,最終選擇了STC12C5A60S2單片機作為本次超聲波測距模塊的主控芯片,這款單片機具有執(zhí)行速度快,且內(nèi)部自帶A/D轉(zhuǎn)換,符合了本次設(shè)計的功能要求。 STC12C5A60S2單片機介紹2STC12C5A60S2/AD/PWM系列單片機是宏晶科技生產(chǎn)的單時鐘/機器周期(1T)的單片機,是高速/低功耗/超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成MAX810專用復(fù)位電路,2路P

17、WM,8路高速10位A/D轉(zhuǎn)換(250K/S),針對電機控制,強干擾場合具體功能如下:(1) 增強型8051 CPU,1T,單時鐘/機器周期,指令代碼完全兼容傳統(tǒng)8051;(2) 工作電壓:STC12C5A60S2系列工作電壓:5.5V-3.3V(5V單片機)STC12LE5A60S2系列工作電壓:3.6V-2.2V(3V單片機);(3) 工作頻率范圍:0 - 35MHz,相當于普通8051的 0420MHz;(4) 用戶應(yīng)用程序空間8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K字節(jié);(5) 片上集成1280字節(jié)RAM;(6) 通用I/O口(

18、36/40/44個),復(fù)位后為:準雙向口/弱上拉(普通8051傳統(tǒng)I/O口),可設(shè)置成四種模式:準雙向口/弱上拉,推挽/強上拉,僅為輸入/高阻,開漏,每個I/O口驅(qū)動能力均可達到20mA,但整個芯片最大不要超過55Ma;(7) ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用編程器,無需專用仿真器 可通過串口(P3.0/P3.1)直接下載用戶程序,數(shù)秒即可完成一片;(8) 有EEPROM功能(STC12C5A62S2/AD/PWM無內(nèi)部EEPROM);(9) 內(nèi)置看門狗;(10) 時鐘源:外部高精度晶體/時鐘,內(nèi)部R/C振蕩器(溫漂為+/-5%到+/-10%以內(nèi)) 1用戶在下載用戶程序

19、時,可選擇是使用內(nèi)部R/C振蕩器還是外部晶體/時鐘,常溫下內(nèi)部R/C振蕩器頻率為:5.0V單片機為:11MHz15.5MHz,3.3V單片機為:8MHz12MHz,精度要求不高時,可選擇使用內(nèi)部時鐘,但因為有制造誤差和溫漂,以實際測試為準;(11) 共4個16位定時器 兩個與傳統(tǒng)8051兼容的定時器/計數(shù)器,16位定時器T0和T1,沒有定時器2,但有獨立波特率發(fā)生器 做串行通訊的波特率發(fā)生器 再加上2路PCA模塊可再實現(xiàn)2個16位定時器;(12) 2個時鐘輸出口,可由T0的溢出在P3.4/T0輸出時鐘,可由T1的溢出在P3.5/T1輸出時鐘;(13) PWM(2路)/PCA(可編程計數(shù)器陣列,

20、2路):可用來當2路D/A使用、也可用來再實現(xiàn)2個定時器、也可用來再實現(xiàn)2個外部中斷(上升沿中斷/下降沿中斷均可分別或同時支持);(14) A/D轉(zhuǎn)換, 10位精度ADC,共8路,轉(zhuǎn)換速度可達250K/S(每秒鐘25萬次)18.通用全雙工異步串行口(UART),由于STC12系列是高速的8051,可再用定時器或PCA軟件實現(xiàn)多串口。2.3.3STC12C5A60S2單片機原理STC12C5A60S2單片機控制原理:圖2-3-1 STC12C5A60S2引腳圖2.4 總體硬件設(shè)計2.4.1總體設(shè)計方案在上面我們已經(jīng)提到了,我們所有的硬件模塊都是根據(jù)設(shè)計要求而得到的,總體設(shè)計思路如下:當接通電源后

21、,電源給所有硬件電路供電,同時單片機對電源模塊進行電壓檢測,因為電池電量和電池電壓有直接關(guān)系,所以我們可以通過檢測電池電壓知曉電池的電量,這樣在電池沒電時,可以發(fā)出報警信號,當電池過充時,同樣可以報警和利用繼電器關(guān)閉充電回路。并且單片機可以實時將電池電量顯示在1602液晶屏上面,增加信息量。當上電時,單片機不僅會對電池電壓進行檢測,而且當電池電壓不高不低時,會控制HC-SR04超聲波模塊發(fā)出超聲波,并且打開定時器,當超聲波反射回來的時候,關(guān)閉定時器,然后計算出距離數(shù)據(jù),最后驅(qū)動1602液晶屏顯示出來。這就是我們超聲波測距儀的整體設(shè)計思路。2.4.2完整硬件電路圖通過上面的設(shè)計方案和設(shè)計要求,本

22、組設(shè)計出了完整的電路圖,如圖2-4-1所示。圖2-4-1超聲波測距儀完整電路圖第三章 軟件設(shè)計3.1 1602液晶屏顯示驅(qū)動模塊3.1.1軟件設(shè)計方案根據(jù)1602液晶屏的資料,我們可以知道1602液晶屏有16個引腳,數(shù)據(jù)腳有8個,與操作相關(guān)的引腳有3個,分別是RS數(shù)據(jù)/命令選擇端、R/W讀寫選擇端、E使能信號。知道這些引腳功能,并且知道了操作1602的時序后,就可以編寫出1602液晶屏的操作讀寫代碼。通過這些讀寫代碼,我們單片機就可以與1602液晶屏進行通訊,也就可以讓1602液晶屏顯示出我們想顯示的內(nèi)容了。3.1.2軟件流程我們查詢資料可以得到1602液晶屏的基本操作時序,如:寫命令:RS=

23、0.RW=0,D0-D7=指令碼,E=高脈沖。寫數(shù)據(jù):RS=1,RW=0,D0-D7=數(shù)據(jù),E=高脈沖。具體的寫時序圖如下所示:圖3-1-1是寫指令時序圖;圖3-1-2是寫數(shù)據(jù)時序圖。 圖3-1-1 1602液晶屏寫指令時序圖 圖3-1-2 1602液晶屏寫數(shù)據(jù)時序圖3.1.3軟件代碼#include#includeSTC12C5A60S2.Hsbit RS=P25;sbit RW=P26;sbit E=P27;extern void delay_ms(unsigned int j);unsigned char P00(unsigned char i)unsigned char da=0,n;

24、for(n=8;n0;n-)da=da1;return(da);bit lcd_bz()/查忙函數(shù)bit busy;RS=0;/選擇目標為指令寄存器RW=1;/讀操作E=1;/拉高E端口_nop_();_nop_();/busy=(P0&0x80)7; /取出D7位(忙信號)busy=P0&0X01;_nop_();_nop_();E=0; /E端產(chǎn)生下降沿return busy; /返回忙信號void lcd_wcmd(unsigned char cmd)/寫指令函數(shù)unsigned char cmd1;while(lcd_bz();/查忙cmd1=P00(cmd);RS=0;/選擇目標為指

25、令寄存器RW=0;/寫操作P0=cmd1; /發(fā)送指令數(shù)據(jù)E=1; /拉高E端口_nop_();_nop_();_nop_();_nop_();E=0; /E端產(chǎn)生下降沿,數(shù)據(jù)寫入指令寄存器void lcd_wdat(unsigned char dat)/寫數(shù)據(jù)函數(shù)unsigned char dat1;while(lcd_bz();/查忙dat1=P00(dat);RS=1;/選擇目標為數(shù)據(jù)寄存器RW=0; /寫操作P0=dat1; /發(fā)送顯示內(nèi)容數(shù)據(jù) E=1;/拉高E端口_nop_(); _nop_();_nop_();_nop_();E=0; /E端產(chǎn)生下降沿,數(shù)據(jù)寫入指令寄存器void

26、lcd_init()/初始化函數(shù)lcd_wcmd(0X38);/8位總線,雙行顯示,字符大小5*7delay_ms(1);lcd_wcmd(0x0c);/開顯示,無光標delay_ms(1);lcd_wcmd(0x06);/光標向右,文字不移動delay_ms(1);lcd_wcmd(0x01);/清屏delay_ms(1);void display_up(unsigned char *p)/第一行顯示函數(shù)unsigned char temp=0,i;lcd_wcmd(0x00|0x80);/設(shè)置顯示起始位置為左邊第一位for(i=0;i16;i+)/依次顯示16個字符temp=pi;lcd_

27、wdat(temp);delay_ms(1);void display_down(unsigned char *p)/第二行顯示函數(shù)unsigned char temp=0,i;lcd_wcmd(0x40|0x80);/設(shè)定顯示起始位置為左邊第一位for(i=0;i0;k-)val_av+=AD_zhuanhuan(num);/100次采集求和val_av/=100.0;/求平均值val_av=val_av*5.0/1024;/單片機電源為5V,求真實電壓值val_av/=2.5;/通過2.5這個系數(shù),先轉(zhuǎn)換為比例值val_av=5.0/val_av;/通過比例值和5V之間的關(guān)系,求出實際電壓

28、值return(val_av);3.3 超聲波測距模塊3.3.1軟件設(shè)計方案超聲波基本設(shè)計思路在上面已經(jīng)提到了,利用的就是超聲波發(fā)射和反射回來的時間差而計算出聲源到目標之間的距離。在本組的超聲波測距儀設(shè)計中,我們單片機先將HC-SR04的T腳置1,持續(xù)時間在10us以上就可以,然后拉低到0.當HC-SR04接收到這個高電平后,會自動發(fā)出8個約40kHz的脈沖信號給MAX232,然后MAX232將5V和0V的脈沖變換成+12V和-12的脈沖輸出,送給超聲波發(fā)射探頭。當超聲波發(fā)射完成后,HC-SR04會對R引腳進行拉高處理,單片機在檢測到這個引腳變?yōu)楦唠娖胶?,將打開定時器,開始定時,當HC-SR0

29、4模塊接收到超聲波反射回來的信號后,會對R引腳進行拉低處理,這樣單片機的引腳也會被拉低,我們在單片機程序中對這個引腳的電平不斷的判斷,當這個引腳為低電平時,我們認為超聲波返回了,這時我們將定時器關(guān)閉,然后開始計算距離數(shù)據(jù),最后顯示到1602液晶屏上面。這就是本組設(shè)計的超聲波測距儀的軟件設(shè)計思路。3.3.2軟件流程圖超聲波測距的軟件流程如圖3-3-1所示:圖3-3-1 超聲波測距流程圖3.3.3軟件代碼void Conut()/超聲波距離計算函數(shù)unsigned long s_t=0;unsigned char i=0,j=0;unsigned int k=0,temp=0;/變量的定義,這里要

30、注意變量的范圍float ad1=0;time=(unsigned int)(TH0*256+TL0);/將定時器的時間數(shù)據(jù)整合在一起TH0=0;/清空定時器數(shù)據(jù)TL0=0;s_t=(time*188.15)/1000;/計算出實際距離數(shù)據(jù)ss_num=(unsigned int)s_t;s_num+;if(s_num=10)/利用冒泡算法求出10次的平均值s_num=0;for(i=0;i9;i+)for(j=0;jsj+1)temp=sj;sj=sj+1;sj+1=temp;k=(unsigned int)(s2+s3+s4+s5+s6)/5;if(k0)&(k=120)&(k=220)&

31、k=420)&(k=520)&(k=620)&(k=720)&(k=820)&(k=920)&(k=1020)&(k=3020)&(k=4520)&(k=5020)&(k6020)&(flag=0)k=k+16;flag=1;qq5=(k/1000)%10+0X30;/這里是將距離數(shù)據(jù)轉(zhuǎn)換成1602顯示數(shù)據(jù)qq6=(k/100)%10+0X30;qq7=(k/10)%10+0X30;qq9=(k/1)%10+0X30;display_up(qq);for(i=0;i10;i+)si=0; flag=0;if(flag_time=1)/對電池電壓進行檢測判斷和顯示flag_time=0;ad1=

32、ad_av(0x00);zhuanhuan_1602(ad1);if(sj254000)gyd=0;qyd=1;jdq=1;if(sj2=48000)&(sj28;TL1=(65536-40000)%256;TH0=0;TL0=0;ET1=1; /允許T1中斷display_up(qq);delay_ms(1);display_down(shuzu);TR1=1;while(1) while(!RX);/當RX為零時等待 TR0=1; /開啟計數(shù)while(RX);/當RX為1計數(shù)并等待 TR0=0;/關(guān)閉計數(shù)TR1=0;TH1=(65536-40000)8;TL1=(65536-40000)

33、%256;num=0; Conut();/計算 void timer1(void) interrupt 3/這里利用定時器每隔一段時間開啟一次超聲波進行測距TH1=(65536-40000)8;TL1=(65536-40000)%256;num+;time2+;if(time2=100)time2=0;flag_time=1;if(num=2)num=0; TRIG=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop

34、_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TRIG=0; 3.4 軟件整體流程3.4.1軟件整體設(shè)計方案在根據(jù)設(shè)計要求,基本確定了硬件后,就要著手進行軟件的設(shè)計。本組設(shè)計的是超聲波測距儀,所以整體的軟件都是圍繞著超聲波測距來實現(xiàn)的,首先像1602液晶屏是擁有自己的操作時序,首先編寫出這些固定的程序,把整體的框架給搭建好,在仿真電路中,對硬件進行基本的仿真,看看能不能實現(xiàn)。在實現(xiàn)了硬件的基本功能后,就開始設(shè)計超聲波測距,根據(jù)HC-SR04模塊的資料,獲得操作的時序,進而進行程序的編寫,

35、寫好了程序后,利用開發(fā)板和HC-SR04模塊和1602液晶屏進行第一次整機調(diào)試,如果程序可行,那么就開始在精度,測距的速度,顯示上面優(yōu)化了。在整體都可行的基礎(chǔ)上,進行電池電壓部分的設(shè)計,在程序里面添加A/D檢測程序,然后隨便檢測一個電壓,看看這個檢測的電壓準不準確,如果準確的話,然后就是所有程序和模塊在一起調(diào)試了,可以用開發(fā)板,也可以直接做出超聲波測距儀,然后將程序下載到單片機里面,進行整機調(diào)試。3.4.2主函數(shù)程序結(jié)構(gòu)主函數(shù)程序流程如圖3-4-1所示:圖3-4-1 超聲波測距儀軟件主函數(shù)流程圖第5章 系統(tǒng)結(jié)果5.1超聲波測距儀性能介紹距離測量:本組通過對本組設(shè)計的超聲波測距儀進行距離測量,得到了本組本次設(shè)計的超聲波測距儀的的測距范圍在3.5cm-5m范圍內(nèi)精確測量,測量精度在1cm范圍內(nèi)。在場地好的情況下,距離測量的范圍可以擴展到7m左右,精度也能控制在2cm以內(nèi)。關(guān)于距離測量,我們采用了多重距離補償系統(tǒng),把距離誤差穩(wěn)定在1cm以內(nèi)。達到了本次設(shè)計的基本要求。5.2超聲波測距儀結(jié)果分析在設(shè)計過程中,由于場地環(huán)境和模塊功率、程序算法的限制,本組設(shè)計得超聲波測距儀的精度并不是很高,有

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論