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