基于單片機的倒車?yán)走_設(shè)計
摘要:在此設(shè)計了一種基于單片機的倒車?yán)走_系統(tǒng),該系統(tǒng)采用超聲波傳感器將40 kHz的機械波發(fā)射到空氣中,經(jīng)障礙物反射后被超聲波傳感器接收,對接收后的信號進行放大,并對其進行信號處理。最后將處理后的信號輸入到單片機中,通過單片機的顯示器輸出距離,并比較輸出距離與1 m,0.5 m的關(guān)系,分別發(fā)出不同的警報,即通過單片機及其外圍部件測量車和障礙物間的距離,最終實現(xiàn)引導(dǎo)駕駛員倒車的功能。經(jīng)測試,該系統(tǒng)具有精確度高,成本低等優(yōu)點。
關(guān)鍵詞:超聲波;STC89c51;報警系統(tǒng);倒車
0 引言
超聲波是一種在彈性介質(zhì)中的機械震蕩,由于其指向性強、能量消耗緩慢、傳播距離較遠等到優(yōu)點,經(jīng)常用于測量距離。本課題研究超聲波在空氣中傳播速度為340 m/s,運用超聲波進行距離的檢測,誤差小,成本也低,具有實用性等優(yōu)點。
1 硬件設(shè)計
本文設(shè)計的倒車?yán)走_系統(tǒng)原圖如圖1所示。
硬件主要有超聲波發(fā)射和接收電路,單片機處理電路,顯示電路和警報電路。
1.1 超聲波發(fā)射電路
通過單片機產(chǎn)生40 kHz的脈沖,經(jīng)過三級放大器后傳遞給超聲波發(fā)射傳感器,超聲波發(fā)射傳感器采用CSB40T,傳感器將接收到的脈沖信號經(jīng)過內(nèi)部振蕩器轉(zhuǎn)化為機械波在空氣中傳播。超聲波是指頻率高于20 kHz的機械波。發(fā)射和接收超聲波的裝置叫作超聲波傳感器。超聲波傳感器利用壓電效應(yīng)將電能和超聲波進行轉(zhuǎn)化,發(fā)射超聲波時轉(zhuǎn)化電能,接收超聲波時,將振動的超聲波轉(zhuǎn)化為電信號。
單片機P1.0產(chǎn)生40 kHz的脈沖,脈沖寬度為12.5μs,把脈沖波傳出的同時打開To計時器,計算超聲波在空氣中的時間。通過定時器1產(chǎn)生40 kHz的脈沖,用示波器測來決定定時器的初始值。脈沖經(jīng)由74HC04放大后傳給CSB40T傳感器,74HC04具有對稱的傳輸延遲和轉(zhuǎn)換時間,是一個高速CMOS六反相器,CSB40T就把超聲波發(fā)射出去。
1.2 超聲波接收電路
超聲波以機械波的形式傳播,而單片機只能處理脈沖波,所以超聲波經(jīng)過接收傳感器后既要通過放大又要經(jīng)過整流。超聲波接收電路包括超聲波傳感器,放大器,濾波整形等電路。
空氣中的超聲波能量低所以要經(jīng)過放大后才不會被噪聲淹沒,所以放大器增益要夠大并且增益可調(diào),而超聲波接收傳感器型號要與發(fā)射探頭一致,這樣會選擇性的接收40 kHz機械波,從而濾除其他頻率的噪聲。整形電路就是將接收到的機械波通過比較器轉(zhuǎn)化為單片機可接受的脈沖波,用脈沖波的第一個上升沿去接D觸發(fā)器的時鐘,這樣就可以將觸發(fā)器的Q的非接單片機的外部中斷,外部中斷設(shè)置為下降沿觸發(fā),這樣就把車與障礙物之間的傳播時間測出來了。放大器采用通用的LM324,每一級放大倍數(shù)為10,比較器采用LM393。LM324系列器件為價格便宜的帶有真差動輸入的四運算放大器,采用2個內(nèi)部補償,二級運算放大器,第一級不僅完成增益功能,還完成電平移動和減小跨導(dǎo)的功能。而且,單電源模式下無論是輸入器件還是差動到單端變換器都不會飽和,第二級含標(biāo)準(zhǔn)電流源負(fù)載放大器級。圖2為一級放大器。
LM393是由2個獨立的高精度電壓比較器的集成電路,失調(diào)電壓低,無論電源大小,電源消耗的電流都很低,即使是單電源供電,比較器的共模輸入電壓范圍接近地電平。它具有的獨特的優(yōu)點是,雙電源供電時,它能兼容CMOS邏輯電路。具有成本低優(yōu)點。本文采用方案一。圖3為比較整流器。
1.3 報警電路
采用常用的蜂鳴器,如果計算出的距離小于1 m大于0.5 m時,蜂鳴器間斷性的發(fā)出滴滴聲,當(dāng)距離小于0.5 m時,蜂鳴器連續(xù)的響,以提示駕駛員倒車時注意間距。也可以采用自動語音電路,但如果僅僅起到報警功能的話,有不同的警報聲就可以了。該方案不僅可以達到預(yù)想功能,還有電路簡單、成本低、易編程等優(yōu)點。
1.4 顯示電路
使用2個數(shù)碼管,當(dāng)距離在0.5 m和1 m之間時顯示11,距離小于0.5 m時顯示00。數(shù)碼管簡單實用,編程簡單,成本低。數(shù)碼管位選接在P2.0和。P2.1口,段選接在P0.0~P0.7口。使用上拉電阻驅(qū)動。選用共陰極。本文采用方案一。
1.5 單片機介紹
STC89C51有4組8位的并行I/O口,RAM為128 B,4 KB的FLASH,片內(nèi)程序存儲器外部可擴展到64 KB。1個全雙工的串行口。5個中斷源,(順序分別為:外部中斷0,外部中斷1,定時器0,定時器1,串行中斷),2個中斷優(yōu)先級,2個16位的定時/計數(shù)器(有4種工作方式)。本文使用外部中斷零和定時器0和1。定時器1中斷時P1.0口就反相,結(jié)果輸出所需的脈沖。定時器0用來記錄脈沖發(fā)射到脈沖接收到的時間。單片機不斷檢測外部中斷0,一有中斷即表示已接收超聲波。定時器有4種工作方式,本文采用方式2,即M1,M0為10。定時器為自動恢復(fù)初值的8位定時器。即當(dāng)TLx計數(shù)溢出時,在溢出標(biāo)志TFx置1的同時,還自動將THx中的初值送至TLx,使TLX從初值開始重新計數(shù)。并且當(dāng)有溢出標(biāo)志置1時,定時器就進入中斷。定時器1進入中斷后,P1.0反轉(zhuǎn),定時器0進入中斷后,時間加一周期。單片機晶振為11.1592 MHz,一個指令周期約為1μs,40 MHz的脈沖一周期為25μs。所以通過設(shè)置定時器的初值用示波器測出產(chǎn)生的脈沖周期。
2 軟件設(shè)計
軟件設(shè)計模塊化,由超聲波發(fā)射子程序、超聲波接收子程序、數(shù)碼管顯示子程序、警告子程序、距離計算子程序及主程序組成。算法框圖如圖4所示。C語言具有移植性好等優(yōu)點。本文采用C語言編程,Keil軟件編譯,Protues或Prote199se畫圖。先初始化,定義位聲明等,發(fā)射超聲波時打開定時器,檢測到超聲波時先關(guān)閉定時器,關(guān)閉中斷以防止嵌入中斷下擾,調(diào)用距離測量子程序,若距離在危險距離時顯示系統(tǒng)就工作并且打開警報系統(tǒng),然后讓中斷恢復(fù)。
3 系統(tǒng)仿真過程
(1)單片機產(chǎn)生40 kHz脈沖產(chǎn)生了周期為25μs左右的脈沖波。單片機產(chǎn)生40 kHz的方波如圖5所示。
(2)接收的波經(jīng)過比較器后為脈沖波,最終單片機要接收的信號如圖6所示。
4 結(jié)語
本文使用超聲波的速度為340 m/s,超聲波傳播的速度與溫度有關(guān),本文沒有用溫度傳感器實時的測量空氣溫度;超聲波發(fā)射時會留有余波,所以在超聲波發(fā)射的同時就打開定時器記錄時間可能會受余波的影響,會導(dǎo)致計算距離誤差。
該系統(tǒng)是基于8051單片機,利用超聲波進行距離檢測的設(shè)計,通過超聲波在空氣中的傳播速度和所用時間測出車與障礙物間的距離,當(dāng)車與障礙物之間的距離小于一定值時警報系統(tǒng)就會自動啟動,而且不同距離的警報聲是不同的。警報響的同時數(shù)碼管顯示大致的距離,提示駕駛員倒車注意,預(yù)防可能出現(xiàn)的摩擦或碰撞,減小可能存在的倒車隱患。該設(shè)計具有精確度高,成本低等優(yōu)點。
評論