單片機應用之HC-SR04超聲波倒車雷達_第1頁
單片機應用之HC-SR04超聲波倒車雷達_第2頁
單片機應用之HC-SR04超聲波倒車雷達_第3頁
單片機應用之HC-SR04超聲波倒車雷達_第4頁
單片機應用之HC-SR04超聲波倒車雷達_第5頁
已閱讀5頁,還剩31頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、精選優質文檔-傾情為你奉上摘 要倒車雷達又稱為泊車輔助系統,是汽車安全輔助裝置,能以聲音或者更為直觀的顯示告知駕駛員周圍障礙物的情況,解除駕駛員泊車和啟動車輛前后左右探視所引起的困擾,并幫助駕駛員掃除了視野死角和視線模糊的缺陷,提高了安全性。超聲波倒車雷達一般有超聲波傳感器、控制芯片和顯示器組成。現在的市場上倒車雷達大多采用超聲波測距原理,駕駛者在倒車時,啟動倒車雷達,在控制芯片的控制下,由位于汽車車尾保險杠上的探頭發出超聲波,遇到障礙物,產生回波信號,傳感器接收到回波信號后經控制芯片數據處理,判斷出障礙物與車之間的距離,由顯示器顯示距離并發出警告提示音,從而使駕駛者倒車時做到心中有數。本文介

2、紹一種基于STC89C51單片機的倒車雷達設計。整個系統由51單片機最小系統、LCD1602液晶、HC-SRO4超聲波模塊、DS18B20溫度傳感器、按鍵模塊和蜂鳴器模塊組成。超聲波模塊不斷發送聲波,實時回傳測量信號給單片機,同時DS18B20模塊也實時采集當前車內溫度值,并兼顧超聲波測距的溫度補償,用于提高測距精度。LCD液晶用于顯示當前超聲波測距值、溫度值和設定的倒車預警值。當超聲波測量距離小于預警值時,蜂鳴器鳴叫,發出提示音警告;反之,則蜂鳴器關閉。預警值可通過按鍵進行設定。關鍵詞:倒車雷達 超聲波 溫度傳感器 STC89C51ABSTRACTThe reversing radar, a

3、lso known as the parking assist system, is a car safety assist device that can notify the driver of obstacles around the driver by sound or a more intuitive display, and relieve the trouble caused by the drivers parking and starting the vehicle. And to help the driver to eliminate the defects of bli

4、nd spots and blurred vision, and improve safety.The ultrasonic reversing radar generally consists of an ultrasonic sensor, a control chip and a display. Most of the reversing radars on the market now use the principle of ultrasonic distance measurement. When reversing, the driver activates the rever

5、sing radar. Under the control of the control chip, the probe on the rear bumper of the car emits ultrasonic waves and encounters obstacles. Wave signal: After the sensor receives the echo signal, it is processed by the control chip to determine the distance between the obstacle and the car. The dist

6、ance is displayed on the display and a warning sound is issued, so that the driver is aware of it when reversing.This article introduces a reversing radar design based on STC89C51 microcontroller. The whole system consists of 51 single chip microcomputer minimum system, LCD1602 liquid crystal, HC-SR

7、O4 ultrasonic module, DS18B20 temperature sensor, button module and buzzer module.The ultrasonic module continuously sends sound waves and sends back measurement signals to the single-chip microcomputer in real time. At the same time, the DS18B20 module also collects the current temperature in the v

8、ehicle in real time, and takes into account the temperature compensation of the ultrasonic distance measurement to improve the accuracy of the distance measurement. LCD liquid crystal is used to display the current ultrasonic distance measurement value, temperature value and set reverse warning valu

9、e. When the ultrasonic measurement distance is less than the pre-warning value, the buzzer will sound and a warning tone will be issued; otherwise, the buzzer will be turned off. The warning value can be set by pressing the button.Keywords: reversing radar, ultrasonic temperature sensor, STC89C51目 錄

10、第1章 緒 論近年來,隨著汽車產業的迅速發展和人們生活水平的不斷提高,我國的汽車數量正逐年增加,我國開始進入私家車時代,汽車的數量逐漸增加,造成公路、街道、停車場、車庫等越來越擁擠,在公路、街道、停車場、車庫等擁擠、狹窄的地方倒車時,駕駛員既要前瞻,又要后顧,稍微不小心就會發生追尾事故。增加汽車的后視能力,研制汽車后部探測障礙物的倒車雷達便成為近些年來的研究熱點。安全避免障礙物的前提是快速、準確地測量障礙物與汽車之間的距離。基于此,本文所設計的倒車雷達系統主要是針對汽車倒車時人無法目測到車尾與障礙物的距離而設計開發的。該系統將微型計算機技術與超聲波的測距技術、傳感器技術等相結合,可檢測汽車倒車

