基于avr單片機的倒車雷達設計【畢業(yè)設計+開題報告+文獻綜述】_第1頁
已閱讀1頁,還剩44頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  本科畢業(yè)設計(論文)</p><p><b>  (二零 屆)</b></p><p>  基于AVR單片機的倒車雷達設計</p><p>  所在學院 </p><p>  專業(yè)班級 電子信息工程 </p

2、><p>  學生姓名 學號 </p><p>  指導教師 職稱 </p><p>  完成日期 年 月 </p><p><b>  摘 要</b></p><p> 

3、 本文根據(jù)聲波在空氣中傳播反射原理,以超聲波傳感器為接口部件,介紹了基于AVR單片機的超聲波測距器。該設計由超聲波發(fā)射模塊、信號接收模塊、AVR單片機處理模塊、數(shù)碼顯示以及顯示模塊等部分組成,文中詳細介紹了測距器的硬件組成、檢測原理、方法以及軟件結(jié)構(gòu)。超聲波接收電路使用CX20106A紅外檢測芯片,該芯片用于38kHz的檢波電路。文中設計出對40kHz超聲波檢波的硬件電路,并使用數(shù)碼管顯示目標物的距離。</p><p

4、>  關(guān)鍵詞:ATmega16,超聲波,倒車雷達 </p><p>  The parking radar design system based on AVR microcontroller</p><p><b>  Abstract</b></p><p>  The paper introduces an ultrasonic r

5、ange-finder control system based on AVR microcontroller, according to the principle of sound wave propagation reflection in the air,using the ultrasonic sensors as the interface unit. The design consists of an ultrasoni

6、c transmitter module, a signal receiver module, AVR microcontroller processing module, digital display and the display module and other components, Described in detail the hardware components of the rangefinder, testing

7、principles, methods and </p><p>  Keywords: ATmega16,Ultrasonic, back-draft radar</p><p><b>  目 錄</b></p><p>  摘要 …………………………………………………………………………………………Ⅰ</p><p>

8、;  ABSTRACT ……………………………………………………………………………………Ⅱ</p><p>  目錄 …………………………………………………………………………………………Ⅲ</p><p>  1緒論…………………………………………………………………………………………1</p><p>  1.1汽車倒車雷達系統(tǒng)概述……………………………………………

9、………………1</p><p>  1.1.1倒車雷達系統(tǒng)作用…………………………………………………………1</p><p>  1.1.2倒車雷達系統(tǒng)的發(fā)展………………………………………………………1</p><p>  2 核心器件簡介………………………………………………………………………………3</p><p>  2.1 ATmega

10、16芯片……………………………………………………………………3</p><p>  2.1.1 ATmega16簡介……………………………………………………………3</p><p>  2.1.2 芯片特性……………………………………………………………………3</p><p>  2.1.3 ATmega16引腳功能…………………………………………………………4&l

11、t;/p><p>  2.1.4 ATmega16 內(nèi)核介紹…………………………………………………………5</p><p>  2.2超聲波傳感器的結(jié)構(gòu)與特點………………………………………………………6</p><p>  2.3超聲波傳感器的應用………………………………………………………………7</p><p>  3系統(tǒng)硬件設計…………………

12、……………………………………………………………8</p><p>  3.1 ATmega16核心控制模塊…………………………………………………………8</p><p>  3.2超聲波發(fā)射模塊……………………………………………………………………9</p><p>  3.3超聲波接收模塊……………………………………………………………………9</p>

13、<p>  3.4 顯示及報警模塊…………………………………………………………………10</p><p>  3.5 復位模塊…………………………………………………………………………11</p><p>  4系統(tǒng)軟件設計………………………………………………………………………………12</p><p>  4.1 超聲波測距原理及應用……………………………

14、……………………………12</p><p>  4.2 軟件結(jié)構(gòu)…………………………………………………………………………12</p><p>  4.3 各模塊程序說明…………………………………………………………………14</p><p>  4.3.1超聲波測距子程序………………………………………………………14</p><p>  4.3

15、.2 T0中斷子程序……………………………………………………………16</p><p>  參考文獻……………………………………………………………………………………16</p><p>  致 謝……………………………………………………………………………………17</p><p>  附錄1 原理圖………………………………………………………………………………18&l

16、t;/p><p>  附錄2 PCB圖………………………………………………………………………………18</p><p>  附錄3 程序…………………………………………………………………………………18</p><p><b>  1緒論</b></p><p>  1.1汽車倒車雷達系統(tǒng)概述</p><

17、p>  1.1.1倒車雷達系統(tǒng)作用</p><p>  隨著消費水平的提高,擁有汽車的人也逐漸增多,停車位也日趨緊張,泊車就成為很多車主頭痛的問題,這時倒車雷達就成了車主泊車的好助手。倒車雷達,全稱“倒車防撞雷達”,又稱“泊車輔助裝置”,它是汽車泊車或者倒車時的安全輔助裝置,能以直觀的顯示和警報來告知車主周圍障礙物的情況,為車主解除了泊車時前后左右探視所引起的煩擾,并且還幫助車主掃除了視線模糊和視野死角的缺

18、陷,提高了泊車的安全性。</p><p>  倒車雷達是汽車泊車安全輔助裝置,主要由超聲波探頭、控制器、顯示器及蜂鳴器等部分組成。它能以直觀的顯示和警報來告知車主周圍障礙物的情況,為車主解除了泊車時前后左右探視所引起的煩擾,并且還幫助車主掃除了視線模糊和視野死角的缺陷,提高了泊車的安全性。[1]倒車雷達其實跟我們所知道的雷達是一樣的,是根據(jù)蝙蝠在黑夜里高速飛行而不會與任何障得物相撞的原理設計開發(fā)的,通過感應裝置發(fā)

