久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3066|回復: 3
打印 上一主題 下一主題
收起左側

基于AVR單片機的智能小車

[復制鏈接]
跳轉到指定樓層
樓主
基于AVR單片機的智能小車,加入了紅外模塊和超聲波模塊,用來避障

P80920-154542.jpg (3.72 MB, 下載次數: 201)

P80920-154542.jpg

評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2018-9-20 17:32 | 只看該作者
好東東 樓主能分享一下源碼和資料嗎?
回復

使用道具 舉報

板凳
ID:399687 發表于 2018-9-20 17:57 | 只看該作者
  1. #include <mega32a.h>
  2. #include <delay.h>
  3. void dao_car(void); //倒車
  4. void r_zhuan(void);//右轉
  5. void l_zhuan(void);//左轉
  6. void q_jing(void);//前進
  7. void stop_car(void);//停車
  8. void time0_init(void);//定時器初值
  9. void sonic_scan(void);//超聲波掃描
  10. void r_hong(void);//右邊紅外檢測
  11. void l_hong(void);//左邊紅外檢測
  12. volatile int n,a;
  13. char temp;
  14. void main(void)
  15. {
  16.    DDRA=0x00;
  17.    DDRB=0XFF;
  18.     DDRD=0xff;
  19.     PORTA=0xff;
  20.     PORTB=0XFE;
  21.     PORTD=0xff;
  22.      temp=1;
  23.      n=0;
  24.      a=0;
  25.     time0_init();
  26. while (1)
  27.       {   
  28.         r_hong();//右紅外
  29.         l_hong();//左紅外
  30.        sonic_scan();
  31.       if (temp==0)
  32.         {   
  33.            if(PINA.2==1)
  34.            {
  35.             dao_car(); //倒車
  36.             delay_ms(30);
  37.            }
  38.              r_zhuan();//右轉
  39.              r_zhuan();//右轉
  40.              r_zhuan();//右轉
  41.              r_zhuan();//右轉
  42.             //////////////////////////////////////////////////////////////////////////////
  43.             sonic_scan();//超波聲掃描
  44.              if (temp==0)
  45.              {
  46.                  l_zhuan();//左轉
  47.                  l_zhuan();//左轉
  48.                  l_zhuan();//左轉
  49.                  l_zhuan();//左轉
  50.                  l_zhuan();//左轉
  51.                  l_zhuan();//左轉
  52.                  l_zhuan();//左轉
  53.                   l_zhuan();//左轉
  54.              }
  55.             else
  56.             {
  57.                 goto exit;
  58.              }
  59.          //////////////////////////////////////////////////////////////////////////////////   
  60.             sonic_scan();//超波聲掃描
  61.             if (temp==0)
  62.             {
  63.                 l_zhuan();//左轉
  64.                  l_zhuan();//左轉
  65.                  l_zhuan();//左轉
  66.                  l_zhuan();//左轉
  67.                  l_zhuan();//左轉
  68.                  l_zhuan();//左轉
  69.                  l_zhuan();//左轉
  70.             }
  71.          }
  72.     exit:
  73.     q_jing();//前進
  74.    }
  75. }
  76. void q_jing(void) //前進
  77. {
  78.     PORTD.7=1;
  79.     PORTD.6=0;
  80.     PORTD.5=0;
  81.     PORTD.4=1;
  82. }
  83. //////////////////////////////////////////////////////////////////////////////////////
  84. void l_zhuan(void) //左轉
  85. {
  86.      PORTD.7=0;
  87.     PORTD.6=1;
  88.     PORTD.5=0;
  89.     PORTD.4=1;
  90.     delay_ms(10);
  91.     stop_car();
  92.    delay_ms(20);
  93. }
  94. /////////////////////////////////////////////////////////////////////////////////////////////
  95. void r_zhuan(void)//右轉
  96. {
  97.     PORTD.7=1;
  98.     PORTD.6=0;
  99.     PORTD.5=1;
  100.     PORTD.4=0;
  101.     delay_ms(10);
  102.     stop_car();
  103.     delay_ms(20);
  104. }
  105. //////////////////////////////////////////////////////////////////////////////////////////////
  106. void dao_car(void)//倒車
  107. {
  108.     PORTD.7=0;
  109.     PORTD.6=1;
  110.     PORTD.5=1;
  111.     PORTD.4=0;
  112. }
  113. //////////////////////////////////////////////////////////////////////////////////////////////////
  114. void stop_car(void)//停車
  115. {
  116.     PORTD.7=1;
  117.     PORTD.6=1;
  118.     PORTD.5=1;
  119.     PORTD.4=1;  
  120. }
  121. ///////////////////////////////////////////////////////////////////////////////////////////////////
  122. interrupt [TIM0_OVF] void timer0_ovf_isr(void)//定時器0中斷溢出
  123. {
  124.   TCNT0 = 255;  
  125.   n++;
  126. }
  127. /////////////////////////////////////////////////////////////////////////////////////////////////////
  128. void time0_init(void)//定時器初值
  129. {   
  130.      SREG=0X80;
  131.      TCCR0 = 0x00;  
  132.      TCNT0 = 255;
  133.     TIMSK= 0x01;
  134. }
  135. //////////////////////////////////////////////////////////////////////////////////////////////////////
  136. void sonic_scan(void)//超聲波掃描
  137. {
  138.     while(1)
  139.     {
  140.       PORTB.0=1;
  141.       delay_us(20);
  142.       PORTB.0=0;
  143.       while(1)
  144.       {  
  145.          if(PINA.4==1)
  146.          {
  147.             break;
  148.          }
  149.         
  150.       }
  151.        TCCR0 = 0x02;
  152.        n=0;  
  153.        while(1)
  154.        {  
  155.           if(PINA.4==0)
  156.           {
  157.            TCCR0 = 0x00;
  158.            break;
  159.           }
  160.         }
  161.        n=n/58;
  162.        if(n==0)
  163.        {
  164.          temp=0;
  165.          break;
  166.         }
  167.        else
  168.        {
  169.          temp=1;
  170.          break;
  171.        }
  172.       
  173. }
  174. delay_ms(1);
  175. }      

  176. //////////////////////////////////////////////////////////////////////////////////////////
  177. void r_hong(void)//右邊紅外檢測
  178. {
  179.     if (PINA.0==0)
  180.     {
  181.        l_zhuan();//左轉
  182.     }
  183. }
  184. //////////////////////////////////////////////////////////////////////////////
  185. void l_hong(void)//左邊紅外檢測
  186. {
  187.     if (PINA.1==0)
  188.     {
  189.         r_zhuan();//右轉
  190.     }
  191. }




