51單片機(jī)設(shè)計(jì)測距儀原理及其應(yīng)用
5l系列單片機(jī)中典型芯片(AT89C51)采用40引腳雙列直插封裝(DIP)形式,內(nèi)部由CPU,4kB的ROM,256 B的RAM,2個(gè)16b的定時(shí)/計(jì)數(shù)器TO和T1,4個(gè)8 b的工/O端I:IP0,P1,P2,P3,一個(gè)全雙功串行通信口等組成。特別是該系列單片機(jī)片內(nèi)的Flash可編程、可擦除只讀存儲(chǔ)器(E~PROM),使其在實(shí)際中有著十分廣泛的用途,在便攜式、省電及特殊信息保存的儀器和系統(tǒng)中更為有用。該系列單片機(jī)引腳與封裝如圖1所示。
5l系列 單片機(jī) 提供以下功能:4 kB存儲(chǔ)器;256 BRAM;32條工/O線;2個(gè)16b定時(shí)/計(jì)數(shù)器;5個(gè)2級中斷源;1個(gè)全雙向的串行口以及時(shí)鐘電路。
空閑方式:CPU停止工作,而讓RAM、定時(shí)/計(jì)數(shù)器、串行口和中斷系統(tǒng)繼續(xù)工作。
掉電方式:保存RAM的內(nèi)容,振蕩器停振,禁止芯片所有的其他功能直到下一次硬件復(fù)位。
5l系列 單片機(jī) 為許多控制提供了高度靈活和低成本的解決辦法。充分利用他的片內(nèi)資源,即可在較少外圍電路的情況下構(gòu)成功能完善的超聲波測距系統(tǒng)。
2 單片機(jī) 實(shí)現(xiàn)測距原理
單片機(jī) 發(fā)出超聲波測距是通過不斷檢測超聲波發(fā)射后遇到障礙物所反射的回波,從而測出發(fā)射和接收回波的時(shí)間差tr,然后求出距離S=Ct/2,式中的C為超聲波波速。
限制該系統(tǒng)的最大可測距離存在4個(gè)因素:超聲波的幅度、反射的質(zhì)地、反射和入射聲波之間的夾角以及接收換能器的靈敏度。接收換能器對聲波脈沖的直接接收能力將決定最小的可測距離。為了增加所測量的覆蓋范圍、減小測量誤差,可采用多個(gè)超聲波換能器分別作為多路超聲波發(fā)射/接收的設(shè)計(jì)方法。由于超聲波屬于聲波范圍,其波速C與溫度有關(guān),表1。列出了幾種不同溫度下的波速。
在測距時(shí)由于溫度變化,可通過溫度傳感器自動(dòng)探測環(huán)境溫度、確定計(jì)算距離時(shí)的波速C,較精確地得出該環(huán)境下超聲波經(jīng)過的路程,提高了測量精確度。波速確定后,只要測得超聲波往返的時(shí)間r,即可求得距離5。其系統(tǒng)原理框圖如圖2所示。
單片機(jī) (AT89C51)發(fā)出短暫的40kHz信號,經(jīng)放大后通過超聲波換能器輸出;反射后的超聲波經(jīng)超聲波換能器作為系統(tǒng)的輸入,鎖相環(huán)對此信號鎖定,產(chǎn)生鎖定信號啟動(dòng)單片機(jī)中斷程序,得出時(shí)間t,再由系統(tǒng)軟件對其進(jìn)行計(jì)算、判別后,相應(yīng)的計(jì)算結(jié)果被送至LED顯示電路進(jìn)行顯示,若測得的距離超出設(shè)定范圍系統(tǒng)將提示聲音報(bào)警電路報(bào)警。
AT89C51通過外部引腳P2.0輸出脈沖寬度為25/us、載波為40kHz的超聲波脈沖串,加到射隨器的基級,經(jīng)功率放大推動(dòng)超聲波發(fā)射器發(fā)射出去。超聲波接收器將接收到的反射超聲波送到放大器進(jìn)行放大,然后用鎖相環(huán)電路進(jìn)行檢波。經(jīng)處理后輸出低電平,送到AT89C51的引腳利用該原理設(shè)計(jì)的實(shí)例:汽車防撞雷達(dá)
3.1 系統(tǒng)硬件設(shè)計(jì)
汽車防撞雷達(dá)可以幫助駕駛員及時(shí)了解車周圍阻礙情況,防止汽車在轉(zhuǎn)彎、倒車等情況下撞傷、劃傷。其接收部分硬件電路如圖3所示,發(fā)射、預(yù)置\控制、顯示部分硬件電路如圖4所示。
sP3.2,提供給軟件進(jìn)行處理。經(jīng)過AT89C51對接收到的信息進(jìn)行處理后,被測的距離茬LED上顯示,顯示的數(shù)據(jù)由串口線RXD和TXD輸出到74LSl64,轉(zhuǎn)化為并行數(shù)據(jù)控制LED的顯示,采用動(dòng)態(tài)顯示。兩位LED可表示4.9~0.1 m的距離,滿足顯示精度;若該距離小于預(yù)置的汽車低速安全剎車范圍(如:1 n)或0.5m),報(bào)警電路發(fā)出適當(dāng)?shù)木嫣崾疽簦蒔2.1的輸出控制報(bào)警電路的工作。
3.2 系統(tǒng)軟件設(shè)計(jì)
汽車防撞雷達(dá)根據(jù)超聲測距原理用AT89C51 單片機(jī) 開發(fā)設(shè)計(jì)。整個(gè)軟件采用模塊化設(shè)計(jì),由主程序、預(yù)置子程序、發(fā)射子程序、接收子程序、顯示子程序等模塊組成。
軟件設(shè)計(jì)的主要思路是將預(yù)置、發(fā)射、接收、顯示、聲音報(bào)警等功能編成獨(dú)立的模塊,在主程序中采用鍵控循環(huán)的方式,當(dāng)按下控制鍵后,在一定周期內(nèi),依次執(zhí)行各個(gè)模塊,調(diào)用預(yù)置子程序、發(fā)射子程序、查詢接收子程序、定時(shí)子程序,并把測量的結(jié)果進(jìn)行分析處理,根據(jù)處理結(jié)果決定顯示程序的內(nèi)容以及是否調(diào)用聲音報(bào)警程序。當(dāng)測得距離小于預(yù)置距離時(shí),聲音報(bào)警程序被調(diào)用。圖5所示為程序的流程圖。
4 結(jié) 語
利用51系列 單片機(jī) 設(shè)計(jì)的測距儀便于操作、讀數(shù)直觀。經(jīng)實(shí)際測試證明,該類測距儀工作穩(wěn)定,能滿足一般近距離測距的要求,且成本較低、有良好的性價(jià)比。由于該系統(tǒng)中鎖相環(huán)鎖定需要一定時(shí)間,測得的距離有誤差,在汽車?yán)走_(dá)應(yīng)用中此誤差為3C111可忽略不計(jì);但在精度要求較高的工業(yè)領(lǐng)域如機(jī)器人自動(dòng)測距等方面,此誤差不能忽略,只有通過改變--些硬件的應(yīng)用實(shí)現(xiàn)對超聲波的快速鎖定,使誤差進(jìn)一步減小到0.31llnl,可以滿足更高要求。