19、出超聲波,然后通過反射回來的超聲波來判斷前方有無障得物,以及距障礙物的距離、障礙物的大小、方位和形狀等。不過由于倒車雷達體積和實用性的限制,目前的倒車雷達主要具備的就是判斷障礙物的距離,并作出提示,讓駕駛者便于判斷。[2]</p><p>  通常的倒車雷達主要由三部分組成:感應器(探頭)、主機和顯示設備。感應器發(fā)出和接收超聲波信號,然后將得到的信號傳輸?shù)街鳈C里面的電腦進行分析,再通過顯示設備顯示出來。探頭裝在后

20、保險杠上,根據(jù)不同價格和品牌,探頭有1、3、4、6只不等,有的高檔進口車甚至要裝8只,分別管前后左右。探頭以45°角輻射,上下左右搜尋目標。它最大的特點是能探索到那些低于保險杠而駕駛員從后窗難以看見的障礙物(如花壇、蹲在車后玩耍的小孩等)并報警。倒車雷達的顯示器裝在駕駛室儀表板上,它不停地提醒駕駛員汽車距后面物體還有多少距離。到危險距離時蜂鳴器就開始鳴叫,提醒駕駛員停車。按探頭分,倒車雷達有粘貼式、鉆孔式和懸掛式三種。粘貼式探

21、頭后有層膠,可直接粘在后保險杠上。鉆孔式探頭,是在保險杠上打一個洞,然后把探頭嵌進去。懸掛式探頭主要用于貨車。從顯示器分,有數(shù)字顯示、顏色顯示和蜂鳴三種。數(shù)字式顯示器是一只如BP機大小的盒子,安裝在駕駛室儀表板上,距離直接用數(shù)字顯示,精確到0.01mm,讓駕駛員一目了然。它會提醒駕駛員:1.5~0.8m為安全區(qū);0.8~0.3m為適當區(qū);0.3~0.1m為危險區(qū)。在安全區(qū),你可正常倒泊。在適當區(qū)</p><p>

22、  1.1.2倒車雷達系統(tǒng)的發(fā)展</p><p><b> ?。?)蜂鳴器</b></p><p>  這是倒車雷達系統(tǒng)的真正開始,倒車時,如果車后1.5~1.8m處有障礙物,蜂鳴器就會開始工作。蜂鳴聲越急,表示車輛離障礙物越近,沒有語音提示,也沒有距離顯示,雖然司機知道有障礙物,但不能確定障礙物離車有多遠,對駕駛員幫助不大。</p><p>

23、<b> ?。?)數(shù)碼波段顯示</b></p><p>  數(shù)碼波段顯示可以顯示車后障礙物離車體的距離。如果是物體,在1.8米開始顯示;如果是人,在0.9米左右的距離開始顯示。 這一代產(chǎn)品有兩種顯示方式,數(shù)碼顯示產(chǎn)品顯示距離數(shù)字,而波段顯示產(chǎn)品由三種顏色來區(qū)別:綠色代表安全距離,表示障礙物離車體距離有0.8米以上;黃色代表警告距離,表示離障礙物的距離只有0.6~0.8米;紅色代表危險距離,表

24、示離障礙物只有不到0.6米的距離,你必須停止倒車。 該代產(chǎn)品由于比較實用,價格不高,中低檔車和車鈴超過三年的車安裝使用較多,但安裝在車內(nèi)不太美觀、功能單一。</p><p> ?。?)液晶顯示屏動態(tài)顯示</p><p>  這一代產(chǎn)品有一個質(zhì)的飛躍,特別是熒屏顯示開始出現(xiàn)動態(tài)顯示系統(tǒng)。不用掛倒檔,只要發(fā)動汽車,顯示器上就會出現(xiàn)汽車圖案以及車輛周圍障礙物的距離。動態(tài)顯示,色彩清晰漂亮,外表美

25、觀,可以直接粘貼在儀表盤上,安裝很方便,目前已逐漸成為新購中高檔車安裝使用的主流產(chǎn)品。不過目前國產(chǎn)的液晶顯示器外觀雖精巧,但靈敏度較高,抗干擾能力不強,所以誤報也較多。</p><p> ?。?)魔幻鏡倒車雷達</p><p>  魔幻鏡倒車雷達結(jié)合了前幾代產(chǎn)品的優(yōu)點,采用了最新仿生超聲雷達技術(shù),配以高速電腦控制,可全天候準確地測知2米以內(nèi)的障礙物,并以不同等級的聲音提示和直觀的顯示提醒駕

26、駛員。 魔幻鏡倒車雷達把后視鏡、倒車雷達、免提電話、溫度顯示和車內(nèi)空氣污染顯示等多項功能整合在一起,并設計了語音功能,是目前市面上比較先進的倒車雷達系統(tǒng),部分進口的高檔車已有安裝使用。因為其外形就是一塊倒車鏡,所以可以不占用車內(nèi)空間,直接安裝在車內(nèi)倒視鏡的位置,而且顏色款式多樣,可以按照個人需求和車內(nèi)裝飾選配。</p><p><b>  (5)整合影音系統(tǒng)</b></p>&

27、lt;p>  這是專為高檔轎車生產(chǎn)的,它在上一代產(chǎn)品的基礎上新增了很多功能。從外觀上來看,這套系統(tǒng)比上代產(chǎn)品更精致和典雅;從功能上來看,它除了具備上代產(chǎn)品的所有功能之外,還整合了高檔轎車具備的影音系統(tǒng),可以在顯示器上觀看DVD影像。[4]</p><p><b>  2 核心器件簡介</b></p><p>  2.1 ATmega16芯片</p>

28、<p>  ATmega16是基于增強的AVR RISC結(jié)構(gòu)的低功耗8 位CMOS微控制器。由于單時鐘周期指令執(zhí)行時間以及先進的指令集,ATmega16 的數(shù)據(jù)吞吐率高達1 MIPS/MHz,從而可以減少系統(tǒng)處理速度和系統(tǒng)功耗之間的矛盾。</p><p>  ATmega16 AVR 內(nèi)核具有32 個通用工作寄存器和豐富的指令集。所有的寄存器都是直接跟算術(shù)邏輯單元(ALU) 相連接的,這種結(jié)構(gòu)大大提高

