基于AVR單片機的汽車倒車防撞裝置設(shè)計和實現(xiàn) 電氣工程專業(yè)_第1頁
基于AVR單片機的汽車倒車防撞裝置設(shè)計和實現(xiàn) 電氣工程專業(yè)_第2頁
基于AVR單片機的汽車倒車防撞裝置設(shè)計和實現(xiàn) 電氣工程專業(yè)_第3頁
基于AVR單片機的汽車倒車防撞裝置設(shè)計和實現(xiàn) 電氣工程專業(yè)_第4頁
基于AVR單片機的汽車倒車防撞裝置設(shè)計和實現(xiàn) 電氣工程專業(yè)_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1章引言 H(dB)0H(dB)0圖3.10帶通濾波器電壓增益與頻率的關(guān)系第三級選頻電路帶通濾波器的中心頻率:該中心頻率處的電壓增益:H=電路的品質(zhì)因數(shù):Q=第三級放大電路的帶通濾波器主要用于信號選頻,中心頻率,電路品質(zhì)因數(shù)Q=17.5。由圖3.11帶通濾波器電壓增益與頻率的關(guān)系可以看出Q=17.5時,曲線非常尖銳,通頻帶非常窄,電路的選擇性非常好。在本級電路中選擇精密度較高的470pf電容(圖中C23,C25)來提高中心頻率,從而達到信號選頻效果。3.5檢波電路本設(shè)計中檢波電路選用BAV99作為檢波二極管。BAV99是一種開關(guān)二極管,是半導(dǎo)體二極管的一種,由導(dǎo)通變?yōu)榻刂够蛴山刂棺優(yōu)閷?dǎo)通所需的時間比一般二極管短。內(nèi)部結(jié)構(gòu)如圖3.11所示。圖3.11BAV99內(nèi)部結(jié)構(gòu)圖本設(shè)計中檢波電路設(shè)計如圖3.12所示,其等效電路圖如圖3.13所示。圖中電容C27和電阻R20構(gòu)成低通濾波器。檢波原理是利用檢波二極管的單向?qū)щ娦裕瑢⒏哳l信號零電勢以下的負(fù)向部分截去,僅留下零電勢以上的正向信號部分,在低通濾波時,低通濾波器在每個信號周期取其平均值,所得到的調(diào)幅信號的波包(envelope)即為基帶低頻信號,從而實現(xiàn)了解調(diào)(即檢波)功能。圖3.12檢波電路+_+_+__++_+_+__+圖3.13檢波電路等效電路圖3.6顯示器電路本設(shè)計選用四位為一體的共陽極數(shù)碼管作為倒車?yán)走_的顯示器,如圖3.14所示。顯示器中間兩位為數(shù)字顯示,用于顯示障礙物的距離,兩邊的兩位數(shù)碼管為模擬顯示條,用于模擬障礙物的距離。具體顯示情況如下:模擬條顯示:1.6~2.5m:亮一排綠;1.0~1.5m:亮二排綠;0.9~1.0m:亮一排黃二排綠;0.7~0.8m:亮二排黃二排綠;0.5~0.6m:亮三排黃二排綠;0.4m:亮一排紅三排黃二排綠;0.3m:亮二排紅三排黃二排綠;0.0m:亮三排紅三排黃二排綠(即全亮)。數(shù)字顯示:0.3~2.5m:正常顯示數(shù)字;<0.3m:顯示0.0m;>2.5m:顯示2.6m。顯示器工作電流:20~200mA(與告警狀況有關(guān))。圖3.14數(shù)碼管顯示電路3.7報警電路本設(shè)計報警電路選用普通的蜂鳴器作為其報警核心器件,如圖3.15所示,可以根據(jù)報警頻率把測得的障礙物的距離分為四段,具體要求如下:報警聲:2.5m~1.6m:無提醒聲音;1.5~1.1m:Bi……Bi……聲音報警;1.0~0.4m:Bi…Bi…聲音報警;≤0.3m:Bi……長鳴;蜂鳴器工作電流:20~80mA。圖3.15報警電路3.8系統(tǒng)PCB設(shè)計與制作由于本設(shè)計中用到了40KHZ的高頻信號,所以電路PCB板設(shè)計的好壞直接關(guān)系到后期調(diào)試過程的順利與否。如果在設(shè)計過程中PCB板布局不好,可能會造成信號干擾,甚至?xí)闺娐窡o法工作。因此在做本設(shè)計時,嚴(yán)格按照印刷電路板制作流程,遵照布局操作的基本原則進行繪制電路PCB圖。繪制完成的系統(tǒng)PCB布局圖如圖3.16所示,布線圖如圖3.17所示。圖3.16PCB布局圖圖3.17PCB布線圖3.9本章總結(jié)本章根據(jù)系統(tǒng)總體的設(shè)計方案,分模塊詳細介紹了系統(tǒng)各部分硬件構(gòu)成。主要包括核心控制器電路設(shè)計、電源電路設(shè)計、超聲波發(fā)射與接收電路設(shè)計、信號放大與信號選頻電路設(shè)計、檢波電路設(shè)計、顯示電路設(shè)計以及報警電路設(shè)計,同時也介紹了系統(tǒng)PCB設(shè)計與制作。其中,本章重點介紹了信號放大與選頻電路的設(shè)計,信號放大與選頻電路處理的主要是模擬信號,它是本系統(tǒng)硬件電路設(shè)計的核心,信號放大與選頻電路設(shè)計的好壞直接關(guān)系到整個系統(tǒng)的工作情況。第4章系統(tǒng)軟件設(shè)計C語言具有使用方便、便于移植等優(yōu)點,所以本系統(tǒng)軟件程序采用C語言編寫。本設(shè)計中的程序主要包括測距程序、A/D轉(zhuǎn)換程序、LED顯示程序、蜂鳴器程序及系統(tǒng)工作狀態(tài)判斷程序,控制器調(diào)用每個模塊程序,完成系統(tǒng)功能。軟件系統(tǒng)主程序流程圖如圖4.1所示。圖4.1主程序流程圖4.1超聲波測距程序設(shè)計測距程序主要包括40KHZ波的發(fā)射和反射波的時間的計算。其中40KHZ波的發(fā)射必須用示波器觀察,確保發(fā)射波的頻率正確。反射波時間的計算,每一步都用定時器1精確計算好時間,在精確的時間段內(nèi)選取相應(yīng)的A/D轉(zhuǎn)換參考值進行比較才能夠確保讀數(shù)正確。為了能夠準(zhǔn)確判斷接收到超聲波的時刻,程序中采用AD轉(zhuǎn)換值與參考值進行比較。程序流程圖如圖4.2所示。圖4.2測距程序流程圖4.2顯示程序設(shè)計顯示器程序分為整數(shù)部分、小數(shù)部分和模擬顯示部分,三個部分的顯示程序均放在中斷函數(shù)里面并依次循環(huán)延時10ms。把顯示程序放到定時器2中,通過定時器中斷控制顯示程序,這樣不僅節(jié)省CPU內(nèi)部資源,提高系統(tǒng)反應(yīng)速度,還能夠避免因主程序過長而導(dǎo)致的系統(tǒng)數(shù)據(jù)顯示不穩(wěn)定的現(xiàn)象。程序清單4.2系統(tǒng)顯示程序/***************************************************函數(shù)名稱: timer2_isr()**函數(shù)功能:顯示器程序**入口參數(shù): 無**出口參數(shù):無**說明:把顯示程序放到中斷里面,節(jié)省CPU內(nèi)部資源 ***************************************************/#include"main.h"#include"display.h"#include"variable.h"constuchardiscode1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0X00,0X10,0Xff};//帶點constuchardiscode2[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0X80,0X90,0Xff};//不帶點constuchardiscode3[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//模擬顯示部分//#pragmainterrupt_handlerTimer2_isr:10voidTimer2_isr(void){TCNT2=0x00;//dfTIFR2=0X01; //count=0;if(TOV2==0) //定時器溢出{//Mcount++; TIFR2=0X01;}//Mif((count>0)&&(count<20))//10ms整數(shù)部分{ PORTD=discode1[data/10];PORTC=0x0e; }elseif((count>20)&&(count<40))//10ms小數(shù)部分 { PORTD=discode2[data%10]; PORTC=0x0d; } elseif((count>40)&&(count<60))//10ms模擬部分 { PORTD=discode3[Analog_num]; PORTC=0x03; } //else{PORTC=PORTC|0x0f;}//必須加else,否則不執(zhí)行 if(count==100)//50ms { count=0; //PORTC=0x0f; } if(count==0||count==20||(count>59))//關(guān)顯示20ms,降低電流 { PORTC=PORTC|0x0f;}}4.3蜂鳴器報警程序設(shè)計蜂鳴器報警程序主要分三個頻率段,即程序中的標(biāo)志位flag=1、flag=2和flag=3三個頻率段分別代表長鳴、急促鳴叫和緩慢鳴叫。同樣,把報警程序放入中斷里面,便于節(jié)省CPU內(nèi)部資源。同時在蜂鳴器鳴叫的過程中要關(guān)閉顯示器,這樣可以避免蜂鳴器鳴叫時候的大電流引起的顯示不穩(wěn)定。程序清單4.3系統(tǒng)報警程序/******************************************************函數(shù)名稱: Timer0_isr()**函數(shù)功能:Timer0控制蜂鳴器鳴叫頻率及鳴叫時間**入口參數(shù): 無**出口參數(shù):無**說明:把蜂鳴器程序放到中斷里面,節(jié)省CPU內(nèi)部資源*****************************************************/#include"main.h"#include"Timer0_isr.h"#include"variable.h"voidTimer0_isr(void){if(((flag==1)||(flag==2)||(flag==3))&&(Flag_stop1==0)&&(Flag_stop2==0)&&(Flag_stop3==0)){TCNT0=0xfb;if(TOV0==0){TIFR0=0X01;time0++; if(flag==1){time1++;time11++;time2=0;time3=0;} elseif(flag==2){time2++;time22++;time1=0;time3=0;} elseif(flag==3){time3++;time33++;time1=0;time2=0;} elseif(flag==0){time1=0;time2=0;time3=0;time11=0;time22=0;time33=0;} if(time1==15625){time1=0;Flag_stop1=1;}//10s后停止鳴叫 if(time2==7812){time2=0;Flag_stop2=1;}//5s后停止鳴叫 if(time3==6250){time3=0;Flag_stop3=1;}//4s后停止鳴叫} if(flag==1) { if(time11==1000)time11=0; if(time11<=980){Buzzer_on();Ceju_flag=1;}//627ms elseif(time11>980){Buzzer_off();} //13ms if(time11>990)Ceju_flag=0; } if(flag==2) { if(time22==782)time22=0; if(time22<=391){Buzzer_on();Ceju_flag=1;}//250ms elseif(time22>391){Buzzer_off();} //250ms if(time22>700)Ceju_flag=0; } if(flag==3) { if(time33==1563)time33=0; if(time33<=313){Buzzer_on();Ceju_flag=1;}//200ms elseif(time33>313){Buzzer_off();} //800ms if(time33>1000)Ceju_flag=0; }}else{Buzzer_off();Ceju_flag=0;}if(flag==0){Ceju_flag=0;}}由于系統(tǒng)程序很大,如果把所有的程序都放到一個源文件里,會給程序的調(diào)試查錯帶來很多不便。因此本系統(tǒng)程序采用模塊化編程,便于調(diào)試查錯、程序調(diào)用和程序移植。模塊化編程只需將編寫好的模塊程序放到*.c源文件里面,然后給它編寫一個*.h頭文件就行了,這樣便于以后調(diào)用。在后面編程的過程中要用到相應(yīng)的模塊程序時,只需把它的相應(yīng)頭文件包含進來就可以了,如“#include"main.h"”,本設(shè)計程序中主函數(shù)頭文件的編寫如程序清單4.4所示。程序清單4.4主函數(shù)頭文件main.h#ifndef_main_H#define_main_H#include<iom48v.h>#include<macros.h>#defineucharunsignedchar#defineuintunsignedintexternvoidmain(void);#defineBuzzer_on()PORTB=PORTB|0B00000010#defineBuzzer_off()PORTB=PORTB&0B11111101#pragmainterrupt_handlerTimer2_isr:10#pragmainterrupt_handlerTimer0_isr:17#endif4.4本章小結(jié)本章主要介紹了系統(tǒng)軟件設(shè)計的思想,確定好程序的設(shè)計思路之后再進行相應(yīng)程序的編寫,可以有效地避免程序出錯。同時在本章中附錄了部分主要程序清單,通過程序中的注釋可以幫助更好地理解程序的設(shè)計思想。第5章系統(tǒng)調(diào)試與結(jié)果分析為了使系統(tǒng)達到良好的性能參數(shù),必須進行系統(tǒng)調(diào)試。本系統(tǒng)的調(diào)試主要分為硬件調(diào)試、軟件調(diào)試和綜合調(diào)試。每個部分的調(diào)試有自己的特點和調(diào)試方法,但每個部分需要都是按模塊調(diào)試,然后再綜合調(diào)試,完成設(shè)計要求。5.1硬件調(diào)試硬件調(diào)試主要有穩(wěn)壓電源電路調(diào)試、超聲波發(fā)射與接收電路調(diào)試、信號放大與選頻電路調(diào)試和控制系統(tǒng)調(diào)試,每個部分單獨調(diào)試,從前往后逐級進行調(diào)試,觀察結(jié)果并記錄數(shù)據(jù),這樣便于排查錯誤、快速調(diào)試。硬件電路的調(diào)試主要是信號放大與選頻電路的調(diào)試。確保電路焊接無誤后,將40KHZ超聲波發(fā)射程序燒錄到單片機中,接上超聲波探頭,將障礙物放置在探頭前0.5m處,用示波器觀察放大電路輸出端的測試點Test處是否有反射波信號,若無反射波信號,則需用示波器觀察第一級放大電路輸出端是否有反射波信號,若仍無反射波信號,則需檢查第一級放大電路;若第一級放大電路輸出端有反射波信號,則用示波器觀察第二級放大電路輸出端是否有反射波信號,按此方法一級一級檢測直至放大電路最后一級出現(xiàn)反射波信號并正常放大為止。在本系統(tǒng)的調(diào)試過程中,由于焊接貼片電子元件時的疏忽和粗心,在信號放大電路中有兩個貼片電容焊接錯誤,導(dǎo)致整個電路不能放大信號,經(jīng)過反復(fù)思考和查詢大量資料后,在確保程序無誤的情況下,通過這種從前到后逐級檢測的方法檢查出了放大電路中出現(xiàn)故障的電子元器件。5.2軟件調(diào)試軟件系統(tǒng)的調(diào)試主要是測距模塊程序的調(diào)試,它是軟件調(diào)試中難度最大的模塊,關(guān)系到整個系統(tǒng)的工作狀況。測距模塊程序調(diào)試:將測距模塊程序燒錄到單片機中,接上超聲波探頭,在超聲波探頭0.5m處放置障礙物,用示波器觀察經(jīng)過信號放大后的測試點Test,觀察是否同時出現(xiàn)發(fā)射波和反射波(只要在上一節(jié)硬件電路調(diào)試中保證信號放大電路正常工作,就會有反射波。),若有反射波,則用示波器觀察測試點Test處被放大后的發(fā)射波波形,同時用防靜電螺絲刀調(diào)節(jié)中周,調(diào)節(jié)中周時發(fā)射波波形會出現(xiàn)“寬—窄—寬”的變化,反復(fù)調(diào)節(jié)直至發(fā)射波波形調(diào)至最窄。之后保持中周不變,調(diào)節(jié)第一級放大電路中三極管發(fā)射極電阻R35,反復(fù)調(diào)節(jié)直至發(fā)射波波形調(diào)至更窄。5.3綜合調(diào)試硬件電路調(diào)試完成以后,將軟件程序燒錄到單片機進行軟件調(diào)試。按照第5.2節(jié)軟件調(diào)試的步驟進行軟件綜合調(diào)試并觀察調(diào)試結(jié)果,反復(fù)修改程序、優(yōu)化程序,使系統(tǒng)真正滿足設(shè)計要求,并確保軟件程序和硬件電路的配合達到最優(yōu)狀態(tài),使系統(tǒng)測得的數(shù)據(jù)穩(wěn)定、準(zhǔn)確、精確。在調(diào)試的過程中用示波器觀察并記錄實際測量的障礙物距離與反射波電壓之間的關(guān)系如表5-1所示。根據(jù)這一關(guān)系表可以得出A/D轉(zhuǎn)換的參考值,便于優(yōu)化系統(tǒng)測量程序。表5-1:障礙物距離與反射波電壓關(guān)系表A0.30.40.50.60.70.80.91.01.11.21.31.4B4.324.304.284.264.244.224.204.184.164.104.084.06A1.51.61.71.81.92.02.12.22.32.42.52.6B3.983.943.883.843.803.783.703.623.543.423.323.28注:A代表:距離(m);B代表:反射波電壓(V)在室內(nèi)將超聲波探頭固定于0.8m高度處,用可移動的平面木板作為被測物進行距離測試,將平面板分別放置于距探頭0.3m、0.4m、0.5m、0.6m、2.4m、2.5m、2.6m處的相同高度,測得結(jié)果如表5-2所示。表5-2:測試距離與實際距離關(guān)系表實際距離(m)0.30.40.50.60.70.80.91.0測試距離(m)0.320.420.510.620.690.790.931.03實際距離(m)1.11.21.31.41.51.61.71.8測試距離(m)1.101.181.321.411.511.631.681.80實際距離(m)1.92.02.12.22.32.42.52.6測試距離(m)1.912.002.092.222.312.402.512.60由表測試結(jié)果可知,本設(shè)計作品的測試誤差為±0.05m,符合設(shè)計要求。5.4本章小結(jié)本章主要介紹了系統(tǒng)的調(diào)試方法,主要包括硬件調(diào)試、軟件調(diào)試和綜合調(diào)試。硬件電路的調(diào)試主要是為了確保電路正常工作,以及通過調(diào)試使電路工作達到最優(yōu)狀態(tài),從而為軟件程序的調(diào)試提供良好的運行環(huán)境。軟件調(diào)試是為了確保模塊程序的正確,從而減少綜合調(diào)試中的程序優(yōu)化時不必要的大幅度程序刪減操作,這樣在綜合調(diào)試中只需將模塊程序移植調(diào)用回來,然后簡單修改即可應(yīng)用。綜合調(diào)試是本章重點,它關(guān)系到系統(tǒng)軟硬件的配合問題以及系統(tǒng)的精度和穩(wěn)定性。在最終的系統(tǒng)優(yōu)化中,也是通過綜合調(diào)試一步步改進而實現(xiàn)的。第6章結(jié)束語本設(shè)計研究并做出了基于AVR單片機的汽車倒車防撞報警裝置實物樣品模型,該裝置實現(xiàn)了設(shè)計要求中基本的測距報警功能,能夠準(zhǔn)確實現(xiàn)2.5m以內(nèi)的測距報警,設(shè)計的測量精度為0.1m。系統(tǒng)設(shè)計包括單片機控制系統(tǒng)的設(shè)計、發(fā)射電路的設(shè)計、接收電路的設(shè)計、模擬信號放大電路的設(shè)計、信號選頻電路的設(shè)計、檢波電路的設(shè)計、顯示電路和報警電路的設(shè)計。在本設(shè)計中主要研究了模擬信號的處理,如信號放大和信號選頻電路的設(shè)計。在模擬信號放大與信號選頻電路的設(shè)計中,受電視機紅外遙控接收器專用芯片CX20106的影響,在芯片選型之初選擇了CX20106,該芯片輸出是一個數(shù)字信號,使用非常方便,但是由于該芯片把信號放大和信號選頻集成在一起,使得信號選頻有一定的局限性,比如接收信號的頻率由芯片生產(chǎn)廠商確定,出廠后的頻率不可調(diào),必須使用其固定的38KHZ頻率的信號。而本設(shè)計所發(fā)射和接收的信號可能會隨測量距離的變化而產(chǎn)生微小變化,所有本設(shè)計選用數(shù)字處理芯片不太合適。最后經(jīng)過多方考慮,最終確定了使用通用的運放構(gòu)成模擬的信號放大與信號選頻電路。選用模擬電路對信號進行放大與選頻,具有通用性強、適應(yīng)能力強、穩(wěn)定性高、安全可靠的特點。在本設(shè)計中還存在一些不足之處,這些不足之處也將是以后進一步深入研究的重點。本設(shè)計采用收發(fā)為一體的超聲波探頭,這樣節(jié)省了材料,但是在信號處理的過程中,為了防止發(fā)射信號直接進入接收回路進行放大的影響,必須在程序中進行延時直至發(fā)射信號余波振蕩停止后才能進行數(shù)據(jù)處理,這樣就降低了近距離的測量精度。在以后的研究中,可以考慮在硬件接收電路上進行優(yōu)化,使信號發(fā)射完畢之后馬上消除余震,這樣就可以提高近距離的測量精度。另外,本設(shè)計只是一個樣品裝置,設(shè)計中只用了一個超聲波探頭,其檢測的寬度范圍有限,如需應(yīng)用到實際生活中,應(yīng)增加探頭數(shù)量至少為4個探頭檢測,才能確保汽車尾部信息完全被檢測到。參考文獻牛

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論