11、,其障礙物與汽車的距離,并根據障礙物與車尾的距離遠近實時發出報警。1.1 課題背景與研究意義我國開始進入私家車時代,汽車的數量逐漸增加,造成公路、街道、停車場、車庫等越來越擁擠,在公路、街道、停車場、車庫等擁擠、狹窄的地方倒車時,駕駛員既要前瞻,又要后顧,稍微不小心就會發生追尾事故。增加汽車的后視能力,研制汽車后部探測障礙物的倒車雷達便成為近些年來的研究熱點。安全避免障礙物的前提是快速、準確地測量障礙物與汽車之間的距離。基于此,本文所設計的倒車雷達預警系統主要是針對汽車倒車時人無法目測到車尾與障礙物的距離而設計開發的。該系統將微型計算機技術與超聲波的測距技術、傳感器技術等相結合,可檢測汽車倒車

12、,其障礙物與汽車的距離,并根據障礙物與車尾的距離遠近實時發出報警。1.2 倒車雷達的發展過程及現狀自從 1886 年 2 月 9 日卡爾本茨發明了人類第一輛汽車,至今世界汽車工業經過了近127年的發展,當代汽車已經非常成熟和普遍了。汽車已經滲透于國防建設、國民經濟以及人類生活的各個領域之中,成為人類生存必不可少的、最主要的交通工具,為人類生存和社會的發展與進步起到了至關重要的作用。當今,汽車已經成為人們生活中不可缺少的一部分,近年來,我國的汽車數量正逐年增加。在公路、街道、停車場、車庫等擁擠、狹窄的地方倒車時,駕駛員既要前瞻,又要后顧,稍微不小心就會發生追尾事故。它給人們帶來方便快捷的同時,也

13、出現了許多問題。如越來越多的汽車使道路上有效的使用空間越來越小,新手也越來越多,由此引起的刮傷事件也越來越多,由此引起的糾紛也在不斷地增加。原來不是問題的倒車也逐漸變成了問題。盡管每輛車都有后視鏡,但不可避免地都存在一個后視盲區,倒車雷達則可以在一定程度上幫助駕駛員掃除視角死角和視線模糊的缺陷,提高駕駛的安全性,減少刮、擦事件。倒車事故發生的原因是多方面的,倒車鏡有死角,駕車者目測距離有誤差,視線模糊等原因造成倒車時的事故率遠大于汽車前進時的事故率,尤其是非職業駕駛員以及女性更為突出。而倒車事故給車主帶來的許多麻煩,例如撞上別人的車、消防水籠頭,如果傷及兒童更是不堪設想,有鑒于此,汽車高科技產

14、品家族中,專為汽車倒車泊位設置的“倒車雷達”應運而生,倒車雷達的加裝可以解決駕駛人員后顧之憂,大大降低了倒車事故的發生。倒車雷達是汽車泊車或者倒車時的安全輔助裝置,能以聲音或者更為直觀的顯示告知駕駛員駕駛車輛周圍障礙物的情況,解除了駕駛員泊車、倒車和起動車輛時前后左右探視所引起的困擾,并幫助駕駛員掃除了使用死角和視線模糊的缺陷,提高駕駛的安全性。倒車雷達的發明是迫在眉睫的,是必不可少的設備。倒車雷達的原理與普通雷達一樣,是根據蝙蝠在黑夜里高速飛行而不會與任何障礙物相撞的原理設計開發的。通過感應裝置發生超聲波,然后通過反射回來的超聲波判斷前方是否有障礙物,以及障礙物的距離、大小、方向、形狀等。只

15、不過由于倒車雷達體積大小及實用性的限制,目前其主要功能僅為判斷障礙物與車的距離,并做出提示。通常的倒車雷達主要由感應器(探頭)、主機、顯示設備等三部分組成。感應器發出和接受超聲波信號,并將接受到的信號傳輸到主機,再通過顯示設備顯示出來。感應器裝在后保險杠上,以角45度輻射,檢測目標,能探索到那些低于保險杠而駕駛員從后窗又難以看見的障礙物并報警,如花壇、蹲在車后玩耍的兒童等;顯示設備裝在儀表板上,提醒駕駛員汽車距后面物體還有多少距離,到危險距離時,蜂鳴器就開始鳴叫,提示駕駛員停車。根據感應器種類不同,倒車雷達可分為粘貼式、鉆孔式和懸掛式。粘貼式感應器后有1層膠,可直接粘在后保險杠上;鉆孔式感應器