29、了代碼效率,并且具有比普通的CISC 微控制器最高至10 倍的數(shù)據(jù)吞吐率。在一個時鐘周期內(nèi),使得一條指令可以訪問兩個獨立的寄存器。</p><p>  2.1.1 ATmega16簡介</p><p>  芯片ATmega16是以Atmel 高密度非易失性存儲器技術(shù)生產(chǎn)的。片內(nèi)ISP Flash 允許程序存儲器通過運行于AVR 內(nèi)核之中的引導程,或者序ISP 串行接口進行編程,也可以通過通

30、用編程器進行編程。ATmega16 具有一整套的編程與系統(tǒng)開發(fā)工具,包括:程序調(diào)試器/ 軟件仿真器、仿真器及評估板、C 語言編譯器、宏匯編。引導程序可以使用任意接口將應用程序下載到應用Flash存儲區(qū)(ApplicationFlash Memory)。在更新應用Flash存儲區(qū)時引導Flash區(qū)(Boot Flash Memory)的程序繼續(xù)運行,實現(xiàn)了RWW 操作。[5] 通過將8 位RISC CPU 與系統(tǒng)內(nèi)可編程的Flash 集成

31、在一個芯片內(nèi),ATmega16 成為一個功能強大的單片機,為許多嵌入式控制應用提供了靈活而低成本的解決方案。</p><p>  2.1.2 芯片特性</p><p>  芯片ATmega16 具有如下特性: 32 個通用工作寄存器, 512 字節(jié)EEPROM,1K 字節(jié)SRAM,16K字節(jié)的系統(tǒng)內(nèi)可編程Flash(具有同時讀寫的能力,即RWW),32 個通用I/O 口線,支持片內(nèi)調(diào)試與編

32、程,用于邊界掃描的JTAG 接口,三個具有比較模式的靈活的定時器/ 計數(shù)器(T/C),片內(nèi)/外中斷,可編程串行USART,六個可以通過軟件進行選擇的省電模式,8路10位具有可選差分輸入級可編程增益(TQFP 封裝) 的ADC ,一個SPI 串行端口,有起始條件檢測器的通用串行接口以及具有片內(nèi)振蕩器的可編程看門狗定時器。</p><p>  工作在省電模式下,異步定時器繼續(xù)運行,允許用戶保持一個時間基準,而其余功能

33、模塊處于休眠狀態(tài);工作于掉電模式時晶體振蕩器停止振蕩,所有功能除了中斷和硬件復位之外都停止工作;工作于空閑模式時CPU 停止工作,而SPI 端口、T/C、SRAM、中斷系統(tǒng)、A/D 轉(zhuǎn)換器、USART以及兩線接口繼續(xù)工作;Standby 模式下只有晶體或諧振振蕩器運行,其余功能模塊處于休眠狀態(tài),使得器件只消耗極少的電流,同時具有快速啟動能力;擴展Standby 模式下則允許振蕩器和異步定時器繼續(xù)工作;ADC 噪聲抑制模式時終止CPU 和

34、除了異步定時器與ADC 以外所有I/O 模塊的工作,以降低ADC 轉(zhuǎn)換時的開關(guān)噪聲。[6]</p><p>  2.1.3 ATmega16 引腳功能</p><p>  端口B(PB0~PB7) 端口B 為8 位I/O雙向口,具有可編程的內(nèi)部上拉電阻。作為輸入使用時,若內(nèi)部上拉電阻使能,端口被外部電路拉低時將輸出電流。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。在復位過程中,即

35、使系統(tǒng)時鐘還未起振,端口B 處于高阻狀態(tài)。端口B 也可以用做其他不同的特殊功能。</p><p>  RESET 復位輸入引腳。持續(xù)時間超過最小門限時間的低電平將引起系統(tǒng)復位。持續(xù)時間小于門限間的脈沖不能保證可靠復位。</p><p><b>  VCC 電源正極。</b></p><p><b>  GND 電源地極。</b&

36、gt;</p><p>  XTAL2 反向振蕩放大器的輸出端。</p><p>  XTAL1 反向振蕩放大器與片內(nèi)時鐘操作電路的輸入端。</p><p>  端口D(PD0~PD7) 端口D 為8 位I/O雙向口,具有可編程的內(nèi)部上拉電阻。作為輸入使用時,若內(nèi)部上拉電阻使能,則端口被外部電路拉低時將輸出電流。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。

37、在復位過程中,即使系統(tǒng)時鐘還未起振,端口D 處于高阻狀態(tài)。端口D 也可以用做其他不同的特殊功能。</p><p>  端口C(PC0~PC7) 端口C 為8 位I/O雙向口,具有可編程的內(nèi)部上拉電阻。作為輸入使用時,若內(nèi)部上拉電阻使能,端口被外部電路拉低時將輸出電流。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。在復位過程中,即使系統(tǒng)時鐘還未起振,端口C 處于高阻狀態(tài)。端口C 也可以用做其他不同的特殊功能

38、。如果JTAG接口使能,即使復位出現(xiàn)引腳 PC5(TDI)、 PC3(TMS)與 PC2(TCK)的上拉電阻被激活。</p><p>  AVCC AVCC是端口A與A/D轉(zhuǎn)換器的電源。使用ADC時應將VCC與一個低通濾波器連接。不使用ADC時,該引腳應直接與VCC連接。</p><p>  AREF A/D 的模擬基準輸入引腳。</p><p>  端口A(PA0

39、~PA7) 端口A 做為A/D 轉(zhuǎn)換器的模擬輸入端。端口A 為8 位I/O雙向口,具有可編程的內(nèi)部上拉電阻。作為輸入使用時,若內(nèi)部上拉電阻使能,端口被外部電路拉低時將輸出電流。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。在復位過程中,即使系統(tǒng)時鐘還未起振,端口A 處于高阻狀態(tài)。</p><p>  圖2-1 ATmega16</p><p>  2.1.4 ATmega16 內(nèi)

