超聲波測距儀畢業論文_第1頁
超聲波測距儀畢業論文_第2頁
超聲波測距儀畢業論文_第3頁
超聲波測距儀畢業論文_第4頁
超聲波測距儀畢業論文_第5頁
已閱讀5頁,還剩27頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、超聲波測距儀目錄TOC o 1-3 h u HYPERLINK l _RefHeading_Toc26958 目 錄i HYPERLINK l _RefHeading_Toc13312 摘 要4 HYPERLINK l _RefHeading_Toc13227 第一章 概述1 HYPERLINK l _RefHeading_Toc32274 1.1 系統功能要求1 HYPERLINK l _RefHeading_Toc18580 1.1.1基本要求1 HYPERLINK l _RefHeading_Toc6684 1.1.2發揮部分1 HYPERLINK l _RefHeading_Toc18

2、377 1.2 系統設計方案1 HYPERLINK l _RefHeading_Toc30628 1.2.1超聲波測距模塊2 HYPERLINK l _RefHeading_Toc7769 1.2.2顯示模塊2 HYPERLINK l _RefHeading_Toc9370 1.2.3主控模塊2 HYPERLINK l _RefHeading_Toc2858 1.2.4電源模塊2 HYPERLINK l _RefHeading_Toc29235 1.2.5充電控制模塊2 HYPERLINK l _RefHeading_Toc6362 第二章 硬件設計4 HYPERLINK l _RefHead

3、ing_Toc19919 2.1 超聲波測距模塊4 HYPERLINK l _RefHeading_Toc16284 2.1.1設計方案4 HYPERLINK l _RefHeading_Toc21987 2.1.2 HC-SR04芯片介紹4 HYPERLINK l _RefHeading_Toc14071 2.1.3超聲波測距模塊原理4 HYPERLINK l _RefHeading_Toc13103 2.2 顯示模塊5 HYPERLINK l _RefHeading_Toc32409 2.2.1設計方案5 HYPERLINK l _RefHeading_Toc16601 2.2.2 160

4、2液晶顯示器介紹16 HYPERLINK l _RefHeading_Toc7828 2.2.3 1602液晶顯示器原理6 HYPERLINK l _RefHeading_Toc8732 2.3 主控模塊7 HYPERLINK l _RefHeading_Toc25288 2.3.1設計方案7 HYPERLINK l _RefHeading_Toc6827 2.3.2 STC12C5A60S2單片機介紹27 HYPERLINK l _RefHeading_Toc12863 2.3.3 STC12C5A60S2單片機原理8 HYPERLINK l _RefHeading_Toc26364 2.4

5、 總體硬件設計9 HYPERLINK l _RefHeading_Toc27334 2.4.1總體設計方案9 HYPERLINK l _RefHeading_Toc31764 2.4.2完整硬件電路圖9 HYPERLINK l _RefHeading_Toc10771 第三章 軟件設計10 HYPERLINK l _RefHeading_Toc4750 3.1 1602液晶屏顯示驅動模塊10 HYPERLINK l _RefHeading_Toc31015 3.1.1軟件設計方案10 HYPERLINK l _RefHeading_Toc16109 3.1.2軟件流程10 HYPERLINK

6、l _RefHeading_Toc13276 3.1.3軟件代碼10 HYPERLINK l _RefHeading_Toc10622 3.2 A/D檢測模塊14 HYPERLINK l _RefHeading_Toc5560 3.2.1軟件設計方案14 HYPERLINK l _RefHeading_Toc19032 3.2.2軟件流程圖14 HYPERLINK l _RefHeading_Toc24188 3.2.3軟件代碼315 HYPERLINK l _RefHeading_Toc29239 3.3 超聲波測距模塊16 HYPERLINK l _RefHeading_Toc21511

7、3.3.1軟件設計方案16 HYPERLINK l _RefHeading_Toc28479 3.3.2軟件流程圖16 HYPERLINK l _RefHeading_Toc21645 3.3.3軟件代碼17 HYPERLINK l _RefHeading_Toc21752 3.4 軟件整體流程24 HYPERLINK l _RefHeading_Toc806 3.4.1軟件整體設計方案24 HYPERLINK l _RefHeading_Toc26877 3.4.2主函數程序結構24 HYPERLINK l _RefHeading_Toc10823 第四章 系統結果25 HYPERLINK

