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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 比較簡單的AVR單片機(jī)超聲波測距的實例

          比較簡單的AVR單片機(jī)超聲波測距的實例

          作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏

          voidsend40kHz(void)//發(fā)射40KHz超聲波
          {
          count=0;
          TIMSK&=0XDF;//禁止ICP1使能
          OCR2=0X64;
          TCCR2=0X19;
          }
          voidclose40kHz(void)//停止發(fā)射超聲波
          {
          TCCR2=0X00;
          }
          voidhextobcd(unsignedcharm)//將count十六進(jìn)制數(shù)據(jù)轉(zhuǎn)換為LED七段碼
          {
          unsignedchartemp;
          temp=m%10;
          ledbuff[0]=tab1[temp];//mm位
          m=m/10;
          temp=m%10;
          ledbuff[1]=tab1[temp];//lm位
          temp=m/10;
          ledbuff[2]=tab2[temp];//m位
          }
          voiddisplay3led(void)//數(shù)碼管顯示
          {
          unsignedchari;
          for(i=0;i<3;i++)
          {
          PORTD=ledbuff[i];
          PORTC=~(1<delay_1ms();
          PORTC=(1<}
          }

          voiddisplay8led(void)//8LED顯示
          {
          if(newcount<10)
          PORTD=0XFE;
          elseif(newcount<20)
          PORTD=0XFD;
          elseif(newcount<30)
          PORTD=0XFB;
          elseif(newcount<40)
          PORTD=0XF7;
          elseif(newcount<50)
          PORTD=0XEF;
          elseif(newcount<100)
          PORTD=0XDF;
          elseif(newcount<180)
          PORTD=0XBF;
          else
          PORTD=0X7F;
          }

          voidmcu_init(void)//MCU初始化
          {
          DDRD=0XFF;
          PORTD=0XFF;
          DDRC=0XDF;//PC5為輸入
          PORTC=0XFF;
          DDRB=0XFE;
          PORTB=0XF7;
          TCNT2=0X00;
          TCNT0=0XC6;//T0定時58US
          TCCR0=0X02;//T0定時器1/8分頻
          TCNT1=0X00;
          TCCR1A=0X00;
          TCCR1B=0X81;//輸入捕獲噪音抑制允許,ICP1下降沿觸發(fā),系統(tǒng)時鐘
          TIMSK=0X01;//使能T0定時溢出

          }
          voidmain(void)
          {
          unsignedchari;
          mcu_init();
          for(;;)
          {
          send40kHz();
          SREG|=0X80;
          delay_us(50);
          close40kHz();
          delay_us(20);
          TIMSK=0X21;
          if(!(PINC&0X20))//如果插上JD1短路塊,則數(shù)碼管顯示距離
          {
          if(newcount!=oldcount)
          oldcount=newcount;
          hextobcd(oldcount);
          for(i=0;i<20;i++)
          display3led();
          }
          else
          {
          PORTC=0XFF;
          display8led();
          delay_ms(100);
          }
          }

          }

          雙龍SL-SRF-25超聲波避障程序—51單片機(jī)
          /***********************************************************************/
          /*
          廣州雙龍電子
          WWW.SL.COM.CN
          功能:
          超聲波避障,避障距離為10cm;前進(jìn)遇障后退左轉(zhuǎn)彎.
          接線方法:
          52板P1.0(用短線)接超聲波傳感器J1-1(J1插針的第一腳)
          注意:
          用戶可以根據(jù)自已的避障距離,把52板P1.0腳連接到超聲波傳感器的相應(yīng)腳
          以下是避障距離范圍情況:
          1:J1-1避障距離范圍5~9cm
          2:J1-2避障距離范圍10~19cm
          3:J1-3避障距離范圍20~29cm
          4:J1-4避障距離范圍30~39cm
          5:J1-5避障距離范圍40~49cm
          6:J1-6避障距離范圍50~99cm
          7:J1-7避障距離范圍100~179cm
          8:J1-8避障距離范圍180~250cm
          Chiptype:AT89S52
          Clockfrequency:24MHz
          */
          /************************************************************************/
          #include"reg52.h"
          sbitP1_0=P1^0;//定義避障距離檢測腳
          voiddelay_1ms(void)//1毫秒延時程序
          {
          unsignedcharj=0,i=8;
          do
          {
          while(--j);
          }
          while(--i);
          }

          voiddelay(unsignedchari)//毫秒級延時程序
          {
          while(i--)
          delay_1ms();
          }

          voidforward(void)//LED4~5亮,前進(jìn)
          {
          P0=0XE7;
          P3=0x50;
          }
          voidleft(void)//LED1~3亮,左轉(zhuǎn)
          {
          P0=0XF8;
          P3=0x60;
          }
          voidback(void)//LED全亮,后退
          {
          P0=0;
          P3=0XA0;
          }

          voidinit(void)//端口初始化
          {
          P1|=0X01;//要讀取P1.0,就先寫1
          P0=255;//8LED全不亮
          P3=0;
          }
          /***********************************************************************
          主函數(shù)
          ***********************************************************************/
          voidmain(void)
          {
          init();//系統(tǒng)初始化
          while(1)//循環(huán)
          {
          if(!P1_0)//如果在避障范圍,則后退,左轉(zhuǎn)彎
          {
          back();
          delay(200);//后退200毫秒
          left();
          delay(200);//左轉(zhuǎn)90度.
          }
          else
          {
          forward();
          delay(200);
          }
          }
          }

          上一頁 1 2 下一頁

          關(guān)鍵詞: AVR單片機(jī)超聲波測

          評論


          相關(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); })();