新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 用MC68HC705J1A實現(xiàn)超聲波汽車倒泊防撞報警器的設計

用MC68HC705J1A實現(xiàn)超聲波汽車倒泊防撞報警器的設計

作者: 時間:2013-01-19 來源:網(wǎng)絡 收藏

探測頭選頻頻率為40kHz方波,由軟件在單片機的發(fā)送管腳PA6和PA7上直接產(chǎn)生20個方波脈沖,再通過變壓器升壓變換,經(jīng)探測頭發(fā)射出去。由于傳感器本身的恢復過程,發(fā)射結束后仍有不大于500μs的阻尼震蕩。發(fā)射信號同時回送到接收電路。

發(fā)射信號遇到障礙物后反射回來,由同一探測頭接收并送到接收電路。接收電路對反射信號進行多級放大和檢波,最后通過開關電路到達單片機的接收管腳PA0或PA1。當接收電路有信號時,開關三極管Q1導通,PA0或PA1為低電平;否則,三極管截止,PA0或PA1為高電平。檢測PA0或PA1的管腳狀態(tài),就可以得到超聲波探測頭接收到第一個反射信號的時刻,從而計算出從發(fā)送信號到接收到第一個反射信號的時間,再進一步計算出障礙物與汽車的距離。發(fā)射信號波形、接收電路信號波形和單片機接收管腳信號波形如圖4所示。

44.jpg

4 超聲波汽車的軟件設計

超聲波汽車的軟件采用匯編語言。程序流程如圖5所示。

55.jpg

系統(tǒng)聯(lián)調(diào)時發(fā)現(xiàn),當檢測環(huán)境比較復雜時,檢測值會出現(xiàn)常數(shù)0或隨機數(shù)的現(xiàn)象,因此,實際檢測并不是以一次檢測值進行計算的,而是將本次檢測值與之前連續(xù)9次的檢測值(共10次)進行比較(取平均值),從而得出一個最終檢測結果,再計算出距離,根據(jù)距離所屬的范圍報警。檢測一次所需時間為50ms。

一般報警程序中所需的時間參數(shù)都是由定時器通過硬件計數(shù)進行中斷控制,但是超聲波檢測中,在發(fā)射信號期間不允許中斷,否則導致發(fā)射信號頻率不精確;同時在檢測過程中如果產(chǎn)生定時器中斷,也會給計數(shù)帶來誤差。因此,報警程序不采用中斷方式,而是將檢測報警所需的時間參數(shù)與單次檢測時間(50ms)結合起來,將蜂鳴器的鳴響頻率和LED的閃動頻率規(guī)定為500ms,即檢測10次的時間。報警時間參數(shù)與檢測次數(shù)之間的關系如表1所示。

1.jpg

檢測主程序如下:

org 0300h

lda #00

sta counta ;報警計數(shù)器清0

lda #$fd

sta portad ;設置A口輸入/輸出方向

lda #$ff

sta portbd ;設置B口輸入/輸出方向

ldx buffer ;緩沖區(qū)首地址 → x

transmit: jsr transp ;調(diào)用發(fā)射20個脈寬為250μs方波子程序



評論


相關推薦

技術專區(qū)

關閉