汪揚埔
摘 要 本設計采用51單片機來控制整個系統。通過單片機控制步進電機從而控制超聲波探頭進行多個方向的測距,然后通過單片機計算出容積。最后通過顯示屏顯示出相應的數據。
關鍵詞 AT89C52 超聲波 步進電機 測距
中圖分類號:TP873 文獻標識碼:A
整個硬件電路由超聲波發射電路、超聲波接收電路、電源電路、顯示電路等模塊組成。探頭的信號經單片機綜合分析處理,實現了超聲波測距儀的測距功能。在此基礎上設計了系統的總體方案,最后通過硬件和軟件實現了各個功能模塊。相關部分附有硬件電路圖、程序流程圖,給出了系統構成、電路原理及程序設計。此系統具有易控制、工作可靠、測距準確度高、可讀性強和流程清晰等優點。實現后的作品可用于需要測量容積參數的各種應用場合。
1系統的硬件設計
1.1單片機最小系統
本系統采用的單片機是AT89C52單片機。這一款單片機的工作性能非常穩定,能夠完全滿足本設計的要求。很好的兼容了本設計的各個硬件模塊,使各個模塊能夠協同工作,實現本設計的要求。
1.2電源電路
為方便起見,本設計采用的是5v穩壓電源供電,通過數據線輸入+5V穩恒直流電作為電路的電源。LED是電源指示燈,通電后會發光。
1.3復位電路
復位功能是一個好的設計必不可少的功能,由于在系統運行的過程中,容易發生死機,系統命令出錯等現象。我們通過復位按鍵就能夠使系統立刻終止正在進行的指令并且恢復到最初始的工作狀態。本設計采用的是傳統的電平式開關與上電復位電路,從而能使運行中的系統經過手動干預使系統恢復到初始工作狀態。
1.4顯示電路
顯示電路時一個設計的最直觀的部分,本設計的采用顯示屏是TC1602液晶顯示屏。該顯示屏能夠顯示2行16個字的內容。該液晶顯示的體積小、重量輕、功耗低、顯示容量大、接入電路簡單方便等優點,與傳統的數碼管相比顯得更精致與美觀。使用時,可將串口與LCD的數據線和控制線相連。 TC1602第4腳RS為寄存器選擇,第5腳RW為讀寫信號線,第6腳E為使能端。第7~14腳:D0~D7為8位雙向數據線。我為了方便布線工作,單片機端的D0~D7端口接到LCD1602的D1~D7,端口的順序剛好完全是相反的。因此在軟件編寫過程中時需要進行相應的處理,從而使讀取數據更準確清晰。
1.5步進電機電路
本系統采用步進電機來控制超聲波探頭的旋轉,使超聲波探頭自動測出三個方向的距離。本設計采用的是42步進電機42BY250C,工作電壓為5v扭矩為0.55nm長度為48MM,工作溫度為-40℃到50℃范圍內。該步進電機的工作能力非常好,符合本設計的要求。我們通過單片機對于步進電機的控制,使得超聲波探頭在水平和垂直的方向上能夠準確的測量出距離。
2系統的軟件設計
2.1超聲波發送子程序及超聲波接收中斷子程序
超聲波子程序的功能是通過控制兩個端口來發射超聲波。在發射超聲波的同時啟動計時器T1開始工作,記錄下傳播的起始時間。超聲波測距模塊的工作方式首先通過外部中斷1來不斷檢測反射回來的超聲波信號,當反射回來的超聲波信號進入到檢測范圍以內時就能立刻檢測到,并且此時系統會立即啟動中斷程序,同時使計時器T1停止計時,這種情況下表示測距成功。如果當計時器超出計時范圍仍然沒能夠檢測到反射回來的超聲波信號時,這種情況的出現一般是由測量角度過大或者被測物處于測量盲區范圍導致的,此時定時器T1的中斷會將外中斷1關閉,這種情況下表示測距結果是失敗的。
2.2距離計算子程序
測量出超聲波往返時間之后,就可以通過計算公式進行對于距離的測算。具體的程序如下:void Conut(void)
{ ultrasonic_time = TH1*256+TL1;
TH1=0;
TL1=0;
// time是us級別的,t/1000/1000 * 340m/s / 2 = t*1.7/1000/10 m = t*1.7 / 100 cm
// 下在的S算出來是mm級別的t/1000/100 m
S = (ultrasonic_time*1.7)/100;
if( (S >= 700) || flag == 1)
{ flag=0;
distance_buffer[0] = '-';
distance_buffer[1] = '-';
distance_buffer[2] = '-';
}
else
{
distance_buffer[0] = S/100 + 0X30;
distance_buffer[1] = S%100/10 + 0X30;
distance_buffer[2] = S%10 + 0X30;
}
2.3實現體積計算的程序
本設計的最終目的是對于規則房屋體積的測量。我們先通過對于三個方向的距離進行測算,同時取得一個準確值。之后,通過V=X*Y*Z這個計算式對于體積進行計算。
2.4顯示子程序
LCD1602顯示屏的主要功能是能夠方便在距離選取時選擇一個比較穩定的值。同時顯示出測試的距離與計算得出的體積。
3系統的測試
當系統的硬件和軟件設計都完成時,最后需要對系統的功能進行測試,查詢設計時的錯誤并修改,最終完成整個溫濕度控制系統的設計。根據超聲波傳播的特性,距離測量時必須滿足以下的條件:(1)被測目標必須垂直于超聲波測距儀。(2)被測目標表面必須要平坦。(3)測量時在超聲波測距儀周圍沒有其他可反射超聲波的物體。因此當不滿足以下的條件時,就會有很大的幾率不能接收到超聲波,從而導致沒有測量結果。測試結果如表1:
經過實際的測量結果顯示,測量得到的值普遍存在誤差,測量值都要比準確值小。雖然說本設計的測量精度能夠到達一定的高度,但是由于超聲波測距在進行過程中會受很多因素的影響。同時,由于超生波自身的盲區問題以及發射探頭與接收探頭之間的共振問題也會使測量的精度受到影響。
4結論
利用51單片機控制的體積測量儀結構簡單,使用方便。經過實際測試證明,本設計的性能穩定,能夠測量出量程范圍以內的體積參數,且制作的成本較低、有較高的性價比。由于本設計在測量距離時容易產生誤差,在一般的體積測量的應用中可忽略不計;但在相對精度要求較高的高科技應用方面,我們不能忽略這點誤差,我們一般可以通過改變硬件的本身精度實現對超聲波測距的高精度測量或根據任務的需求在程序中編入相應的距離補償程序,使得本設計的精度達到更高的標準。