16、是在保險杠上鉆一個洞,然后把感應器嵌進去;懸掛式感應器主要用于載貨車。根據顯示設備種類不同,倒車雷達又可分為數字式、顏色式和蜂鳴式。數字式顯示設備是一只如傳呼機大小的盒子,安裝在駕駛臺上,直接有數字表示汽車與后面物體的距離,并可精確到1厘米,讓駕駛員一目了然。倒車防撞雷達發展到現在已經歷經5代。第一代的倒車雷達系統是轟鳴器。倒車時,如果車后1.5米-1.8米處有障礙物,轟鳴器就會開始工作,轟鳴越急,表示車輛離障礙物越近。沒有語音提示,也沒有距離顯示,雖然司機知道有障礙物,但不能確定障礙物離車有多遠,對駕駛員幫助不大。第二代倒車雷達可以顯示車后障礙物離車的距離。這一代產品有兩種顯示方式,數碼顯示

17、產品顯示距離數字,而波段顯示產品由三種顏色來區別:綠色代表安全距離,表示障礙物離車體距離有0.8米以上;黃色代表警告距離,表示離障礙物的距離只有0.6米-0.8米;紅色代表危險距離,表示離障礙物只有不到0.6米的距離,必須停止倒車。第三代用液晶熒屏顯示,特別是熒屏顯示開始出現動態顯示系統。不用掛倒檔,只要發動汽車,顯示器上就會出現汽車圖案以及車輛周圍的障礙物的距離。該雷達動態顯示,色彩清晰漂亮,外表美觀,可以直接粘貼在儀表盤上,安裝很方便。不過液晶顯示器外觀雖精巧,但靈敏度較高,抗干擾能力不強,所以誤報也較多。第四代魔幻鏡倒車雷達,采用了最新仿生超聲雷達技術,配以高速電腦控制,可全天候準確地測

18、知2米內的障礙物,并用不同的聲音提示和直觀的顯示提醒駕駛員。魔幻鏡倒車雷達把后視鏡倒車雷達、免提電話、溫度顯示和車內空氣污染顯示等多功能整合在一起,并設計了語音功能,是目前市面上最先進的倒車雷達系統。其外型就是一塊倒車鏡,所以可以不占用車內空間,直接安裝在車內倒視鏡的位置。第五代倒車雷達是專門為高檔轎車生產的,它的整合了高檔轎車具備的影音系統,可以在顯示器上觀看DVD影像。因為是新品,售價也較高。倒車雷達的發展實際上已經融入了整車的設計,隨著技術的成熟,價格的降低,倒車雷達將會逐漸普及成為標準配置。第2章 系統總體設計本課題以STC89C51單片機為核心設計一種超聲波倒車雷達系統,同時兼顧車內

19、溫度測量。系統由STC89C51控制器、HC-SR04超聲波模塊、DS18B20溫度測量模塊、聲音報警電路和LCD1602顯示電路組成。汽車行進時,LCD顯示車內溫度以及設定的倒車預警值;倒車時,啟動超聲波測距,回傳的聲波數據經STC89C51單片機處理后顯示到LCD上,如果距離小于設定值,報警電路發出鳴叫聲,提醒司機注意車距。同時,DS18B20采集到的溫度值也用于超聲波測距的溫度補償,來提供測距的精度。超聲波倒車雷達系統框圖如下圖2.1所示。圖2.1 超聲波倒車雷達系統框圖第3章 硬件設計3.1 STC89C51單片機STC89C51是一種低功耗、高性能CMOS8位微控制器,具有 8K 在

20、系統可編程Flash 存儲器。在單芯片上,擁有靈巧的8 位CPU 和在系統可編程Flash,使得STC89C51為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。 具有以下標準功能: 8k字節Flash,512字節RAM, 32 位I/O 口線,內置4KB EEPROM,MAX810復位電路,三個16 位 /計數器,一個6向量2級中斷結構,全雙工串行口。另外 STC89X51 可降至0Hz 靜態邏輯操作,支持2種可選擇節電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數器、串口、中斷繼續工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬

21、件復位為止。最高運作頻率35Mhz,6T/12T可選。圖3-1 STC89C51單片機引腳圖單片機是美國STC公司最新推出的一種新型51內核的單片機。片內含有Flash程序存儲器、SRAM、UART、SPI、PWM等模塊。(一)STC89C51主要功能、性能參數如下:(1)內置標準51內核,機器周期:增強型為6時鐘,普通型為12時鐘;(2)工作頻率范圍:040MHZ,相當于普通8051的080MHZ;(3)STC89C51對應Flash空間:4KB;(4)內部存儲器(RAM):512B;(5)定時器計數器:3個16位;(6)通用異步通信口(UART)1個;(7)中斷源:8個;(8)有ISP(在

22、系統可編程)IAP(在應用可編程),無需專用編程器仿真器;(9)通用IO口:3236個;(10)工作電壓:3.85.5V;(11)外形封裝:40腳PDIP、44腳PLCC和PQFP等。(二)STC89C51單片機的引腳說明:VCC:供電電壓。 GND:接地。 RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。 ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意