8、l _RefHeading_Toc554 5.1超聲波測距儀性能介紹25 HYPERLINK l _RefHeading_Toc2731 5.2超聲波測距儀結果分析25 HYPERLINK l _RefHeading_Toc22106 致27 HYPERLINK l _RefHeading_Toc17060 參考文獻28摘要超聲波測距儀要求測量范圍5cm500cm,測量精度1cm,測量時不與被測物體直接接觸,并能清晰穩定地顯示測量結果。超聲波因其指向性強、耗能慢、在介質中傳播距離遠等優點,常被用于測距。超聲波測距儀可用于監測汽車倒車、建筑工地和一些工業現場的位置,也可用于測量液位、井深、管道長

9、度等。由于超聲波檢測在移動機器人的發展中得到了廣泛的應用,因此超聲波檢測往往快捷、方便、易于實現實時控制,并且在測量精度方面能夠滿足工業和實際的要求。本課題組設計的超聲波測距儀采用HC-SR04模塊實現超聲波的發射和接收,以STC12C5A60S2單片機作為測距儀的控制核心。該設計易于調試,成本低,具有很強的實用價值和良好的市場前景。關鍵詞:超聲波傳感器,單片機,測距儀第一章概述聲波可分為縱波和橫波等。聲波可以在任何介質中傳播,被稱為縱波。當聲波被尺寸大于其波長的目標物體阻擋時,就會被反射,反射回來的波稱為回波。如果已知聲波在介質中的傳播速度,可以測出聲波從聲源到達目標再返回聲源的時間,那么就

10、可以計算出聲源到目標的距離。超聲波測距儀就是基于上述原理設計的。這里聲波傳播的介質是空氣,使用指向性更好的超聲波。1.1系統功能要求基本要求(1)最大距離為5米,最小距離為5厘米。(2)測量精度小于1cm。(3)人機界面友好,操作方便,測量值由液晶屏或數碼管顯示。(4)自帶充電電池作為電源,充電電池通過USB口充電。扮演角色(1)最大測距距離增加到10m。(2)測量精度提高到5毫米。(3)利用兩套以上設備實現“一問一答”的二次雷達工作模式進行測距。每套設備發射不同的編碼波形實現自己的個體識別,同時測量自己與其他個體的距離。1.2系統設計方案根據系統的功能需求,本次設計的思路是將系統分為五個部分

11、(如圖1-1所示):電源模塊、主控模塊、超聲波測距模塊、顯示模塊和充電控制模塊。電源模塊電源模塊主控制模塊充電控制模塊顯示組件超聲測距模塊圖1-1系統功能框圖測量距離的方法有很多種,短距離用米尺,長距離用激光測距。超聲波測距適用于高精度的中長距離測量。由于超聲波在標準空氣中的傳播速度為331.45 m/s,單片機負責計時,系統的測量精度理論上可以達到毫米級。超聲波測距的原理一般采用TOF(飛行時間),也可稱為回波檢測法。超聲波發射器向某個方向發射超聲波,在發射時間的同時開始計時。超聲波在介質中傳播,途中遇到障礙物立即返回,超聲波接收器收到反射波后立即停止計時。根據傳聲介質的不同,可分為液體介質

12、、氣體介質和固體介質三種。根據所用探頭的工作模式,可分為自發自收單探頭模式和一發一收雙探頭模式。超聲波在空氣(20)中的傳播速度為340m/s(實際速度為344m/s,此處為整數)。根據計時器記錄的時間,可以計算出發射點與障礙物的距離,公式S=340*t/2。超聲波測距模塊超聲波測距模塊用于實現系統的核心功能,這是本設計中首先考慮的。超聲波測距模塊的質量直接決定了產品的性能。顯示模塊展示模塊是人際交流的重要平臺之一。顯示模塊的好壞直接決定了用戶的體驗,所以選擇什么樣的顯示設備也很重要。主控制模塊主控模塊是本次設計的核心器件,起著“大腦”的作用,在一定程度上決定了產品的性能和功能;強大的MCU可

