基于單片機控制的超聲波測距報警系統(tǒng)
P3 口也可作為AT89C52 的一些特殊功能口,如表1 所示。
表1 P3 特殊功能口
P3 口同時為閃爍編程和編程校驗接收一些控制信號。
(11)ALE//PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。
(12)/PSEN:外部程序存儲器的選通信號。
在由外部程序存儲器取指期間,每個機器周期兩次/PSEN 有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN 信號將不出現。
2.4 超聲波發(fā)射電路
超聲波發(fā)射電路原理如圖5 所示。輸出端采用兩個反向器并聯,用以提高驅動能力。上位電阻R10、R11 一方面可以提高反向器74LS04 輸出高電平的驅動能力,另一方面可以增加超聲波換能器的阻尼效果,縮短其自由振蕩時間。
圖5 超聲波發(fā)射電路原理圖
2.5 超聲波檢測接收電路
集成電路CX20106A 是一款紅外線檢波接收的專用芯片。考慮到紅外遙控常用的載波頻率38 kHz 與測距的超聲波頻率40 kHz 較為接近,可以利用它制作超聲波檢測接收電路( 如圖6)。實驗證明用CX20106A 接收超聲波( 無信號時輸出高電平),具有很好的靈敏度和較強的抗干擾能力。
圖6 超聲波檢測接收電路
2.6 顯示電路
顯示電路采用簡單實用的4 位共陽LED 數碼管,段碼用74LS244 驅動,位碼用PNP 三級管驅動。接P2.1 引腳的為個位顯示數碼管,其小數點在P2.1 有效時顯示,此功能由軟件來完成。
2.7 復位功能
系統(tǒng)應具備測距啟動功能,可以復位系統(tǒng),使其開始重新測距。
綜上所述,本系統(tǒng)的特點是利用單片機控制超聲波的發(fā)射和對超聲波自發(fā)射至接收往返時間的計時,單片機選用STC89C52,經濟易用,且片內有8K 的ROM,便于編程。電路原理如圖7 所示。
3 軟件方案
系統(tǒng)軟件設計采用模塊化設計,主要包括主程序設計、T0 中斷服務子程序、外部中斷服務子程序、距離計算子程序、LED 顯示子程序設計等。
主程序首先是對系統(tǒng)環(huán)境初始化,設置定時器T0工作模式為16 位定時計數器模式。置位總中斷允許位EA 并給顯示端口P0 和P2 清0.
圖7 電路原理
然后調用超聲波發(fā)生子程序送出一個超聲波脈沖,為了避免超聲波從發(fā)射器直接傳送到接收器引起的直射波觸發(fā),需要延時約0.1 ms,然后才打開外中斷0 接收返回的超聲波信號。
測出距離后結果將以十進制BCD 碼方式送往LED 顯示約0.5 s,然后再發(fā)超聲波脈沖重復測量過程。為了有利于程序結構化和容易計算出距離,主程序采用C 語言編寫。
3.1 主程序
· 系統(tǒng)控制初始化LED、初始化計數控制部分,清除計數值。
· 單片機超聲波脈沖信號。
· 立刻置INT0 為1,打開計時器,等待回波信號。
· 回波信號到達,關閉計時器,P3.3 為0,清INT0 為0.
· 單片機讀出計數值。
· 單片機將計數值進行計算后得出的距離值,顯示在LED 上。
· 當測量距離 10.0 cm 或> 50.0 cm 時,報警系統(tǒng)燈亮。
· 當按下復位鍵時,啟動復位功能。
評論