51系列單片機為許多控制提供了高度靈活和低成本的解決辦法。充分利用他的片內資源,即可在較少外圍電路的情況下構成功能完善的超聲波測距系統。 1單片機實現測距原理 單片機發出超聲波測距是通過不斷檢測超聲波發射后遇到障礙物所反射的回波,從而測出發射和接收回波的時間差tr,然后求出距離S=Ct/2,式中的C為超聲波波速。 限制該系統的最大可測距離存在4個因素:超聲波的幅度、反射的質地、反射和入射聲波之間的夾角以及接收換能器的靈敏度。接收換能器對聲波脈沖的直接接收能力將決定最小的可測距離。為了增加所測量的覆蓋范圍、減小測量誤差,可采用多個超聲波換能器分別作為多路超聲波發射/接收的設計方法。由于超聲波屬于聲波范圍,其波速C與溫度有關,表1。列出了幾種不同溫度下的波速。 在測距時由于溫度變化,可通過溫度傳感器自動探測環境溫度、確定計算距離時的波速C,較精確地得出該環境下超聲波經過的路程,提高了測量精確度。波速確定后,只要測得超聲波往返的時間r,即可求得距離5。其系統原理框圖如圖2所示。 單片機(AT89C51)發出短暫的40kHz信號,經放大后通過超聲波換能器輸出;反射后的超聲波經超聲波換能器作為系統的輸入,鎖相環對此信號鎖定,產生鎖定信號啟動單片機中斷程序,得出時間t,再由系統軟件對其進行計算、判別后,相應的計算結果被送至LED顯示電路進行顯示,若測得的距離超出設定范圍系統將提示聲音報警電路報警。 AT89C51通過外部引腳P2.0輸出脈沖寬度為25/us、載波為40kHz的超聲波脈沖串,加到射隨器的基級,經功率放大推動超聲波發射器發射出去。超聲波接收器將接收到的反射超聲波送到放大器進行放大,然后用鎖相環電路進行檢波。經處理后輸出低電平,送到AT89C51的引腳。 利用該原理設計的實例:汽車防撞雷達 2 系統硬件設計 汽車防撞雷達可以幫助駕駛員及時了解車周圍阻礙情況,防止汽車在轉彎、倒車等情況下撞傷、劃傷。其接收部分硬件電路如圖3所示,發射、預置\控制、顯示部分硬件電路如圖4所示。 sP3.2,提供給軟件進行處理。經過AT89C51對接收到的信息進行處理后,被測的距離茬LED上顯示,顯示的數據由串口線RXD和TXD輸出到74LSl64,轉化為并行數據控制LED的顯示,采用動態顯示。兩位LED可表示4.9~0.1 m的距離,滿足顯示精度;若該距離小于預置的汽車低速安全剎車范圍(如:1 n)或0.5m),報警電路發出適當的警告提示音,由P2.1的輸出控制報警電路的工作。 3 系統軟件設計 汽車防撞雷達根據超聲測距原理用AT89C51單片機開發設計。整個軟件采用模塊化設計,由主程序、預置子程序、發射子程序、接收子程序、顯示子程序等模塊組成。 軟件設計的主要思路是將預置、發射、接收、顯示、聲音報警等功能編成獨立的模塊,在主程序中采用鍵控循環的方式,當按下控制鍵后,在一定周期內,依次執行各個模塊,調用預置子程序、發射子程序、查詢接收子程序、定時子程序,并把測量的結果進行分析處理,根據處理結果決定顯示程序的內容以及是否調用聲音報警程序。當測得距離小于預置距離時,聲音報警程序被調用。圖5所示為程序的流程圖。 4 結 語 利用51系列單片機設計的測距儀便于操作、讀數直觀。經實際測試證明,該類測距儀工作穩定,能滿足一般近距離測距的要求,且成本較低、有良好的性價比。由于該系統中鎖相環鎖定需要一定時間,測得的距離有誤差,在汽車雷達應用中此誤差為3C111可忽略不計;但在精度要求較高的工業領域如機器人自動測距等方面,此誤差不能忽略,只有通過改變--些硬件的應用實現對超聲波的快速鎖定,使誤差進一步減小到0.31llnl,可以滿足更高要求。 |