资源简介

智能机器人寻迹程序源码,走白线,可以修改转弯角度和线条颜色

资源截图

代码片段和文件信息

//=====================================================================//
//                      寻迹与直流电机驱动演示程序                     //
//  本程序通过前方的红外探头来检测地面的信号根据道路的要求当道路为白 //
// 色时,红外接收到信号,与地面检测的红外相应端口低电平当道路为黑色时 //
//,与地面检测的红外相应端口为高电平我们就可以根据这和判断条件来进行  //
//道路黑白线的寻找.                                                    //
//  声明:由于红外接收头对光线要求较高,所以对于黑白两种颜色选择对比度  //
//高为好,而且因为道路建立不同,需要根据实际的需要来改写相应的延迟时间 //
//以适应角度的最有较转弯,道路应根据红外接收头的两个宽度来制定,如果道 //
//路较小,或较大者,请调整以适应小车的正确运行.                        //
//  备注:这里的程序以走白线为主,当用户需要选择走黑线时,请根据例程作出//
//实际修改。并改写相应的延迟时间函数,以进行转弯角度在的最优化调整.    //
//---------------------------------------------------------------------//
//  开发日期: 2009/01/28   编写寻迹与直流电机驱动演示程序最初代码      //
//  修改日期:                                                          //
//  程序作者: guojun     邮箱:Guojun2008a@126.com                      //
//  程序备注: 此程序仅为表现本机功能而演示用当用作实际工程时请慎用.   //
//=====================================================================//
#include                       //包含51单片机相关的头文件
sbit LeftLed=P2^0;                        //定义前方左侧指示灯端口
sbit RightLed=P0^7;                       //定义前方右侧指示灯端口
sbit LeftIR=P3^5;                         //定义前方左侧红外探头端口
sbit RightIR=P3^6;                        //定义前方右侧红外探头端口
sbit FontIR=P3^7;                         //定义前方正前方红外探头端口
sbit M1A=P0^0;                            //定义左侧电机驱动A端
sbit M1B=P0^1;                            //定义左侧电机驱动B端
sbit M2A=P0^2;                            //定义右侧电机驱动A端
sbit M2B=P0^3;                            //定义右侧电机驱动B端
sbit B1=P0^4;                             //定义语音识识别传感器端口
sbit SB1=P0^6;                            //定义蜂鸣器端口
#define RunShow P1                        //定义数据显示端口
void Delay()                              //定义机器人调转子时间子程序
{ unsigned int DelayTime=50000;           //定义机器人转弯时间变量
  while(DelayTime--);                     //机器人转弯循环
  SB1=!SB1;                               //蜂鸣器闪响
  return;
}
void ControlCar(unsigned char ConType)    //定义电机控制子程序
{
 M1A=0;                                   //将M1电机A端初始化为0
 M1B=0;                                   //将M1电机B端初始化为0
 M2A=0;                                   //将M2电机A端初始化为0
 M2B=0;                                   //将M2电机B端初始化为0
 switch(ConType)                          //判断用户设定电机形式
 {
  case 1:  //前进                         //判断用户是否选择形式1
  { M1A=1;                                //M1电机正转
    M2A=1;                                //M2电机正转
    break;
  }
  case 2: //后退                          //判断用户是否选择形式2
  { M1B=1;                                //M1电机反转
    M2B=1;                                //M2电机反转
    break;
  }
  case 3: //左转                          //判断用户是否选择形式3
  { M1B=1;                                //M1电机反转
    M2A=1;                                //M2电机正转
break;
  }
  case 4: //右转                          //判断用户是否选择形式4
  { M1A=1;                                //M1电机正转
    M2B=1;                                //M2电机反转
break;
  }

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        619  2009-11-16 21:02  寻迹例程\寻迹例程.plg

    .......      1960  2009-11-16 20:42  寻迹例程\寻迹例程_Uv2.Bak

    .......       833  2009-11-16 20:42  寻迹例程\寻迹例程_Opt.Bak

     文件       5414  2009-11-16 21:02  寻迹例程\寻迹例程.c

     文件       6418  2009-11-16 21:02  寻迹例程\寻迹例程.M51

     文件       8004  2009-11-16 21:02  寻迹例程\寻迹例程.LST

     文件       5259  2009-11-16 21:02  寻迹例程\寻迹例程.OBJ

     文件       4962  2009-11-16 21:02  寻迹例程\寻迹例程

     文件       2002  2009-11-16 21:02  寻迹例程\寻迹例程.Uv2

     文件       1023  2009-11-16 21:02  寻迹例程\寻迹例程.Opt

     目录          0  2009-11-16 20:41  寻迹例程

----------- ---------  ---------- -----  ----

                36494                    11


评论

共有 条评论