找回密码
 立即注册

QQ登录

只需一步,快速开始

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

最近用光强检测模块和ADC0809做小车追光,但程序有问题 求帮助

[复制链接]
跳转到指定楼层
楼主
ID:837062 发表于 2020-10-31 16:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近用光强检测模块和ADC0809做小车追光,但程序有问题。请教站内朋友。
  源代码
      #include<reg52.h>
#include<math.h>
sbit D1=P2^0;
sbit D2=P2^1;
sbit D3=P2^2;
sbit D4=P2^3;
  sbit ENA=P2^4;
  sbit ENB=P2^5;
sbit E1=P3^4;
sbit E2=P3^5;
sbit E3=P3^6;
sbit E4=P2^6;
sbit ALE=P1^4;
sbit A=P1^7;
  
sbit C=P1^5;
sbit ST=P1^2;
sbit OE=P1^0;
sbit CLK=P1^3;
sbit EOC=P1^1;
  int a,b,c,d;
delays(int p)
{ int l,m;
   for(l=p;l>0;l--)
    for(m=1100;m>0;m--);
  }
   void houzuo() //左后轮正转
{  D1=1;
    D2=0;
delays(200);
  delays(200);
  D1=1;
  D2=1;
}
void init1()
{
TMOD=0X01;     //定时器中断0
CLK=0;      //脉冲信号初始值为0
TH0=(65536-2)/256;   //定时时间高八位初值
TL0=(65536-2)%256;   //定时时间低八位初值
EA=1;      //开CPU中断
ET0=1;      //开T/C0中断
TR0=1;
}
void houyou() //右后轮正转
{  D3=1;
    D4=0;
  delays(200);
delays(200);
  D3=1;
  D4=1;
}
  void houzuodao() //左后轮反转
{  D1=0;
    D2=1;
      delays(200);
delays(200);
  D1=0;
  D2=0;
}
  void houyoudao()    // 右后轮反转
{   D3=0;
     D4=1;
     delays(200);
   delays(200);
  D3=0;
  D4=0;
}
void qianjin()   //前进
{  D1=1;
    D2=0;
    D3=1;
    D4=0;
  delays(200);
delays(200);
  D1=1;
    D2=1;
    D3=1;
    D4=1;
}
void houtui() //倒车·
{
   D1=0;
    D2=1;
D3=0;
D4=1;
    delays(200);
delays(200);
  D1=1;
    D2=1;
D3=1;
D4=1;
}

chejian()  //小车光强
{  ALE=1;
A=0;
   B=0;
   C=0;
    ALE=0;
  ST=1;
   CLK=1;
    CLK=0;
    CLK=1;
    CLK=0;
   while(!EOC)
    {  
        CLK=1;
        CLK=0;
     }
     OE=1;
a=E1;
    OE=0;
  ST=0;
   
ALE=1;
   A=1;
   B=0;
   C=0;
   ALE=0;   
  ST=1;
   CLK=1;
    CLK=0;
    CLK=1;
    CLK=0;
    while(!EOC)
    {  
        CLK=1;
        CLK=0;
     }
     OE=1;
  b=E2;
     OE=0;
ST=0;

    ALE=1;
   A=0;
   B=1;
   C=0;
   ALE=0;ST=1;
   CLK=1;
    CLK=0;
    CLK=1;
    CLK=0;
    while(!EOC)
    {  
        CLK=1;
        CLK=0;
     }
     OE=1;
c=E3;
OE=0;
  ST=0;
   ALE=1;
     A=1;
   B=1;
   C=0;
   ALE=0;ST=1;
   CLK=1;
    CLK=0;
    CLK=1;
    CLK=0;
    while(!EOC)
    {  
        CLK=1;
        CLK=0;
     }
     OE=1;
     
  d=E4;
     OE=0;
  ALE=0;ST=0;
  }
void main()
{     ENA=1;
      ENB=1;
  
   while(1)
{   qianjin();
     /*void init1();
       chejian();
       if(a>b>c>d||a>b>d>c&&a-d>15)
      while(a!=b||abs(a)-abs(b)>6)  
    { houyou();
      chejian();
    }
  if(b>a>c>d||b>a>d>c&&b-c>15)
      while(a!=b||abs(b)-abs(a)>6)  
    { void zuoyou();
      chejian();
    }
   if(c>d>b>a||c>d>a>b&&c-b>15)
      while(c!=E4||abs(a)-abs(b)>6)  
    { houyoudao();
      chejian();
    }
          if(d>c>b>a||d>c>a>b&&d-a>15)
      while(c!=d||abs(a)-abs(b)>6)  
    { void houyzuodao();
      chejian();
    }
    if(a==c||abs(a)-abs(c)<5||abs(c)-abs(a)<5)
      while( a!=b||abs(a)-abs(b)>2||abs(b)-abs(a)>2)
     {   houzuodao();
            chejian();
     }
    if(b==E4||abs(b)-abs(E4)<5||abs(E4)-abs(b)<5)
      while( a!=b||abs(a)-abs(b)>2||abs(b)-abs(a)>2)
     {   houyoudao();
            chejian();  
     }
   if(a>=(1.4*c)||b>=(1.4*d))
     while(a>=1.1*c||b>=(1.1*d))
      {
        qianjin();
     chejian();
   }
    if(c>=(1.4*a)||d>=(1.4*b))
     while(c>=(1.1*a)||d>=(1.1*a))
      {
        qianjin();
     chejian();
   }
     
  }
    */

}
}


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

使用道具 举报

沙发
ID:328014 发表于 2020-11-1 04:38 | 只看该作者
什么问题?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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