23、的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。 /EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程

24、序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。(三)STC89C51單片機最小系統:最小系統包括單片機及其所需的必要的電源、時鐘、復位等部件,能使單片機始終處于正常的運行狀態。電源、時鐘等電路是使單片機能運行的必備條件,可以將最小系統作為應用系統的核心部分,通過對其進行存儲器擴展、A/D擴展等,使單片機完成較復雜的功能。STC89C51是片內有ROM/EPROM的單片機,因此,這種芯片構成的最小系統簡單且可靠。用STC89C51單片機構成最小應用系統時,只要將單片機接上時

25、鐘電路和復位電路即可,結構如圖3-2所示,由于集成度的限制,最小應用系統只能用作一些小型的控制單元。圖3-2 單片機最小系統原理框圖(1) 時鐘電路STC89C51單片機的時鐘信號通常有兩種方式產生:一是內部時鐘方式,二是外部時鐘方式。內部時鐘方式如圖3-3所示。在STC89C51單片機內部有一振蕩電路,只要在單片機的XTAL1(18)和XTAL2(19)引腳外接石英晶體(簡稱晶振),就構成了自激振蕩器并在單片機內部產生時鐘脈沖信號。圖中電容C6和C7的作用是穩定頻率和快速起振,電容值在530pF,典型值為30pF。晶振Y1的振蕩頻率范圍在1.212MHz間選擇,典型值 為12MHz和6MHz

26、。圖3-3 STC89C51內部時鐘電路(2) 復位電路當在STC89C51單片機的RST引腳引入高電平并保持2個機器周期時,單片機內部就執行復位操作(若該引腳持續保持高電平,單片機就處于循環復位狀態)。復位電路通常采用上電自動復位和按鈕復位兩種方式。最簡單的上電自動復位電路中上電自動復位是通過外部復位電路的電容充放電來實現的。只要Vcc的上升時間不超過1ms,就可以實現自動上電復位。除了上電復位外,有時還需要按鍵手動復位。本設計就是用的按鍵手動復位。按鍵手動復位有電平方式和脈沖方式兩種。其中電平復位是通過RST端與電源Vcc接通而實現的。按鍵手動復位電路見圖3-4。電容C5取10uF,R5取

27、10k。圖3-4 STC89C51復位電路(3) STC89C51中斷技術概述中斷技術主要用于實時監測與控制,要求單片機能及時地響應中斷請求源提出的服務請求,并作出快速響應、及時處理。這是由片內的中斷系統來實現的。當中斷請求源發出中斷請求時,如果中斷請求被允許,單片機暫時中止當前正在執行的主程序,轉到中斷服務處理程序處理中斷服務請求。中斷服務處理程序處理完中斷服務請求后,再回到原來被中止的程序之處(斷點),繼續執行被中斷的主程序。圖3-5 STC89C51中斷技術如果單片機沒有中斷系統,單片機的大量時間可能會浪費在查詢是否有服務請求發生的定時查詢操作上。采用中斷技術完全消除了單片機在查詢方式中

28、的等待現象,大大地提高了單片機的工作效率和實時性。3.2 超聲波測距模塊3.2.1 超聲波測距原理單片機發出超聲波測距是通過不斷檢測超聲波發射后遇到障礙物所反射的回波, 從而測出發射和接收回波的時間差t,然后求出距離。 (1-1)式(1-1)中的c為超聲波在空氣中傳播的速度。超聲波測距的原理如圖3-6所示(已略)。由于基于51單片機的超聲波倒車雷達設計為作者蔣宇智的原創設計,現已省略以下幾個內容:(1) 超聲波測距原理介紹;(2) 超聲波測距溫度補償算法介紹;(3) 聲音報警模塊蜂鳴器介紹部分;(4) 主程序設計流程圖;(5) 超聲波測距步驟及流程圖;(6) 系統原理圖;(7) C程序;(8)