13、以豐富產品功能,增加用戶體驗和產品性能,更有利于軟件開發。所以,選擇什么樣的MCU價格更實惠,性能更好,對硬件設計來說是一個挑戰。電源模塊電源模塊是超聲波測距儀的“心臟”。只有給超聲波測距儀的每個“器官”增加足夠的功率,這些“器官”才能發揮自己的作用。因此,選擇一顆適合超聲波測距儀的“心臟”也是非常重要的,它影響著產品的整體性能。畢竟超聲波測距儀是手持便攜的,電源模塊需要短小精悍。充電控制模塊這個模塊在超聲波測距儀中也是不可或缺的,它的優異性能關系到產品的性能和耐用性。根據設計要求,我們知道我們需要使用USB接口給充電電池充電。如果我們使用USB接口直接連接外部USB電源,那么USB接口的標準

14、電壓是5V,電池電壓不低于5V,就無法進行充電。為了給帶USB接口的充電電池充電,使用了一個USB接口母頭、升壓模塊、JZC-32F繼電器和LED組成充電控制模塊。超聲波測距儀正常工作時,直接用電池供電,電量不足時,LED點亮表示電量不足。給電源模塊充電時,將外置5v充電器接入超聲波測距儀的USB接口,通過升壓模塊提高充電電壓,用單片機控制繼電器給電池充電。第二種方案還具有電池電量檢測功能,可以在電池電量不足時給出提示,避免了電池電量不足對超聲波測距精度的影響。第二章硬件設計2.1超聲波測距模塊2.1.1設計方案超聲波測距模塊用于實現本系統的核心功能,這是本設計中首先考慮的。在設計中,我們小組

15、確實考慮了兩個方案。方案一:選用超聲波收發探頭作為核心器件,配合外部電路,用超聲波信號處理芯片(CX20106)獨立設計測距模塊。這種方案可以控制超聲波的發射和接收頻率,具有很強的系統優化功能,但外部電路復雜,參數匹配要求高,測距精度和距離不夠高。方案二:購買市場上成熟的超聲波測距模塊。這個超聲波模塊的發射和接收頻率是固定的,所以不存在系統優化的可能,但是信號接收精度高,控制簡單。經過比較,第二種方案不僅能滿足設計要求,而且對控制程序的要求較低,因此選擇第二種方案作為本模塊的設計方案。2 . 1 . 2 HC-sr04芯片介紹HC-SR04芯片是一個超聲波模塊,由STC11單片機、MAX232

16、電平轉換芯片和TL074四個集成運算放大器組成。使用HC-SR04超聲波模塊,可以很方便的和單片機連接,超聲波測距的精度很高,驅動很容易編寫。HC-SR04超聲波模塊也由發射部分和接收部分組成。發射部分包括STC11系列單片機、MAX232電平轉換芯片和超聲波發射器。接收部分包括:TL074芯片和超聲波接收器。STC11系列MCU芯片主要起控制作用,與我們使用的MCU進行通信,包括TX引腳的起始電平和RX引腳的接收電平。我們從單片機輸出TX=1。啟動信號后,STC11單片機打開MAX232芯片的電源開關,輸出8路40kHz的方波信號給MAX232芯片。MAX232芯片是一個電平轉換芯片,這里的

17、功能是電平轉換,將5V電平轉換成12V輸出。這可以提高傳輸功率。我們知道功率與電壓和電流有關。現在電流不變,電壓上升,超聲波發射的功率明顯上升。功率的增加可以增加超聲波檢測的距離和精度。多虧了這個模塊,HC-SR04的性能才能這么好。TL074芯片是四個集成運算放大器電路。而且是低噪聲輸入的JFET運算放大器,可以對超聲波接收器接收到的信號進行放大整形。通過三極管控制和STC11單片機的通訊信號,可以下拉或上拉。所有信號都經過STC11單片機處理,然后與我們使用的主控芯片進行通信和數據傳輸。2.1.3超聲波測距模塊原理(1)超聲波測距原理:超聲波是利用反射的原理來測距的。被測距離的一端是超聲波