40、核介紹</p><p>  AVR 存儲器空間結(jié)構(gòu)為線性平面。</p><p>  AVR有一個靈活的中斷模塊。每個中斷在中斷向量表里都有獨立的中斷向量。狀態(tài)寄存器里有全局中斷使能位??刂萍拇嫫魑挥贗/O空間。各個中斷的優(yōu)先級與其在中斷向量表的位置有關(guān),中斷向量地址越低,優(yōu)先級越高。</p><p>  AVR 采用了Harvard 結(jié)構(gòu),取得了較高的性能以及并行性

41、,具有獨立的數(shù)據(jù)和程序總線。程序存儲器是可以在線編程的FLASH。程序存儲器里的指令通過一級流水線運行。CPU在執(zhí)行一條指令的同時讀取下一條指令。這個概念實現(xiàn)了指令的單時鐘周期運行。</p><p>  程序存儲器空間可以分為兩個區(qū):應用程序區(qū)和引導程序區(qū)(Boot 區(qū))。這兩個區(qū)都有專門的鎖定位以實現(xiàn)讀和讀/ 寫保護。用于寫應用程序區(qū)的SPM 指令必須位于引導程序區(qū)。</p><p> 

42、 I/O 存儲器空間包含64 個可以直接尋址的地址,作為CPU 外設的控制寄存器、SPI,以及其他I/O 功能。映射到數(shù)據(jù)空間即為寄存器文件之后的地址0x20~0x5F。</p><p>  快速訪問寄存器文件包括32 個8 位通用工作寄存器,又因為訪問時間為一個時鐘周期,從而實現(xiàn)了單時鐘周期的ALU 操作。在典型的ALU 操作中,整個過程僅一個時鐘周期,兩個位于寄存器文件中的操作數(shù)同時被訪問,然后執(zhí)行運算,運算

43、結(jié)果再被送回到寄存器文件。</p><p>  ALU支持常數(shù)和寄存器之間以及寄存器之間的算術(shù)和邏輯運算。ALU也可以執(zhí)行單寄存器操作。運算完成之后狀態(tài)寄存器的內(nèi)容得到更新以反映操作結(jié)果。</p><p>  在調(diào)用和中斷子程序時返回地址的程序計數(shù)器(PC) 保存于堆棧之中。通用數(shù)據(jù)SRAM包含堆棧在內(nèi),因此其深度僅受限于SRAM 的大小。在復位例程里首先要初始化堆棧指針SP。這個指針可以

44、進行讀寫訪問,它位于I/O 空間??梢酝ㄟ^5 種不同的尋址模式進行訪問數(shù)據(jù)SRAM。</p><p>  寄存器文件里有6 個寄存器可以用作3 個16 位的間接尋址寄存器指針以尋址數(shù)據(jù)空間,從而實現(xiàn)高效的地址運算。這些附加的功能寄存器即為16 位的X、Y、Z 寄存器。其中一個指針還可以作為程序存儲器查詢表的地址指針。</p><p>  通過有無條件的調(diào)用指令和跳轉(zhuǎn)指令來控制程序流程,從而

45、直接尋址整個地址空間。大多數(shù)指令長度為16 位,即每個程序存儲器地址都包含一條16 位或32 位的指令。</p><p>  2.2 超聲波傳感器的結(jié)構(gòu)與特點</p><p><b>  (1)組成部分</b></p><p>  超聲波探頭主要由壓電晶片組成,用來發(fā)射超聲波和接收超聲波。功率較小的超聲波探頭大多用來探測。它的結(jié)構(gòu)可分斜探頭(橫

46、波)、直探頭(縱波)、蘭姆波探頭(蘭姆波)、表面波探頭(表面波)、雙探頭(一個探頭反射、一個探頭接收)等。</p><p><b> ?。?)性能指標</b></p><p>  超聲探頭的核心部件是其金屬外套或者塑料外套中的一塊壓電晶片,構(gòu)成晶片的材料也有許多種,各有不同。由于晶片的大小,如直徑和厚度也各不相同,所以每個探頭的特性是不相同的,我們使用前應該先了解它的

47、性能。超聲波傳感器的主要性能指標包括以下部分:</p><p><b>  a)靈敏度</b></p><p>  主要取決于制造晶片本身。機電耦合系數(shù)小,靈敏度低;反之,靈敏度高。</p><p><b>  b)工作溫度</b></p><p>  由于壓電材料的居里點一般比較高,特別是診斷用的

48、超聲波探頭功率較小,因此工作溫度比較低,可以長時間地工作而不失效。而醫(yī)療用的超聲探頭的溫度比較高,不能長時間工作,所以需要單獨的制冷設備。</p><p><b>  c)工作頻率</b></p><p>  工作頻率就是壓電晶片的共振頻率。當晶片的共振頻率和加到它兩端的交流電壓的頻率相等時,輸出的能量最大,靈敏度也最高。</p><p>  

49、2.3 超聲波傳感器的應用</p><p>  超聲波傳感技術(shù)廣泛應用在生產(chǎn)實踐方面,其中最主要的應用之一有醫(yī)學應用,超聲波在醫(yī)學上的應用主要體現(xiàn)在疾病的診斷,超聲波診斷是利用超聲波的反射。當超聲波在人體組織中傳播遇到兩層聲阻抗不同的介質(zhì)界面時,在該界面就產(chǎn)生反射回波。每遇到一個反射面,回波在示波器的屏幕上顯示出來,回波的振幅的高低取決于兩個界面的阻抗差值。目前該技術(shù)受到患者和醫(yī)務工作者的大大歡迎,它已經(jīng)成為了臨

50、床醫(yī)學中不可缺少的診斷方法。超聲波診斷的優(yōu)點包括有:對受檢者無損害、無痛苦、診斷的準確率高、顯像清晰、方法簡便等[7]。在工業(yè)的應用方面,超聲波的典型應用是超聲波測厚和對金屬的無損探傷兩種。以前許多技術(shù)因為無法探測到物體組織內(nèi)部而受到阻礙,導致失敗?,F(xiàn)在,超聲波傳感技術(shù)的出現(xiàn)改變了這種狀況。在未來的應用中,超聲波將與信息技術(shù)、新材料技術(shù)相互結(jié)合,會出現(xiàn)更多的高靈敏度、智能化的超聲波傳感器。以現(xiàn)在人類無法想像的方式存在在我們的周圍,毫無聲

