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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2911|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成人精品免费 | 国产精品久久久久久影视 | 日韩福利视频 | 99精品久久久 | 天天宗合网 | 国家一级黄色片 | 日韩在线观看中文字幕 | 精品成人在线 | 亚洲 中文 欧美 日韩 在线观看 | 精品视频在线免费观看 | 成人免费大片黄在线播放 | 久久久久久黄 | 国产综合网站 | 欧美日韩中文字幕在线 | 欧美精品91| 免费久 | 爱操影视| 九色www| 亚洲风情在线观看 | 免费网站国产 | 亚洲午夜av久久乱码 | 欧美黄色网络 | 亚洲一区三区在线观看 | 久久精品国产99国产精品 | 精品国产31久久久久久 | 亚洲午夜视频 | 高清欧美性猛交xxxx黑人猛交 | 亚洲一区在线免费观看 | 中文字幕亚洲国产 | 日韩亚洲视频 | 91网站在线播放 | 国产视频观看 | 欧美一区二区成人 | 国产精品毛片在线 | 中文字幕av一区二区三区 | 色视频网站在线观看 | 日韩超碰 | 亚洲xxxxx | 欧美日韩国产中文字幕 | 日日干夜夜草 | 97av在线|