29、 仿真電路圖;(9) 參考文獻取得下面所有文件,請Subscribe the WeChat Public Number: 交院小智。My扣扣is:232,7603,104。我的圍脖:蔣宇智喲。3.2.2 超聲波測距實現大量實驗發現頻率為40KHZ左右的超聲波在空氣中傳播的效率最佳,因此,為了方便處理,發射的超聲波被調制成40KHZ左右、具有一定間隔的調制脈沖波信號,如圖3-7所示。圖3-7 超聲波通道工作時序圖以上時序圖表明單片機IO口只需要提供一個10uS以上脈沖觸發信號,該模塊內部將發出2個40kHz周期電平并檢測回波。一旦檢測到有回波信號則輸出回響信號,回響信號的脈沖寬度與所測的距離成正

30、比。由此通過發射信號到收到的回響信號時間間隔可以計算得到距離。需要說明的是,在使用上述方法時,如果溫度變化不大,則可認為聲速是基本不變的。如果測距精度要求很高,則應通過溫度補償的方法加以校正。超聲波測距的實現過程如下圖3-8所示。圖3-8 超聲波測距實現過程3.2.3 HC-SR04介紹HC-SR04超聲波測距模塊可提供2cm-400cm的非接觸式距離感測功能,測距精度可高達3mm,該模塊集成了超聲波發射器、接收器與控制電路。HC-SR04模塊實物圖如下圖3-9所示。圖3-9 HC-SR04超聲波模塊圖中可以看出,HC-SR04集成度高,單片機只需為其預留4個端口,連線簡單,極大地節約了IO口

31、資源。它的4個引腳分別為VCC、GND、TRIG和ECHO。其中,TRIG觸發控制信號輸入,ECHO用于回響信號輸出。本設計中,TRIG引腳與STC89C51單片機的P2.5口相連,ECHO與P3.2口相連。HC-SR04電路如圖3-10所示。圖3-10 HC-SR04連接圖HC-SR04的電氣參數見表2。表2 HC-SR04電氣參數信息電氣參數HC-SR04超聲波模塊工作電壓DC 5V工作電流15mA工作頻率40kHz最遠射程4m最近射程2cm測量角度15°輸入觸發信號10uS的TTL脈沖輸出回響信號輸出TTL電平信號,與射程成比例規格尺寸45*20*15mm3.3 溫度傳感器模塊

32、3.3.1 DS18B20簡介單線數字溫度傳感器DS18B20是一種新型的“一線器件”,其體積更小、更適用于多種場合、且適用電壓更寬、更經濟。其溫度測量范圍為-55+125 攝氏度,可編程為9位12 位轉換精度,測溫分辨率可達0.0625攝氏度,分辨率設定參數以及用戶設定的報警溫度存儲在EEPROM 中,掉電后依然保存。被測溫度用符號擴展的16位數字量方式串行輸出;其工作電源既可以在遠端引入,也可以采用寄生電源方式產生;多個傳感器可以并聯到3 根或2 根線上,CPU只需一根端口線就能與諸多DS18B20 通信,占用微處理器的端口較少,可節省大量的引線和邏輯電路。因此用它來組成一個測溫系統,具有

33、線路簡單,在一根通信線,可以掛很多這樣的數字溫度計,十分方便。DS18B20的管腳排列、各種封裝形式如圖3-11所示。其中,DQ 為數據輸入/輸出引腳,也可用作開漏單總線接口引腳,當被用在寄生電源工作方式下,可以向器件提供電源;GND為地信號;VDD為可選擇的電源引腳,當工作于寄生電源時,此引腳必須接地。圖3-11 各種封裝的DS18B20傳感器DS18B20 的性能特點如下:(1)獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條總線即可實現微處理器與DS18B20的雙向通訊;(2)DS18B20支持多點組網功能,多個DS18B20可以并聯在唯一的三線上,實現組網多點測溫;(3)

34、DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉換電路集成在形如一只三極管的集成電路內;(4)適應電壓范圍更寬,電壓范圍:3.05.5V,在寄生電源方式下可由數據線供電;(5)測溫范圍-55125,在-10+85時精度為±0.5;(6)零待機功耗;(7)可編程的分辨率為912位,對應的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實現高精度測溫;(8)在9位分辨率時最多在93.75ms內把溫度轉換為數字,12位分辨率時最多在750ms內把溫度值轉換為數字,速度更快;(9)用戶可定義報警設置;(10)報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件

35、;(11)測量結果直接輸出數字溫度信號,以"一線總線"串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力;(12)負電壓特性,電源極性接反時,溫度計不會因發熱而燒毀,但不能正常工作;以上特點使DS18B20非常適用與多點、遠距離溫度檢測系統。3.3.2 DS18B20構造DS18B20內部結構框如圖3-12所示,其主要包括寄生電源、溫度傳感器、64位激光ROM單線接口、存放中間數據的高速暫存器(內含便箋式RAM),用于存儲用戶設定的溫度上下限值的TH和TL觸發器存儲與控制邏輯、8位循環冗余校驗碼(CRC)發生器等七部分。圖3-12 DS18B20內部結構圖其