51、息地探測人們所需要的信號。</p><p><b>  3系統(tǒng)硬件設計</b></p><p>  本系統(tǒng)采用ATmega16 AVR為控制核心,外圍電路由超聲波發(fā)射電路(74HC04)、超聲波接收電路(CX20106A)、報警電路、顯示電路(LCD1602)、接口電路及電源電路等部分組成。系統(tǒng)框圖如圖3-1所示。</p><p>  圖3-1

52、 Atmega16 AVR系統(tǒng)框架</p><p>  3.1 ATmega16核心控制模塊</p><p>  Atmega16是Atmel公司近幾年才推向市場的新一代低功耗、高性能、高集成化的8位CMOS微控制器。由于其先進的指令集以及單時鐘周期指令執(zhí)行時間,加上片內(nèi)32 個通用工作寄存器都直接與算術(shù)邏輯單元(ALU) 相連接,使得一條指令可以在一個時鐘周期內(nèi)同時訪問兩個獨立的寄存器

53、,大大提高了代碼效率,運行速度比AT89C51高出很多。用于邊界掃描的JTAG接口,可以對片上16 KB閃存Flash在線編程和調(diào)試,非常方便軟件的升級。內(nèi)部集成了較大容量的存儲器和豐富強大的硬件接口電路,如實時時鐘、定時/計數(shù)器、I2C的串行接口、A/D轉(zhuǎn)換器、可編程的串行USART接口、快速PWM通道、SPI串行接口和帶片內(nèi)晶振的可編程看門狗定時器以及片內(nèi)的模擬比較器等,除傳感器外幾乎可以不需要其他任何元件即可構(gòu)成系統(tǒng),從而為本設計

54、提供了靈活而低成本的解決方案。其主控電路如圖3-2所示。</p><p>  圖3-2 Atmega16 主控電路圖</p><p>  3.2 超聲波發(fā)射模塊</p><p>  超聲波發(fā)射器由超聲波的生成電路與超聲波發(fā)射控制電路兩部分組成,本系統(tǒng)中選用了CSB40T作為超聲波探頭。超聲波的產(chǎn)生可采用軟件發(fā)生方法和硬件方法。這里是利用軟件產(chǎn)生40KHz的超聲波信

55、號,經(jīng)過74HC04兩次和一次反向放大驅(qū)動后輸出到CSB40T,如圖3-3所示。</p><p>  圖3-3 超聲波發(fā)射電路</p><p>  芯片74HC04是一個高速CMOS六反相器,相對于LSTTL邏輯IC,它的功耗少很多,74HC04還具有對稱的傳輸延遲和轉(zhuǎn)換時間。對于HC類型的芯片,其工作電壓為2~6V,它具有高抗擾度,可以兼容直接輸入LSTTL邏輯信號和CMOS邏輯信號。

56、</p><p>  3.3 超聲波接收模塊</p><p>  因為超聲波在空氣中傳播會消耗能量,傳輸距離越遠能量損失越大,從遠距離障礙物反射的回波信號一般比較弱,所以超聲波接收到回波信號后,要對回波信號進行放大[8]。為減少環(huán)境噪聲對回波信號的影響。也要考慮選用濾波特性較好的電路,使回波信號易于檢測。本系統(tǒng)使用集成電路CX20106A作為超聲波接收電路,用來完成信號的放大、限幅、整形、

57、帶通濾波和峰值檢波等功能,如圖3-4所示。</p><p>  圖3-4 超聲波接收電路</p><p>  CX20106A的前置放大器具有自動增益的控制功能,可以保證在接收較遠反射信號輸出的微弱電壓時,放大器有較高的增益,而在近距離輸入信號比較強時,放大器不會過載。CX20106A接收超聲波有較高的抗干擾能力,并且靈敏度也很高,可以滿足接受電路的要求。同時也可以減少電路之間的相互干擾

58、,減少電噪聲。當接收到40KHz信號后,芯片7腳會出現(xiàn)低電平,接入單片機便可以使單片機產(chǎn)生中斷。</p><p>  3.4 顯示及報警模塊</p><p>  此模塊由AVR單片機控制LCD1602顯示并且發(fā)出警報。主要作用是在汽車尾部與障礙物距離較近時進行報警并且顯示出車尾與障礙物的距離。在大于2 m時認為是正常的,處于安全狀態(tài),顯示實測距離;小于2 m時,應提醒司機注意,系統(tǒng)發(fā)出聲音

59、報警功能,單片機主芯片向其端口發(fā)出脈沖,隨著距離的減小,通過控制脈沖的占空比使蜂鳴的頻率加劇,產(chǎn)生警報同時在顯示器上顯示距離。</p><p>  圖3-5 顯示及其警報電路</p><p><b>  3.4 復位模塊</b></p><p>  ATmega16單片機共有5個復位源:</p><p>  上電復位。

60、當系統(tǒng)電源電壓低于上電復位門限Vpot時,MCU復位。</p><p>  外部復位。當外部引腳RESET為低電平,且低電平持續(xù)時間大于1.5us時,MCU復位。</p><p>  掉電檢測(BOD)復位。BOD使能時,且電源電壓低于掉電檢測復位門限(4.0v或2.7v)時,MCU復位。</p><p>  看門狗復位。WDT使能時,并且WDT超時溢出時,MCU復

61、位。</p><p>  JTAG AVR復位。當使用JTAG接口時,可由JTAG口控制MCU復位。</p><p><b>  4系統(tǒng)軟件設計</b></p><p>  4.1 超聲波測距原理及應用</p><p>  超聲波測距的原理比較簡單,一般采用的方法有渡越時間法,即將超聲傳感器裝在汽車尾部,則障礙物到達車尾

