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