提高超聲波測距系統(tǒng)精度中的應用設計
254 的每個定時器都有一個控制口 GATE,可利用發(fā)射波與回波直接啟停該定時器,而不必把發(fā)射波與回波接至單片機,通過查詢或中斷再啟停定時器,這樣即可提高測距系統(tǒng)的響應速度,減少了系統(tǒng)自身的誤差,提高準確度。
3 硬件結構
假設超聲波測距系統(tǒng)采用 8031 單片機為控制核心,使用 8254 的 0#定時器記數(shù),CLK0 信號由外部電路提供準確的 4MHz 脈沖信號(可通過74LS390 等分頻器分頻獲得),利用一個 JK 觸發(fā)器的輸出作為 8254 0#定時器的門控信號 GATE0,回波信號同時作為單片機 INT 0的中斷響應信號。初始化時,由 8031 單片機的 P1.0 口對JK觸發(fā)器清 0,8254 的 T0 不計時;發(fā)射波產(chǎn)生后,JK 觸發(fā)器翻轉,T0 開始工作,計數(shù)初值不斷減 1;超聲波傳感器收到回波后,使 JK 觸發(fā)器再次翻轉,8254 的 T0 停止工作,回波信號同時觸發(fā)單片機中斷,在中斷服務子程序讀出計數(shù)器計數(shù)初值中所剩余的值,然后計算出距離,通過顯示電路即可將測出的距離顯示出來。硬件結構如圖 2 所示
4 軟件設計
軟件分主程序和中斷服務程序為兩部分。主程序完成單片機和 8254 計數(shù)器的初始化工作、超聲波的發(fā)射與回波的檢測以及中斷控制。中斷服務子程序主要完成時間值的讀取、系統(tǒng)復位、距離計算和結果的輸出等工作。主程序和中斷服務子程序的流程圖如圖 3,圖 4 所示。
評論