36、中,64 bit閃速ROM的結構如下圖3-13所示:圖3-13 64bit閃存ROM開始的8位是產品類型的編號,接著是每個器件的惟一的序號,共有48 位,最后8位是前面56 位的CRC 檢驗碼,這也是多個DS18B20可以采用一線進行通信的原因。溫度報警觸發器TH和TL,可通過軟件寫入戶報警上下限。主機操作ROM的命令有六種,如下所示。溫度傳感器DS18B20的內部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EERAM。高速暫存RAM的結構為8字節的存儲器,結構如圖3-14所示。圖3-14 高速暫存RAM結構圖其中,前2個字節包含測得的溫度信息,第3和第4字節TH和TL的拷貝,是易

37、失的,每次上電復位時被刷新。第5個字節,為配置寄存器,它的內容用于確定溫度值的數字轉換分辨率。DS18B20工作時寄存器中的分辨率轉換為相應精度的溫度數值。暫存存儲器的第5個字節是配置寄存器,可以通過相應的寫命令進行配置,其內容如下表所示:0MSBR1R211111LSB其中R0和R1是溫度值分辨率位,可按表2進行配置。表2 溫度分辨率對應最大轉換時間R1R0分辨率最大轉換時間(ms)009位93.75ms(tconv/8)0110位183.50ms(tconv /4)1011位375ms(tconv /2)1112位750ms(tconv)當DS18B20接收到溫度轉換命令后,開始啟動轉換。

38、轉換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節。單片機可通過單線接口讀到該數據,讀取時低位在前、高位在后,數據格式以0.0625/LSB形式表示。溫度值格式如表3。表3 溫度值格式表低232221202-12-22-32-4高SSSSS262524這是12位轉化后得到的12位數據,存儲在DS18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數值需要取反加1再乘于0.0625即可得到實際溫度。格式中,S表示位。對應的溫度計算:

39、當符號位S=0時,表示測得的溫度植為正值,直接將二進制位轉換為十進制;當S=1時,表示測得的溫度植為負值,先將補碼變換為原碼,再計算十進制值。例如+125的數字輸出為07D0H,+25.0625的數字輸出為0191H,-25.0625的數字輸出為FF6FH,-55的數字輸出為FC90H。DS18B20溫度傳感器主要用于對溫度進行測量,數據可用16位符號擴展的二進制補碼讀數形式提供,并以0.0625/LSB形式表示。表4是部分溫度值對應的二進制溫度表示數據。表4 部分溫度的二進制數表示溫度數字輸出(二進制)數字輸出(16進制)+125 07D0H+85 0550H+25.0625 0191H+1

40、0.125 00A2H+0.5 0008H0 0000H-0.5 FFF8H-10.125 FFE5H-25.0625 FF6FH-55 FC90HDS18B20完成溫度轉換后,就把測得的溫度值與RAM中的TH、TL字節內容作比較,若T>TH或T<TL,則將該器件內的告警標志置位,并對主機發出的告警搜索命令作出響應。因此,可用多只DS18B20同時測量溫度并進行告警搜索。在64位ROM的最高有效字節中存儲有循環冗余校驗碼(CRC)。主機根據ROM前56位來計算CRC值,并和DS18B20中的CRC值做比較,以判斷主機收到的ROM數據是否正確。3.3.3 DS18B20電路本設計中D

41、S18B20的連接電路如圖3-15所示。單總線通常要求接一個約10K左右的上拉電阻,這樣,當總線空閑時,其狀態為高電平。圖3-15 DS18B20電路圖3.4 LCD1602顯示模塊LCD1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。1602LCD是指顯示的內容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數

42、字)。市面上字符液晶大多數是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應用于市面上大部分的字符型液晶。液晶顯示器以其微功耗、體積小、顯示內容豐富、超薄輕巧的諸多優點,在各類儀表和低功耗系統中得到廣泛的應用。根據顯示內容可以分為字符型液晶,圖形液晶。根據顯示容量又可以分為單行16字,2行16字,兩行20字等等。在單片機系統中應用晶液顯示器作為輸出器件有以下幾個優點:顯示質量高、數字式接口 、體積小、重量輕 、功耗低 。LCD1602液晶顯示模塊可以和單片機STC89C51的P0口直接相連,電路如圖3-15所示。圖3-15 LCD連接電路圖L