18、傳感器,另一端必須有能反射超聲波的物體。測量距離時,將超聲波傳感器對準反射器發射超聲波,開始計時。超聲波在空氣中傳播到達障礙物后,被反射回來。傳感器接收到反射脈沖后,立即停止計時,然后根據超聲波的傳播速度和計時時間就可以計算出兩端的距離。測得的距離L為L =(T/2)* c,超聲波在空氣中的傳播速度為340m/s,根據計時器記錄的時間T,可以計算出發射點到障礙物的距離(s),即s=340t/2。這就是所謂的時差測距法。(2)原理圖:圖2-1是與單片機連接的原理圖;圖2-2是HC-SR04的示意圖。圖2-1 HC-SR04示意圖圖2-2 HC-SR04示意圖2.2顯示模塊2.2.1設計方案在顯示

19、模塊的設計方案中,選擇哪種類型的顯示設備關系到用戶體驗。這個群體認為數碼管不利于控制,視覺效果不好,所以選擇1602液晶屏作為主要顯示設備。與數碼管相比,液晶屏顯示的信息更多,數據更清晰,用戶在使用時可以更清楚直觀地了解距離等信息。同時,使用LED作為報警設備,可以有更好的用戶體驗。2 . 2 . 2 1602液晶顯示器簡介11602 LCD也叫1602字符LCD,是專門用來顯示字母、數字、符號等的點陣式LCD模塊。它由若干個5X7或5X11的點陣字符位組成,每個點陣字符位可以顯示一個字符,每個位之間有一個點間距,每行之間也有一個間距,起到字符間距和行間距的作用。正因為如此,它不能很好的顯示圖

20、形(用自定義CGRAM顯示效果不好)。1602LCD是指顯示容量為16X2的LCD模塊,即可以顯示兩行,每行16個字符(顯示字符和數字)。市面上大部分字符液晶都是基于HD44780液晶芯片,控制原理完全一樣,所以基于HD4780編寫的控制程序可以很容易的應用到市面上的大部分字符液晶上。2 . 2 . 3 1602 LCD的原理(1)1602 LCD的工作原理:1602 LCD的數據接口接STC12C5A60S2的P0端口,控制端口接P2端口。我們可以通過1602的讀寫順序操作RS,RW,E口來讀寫1602。也可以與1602交換數據。我們可以先寫命令或者地址,然后直接發送數據,讓1602識別。詳

21、細程序將在軟件中介紹。(2)原理圖:圖2-3是1602液晶與單片機連接的原理圖;圖2-4是1602液晶顯示器的物理示意圖。圖2-3 1602液晶顯示屏接線圖圖2-4 1602液晶顯示屏實物圖2.3主控制模塊2.3.1設計方案主控模塊是控制超聲波發射和接收的核心器件,選擇哪種類型的單片機至關重要。STC59C52RC單片機使用起來比較簡單,程序也容易寫。但考慮到未來超聲波測距儀功能的擴展和本設計的要求,如距離檢測和A/D檢測的高精度,最終選擇STC12C5A60S2單片機作為本超聲波測距儀模塊的主控芯片。該單片機執行速度快,自帶A/D轉換,符合本設計的功能要求。2 . 3 . 2 STC 12

22、C5 a 60s 2單片機簡介2STC12C5A60S2/AD/PWM系列MCU是宏景科技出品的單時鐘/機器周期(1T) MCU。它是新一代高速、低功耗、抗干擾能力強的8051單片機。指令代碼完全兼容傳統8051,但速度快8-12倍。它集成了MAX810專用復位電路、2個PWM、8個通道和8個高速10位A/D轉換器(250K/S)。對于電機控制,強干擾情況下的具體功能如下:(1)增強型8051 CPU,1T,單時鐘/機周期,指令代碼完全兼容傳統8051;(2)工作電壓:STC12C5A60S2系列工作電壓:5.5V-3.3V(5V單片機)STC12LE5A60S2系列工作電壓:3.6V-2.2