62、的垂直距離為:</p><p>  S=c△t/2 (4-1)</p><p>  式(4-1)中,S為被測障礙物與超聲波發(fā)射點之間的距離,C為聲波在介質(zhì)中的傳輸速率,△t為發(fā)射超聲波和接收超聲波的時間間隔。</p><p>  超聲波的傳播速度C受到空氣中壓強、濕度、溫度等因素的影響,其中受到溫度的影響較大??諝庵袦囟扰c聲速的關(guān)系可表示為:&l

63、t;/p><p>  C=331.5+0,6T(m/s) (4-2)</p><p>  式(4-2)中,T(攝氏度)為環(huán)境溫度</p><p>  為了提高超聲波測距的精度,本系統(tǒng)用溫度補償來校正傳播速度。所以只要測量超聲發(fā)射到超聲接收的時間間隔△t以及環(huán)境溫度T,然后根據(jù)式(4-1)、式(4-2)即可計算出距離S。</p><p>  在超聲

64、波測距時,需要測的是超生比發(fā)射和接收到信號之間的時間差,因此要盡量避免檢測到余波信號,這也是超聲波檢測中存在最小測量盲區(qū)的主要原因。[9]</p><p>  用軟件來控制脈沖發(fā)射信號和檢測回波信號:</p><p>  進行程序設計時采用脈沖測量的方法,由ATmega16發(fā)生20KHz的脈沖信號,每一次所測量出來發(fā)射的脈沖數(shù)要在12個以上完整的40KHz脈沖。與此同時在發(fā)射信號前要打開計

65、數(shù)器進行計時;等到計時到達一定的值之后,再開啟檢測回波信號,以避免余波信號的干擾。</p><p>  采用外部中斷來對回波信號進行檢測。當接收到檢測回波信號時,馬上讀取計數(shù)器上所顯示的數(shù)值,該數(shù)據(jù)就是所需要測量的時間差數(shù)據(jù)。為避免測量數(shù)據(jù)的誤差,采取的處理方法是:每進行一次測距,用時基中斷測量4次,獲得4組數(shù)據(jù),經(jīng)過處理后得到這一次測距數(shù)值。</p><p>  超聲波對固體、液體的穿透

66、本領很大,尤其是不透明的固體中,它可穿透該固體幾十米的深度。</p><p>  超聲波在碰到分界面或者是雜質(zhì)時,會產(chǎn)生顯著反射形成反射回波,碰到活動物體時會產(chǎn)生多普勒效應。所以超聲波檢測在生物醫(yī)、國防、工業(yè)學等方面廣泛應用。</p><p>  超聲波距離傳感器也可以廣泛應用在防盜報警,各種超聲波接近開關(guān),機器人防撞,以及物位(液位)監(jiān)測等相關(guān)領域,靈敏度高,安裝方便,工作可靠,防水型,

67、發(fā)射夾角較小,方便與工業(yè)顯示儀表連接,也提供發(fā)射夾角較大的探頭。</p><p><b>  4.2軟件結(jié)構(gòu)</b></p><p>  軟件設計采用模塊化設計,由主程序、聲速修正子程序、T0中斷子程序、距離計算子程序、LED顯示子程序和報警子程序等模塊組成。主程序流程圖如4-1圖所示。</p><p>  圖4-1 主程序流程圖</p&

68、gt;<p>  在程序進行初始化之后,先對聲速進行修正。當進行超聲波測距時,由AVR單片機發(fā)出一個脈寬為125μs的脈沖信號,該脈沖信號主要控制74HC04發(fā)射5個40 kHz的超聲波脈沖串。T0定時器的定時時間為30 ms,就是每隔30 ms發(fā)射出5個40 kHz的超聲波脈沖串。發(fā)射超聲波脈沖串的同時AVR單片機的T0計數(shù)器進行計數(shù),一旦接收到回波信號馬上停止計數(shù)。利用超聲波距離計算子程序?qū)λ鶞y得的時間和修正后的聲速進

69、行數(shù)據(jù)處理后,將結(jié)果送入LCD顯示和進行報警。</p><p>  4.3各模塊程序說明</p><p>  4.3.1 超聲波測距子程序</p><p><b>  圖4-2</b></p><p>  超聲波測距控制程序中,超聲波測距的功能流程圖如4-2圖所示。使用者要先對函數(shù)進行初始化,然后調(diào)用此函數(shù)即可進行下一次

