<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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

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

          44.jpg

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

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

          55.jpg

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

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

          1.jpg

          檢測主程序如下:

          org 0300h

          lda #00

          sta counta ;報警計數(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個脈寬為250μs方波子程序



          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();