23、V(3V單片機);(3)工作頻率范圍:0-35MHz,相當于普通8051的0-420 MHz;(4)用戶應用空間8k/16k/20k/32k/40k/48k/52k/60k/62k字節;(5) 1280字節內存;集成在芯片上;(6)通用I/O口(36/40/44),復位后:準雙向口/弱上拉口(普通8051傳統I/O口),可設置為四種模式:準雙向口/弱上拉、推挽/強上拉、僅輸入/高阻、開漏,每個I/O口的驅動能力可達。(7) ISP(在系統可編程)/IAP(在應用可編程)可以直接通過串口(P3.0/P3.1)下載用戶程序,不需要專門的編程器,也不需要專門的仿真器,幾秒鐘就可以完成一個;(8) E

24、EPROM功能(STC12C5A62S2/AD/PWM EEPROM不帶零件);(9)設置看門狗;(10)時鐘源:外置高精度晶振/時鐘,偏置R/C振蕩器(溫度漂移為+/-5%至+/-10%) 1下載用戶程序時,用戶可以選擇使用偏置R/C振蕩器還是外置晶振/時鐘。室溫下下R/C振蕩器的頻率為:3.3V,單片機的頻率為:11 MHz 15.5 MHz。(11)有四個16位定時器,兩個與傳統8051兼容的定時器/計數器,16位定時器T0和T1,沒有定時器2,但是有獨立波特率發生器的串口通信加兩個PCA模塊的波特率發生器可以實現多兩個16位定時器;(12)兩個時鐘輸出端口,可以從T0的溢出輸出p3.4

25、/T0的時鐘,從T1的溢出輸出p3.5/T1的時鐘;(13)PWM(2路)/PCA(可編程計數器陣列,2路):可用作2路D/A,也可用于實現2個定時器或2個外部中斷(可單獨或同時支持上升沿中斷/下降沿中斷);(14)A/D轉換,10位精密ADC,共8通道,轉換速度可達250K/S(每秒25萬次)。18.通用全雙工異步串行端口(UART)。因為STC12系列是高速8051,所以可以通過定時器或者PCA軟件實現多個串口。2 . 3 . 3 STC 12 C5 a 60s 2單片機原理(1)STC12C5A60S2單片機控制原理:本次設計采用單片機芯片,采用STC 12 C5 a 60s 2單片機,

26、采用11.0592MHz的高精度晶振,方便以后單片機與上位機通訊。其次,利用單片機對超聲波模塊發出的40kHz超聲波的距離進行計時和計算。根據距離控制,1602液晶屏顯示相應的距離,單片機自帶ADC,用來檢測電池組的電壓。單片機通過檢測獲得電壓數據,然后控制1602液晶屏顯示電壓數據。根據不同的電壓,我們控制信號燈的開或關,也控制電池組充電與否。(2)原理圖:圖2-5是STC12C5A60S2微控制器的引腳圖。圖2-5 STC 12 C5 a 60s 2引腳圖2.4總體硬件設計2.4.1總體設計方案正如我們上面提到的,我們所有的硬件模塊都是根據設計要求獲得的。總體設計思路是:電源接通時,電源給

27、所有硬件電路供電,同時單片機檢測電源模塊的電壓。因為電池電壓和電池電量有直接的關系,所以通過檢測電池電壓就可以知道電池電量,這樣當電池沒電的時候就可以發出報警信號。當電池過度充電時,我們還可以報警,并用繼電器關閉充電電路。并且單片機可以在1602液晶屏上實時顯示電池電量,增加了信息量。當電池通電時,微控制器不僅會檢測電池電壓,還會控制HC-SR04超聲波模塊在電池電壓不高不低時發出超聲波,并開啟定時器。當超聲波反射回來后,關閉定時器,然后計算距離數據,最后驅動1602液晶屏顯示。這就是我們超聲波測距儀的總體設計思路。2.4.2完整硬件電路圖通過以上設計方案和設計要求,本組設計了一個完整的電路圖

28、,如圖2-6所示。圖2-6超聲波測距儀完整電路圖第三章軟件設計3.1 1602液晶顯示器驅動模塊3.1.1軟件設計方案根據1602 LCD的數據,我們可以知道1602 LCD有16個管腳,8個數據管腳和3個與操作相關的管腳,分別是RS數據/命令選擇端,R/W讀寫選擇端和E使能信號。知道了這些管腳的作用和操作1602的時序,就可以編寫1602液晶屏的操作讀寫代碼了。通過讀寫這些代碼,我們的單片機就可以和1602液晶屏進行通信,讓1602液晶屏顯示我們想要顯示的內容。軟件過程我們可以通過查詢數據得到1602液晶屏的基本操作順序,比如:寫命令:RS=0。RW=0,D0-D7=指令代碼,E=高脈沖。寫