43、CD1602主要技術參數為顯示容量為16*2個字符;工作電壓范圍4.5-5.0V;工作電流在5.0V供電電壓下位2mA;字符尺寸為2.95*4.35mm。LCD1602引腳功能如表5所示:表5 LCD1602引腳功能表引腳號符號狀態功 能1Vss電源地2Vdd+5V邏輯電源3V0液晶驅動電源4RS輸入寄存器選擇1:數據;0:指令5R/W輸入讀、寫操作選擇1:讀;0:寫6E輸入使能信號7DB0三態數據總線(LSB)8DB1三態數據總線9DB2三態數據總線10DB3三態數據總線11DB4三態數據總線12DB5三態數據總線13DB6三態數據總線14DB7三態數據總線(MSB)15LEDA輸入背光+5

44、V16LEDK輸入背光地3.5 按鍵模塊常用的按鍵電路有兩種形式,獨立式按鍵和矩陣式按鍵,由于在超聲波倒車雷達設計中,按鍵的主要功能是設置倒車預警值,功能明確單一,因此采用獨立式按鍵模塊。獨立式鍵盤的按鍵相互獨立,每個按鍵接一根I/O口線,一根I/O口線上的按鍵工作狀態不會影響其它I/O口線的工作狀態。因此,通過檢測I/O口線的電平狀態,即可判斷鍵盤上哪個鍵被按下。在本系統中只需檢測引腳P3.5(S2)和P3.6(S3)是否被拉低為低電平,若為低電平則表示有鍵按下。P3.5對應“功能”鍵,P3.6對應“調整”鍵。連接方式如圖3-16所示。圖3-16 按鍵電路圖當“功能”鍵被按下時,進入超聲波倒

45、車預警值設置狀態,相應的位數閃爍,此時可以通過“調整”鍵設置數值大小(個位05循環,小數位09循環),每設置完一位數,按下“功能”鍵,進入下一位設置;當都設置完成后,按下“功能”鍵,即可退出預警值的設置。3.6 聲音報警模塊本系統采用有源蜂鳴器,其一端與5V電源相連,一端與P3.3口相連,在程序中設計取反操作,使P3.3口發出定時的高低電平,驅動蜂鳴器發聲。電路圖如圖3-17所示。圖3-17 有源蜂鳴器電路圖3.7 本章小結本章主要完成了系統的硬件電路設計。包括單片機最小系統,單片機外圍電路及LCD顯示電路,超聲波接口電路,DS18B20溫度采集電路,蜂鳴器電路和獨立按鍵電路等,原理圖的繪制在

46、Altium Designer平臺完成。這期間遇到了許多問題,最后通過網絡以及參考各方面書籍,完成了本設計中的系統硬件設計部分。第4章 軟件設計4.1 軟件方案概述超聲波倒車雷達的軟件設計主要由初始化程序、主程序(它包括超聲波發生子程序、超聲波接收子程序、定時器、超聲波溫度補償聲速程序等)、LCD顯示程序、DS18B20溫度采集程序、報警提示音程序和按鍵程序組成。我們知道C語言程序有利于實現較復雜的算法,匯編語言程序則具有較高的效率并且容易精確計算程序運行的時間,而超聲波測距器的程序既有較復雜的計算(計算距離時),又要求精確計算程序運行時間(超聲波測距時),本設計在計算部分比較復雜,所以控制程

47、序采用C語言編程,編程平臺為Keil uVersion 4。同時,在編譯完成后,通過Proteus7.8軟件進行仿真,對設計進行驗證和優化。軟件設計的總體結構框圖如圖4-1。圖4-1 系統軟件設計總框圖(1) 系統初始化程序:即系統剛上電的時候對系統的各個引腳的電平分配和對各寄存器的初值賦值。(2) 液晶顯示程序:顯示超聲波測量距離、預警距離和環境溫度值。(3) 按鍵掃描程序:用于設置倒車時的預警值。(4) 超聲波收發程序:發射控制模塊是軟件控制超聲波發射電路發射超聲脈沖啟動定時器工作,同時啟動接收電路工作,當接收電路有信號輸入時,對輸入信號進行處理。(5) 溫度采集程序:根據DS18B20工

