新聞中心

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

用MC68HC705J1A實(shí)現(xiàn)超聲波汽車倒泊防撞報(bào)警器的設(shè)計(jì)

作者: 時(shí)間:2013-01-19 來(lái)源:網(wǎng)絡(luò) 收藏

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

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

44.jpg

4 超聲波汽車的軟件設(shè)計(jì)

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

55.jpg

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

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

1.jpg

檢測(cè)主程序如下:

org 0300h

lda #00

sta counta ;報(bào)警計(jì)數(shù)器清0

lda #$fd

sta portad ;設(shè)置A口輸入/輸出方向

lda #$ff

sta portbd ;設(shè)置B口輸入/輸出方向

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

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



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