打印

智能小车实用 遥控 循迹 切换源码

[复制链接]
1106|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
269152492|  楼主 | 2012-6-6 11:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg52.h>                                                      
#define  uchar  unsigned char                                         
#define  uint unsigned int                                         
/***************************************                                   
    端口定义                                                                        
    ****************************************/                                 
sbit IN1=P2^1;                  //P10与电机驱动IN1相连                           
sbit IN2=P2^2;     //P11与电机驱动IN2相连                           
sbit IN3=P2^3;     //P12与电机驱动IN3相连                             
sbit IN4=P2^4;     //P13与电机驱动IN4相连   
sbit ENA=P3^0;
sbit ENB=P3^1;
sbit xjr=P1^0;
sbit xjm=P1^1;
sbit xjl=P1^2;
sbit QH=P1^7;

uint m,t;
sbit a=P3^7;
sbit b=P3^6;
sbit c=P3^5;
sbit d=P3^4;
void yaokong();

void xunji();

void delay(uint z)
{
uint x,y;

for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}

void Turn_left(void)                                                      
{                                                                          
  IN1=0;                                                                  
  IN2=0;                                                                 
  IN3=1;                                                               
  IN4=0;                                                               
}                                                                        
void Turn_right(void)                                                   
{                                                                        
  IN1=1;                                                                  
  IN2=0;                                                                    
  IN3=0;                                                               
  IN4=0;                                                                 
}
void Go(void)                                                           
{                                                                       
  IN1=1;                                                                  
  IN2=0;                                                               
  IN3=1;                                                                  
  IN4=0;                                                               
}   
void Back(void)                                                         
{                                                                       
  IN1=0;                                                                  
  IN2=1;                                                                  
  IN3=0;                                                               
  IN4=1;                                                                 
}  
void init()
{
  ENA=1;
  ENB=1;
}
                          
main()                                                                    
{
init();
                                                                           
while(1)                                                              
  {
  if(QH==1)
  yaokong();
  
  if(QH==0)
     xunji();

                                                            
  }                                                                    
}  
  
void xunji()
{
if((xjl==1&&xjm==0&&xjr==1)||(xjl==1&&xjm==1&&xjr==1) )//中间灭或全亮 直走
{
  Go();
}

if(xjl==0&&xjm==1&&xjr==1)
{
  Turn_left();   //左边灭 左拐
}
if(xjl==1&&xjm==1&&xjr==0)
{
  Turn_right();   //右边灭 右拐
}
if(xjl==0&&xjm==0&&xjr==0)
{
  ENA=0;
  ENB=0;    //全灭 全停

}
else
{
  ENA=1;
  ENB=1;
}
}
void yaokong()
{
  if(a)//前进
  {
   Go();
  }

  if(b)//右拐
  {
      Turn_right();
  }

  if(c)//后退
  {
         Back();
  }

  if(d)//左拐
  {
   Turn_left();

  }
}

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

35

帖子

1

粉丝