70、測距操作,測量結(jié)果為函數(shù)返回值,每一次測距要進行四次數(shù)據(jù)測量,這四次的測量值要經(jīng)過處理后才能得到最終的測距返回值;每一次測距中,用時基中斷來控制四次測量的間隔時間;每一次測量,先發(fā)射20個40KHz脈沖,然后使能測量時間基準計數(shù)器,當計數(shù)到4ms時,等待回波信號反射到接收頭。四次數(shù)據(jù)的測量完成后,再對測量值進行處理、換算,并進行出錯處理,使用者可以根據(jù)不同的需要對數(shù)據(jù)處理部分的程序給予適當?shù)恼{(diào)整。壓電式的電聲傳感器存在余波干擾,有部分聲

71、波會沿電路板直接傳到接收,經(jīng)接收電路的放大后,系統(tǒng)就有可能把它誤認為是反射回來的回波信號。</p><p>  void main(void)</p><p><b>  {</b></p><p>  init_devices();</p><p><b>  while(1)</b></p

72、><p>  {DDRB=0b00001000;</p><p>  timer1_init();</p><p>  TCCR0 = 0x19;//time0</p><p><b>  while(1);</b></p><p><b>  }</b></p>

73、<p><b>  while(1)</b></p><p><b>  {</b></p><p>  unsigned int n=100;</p><p>  init_devices();</p><p>  DDRB=0b00001000;</p><p>

74、;<b>  step=1;</b></p><p><b>  t1=0;</b></p><p>  timer1_init();</p><p>  TCCR0 = 0x19;//time0</p><p>  while(step){}</p><p>  GICR

75、 = 0b00000000;</p><p>  ds=t1/54.2122;</p><p>  ds_to_disbuffer(ds);</p><p>  while(n--)</p><p><b>  {</b></p><p>  display();</p><p

76、><b>  } </b></p><p><b>  }</b></p><p><b>  }</b></p><p>  4.3.2 T0中斷子程序</p><p>  中斷程序分為T0,INT0,INT1</p><p>  T0設置為

77、30ms中斷一次,其主要目的就是每隔30ms產(chǎn)生5~8個40kHz的方波作為超聲波脈沖,并且按順序送到四個通道產(chǎn)生超聲波發(fā)射脈沖。INT0中斷子程序讀取A/D轉(zhuǎn)換的結(jié)果,將相應數(shù)值轉(zhuǎn)換為所在環(huán)境的溫度值。INT1停止T0、T1計數(shù),根據(jù)T1內(nèi)容計算出時間T,并計算最終距離。先計算超聲波傳播速度C,再計算距離,并將計算值送入緩沖區(qū)以備通訊。T1工作在方式1。</p><p><b>  圖4-3</

78、b></p><p>  /TIMER0 initialize - prescale:1</p><p>  // WGM: CTC</p><p>  // desired value: 40KHz</p><p>  // actual value: 79.277KHz (-0.9%)</p><p>  v

79、oid timer0_init(void)</p><p><b>  {</b></p><p>  TCCR0 = 0x00; //stop</p><p>  TCNT0 = 0xA4; //set count</p><p>  OCR0 = 0x5C; //set compare</p>&l

80、t;p>  // TCCR0 = 0x19; //start timer</p><p><b>  }</b></p><p>  //TIMER1 initialize - prescale:8 1.08506 US</p><p>  //TIMER1 initialize - prescale:8</p>&l

81、t;p>  // WGM: 0) Normal, TOP=0xFFFF</p><p>  // desired value: 500uSec</p><p>  // actual value: 499.132uSec (0.2%)</p><p>  void timer1_init(void)</p><p><b> 

82、 {</b></p><p>  TCCR1B = 0x00; //stop</p><p>  TCNT1H = 0x00; //setup</p><p>  TCNT1L = 0x00;</p><p>  //OCR1A=FF;</p><p>  //OCR1A=5000;</p>

83、<p>  OCR1AH = 0x13;</p><p>  OCR1AL = 0x88;</p><p>  OCR1BH = 0x01;</p><p>  OCR1BL = 0xCC;</p><p>  ICR1H = 0x01;</p><p>  ICR1L = 0xCC;</p>

84、<p>  TCCR1A = 0x00;</p><p>  TCCR1B = 0x02; //start Timer</p><p>  GICR=0b11100000;</p><p>  TCCR0 = 0x19; //start timer0</p><p><b>  }</b></p>

85、;<p>  #pragma interrupt_handler timer1_compa_isr:7</p><p>  void timer1_compa_isr(void)</p><p><b>  {</b></p><p>  // TCCR0 = 0x00; //stop T0</p><p>

86、;  //compare occured TCNT1=OCR1A</p><p>  // TCCR0 = 0x00; //stop T0</p><p>  //delay_us(50);</p><p>  //if(LR==0)GICR=0b01000000;</p><p>  // else GICR=0b10000000;<

87、/p><p><b>  }</b></p><p>  #pragma interrupt_handler timer1_ovf_isr:9</p><p>  void timer1_ovf_isr(void)</p><p><b>  {</b></p><p>  //

88、TIMER1 has overflowed</p><p><b>  step=0;</b></p><p>  TCCR1B = 0x00;</p><p>  TCCR0 = 0x00; //stop T0</p><p>  //delay_ms(30);</p><p>  #pragm

89、a interrupt_handler int0_isr:2 </p><p>  void int0_isr(void)//收到波</p><p><b>  {</b></p><p>  CLI(); //disable all interrupts</p><p><b>  t1=TCNT1;<

90、/b></p><p>  TCCR0 = 0x00; //stop T0</p><p><b>  //step=0;</b></p><p><b>  //GICR=0;</b></p><p>  GICR&=0b10111111;//stop int0</p>

91、<p><b>  SEI(); </b></p><p><b>  } </b></p><p>  4.3系統(tǒng)調(diào)試及其結(jié)果</p><p>  從資料的著手到電路原理圖的繪制,所花的時間并不是很多,很大部分的經(jīng)歷付諸在軟件的修改之上。在這個階段也有部分收獲,最初是出現(xiàn)了LCD1602無法顯示,思考著可能是

92、因為程序的問題導致LCD1602無法顯示,改變程序之后還是不能夠顯示,然后我認為很有可能是電路出現(xiàn)問題了,緊接著開始查找電路的連線及其焊接。這一環(huán)節(jié)結(jié)束之后,我發(fā)現(xiàn)芯片之間的焊接與連線大體是沒有問題的,除了有個地方的焊接出現(xiàn)了虛焊。發(fā)現(xiàn)問題后重新進行焊接。等全部檢查無誤后再次運行,仍然無法顯示,而且有燒焦的味道,查看之后發(fā)現(xiàn)ATmega16芯片被燒壞了。因此無法顯示,導致設計的失敗。</p><p><b&

93、gt;  參 考 文 獻</b></p><p>  [1] 牛余朋,成曙.基于單片機的超聲波測距系統(tǒng).兵工自動化出版社,2005</p><p>  [2] 蘇長贊.紅外線與超聲波遙測.哈爾濱:哈爾濱工業(yè)大學出版社,1999-6:128-134 </p><p>  [3] 朱華.發(fā)展中的倒車雷達.[期刊論文]《城市車輛》,2006年</p>

94、;<p>  [4] 丁鑫.全景視覺泊車輔助系統(tǒng)研究.浙江大學信息與電子工程學系出版社,2010年</p><p>  [5] 蘭金虎. CAN總線技術(shù)在工程機械發(fā)動機檢測中的應用.西安電子科技大學出版社,2009年</p><p>  [6] 文樺.單片機教學與應用平臺的研究. 同濟大學軟件學院出版社,2009年</p><p>  [7] 何莉,曾

95、憲文.基于PIC單片機的超聲波測距系統(tǒng).重慶工學院電子信息與自動化學院出版社,2006-7</p><p>  [8] 恒清,張靖.加強單片機系統(tǒng)抗干擾能力的方法.通化師范學院報社,2004-10</p><p>  [9] 丁鎮(zhèn)生.傳感器及遙測技術(shù).電子工業(yè)出版社,1998-5</p><p>  [10] 陳光東.單片機微型計算機原理與技術(shù)接口(第二版).武漢:

96、華中理工大學出版社,1999-4:21-25</p><p>  [11] 郭天祥.概念51單片機C語言教程——入門、提高、開發(fā)、拓展.電子工業(yè)出版社</p><p>  [12] 李廣弟,朱月秀,王秀山.單片機基礎(修訂本).北京:北京航空航天大學出版社,2001</p><p>  [13] 戴巍.現(xiàn)代汽車防撞系統(tǒng).汽車維修出版社,2006</p>

97、<p>  [14] 馬忠梅,籍順信.單片機的C語言應用程序設計.第三版,北京航天航空大學出版社,2003-11</p><p>  [15] 黃繼呂.電子元器件應用手冊.人民郵電出版社,2007</p><p>  [16] 恒盛杰資訊.Protel電路板設計從入門到精通.中國青年出版社,2006</p><p>  [17] rotor S ,ZHA

98、NG G X. Geometric Error Measurement and Compensation of Machines. Annals of the CIRP. 1995:599-609</p><p>  [18] Olton W. Instrumentation process measurement.Longmanscientific Technical. 1991:364-372</p&g

99、t;<p><b>  附 錄 1</b></p><p><b>  附 錄 2</b></p><p><b>  附 錄 3</b></p><p>  //TIMER0 initialize - prescale:1</p><p>  // WGM: C

100、TC</p><p>  // desired value: 40KHz</p><p>  // actual value: 76.923KHz (-4.0%)</p><p>  void timer0_init(void)</p><p><b>  {</b></p><p>  TCCR

101、0 = 0x00; //stop</p><p>  TCNT0 = 0xF4; //set count</p><p>  OCR0 = 0x0C; //set compare</p><p>  TCCR0 = 0x19; //start timer</p><p><b>  }</b></p>

102、<p>  T/C1計時部分設置函數(shù)</p><p>  //TIMER0 initialize - prescale:1</p><p>  // WGM: CTC</p><p>  // desired value: 40KHz</p><p>  // actual value: 79.277KHz (-0.9%)</

103、p><p>  void timer0_init(void)</p><p><b>  {</b></p><p>  TCCR0 = 0x00; //stop</p><p>  TCNT0 = 0xA4; //set count</p><p>  OCR0 = 0x5C; //set co

104、mpare</p><p>  // TCCR0 = 0x19; //start timer</p><p><b>  }</b></p><p>  //TIMER1 initialize - prescale:8 1.08506 US</p><p>  //TIMER1 initialize - presc

105、ale:8</p><p>  // WGM: 0) Normal, TOP=0xFFFF</p><p>  // desired value: 500uSec</p><p>  // actual value: 499.132uSec (0.2%)</p><p>  void timer1_init(void)</p>

106、<p><b>  {</b></p><p>  TCCR1B = 0x00; //stop</p><p>  TCNT1H = 0x00; //setup</p><p>  TCNT1L = 0x00;</p><p>  //OCR1A=FF;</p><p>  //OCR1

107、A=5000;</p><p>  OCR1AH = 0x13;</p><p>  OCR1AL = 0x88;</p><p>  OCR1BH = 0x01;</p><p>  OCR1BL = 0xCC;</p><p>  ICR1H = 0x01;</p><p>  ICR1L

108、 = 0xCC;</p><p>  TCCR1A = 0x00;</p><p>  TCCR1B = 0x02; //start Timer</p><p>  GICR=0b11100000;</p><p>  TCCR0 = 0x19; //start timer0</p><p><b>  }

109、</b></p><p>  #pragma interrupt_handler timer1_compa_isr:7</p><p>  void timer1_compa_isr(void)</p><p><b>  {</b></p><p>  // TCCR0 = 0x00; //stop T0&

110、lt;/p><p>  //compare occured TCNT1=OCR1A</p><p>  // TCCR0 = 0x00; //stop T0</p><p>  //delay_us(50);</p><p>  //if(LR==0)GICR=0b01000000;</p><p>  // else G

111、ICR=0b10000000;</p><p><b>  }</b></p><p>  #pragma interrupt_handler timer1_ovf_isr:9</p><p>  void timer1_ovf_isr(void)</p><p><b>  {</b></p

112、><p>  //TIMER1 has overflowed</p><p><b>  step=0;</b></p><p>  TCCR1B = 0x00;</p><p>  TCCR0 = 0x00; //stop T0</p><p>  //delay_ms(30);</p>

113、<p>  #pragma interrupt_handler int0_isr:2 </p><p>  void int0_isr(void)//收到波</p><p><b>  {</b></p><p>  CLI(); //disable all interrupts</p><p><b

114、>  t1=TCNT1;</b></p><p>  TCCR0 = 0x00; //stop T0</p><p><b>  //step=0;</b></p><p><b>  //GICR=0;</b></p><p>  GICR&=0b10111111;//s

115、top int0</p><p><b>  SEI(); </b></p><p><b>  } </b></p><p>  void display(void)</p><p><b>  {</b></p><p>  unsigned cha

116、r i;</p><p>  for(i=0;i<3;i++)</p><p><b>  {</b></p><p>  PORTA=led_7[dis_buff[i]];</p><p>  PORTC=position[i];</p><p>  delay_ms(1); </p

117、><p>  PORTC=0x00; </p><p><b>  }</b></p><p><b>  }</b></p><p><b>  初始化部分函數(shù):</b></p><p>  void port_init(void)</p>

溫馨提示

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

評論

0/150

提交評論