• <del id="qqie6"><sup id="qqie6"></sup></del>
  • <tfoot id="qqie6"></tfoot>
  • <ul id="qqie6"></ul>
  • 產品推薦:水表|流量計|壓力變送器|熱電偶|液位計|冷熱沖擊試驗箱|水質分析|光譜儀|試驗機|試驗箱


    儀表網>技術中心>應用設計>正文

    歡迎聯系我

    有什么可以幫您? 在線咨詢

    用AT89C2051設計超聲波測距儀

       2012年02月27日 15:31  
      摘要:超聲波測距主要應用于倒車雷達、建筑施工工地以及一些工業現場,例如:液位、井深、管道長度等場合。目前國內一般使用集成電路設計超聲波測距儀,但是集成電路的成本很高,并且沒有顯示,操作使用很不方便。本文介紹一種以AT89C2051或GSM97C2051單片機為核心的低成本、高精度、微型化數字顯示超聲波測距儀的硬件電路和軟件設計方法。實際使用證明該儀器工作穩定,性能良好。
      
      1、超聲波測距原理
      
      超聲波測距是通過不斷檢測超聲波發射后遇到障礙物所反射的回波,從而測出發射和接收回波的時間差t,然后求出距離S=Ct/2,式中的C為超聲波波速。
      
      由于超聲波也是一種聲波,其聲速C與溫度有關,表1列出了幾種不同溫度下的聲速。在使用時,如果溫度變化不大,則可認為聲速是基本不變的。如果測距精度要求很高,則應通過溫度補償的方法加以校正。聲速確定后,只要測得超聲波往返的時間,即可求得距離。這就是超聲波測距儀的機理。其系統框圖如圖1所示。
      
      2、AT89C2051的功能特點
      
      AT89C2051是一個2k字節可編程EPROM的高性能微控制器。它與工業標準MCS-51的指令和引腳兼容,因而是一種功能強大的微控制器,它對很多嵌入式控制應用提供了一個高度靈活有效的解決方案。AT89C2051有以下特點:2k字節EPROM、128字節RAM、15根I/O線、2個16位定時/計數器、5個向量二級中斷結構、1個全雙向的串行口、并且內含精密模擬比較器和片內振蕩器,具有4.25V至5.5V的電壓工作范圍和12MHz/24MHz工作頻率,同時還具有加密陣列的二級程序存儲器加鎖、掉電和時鐘電路等。此外,AT89C2051還支持二種軟件可選的電源節電方式。空閑時,CPU停止,而讓RAM、定時/計數器、串行口和中斷系統繼續工作。可掉電保存RAM的內容,但可使振蕩器停振以禁止芯片所有的其它功能直到下一次硬件復位。
      
      AT89C2051有2個16位計時/計數器寄存器Timer0tTimer1。作為一個定時器,每個機器周期寄存器增加1,這樣寄存器即可計數機器周期。因為一個機器周期有12個振蕩器周期,所以計數率是振蕩器頻率的1/12。作為一個計數器,該寄存器在相應的外部輸入腳P3.4/T0和P3.5/T1上出現從1至0的變化時增1。由于需要二個機器周期來辨認一次1到0的變化,所以zui大的計數率是振蕩器頻率的1/24,可以對外部的輸入端P3.2/INT0和P3.3/INT1編程,便于測量脈沖寬度的門。
      
      表1聲速與溫度關系表
      
      
      充分利用AT89C2051的片內資源,即可在很少外圍電路的情況下構成功能完善的超聲波測距系統。
      
      3、系統硬件電路設計
      
      超聲波測距儀的硬件電路如圖2所示。
      
      AT89C2051通過外部引腳P1.6輸出脈沖寬度為250μs,載波為40kHz的10個脈沖的脈沖群,以推挽形式加到變壓器的初級,經升壓變換推動超聲波換能器發射出去。在發射的同時,P1.7輸出一個高電平啟動,給電容C4充電。發射結束時高電平翻轉為低電平,C4開始對R2、R3組成的分壓器放電并輸出到比較器的負端。超聲波接收換能器將接收到的障礙物反射的超聲波送到放大器進行放大,這是一個高增益、低噪聲放大器,在對放大后的信號進行檢波后將檢測回波送到比較器的正輸入端。發射時P1.7輸出的電平可以抑制比較器的翻轉,這樣就可以抑制發射器發射的超聲波直接輻射到接收器而導致錯誤檢測。
      
      圖3是超聲波測距原理的波形圖,從圖中可以看到,測出回波和發射脈沖之間的時間間隔,利用S=Ct/2就可以算出距離,再在LCD上顯示出來。當然還可以設置若干個鍵,以用來控制電路的工作狀態。限制系統的zui大可測距離存在四個因素:超聲波的幅度,反射而的質地,反射而和入射聲波之間的夾角以及接收換能器的靈敏度。接收換能器對聲波脈沖的直接接收能力將決定zui小的可測距離。
      
      4、系統軟件設計
      
      AT89C2051單片機和其開發應用系統具有語言簡潔、可移植性好、表達能力強、表達方式靈活、可進行結構化設計、可以直接控制計算機硬件、生成代碼質量高、使用方便等諸多優點。超聲波測距儀就是用AT89C51單片機開發設計的。它采用模塊化設計,由主程序、發射子程序、查蟓接收子程序、定時子程序、顯示子程序等模塊組成。
      
      圖4和圖5分別為主程序和測量子程序的框圖。該系統的主程序處于鍵控循環工作方式,當按下測量鍵時,主程序開始調用發射子程序、查詢接收子程序、定時子程序,并把測量結果用顯示子程序在液晶屏上顯示出來。
      
      必須指出的是,由于液晶要使用同一P3口,所以必須全部使用位操作,否則將導致LCD不能正常顯示。另外,在系統還可以加入溫度傳感器來監測環境溫度,把表1所列的數據做到程序中可進行溫度被償。為了增強系統的可靠性,應在軟硬件上采用一些特殊措施。限于篇幅,下面僅給出部分程序,感興趣者可與作者。
      
      #pragmaDBOECDOT(5,SPEED)ROM(LARGE)IV
      
      /*連接所需要的庫*/
      
      #Include<reg52.h>
      
      #Include<absacc.h>
      
      #Include<stdio.h>
      
      /*定義數據類型*/
      
      typedefunsingnedcharbyte;
      
      typedefunsignedintword
      
      #defineucharunsignedchar
      
      #defineunintunsignedint
      
      #defineulongunsignedlong
      
      /*定義系統常數*/
      
      #defineTRUE1
      
      #defineFALSE0
      
      #defineC=340/*聲速*/
      
      /*定義功能位*/
      
      sbitbflag=ACC7;
      
      sbitVOLCK=P1^5;
      
      sbitMING=P3^5;
      
      sbitQUIET=P1^3;
      
      sbitBACK=P1^2;
      
      /*定義顯示緩沖區*/
      
      ucharidataON[16]={’,’L’,’E’,’N’,’G’,’T’,’H’,’=’,’8’,’.’,’8’8’,’m’,’’,’’,’’};
      
      /*主程序用延時子程序*/
      
      woidmain-delay(void)
      
      {
      
      registeri;
      
      TRO=1;
      
      for(i=0;i<15;i++)
      
      {
      
      TH0=0;
      
      TL0=0;
      
      Do{}while(!TF0);
      
      TF0=0;
      
      }
      
      TR0=0;
      
      }
      
      */通用延時子程序*/
      
      voiddelay(void)
      
      {
      
      uninti;
      
      for(i=0;i<200;i++){;}
      
      }
      
      /*鍵盤延時子程序*/
      
      voidkey-delay(void)
      
      {
      
      uninti;
      
      for(i=0;i<200;i++){;}
      
      }
      
      /*初始化程序*/
      
      voidstart_main()
      
      {
      
      tegisteri;
      
      uchara[16]={’’,’L’,’E’,’N’,’G’,’T’,’H’,’=,’8’,’.’,’8’,’8’,’m’,’’,’’,’’};
      
      for(i=0;<16;i++)
      
      {ON[i]=a[i];}
      
      nitlcd();/*初始化液晶*/
      
      display(ON);/*更新顯示*/
      
      }
      
      /*主程序*/
      
      voidmain()
      
      {
      
      registers,keycode;
      
      longidatat;
      
      start-main();/*初始化*/
      
      main-delay();/*延時*/;
      
      if(keycoed==true)
      
      {
      
      keycode=key-scan-wait();
      
      /*判斷是否有測量鍵按下*/
      
      t=measure();*/測量*/
      
      S=0.5*t*C;*/換算*/
      
      Decode-bcd(s.0x09);
      
      /*把測量結果置換入顯示緩沖區*/
      
      init-lcd();/*初始化液晶*/
      
      display(ON);/*更新顯示*/
      
      }
      
      }
      
      5、結束語
      
      雖然用一個單獨計時器電路也可以測量超聲波的傳輸時間,但利用AT89C2051單片機可以簡化設計,便于操作和直觀讀數。該系統經實際測試證明,可以滿足大多數場合的測距要求。

    免責聲明

    • 凡本網注明“來源:儀表網”的所有作品,均為浙江興旺寶明通網絡有限公司-儀表網合法擁有版權或有權使用的作品,未經本網授權不得轉載、摘編或利用其它方式使用上述作品。已經本網授權使用作品的,應在授權范圍內使用,并注明“來源:儀表網”。違反上述聲明者,本網將追究其相關法律責任。
    • 本網轉載并注明自其它來源(非儀表網)的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或和對其真實性負責,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品第一來源,并自負版權等法律責任。
    • 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。
    聯系我們

    客服熱線: 15024464426

    加盟熱線: 15024464426

    媒體合作: 0571-87759945

    投訴熱線: 0571-87759942

    關注我們
    • 下載儀表站APP

    • Ybzhan手機版

    • Ybzhan公眾號

    • Ybzhan小程序

    企業未開通此功能
    詳詢客服 : 0571-87759942
    主站蜘蛛池模板: 国产成人精品无码一区二区| 亚洲国产成人久久一区久久| 国产成人综合野草| 日本在线观看成人小视频| 精品久久久久久成人AV| 成人在线第一页| 国产成人免费ā片在线观看| 免费观看一级成人毛片| 欧美成人精品a∨在线观看| 成人免费av一区二区三区 | 久久成人国产精品一区二区| 37pao成人国产永久免费视频 | 成人综合激情另类小说| 午夜在线观看视频免费成人| 中文字幕成人在线| 国产成人艳妇aa视频在线| 色综合天天综合网国产成人网| 成人a在线观看| 欧美成人精品第一区| 久久成人免费大片| 亚洲国产成人手机在线电影bd| 成人免费看吃奶视频网站| 欧美成人鲁丝片在线观看| 免费成人在线电影| 国产成人久久av免费| 成人毛片18女人毛片| 日本成人免费在线观看| 欧美成人片一区二区三区| 91成人免费版| 一级成人a做片免费| 亚洲国产精品成人综合色在线婷婷 | 久久久久国产成人精品| 亚洲精品成人网站在线观看 | 中文字幕欧美成人免费| 亚洲国产成人99精品激情在线| 国产成人av区一区二区三| 国产成人99久久亚洲综合精品| 四虎成人精品无码| 久久亚洲国产成人精品无码区| 中文字幕成人网| 欧美成人精品第一区二区三区|