48、作時序,編寫讀取程序,獲取當前環境溫度值,同時給超聲波測距的聲速提供溫度補償。(6) 數據處理程序:對超聲波模塊、按鍵模塊和溫度傳感器模塊返回的數據進行處理加工,包括數學公式運算、邏輯運算等。(7) 聲音告警程序:當所測距離小于預警值時,蜂鳴器發聲提醒駕駛員注意。4.2 主程序設計主程序主要就是綜合各個子程序模塊,實現單片機IO口、定時器、LCD1602和溫度傳感器DS18B20的初始化操作,然后啟動超聲波測距、溫度傳感器測溫,并對模塊返回的數據加工處理,輸出到LCD1602上進行顯示,同時進行一系列的邏輯判斷,為駕駛員提供正確可靠的聲音告警提示。主程序流程圖如圖4-2所示(已略,請見上文說明

49、)。4.3 超聲波測距程序設計參考HC-SR04超聲波模塊技術手冊,可知它的啟動需要有如下4個步驟:因此,HC-SR04超聲波測距程序流程圖如圖4-3(已略,請見上文說明).圖4-3 超聲波程序設計流程圖4.4 溫度采集程序設計DS18B20屬于單線式器件,它在一根數據線上實現數據的雙向傳輸,這就需要一定的協議,來對讀寫數據提出嚴格的時序要求,而STC89C51單片機并不支持單線傳輸,因此必須采用軟件的方法來模擬單線的協議時序。DS18B20有嚴格的通信協議來保證各為數據傳輸的正確性和完整性。主機操作單線器件DS18B20必須遵循下面的順序。4.4.1 初始化單線總線上的所有操作都是從初始化開

50、始的。過程如下:1、請求主機通過拉低單線480us以上,產生復位脈沖,然后釋放該線,進入Rx接收模式。主機釋放總線時,會產生一個上升沿脈沖。DQ : 1 -> 0(480us+) -> 1  2、響應DS18B20檢測到該上升沿后,延時1560us,通過拉低總線60240us來產生應答脈沖。DQ: 1(1560us) -> 0(60240us)3、接收響應主機接收到從機的應答脈沖后,說明有單線器件在線。至此,初始化完成。DQ: 04.4.2 ROM操作命令當主機檢測到應答脈沖,便可發起ROM操作命令。共有5類ROM操作命令,如表6所示。表6 ROM操作指令表指令類型

51、命令字節功能說明Read Rom讀ROM33H讀取激光ROM中的64位,只能用于總線上單個DS18B20器件情況,多掛時會發生數據沖突;Match Rom匹配ROM55H此命令后跟64位ROM序列號,尋址多掛總線上的對應DS18B20,只有序列號完全匹配的DS18B20才能響應后面的內存操作命令,其他不匹配的將等待復位脈沖,可用于單掛或多掛兩種情況;Skip Rom跳過ROMCCH可無須提供64位ROM序列號即可運行內存操作命令,只能用于單掛;Search Rom搜索ROMF0H通過一個排除法過程,識別出總線上所有器件的ROM序列號;AlarmSearch報警搜索ECH命令流程與Search

52、Rom相同,但DS18B20只有最近的一次溫度測量時滿足了報警觸發條件的,才會響應此命令。4.4.3 數據處理DS18B20要求有嚴格的時序來保證數據的完整性。在單線DQ上存在復位脈沖、應答、寫”0”、寫”1”讀”0”和讀”1”幾種型號類型,其中除了應答脈沖以外,均有主機產生。1、DS18B20的復位時序圖4-4 DS18B20的復位時序數據位的讀和寫則是通過使用讀、寫是時序實現的。首先來看寫時序,時序圖如圖4-5所示。當主機將數據線從高電平拉至低電平時產生寫時序。有兩種類型的寫時序:寫”1”和寫”0”。所有寫時序必須在60us以上(即有高拉低后持續60us以上),各個寫時序之間必須保證最短1

53、us的恢復時間。DS18B20在DQ線變低后的15us至60us的窗口時間內對DQ線進行采樣,如果為高電平就寫為”1”,如果為低電平就寫為”0”。對于主機產生寫”1”時隙的情況,數據線必須先被拉低,然后釋放,在寫時序開始后的15us內允許DQ線拉至高電平。對于主機產生寫”0”時隙的情況,DQ線必須被拉至低電平且至少保持低電平60us的時間。圖4-5 寫時序時序圖如圖4-6所示。當主機從DS18B20讀數據時,把數據線從高電平拉至低電平,產生讀時序數據線DQ必須保持低電平至少1us,來自DS18B20的輸出數據在讀時序下降沿之后15us內有效,因此在此15us內,主機必須停止將DQ引腳置低。在讀時序結束時,DQ引腳將通過外部上拉電阻拉回至高電平。所有的讀時序最短必須持續60us,各個讀時序之間必須保證最短1us的回復時間。圖4-6讀時序所有的讀寫時序至少需要60us,且每兩個對立的時序之間至少需要1us的回復時間。在寫時序中,主機將在拉低總線15us內釋放總線,并向DS18B20寫”1”;若主機拉低總線后能保持至少60us的低電平,則向單總線器件寫”0”。DS18B20僅在主機發出讀時序時才向主機傳送數據,所以當主機向DS18B20發出讀數據命令后,必須

溫馨提示

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

評論

0/150

提交評論