找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1495|回复: 3
打印 上一主题 下一主题
收起左侧

求帮忙改下,这是我写的小车超声波跟随程序,车头有5个接收超声波探头。

[复制链接]
回帖奖励 50 黑币 回复本帖可获得 5 黑币奖励! 每人限 1 次(中奖概率 50%)
跳转到指定楼层
楼主
ID:381755 发表于 2018-8-8 11:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. #include<reg51.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit E1=P2^0;                  //???峬??????????
  5. sbit E2=P2^1;
  6. sbit E3=P2^2;
  7. sbit E4=P2^3;
  8. sbit E5=P2^4;

  9. sbit mz=P1^5;                  //??????Mz?????????
  10. sbit IN1=P1^6;
  11. sbit IN2=P1^7;
  12. sbit my=P1^2;                  //??????My?????????
  13. sbit IN3=P1^3;
  14. sbit IN4=P1^4;
  15. void delayms(uint);            //???????????
  16. main()
  17. {
  18.         uint i=0;                                        //????
  19.         mz=1;
  20.         my=1;
  21.         while(1)                                   //???????
  22.         {
  23.         if(E2==1&&E3==1&&E4==1)   //???2??3??4????????
  24.         {
  25.                 for(i=0;i<5;i++)         //???
  26.                 {
  27.                          mz=1;
  28.                     IN1=1;
  29.                         IN2=0;
  30.                         my=1;
  31.                         IN3=1;
  32.                         IN4=0;
  33.                         delayms(100);
  34.                 }
  35.         }
  36.         if(E1==1&&E2==1&&E3==1&&E4==1&&E5==1)   //???1??2??3??4??5????????
  37.         {
  38.                 for(i=0;i<5;i++)         //???
  39.                 {
  40.                          mz=1;
  41.                     IN1=1;
  42.                         IN2=0;
  43.                         my=1;
  44.                         IN3=1;
  45.                         IN4=0;
  46.                         delayms(100);
  47.                 }
  48.         }
  49.        
  50.          
  51.         if(E2==1)                          //?????2??????
  52.         {
  53.                         for(i=0;i<5;i++)
  54.                 {
  55.                          mz=1;
  56.                     IN1=1;
  57.                         IN2=0;
  58.                         my=1;
  59.                         IN3=1;
  60.                         IN4=0;
  61.                         delayms(100);
  62.                 }
  63.         }

  64.         if(E3==1)                          //?????3??????
  65.         {
  66.                         for(i=0;i<5;i++)
  67.                 {
  68.                          mz=1;
  69.                     IN1=1;
  70.                         IN2=0;
  71.                         my=1;
  72.                         IN3=1;
  73.                         IN4=0;
  74.                         delayms(100);
  75.                 }
  76.         }
  77.         if(E4==1)                          //?????4??????
  78.         {
  79.                         for(i=0;i<5;i++)
  80.                 {
  81.                          mz=1;
  82.                     IN1=1;
  83.                         IN2=0;
  84.                         my=1;
  85.                         IN3=1;
  86.                         IN4=0;
  87.                         delayms(100);
  88.                 }
  89.         }
  90.        
  91.         if(E2==1&&E3==1)                  //?????2??3??????
  92.         {
  93.                         for(i=0;i<5;i++)
  94.                 {
  95.                          mz=1;
  96.                     IN1=1;
  97.                         IN2=0;
  98.                         my=1;
  99.                         IN3=1;
  100.                         IN4=0;
  101.                         delayms(100);
  102.                 }
  103.         }
  104.                
  105.         if(E2==1&&E4==1)                  //?????2??4??????
  106.         {
  107.                         for(i=0;i<5;i++)
  108.                 {
  109.                          mz=1;
  110.                     IN1=1;
  111.                         IN2=0;
  112.                         my=1;
  113.                         IN3=1;
  114.                         IN4=0;
  115.                         delayms(100);
  116.                 }
  117.         }
  118.        
  119.         if(E3==1&&E4==1)                  //?????3??4??????
  120.         {
  121.                         for(i=0;i<5;i++)
  122.                 {
  123.                          mz=1;
  124.                     IN1=1;
  125.                         IN2=0;
  126.                         my=1;
  127.                         IN3=1;
  128.                         IN4=0;
  129.                         delayms(100);
  130.                 }
  131.         }
  132.        
  133.         if(E1==1)                          //?????1??????
  134.         {
  135.                 for(i=0;i<5;i++)
  136.                 {
  137.                        
  138.                         mz=0;                   //???
  139.                         my=1;
  140.                         IN3=1;
  141.                         IN4=0;
  142.                         delayms(100);
  143.                                        
  144.                 }
  145.         }

  146.         if(E1==1&&E2==1)                          //?????1,2??????
  147.         {
  148.                 for(i=0;i<5;i++)
  149.                 {
  150.                        
  151.                         mz=0;                   //???
  152.                         my=1;
  153.                         IN3=1;
  154.                         IN4=0;
  155.                         delayms(100);
  156.                 }
  157.                                
  158.         }
  159.         if(E1==1&&E2==1&&E3==1)                          //?????1,2,3??????
  160.         {
  161.                         for(i=0;i<5;i++)
  162.                         {
  163.                                                
  164.                                 mz=0;                   //???
  165.                                 my=1;
  166.                                 IN3=1;
  167.                                 IN4=0;
  168.                                 delayms(100);
  169.                         }
  170.                                
  171.         }
  172.         if(E1==1&&E2==1&&E3==1&&E4==1)                          //?????1,2,3,4??????
  173.         {
  174.                         for(i=0;i<5;i++)
  175.                         {
  176.                        
  177.                                 mz=0;                   //???
  178.                                 my=1;
  179.                                 IN3=1;
  180.                                 IN4=0;
  181.                                 delayms(100);
  182.                         }
  183.                                
  184.         }
  185.        

  186.         if(E5==1)                          // ?????5??????
  187.         {
  188.                 for(i=0;i<5;i++)
  189.                 {
  190.                        
  191.                         mz=1;                   //???
  192.                         IN1=1;
  193.                         IN2=0;
  194.                         my=0;
  195.                         delayms(100);
  196.                 }
  197.                                        
  198.         }
  199.        

  200.         if(E4==1&&E5==1)                          //?????4,5??????
  201.         {
  202.                 for(i=0;i<5;i++)
  203.                 {
  204.                
  205.                         mz=1;                   //???
  206.                         IN1=1;
  207.                         IN2=0;
  208.                         my=0;
  209.                         delayms(100);
  210.                 }       
  211.         }
  212.         if(E3==1&&E4==1&&E5==1)                          //?????3,4,5??????
  213.         {
  214.                 for(i=0;i<5;i++)
  215.                 {
  216.                
  217.                         mz=1;                   //???
  218.                         IN1=1;
  219.                         IN2=0;
  220.                         my=0;
  221.                         delayms(100);
  222.                 }       
  223.         }
  224.         if(E2=1&&E3==1&&E4==1&&E5==1)                          //?????2,3,4,5??????
  225.         {
  226.                 for(i=0;i<5;i++)
  227.                 {
  228.                
  229.                         mz=1;                   //???
  230.                         IN1=1;
  231.                         IN2=0;
  232.                         my=0;
  233.                         delayms(100);
  234.                 }       
  235.         }

  236.         if(E1==0&&E2==0&&E3==0&&E4==0&&E5==0)                 //??
  237.                 {
  238.                 mz=0;
  239.                 my=0;
  240.                 }
  241.          }
  242.          }
  243. void delayms(uint xms)
  244. {
  245.         uint i,j;
  246.         for(i=xms;i>0;i--)
  247.                 for(j=110;j>0;j--);
  248. }
复制代码
手里拿一个超声波发射器,有些不灵敏,有时候小车左转时,右轮应该正转嘛,然后左轮也转一圈,不知道怎么回事


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:375359 发表于 2018-8-18 21:47 | 只看该作者
是不是你的逻辑出问题了?超声波接受信号判断逻辑检查检查看看
回复

使用道具 举报

板凳
ID:387767 发表于 2018-8-19 10:55 | 只看该作者
这么复杂 应该是逻辑出问题
回复

使用道具 举报

地板
ID:375359 发表于 2018-12-18 13:53 | 只看该作者
你的跟随小车做的怎么样了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表