管清望
摘 要: 隨著社會(huì)的經(jīng)濟(jì)發(fā)展,國(guó)民經(jīng)濟(jì)的上升,越來越多的汽車走進(jìn)每個(gè)家庭。各種交通狀況也隨之出現(xiàn),倒車撞車事件也時(shí)有發(fā)生,因此人們?cè)谙硎荛_車帶來的方便快捷的同時(shí)也提高了安全意識(shí),各種傳感器開發(fā)和利用,倒車?yán)走_(dá)系統(tǒng)應(yīng)運(yùn)而生。
關(guān)鍵詞: 倒車?yán)走_(dá);超聲波;單片機(jī)
本系統(tǒng)設(shè)計(jì)主要針對(duì)倒車時(shí)司機(jī)看不到車后物體和盲區(qū)問題而設(shè)計(jì),其具有成本低,精度高,實(shí)用性強(qiáng)等特點(diǎn)。
一、設(shè)計(jì)方案論證:
方案一:基于ARM的超聲波測(cè)距系統(tǒng)的設(shè)計(jì),以S3C2410ARM芯片為核心,通過對(duì)芯片進(jìn)行編程,實(shí)現(xiàn)該芯片對(duì)其外圍硬件電路的實(shí)時(shí)控制,并提供給外圍電路所需要的各種信號(hào),極大降低了外圍電路的設(shè)計(jì)難度,同時(shí)更重要的是這種設(shè)計(jì)方案大大節(jié)省了設(shè)計(jì)成本,并且操作簡(jiǎn)單使用方便,測(cè)量速度快、準(zhǔn)確,結(jié)果顯示直觀;儀器依靠電池供電,設(shè)有低功耗模式 ;體積小,攜帶方便。但是ARM芯片貴,設(shè)計(jì)成本高,因此一般不采用。
方案二:采用CPLD來控制的超聲波測(cè)距儀,主要是在軟件上運(yùn)用VHDL編寫程序使用 MAX+PlusⅡ軟件進(jìn)行軟硬件設(shè)計(jì)的仿真和調(diào)試,最終實(shí)現(xiàn)測(cè)距功能。但是CPLD芯片價(jià)格高,編程復(fù)雜,因此不采用。
方案三:采用單片機(jī)控制的超聲波測(cè)距系統(tǒng),先由單片機(jī)產(chǎn)生一個(gè)信號(hào),經(jīng)過信號(hào)線,把信號(hào)引入到與超聲波發(fā)射電路相連的信號(hào)引腳上,用靜態(tài)時(shí)鐘方式,可以節(jié)省電能;編譯語言可以用C語言來實(shí)現(xiàn),較為簡(jiǎn)單。因此選用方案三。
二、倒車?yán)走_(dá)系統(tǒng)總體方案設(shè)計(jì)。
硬件上采用單片機(jī)來控制的超聲波測(cè)距儀,利用其在空氣中的傳播速度及遇到障礙物反射回來的時(shí)間差計(jì)算發(fā)射點(diǎn)到障礙物的實(shí)際距離。微處理器主要使用STC89C52RC芯片。具有引腳功能和STC89C52RC標(biāo)準(zhǔn)功能。此芯片具有8K字節(jié)flash,256字節(jié)RAM,32位I/0口線,看門狗定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器。電路上有復(fù)位電路和時(shí)鐘電路。復(fù)位電路中單片機(jī)在RESET端加一個(gè)大于20ms正脈沖即可實(shí)現(xiàn)復(fù)位。在系統(tǒng)上電的瞬間,RST與電源電壓同電位,隨著電容的電壓逐漸上升,RST電位下降,于是在RST形成一個(gè)正脈沖。時(shí)鐘電路中每個(gè)單片機(jī)系統(tǒng)里都有晶振,全程是叫晶體震蕩器,在單片機(jī)系統(tǒng)里晶振的作用非常大,它結(jié)合單片機(jī)內(nèi)部的電路,產(chǎn)生單片機(jī)所必須的時(shí)鐘頻率。被設(shè)計(jì)使用HC-SR04超聲波模塊,測(cè)距模塊可提供2cm-400cm的非接觸式距離感測(cè)功能,模塊包括超聲波發(fā)射器、接收器和控制電路。超聲波模塊時(shí)序?yàn)橐粋€(gè)10uS以上脈沖觸發(fā)信號(hào),該模塊內(nèi)部將發(fā)出8個(gè)40kHz周期電平同時(shí)檢測(cè)回波。一旦檢測(cè)有回波信號(hào),則輸出回響信號(hào),此信號(hào)的脈沖寬度與所測(cè)的距離成正比。由此通過發(fā)射信號(hào)到收到的回響信號(hào)時(shí)間間隔可以計(jì)算得到距離。
1、液晶顯示模塊。
1602液晶也叫1602字符型液晶,它是一種專門用來顯示數(shù)字、字母、符號(hào)等的點(diǎn)陣型液晶模塊,它由若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,起到了字符間距和行間距的作用。1602LCD分為帶背光和不帶背光量增加on個(gè),基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無差別。1602液晶顯示模塊的讀操作、寫操作、屏幕和光標(biāo)之間的操作都是通過指令編程來控制實(shí)現(xiàn)的。分為11個(gè)指令。第一個(gè)為清指示,當(dāng)指令碼為0x01,則光標(biāo)會(huì)復(fù)位到地址00H位置開始。第二個(gè)為光標(biāo)復(fù)位,光標(biāo)重新返回到地址00H,液晶光標(biāo)和顯示模式的設(shè)置,I/D為光標(biāo)移動(dòng)方向,高電平表示光標(biāo)右移,低電平表示光標(biāo)左移,S表示液晶屏幕上的文字是否全部左移或者全部右移;第三個(gè)高電平為設(shè)置有效,低電平為設(shè)置無效;第四個(gè)為液晶顯示的開關(guān)控制,D為控制整體顯示開關(guān),高電平為開顯示,低電平為關(guān)顯示,C為控制光標(biāo)開關(guān),高電平為有光標(biāo),低電平為無光標(biāo),B為控制光標(biāo)是否要閃爍,高電平表示閃爍,低電平表示不閃爍;第五個(gè)為液晶光標(biāo)或顯示的移位,當(dāng)S/C為高電平時(shí)移動(dòng)要顯示的文字,低電平時(shí)則移動(dòng)光標(biāo);第六個(gè)是液晶功能設(shè)置命令,當(dāng)DL為高電平時(shí)表示4位總線,低電平時(shí)表示8位總線,N為低電平時(shí)表示為單行顯示,高電平時(shí)表示為雙行顯示,當(dāng)F為低電平時(shí)液晶顯示5x7的點(diǎn)陣字符,高電平時(shí)則顯示5x10的點(diǎn)陣字符;第七個(gè)為字符發(fā)生器RAM地址設(shè)置;第八個(gè)為有關(guān)DDRAM地址的設(shè)置;第九個(gè)為忙信號(hào)和光標(biāo)地址,BF為忙信號(hào)標(biāo)志位,高電平為忙,此時(shí)模塊則不能夠接受微處理器交互的命令或者數(shù)據(jù),低電平為不忙。第十個(gè)為寫數(shù)據(jù);第十一個(gè)則是接收數(shù)據(jù)。
2、電源電路原理。
由于單片機(jī)供電為5V,所以在輸入220V的交流電需要使用變壓器產(chǎn)生的12V電壓穩(wěn)壓到5V的直流。本系統(tǒng)采用78L05模塊進(jìn)行穩(wěn)壓,電源電路輸入為220V交流電,經(jīng)過全橋整流,穩(wěn)壓后輸入穩(wěn)定的5V直流電。變壓器輸出端的9V電壓經(jīng)過橋式整流并電容C5濾波,然后電容C4整流,在電容C4兩端大約會(huì)有11V多一點(diǎn)的電壓,若從電容兩端直接接一個(gè)負(fù)載,當(dāng)負(fù)載有少量的電流或電壓變化,都會(huì)使C4兩端電壓有大幅變化,因此要得到一個(gè)穩(wěn)定的電壓,要接一個(gè)三端穩(wěn)壓器元器件78L05。其是一個(gè)集成的電路元件,內(nèi)部有三極管和電阻組成,可以簡(jiǎn)單的把這個(gè)堪稱為自動(dòng)調(diào)節(jié)的電阻元件,后邊接濾波電容C7和整波電容C6,這樣就能輸出穩(wěn)定的5V直流電源。還有一個(gè)整體電路,根據(jù)前面設(shè)計(jì)的各個(gè)相關(guān)模塊分別的講述,在結(jié)合單片機(jī)的引腳功能,組成整體電路。
3、倒車?yán)走_(dá)系統(tǒng)軟件實(shí)現(xiàn)。
本設(shè)計(jì)采用的是模塊化的思路來進(jìn)行設(shè)計(jì)和編寫程序,程序主要由系統(tǒng)主程序和中斷程序構(gòu)成。主程序完成單片機(jī)的初始化,超聲波的發(fā)射和接受、計(jì)算超聲波發(fā)射點(diǎn)與障礙物之間的距離、液晶顯示和蜂鳴報(bào)警等。系統(tǒng)程序設(shè)計(jì)的主要的功能是發(fā)射超聲波,接收超聲波、計(jì)算距離、數(shù)據(jù)計(jì)算、蜂鳴器報(bào)警和液晶顯示。主程序非常重要,首先對(duì)單片機(jī)和液晶初始化,然后超聲波實(shí)時(shí)測(cè)數(shù)據(jù)發(fā)送給單片機(jī)進(jìn)行計(jì)算和處理。中斷程序需要首先中斷初始化,然后超聲波發(fā)送接受數(shù)據(jù)給單片機(jī)驚醒計(jì)算,判斷是否到報(bào)警的闕值,到了就報(bào)警,不到就循環(huán)。液晶驅(qū)動(dòng)程序要寫指令,對(duì)液晶進(jìn)行初始化設(shè)置,還要進(jìn)行讀數(shù)據(jù)操作和寫數(shù)據(jù)操作,這樣才能使液晶進(jìn)行顯示。報(bào)警程序需要循環(huán)判斷車與障礙物的距離是否到了程序舍得闕值,若到了就報(bào)警,不到就不報(bào)警。