29、數據:RS=1,RW=0,D0-D7=數據,E=高電平脈沖。具體寫時序圖如下:圖3-1是寫指令時序圖;圖3-2是寫入數據的時序圖。圖3-1 1602液晶屏寫指令時序圖圖3-2 1602液晶屏寫數據時序圖軟件代碼#include#includeSTC12C5A60S2。h sbit rs=p25;sbit rw=p26;sbit e=p27;extern void delay _ ms(unsigned int j);無符號字符P00(無符號字符I)無符號字符da=0,n;for(n = 8;n 0;n -)da = da 1;返回(da);位lcd_bz() /繁忙檢查功能有點忙;RS = 0

30、;/選擇指令寄存器作為目標。RW = 1;/讀取操作e = 1;/將E端口拉高_ nop _();_ nop _();/busy =(P0 & 0 x 80) 7;/取出位D7(忙信號)busy = P0 & 0X01_ nop _();_ nop _();e = 0;/E引腳產生一個下降沿。返回忙;/返回占線信號void LCD _ WCMD(unsigned charcmd)/寫指令函數無符號字符cmd1while(LCD _ BZ();/檢查繁忙cmd 1 = P00(cmd);RS = 0;/選擇指令寄存器作為目標。RW = 0;/寫操作P0 = cmd1/發送指令數據e = 1;/將

31、E端口拉高_ nop _();_ nop _();_ nop _();_ nop _();e = 0;/E引腳產生一個下降沿,數據寫入指令寄存器。void LCD _ wdat(unsigned chardat)/寫數據函數無符號字符dat1while(LCD _ BZ();/檢查繁忙dat 1 = P00(dat);RS = 1;/選擇數據寄存器作為目標。RW = 0;/寫操作P0 = dat1/發送顯示容量數據e = 1;/將E端口拉高_ nop _();_ nop _();_ nop _();_ nop _();e = 0;/E引腳產生一個下降沿,數據寫入指令寄存器。Void lcd_i

32、nit() /初始化函數LCD _ wcmd(0 x 38);/8位總線,雙線顯示,字符大小5*7delay _ ms(1);LCD _ wcmd(0 x0c);/打開沒有光標的顯示。delay _ ms(1);LCD _ wcmd(0 x 06);/光標向右,文本不移動delay _ ms(1);LCD _ wcmd(0 x 01);/清除屏幕delay _ ms(1);void display _ up(unsigned char * p)/第一行顯示函數無符號char temp=0,I;LCD _ wcmd(0 x 00 | 0 x 80);/將顯示起始位置設置為左側第一個位置。for(

33、I = 0;i 16+)/依次顯示16個字符temp = pI;LCD _ wdat(temp);delay _ ms(1);void display _ down(unsigned char * p)/第二行顯示函數無符號char temp=0,I;LCD _ wcmd(0 x 40 | 0 x 80);/將顯示起始位置設置為左側第一個位置。for(I = 0;i 0;k -)val _ av+= AD _ zhuan Huan(num);/100次收購的總和val _ av/= 100.0;/平均值val _ av = val _ av * 5.0/1024;/單片機電源為5V,求真實電壓

34、值。val _ av/= 2.5;/通過系數2.5,先轉換成比例值。val _ av = 5.0/val _ av;/通過比例值與5V的關系,求出實際電壓值return(val _ av);3.3超聲波測距模塊3.3.1軟件設計方案超聲波設計的基本思想上面已經提到了,利用超聲波發射和反射的時間差來計算聲源到目標的距離。在本組超聲波測距儀的設計中,我們的單片機先將HC-SR04的T-pin設置為1,持續10us以上,然后下拉為0。當HC-SR04接收到這個高電平時,會自動向MAX232發出8個40kHz左右的脈沖信號,然后MAX232將5V和0V的脈沖轉換成+12V和-12的脈沖,輸出到超聲波發

35、射探頭。當超聲波發射時,HC-SR04將拉起R引腳。MCU檢測到此引腳變為高電平后,將啟動定時器并開始計時。當HC-SR04模塊接收到超聲波反射的信號時,會拉低R引腳,這樣MCU的引腳也會被拉低。我們在MCU程序中不斷判斷這個引腳的電平。當此引腳為低電平時,我們認為超聲波已經返回。這是我們小組設計的超聲波測距儀的軟件設計思想。軟件流程圖超聲波測距的軟件流程如圖3-4所示:圖3-4超聲波測距流程圖軟件代碼void cout()/超聲波距離計算函數無符號長整型s _ t = 0;無符號字符i=0,j = 0;無符號int k=0,temp = 0;/變量的定義,這里注意變量的周長。浮點ad1 =

36、0;time =(unsigned int)(TH0 * 256+TL0);/將定時器的時間數據整合在一起TH0 = 0;/清除定時器數據TL0 = 0;s_t=(時間* 188.15)/1000;/計算實際距離數據ss_num=(無符號int)s _ t;s _ num+;If(s_num=10) /使用冒泡算法得到10次的平均值。s _ num = 0;for(I = 0;I 9;i+)for(j = 0;j sj+1)temp = sj;sj= sj+1;sj+1= temp;k =(unsigned int)(s2+s3+s4+s5+s6)/5;if(k 0)& &(k =120)&(

37、k=220)&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;5=(k/1000)% 10+0 x 30;/在這里,距離數據被轉換成1602顯示數據。6=(k/100)% 10+0 x 30;7=(k/10)% 10+0 x 30;9=(k/1)% 10+0 x 30;display _ up();for(I = 0;i 10i+)sI= 0;flag = 0;If(flag_time=1)/檢測、判斷并顯示電

38、池電壓flag _ time = 0;ad1 = ad _ av(0 x 00);zhuan Huan _ 1602(ad1);如果(sj254000)gyd = 0;qyd = 1;jdq = 1;如果(sj2=48000)&(sj2 8;TL1 =(65536-40000)% 256;TH0 = 0;TL0 = 0;ET1 = 1;/允許T1中斷display _ up();delay _ ms(1);display _ down(shuzu);TR1 = 1;while(1)而(!RX);/當RX為零時等待TR0 = 1;/打開計數while(RX);/當RX為1時計數并等待TR0 =

39、0;/關閉計數TR1 = 0;TH1 =(65536-40000) 8;TL1 =(65536-40000)% 256;num = 0;conut();/計算Voitimer1 (void)中斷3/這里用一個定時器每隔一段時間開啟超聲波進行測距。TH1 =(65536-40000) 8;TL1 =(65536-40000)% 256;num+;time 2+;如果(時間2=100)time 2 = 0;flag _ time = 1;如果(數量 =2)num = 0;TRIG = 1;_ nop _();_ nop _();_ nop _();_ nop _();_ nop _();_ nop

40、 _();_ nop _();_ nop _();_ nop _();_ nop _();_ nop _();_ nop _();_ nop _();_ nop _();_ nop _();_ nop _();_ nop _();_ nop _();_ nop _();_ nop _();_ nop _();TRIG = 0;3.4軟件的整體流程3.4.1總體軟件設計方案根據設計要求,硬件基本確定后,就要開始軟件設計了。這個小組設計的是超聲波測距儀,所以整個軟件是圍繞超聲波測距儀來實現的。首先,和1602液晶屏一樣,它有自己的操作順序。先把這些固定的程序寫好,整體框架搭建好。在模擬電路中,基本上是模擬硬件,看能不能實現。在實現了硬件的基本功能后,我們開始設計超聲波測距,根據HC-SR04模塊的數據,得到操作順序,然后編寫程序。寫完程序后,我們第一次用開發板,HC-SR04模塊,1602液晶屏進行了整機調試。如果方案可行,我們開始優化精度、測距速度和顯示。在整體可行的基礎上,設計電池電壓部分,在程序中增加一個A/D檢測程序,然后隨機檢測一個電壓,看檢測到的電壓是否準確。如果準確,那么所有程序和模塊一起調試。可以用開發板或者直接做一個超聲波測距儀,然后

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論