復制代碼

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:399687 發表于 2018-9-20 17:59 | 只看該作者
  1. #include <mega32a.h>
  2. #include <delay.h>
  3. void dao_car(void); //倒車
  4. void r_zhuan(void);//右轉
  5. void l_zhuan(void);//左轉
  6. void q_jing(void);//前進
  7. void stop_car(void);//停車
  8. void time0_init(void);//定時器初值
  9. void sonic_scan(void);//超聲波掃描
  10. void r_hong(void);//右邊紅外檢測
  11. void l_hong(void);//左邊紅外檢測
  12. volatile int n,a;
  13. char temp;
  14. void main(void)
  15. {
  16.    DDRA=0x00;
  17.    DDRB=0XFF;
  18.     DDRD=0xff;
  19.     PORTA=0xff;
  20.     PORTB=0XFE;
  21.     PORTD=0xff;
  22.      temp=1;
  23.      n=0;
  24.      a=0;
  25.     time0_init();
  26. while (1)
  27.       {   
  28.         r_hong();//右紅外
  29.         l_hong();//左紅外
  30.        sonic_scan();
  31.       if (temp==0)
  32.         {   
  33.            if(PINA.2==1)
  34.            {
  35.             dao_car(); //倒車
  36.             delay_ms(30);
  37.            }
  38.              r_zhuan();//右轉
  39.              r_zhuan();//右轉
  40.              r_zhuan();//右轉
  41.              r_zhuan();//右轉
  42.             //////////////////////////////////////////////////////////////////////////////
  43.             sonic_scan();//超波聲掃描
  44.              if (temp==0)
  45.              {
  46.                  l_zhuan();//左轉
  47.                  l_zhuan();//左轉
  48.                  l_zhuan();//左轉
  49.                  l_zhuan();//左轉
  50.                  l_zhuan();//左轉
  51.                  l_zhuan();//左轉
  52.                  l_zhuan();//左轉
  53.                   l_zhuan();//左轉
  54.              }
  55.             else
  56.             {
  57.                 goto exit;
  58.              }
  59.          //////////////////////////////////////////////////////////////////////////////////   
  60.             sonic_scan();//超波聲掃描
  61.             if (temp==0)
  62.             {
  63.                 l_zhuan();//左轉
  64.                  l_zhuan();//左轉
  65.                  l_zhuan();//左轉
  66.                  l_zhuan();//左轉
  67.                  l_zhuan();//左轉
  68.                  l_zhuan();//左轉
  69.                  l_zhuan();//左轉
  70.             }
  71.          }
  72.     exit:
  73.     q_jing();//前進
  74.    }
  75. }
  76. void q_jing(void) //前進
  77. {
  78.     PORTD.7=1;
  79.     PORTD.6=0;
  80.     PORTD.5=0;
  81.     PORTD.4=1;
  82. }
  83. //////////////////////////////////////////////////////////////////////////////////////
  84. void l_zhuan(void) //左轉
  85. {
  86.      PORTD.7=0;
  87.     PORTD.6=1;
  88.     PORTD.5=0;
  89.     PORTD.4=1;
  90.     delay_ms(10);
  91.     stop_car();
  92.    delay_ms(20);
  93. }
  94. /////////////////////////////////////////////////////////////////////////////////////////////
  95. void r_zhuan(void)//右轉
  96. {
  97.     PORTD.7=1;
  98.     PORTD.6=0;
  99.     PORTD.5=1;
  100.     PORTD.4=0;
  101.     delay_ms(10);
  102.     stop_car();
  103.     delay_ms(20);
  104. }
  105. //////////////////////////////////////////////////////////////////////////////////////////////
  106. void dao_car(void)//倒車
  107. {
  108.     PORTD.7=0;
  109.     PORTD.6=1;
  110.     PORTD.5=1;
  111.     PORTD.4=0;
  112. }
  113. //////////////////////////////////////////////////////////////////////////////////////////////////
  114. void stop_car(void)//停車
  115. {
  116.     PORTD.7=1;
  117.     PORTD.6=1;
  118.     PORTD.5=1;
  119.     PORTD.4=1;  
  120. }
  121. ///////////////////////////////////////////////////////////////////////////////////////////////////
  122. interrupt [TIM0_OVF] void timer0_ovf_isr(void)//定時器0中斷溢出
  123. {
  124.   TCNT0 = 255;  
  125.   n++;
  126. }
  127. /////////////////////////////////////////////////////////////////////////////////////////////////////
  128. void time0_init(void)//定時器初值
  129. {   
  130.      SREG=0X80;
  131.      TCCR0 = 0x00;  
  132.      TCNT0 = 255;
  133.     TIMSK= 0x01;
  134. }
  135. //////////////////////////////////////////////////////////////////////////////////////////////////////
  136. void sonic_scan(void)//超聲波掃描
  137. {
  138.     while(1)
  139.     {
  140.       PORTB.0=1;
  141.       delay_us(20);
  142.       PORTB.0=0;
  143.       while(1)
  144.       {  
  145.          if(PINA.4==1)
  146.          {
  147.             break;
  148.          }
  149.         
  150.       }
  151.        TCCR0 = 0x02;
  152.        n=0;  
  153.        while(1)
  154.        {  
  155.           if(PINA.4==0)
  156.           {
  157.            TCCR0 = 0x00;
  158.            break;
  159.           }
  160.         }
  161.        n=n/58;
  162.        if(n==0)
  163.        {
  164.          temp=0;
  165.          break;
  166.         }
  167.        else
  168.        {
  169.          temp=1;
  170.          break;
  171.        }
  172.       
  173. }
  174. delay_ms(1);
  175. }      

  176. //////////////////////////////////////////////////////////////////////////////////////////
  177. void r_hong(void)//右邊紅外檢測
  178. {
  179.     if (PINA.0==0)
  180.     {
  181.        l_zhuan();//左轉
  182.     }
  183. }
  184. //////////////////////////////////////////////////////////////////////////////
  185. void l_hong(void)//左邊紅外檢測
  186. {
  187.     if (PINA.1==0)
  188.     {
  189.         r_zhuan();//右轉
  190.     }
  191. }




復制代碼
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人手机在线观看 | 欧美日韩一区二区三区视频 | 玖玖色资源 | 亚洲高清免费 | 天天做天天爽 | 亚洲一级片 | 国产精品一区二区三 | 黄色大片av | 久久888| 国产区一区二区 | 亚洲一区二区久久 | 国产精品久久久久久久久久辛辛 | 午夜黄视频 | 香蕉视频色版 | 日韩av不卡在线观看 | 欧美精品日韩少妇 | 国产视频999| 日韩一级在线观看 | 久久亚洲精品视频 | 日韩福利视频 | 色午夜 | 亚洲涩涩涩 | 精品精品 | 少妇久久久 | 久久久婷婷 | 欧美日韩色 | 少妇一级淫片免费看 | 黄色高清网站 | 成人手机在线视频 | 日本中文字幕网站 | 三级黄色片免费看 | 亚洲欧美日韩一区 | 国产91热爆ts人妖系列 | 久久精品欧美一区二区 | 久久夜色精品国产欧美乱极品 | 日韩精品视频在线 | 日本熟妇毛耸耸xxxxxx | 永久免费看mv网站入口亚洲 | 人人草在线视频 | 亚洲少妇一区 | 国产中文字幕在线 |