资源简介

这个是当初实训自己在网上下载寻迹的的源码,在这个基础上加了红外遥控,蓝牙遥控,超声避障,超声跟随。每个模块之间都是独立的,上电先进入红外控制,然后根据按键选择功能。代码可供学习,可实际使用,编译器是keil4。蓝牙遥控需要下载蓝牙串口app,配对后可以遥控。

资源截图

代码片段和文件信息

#include
#include

unsigned char a;
unsigned char Infrared; //检测P0低四位的值
unsigned char cnt = 0;
sbit IN1 = P1^4; //定义左电机控制引脚
sbit IN2 = P1^3;
sbit IN3 = P1^2; //定义右电机控制引脚
sbit IN4 = P1^1;

void delayms(unsigned char x)                         //0.14mS延时程序
{
  unsigned char i;                                    //定义临时变量
  while(x--)                                          //延时时间循环
  {
    for (i = 0; i<13; i++) {}                         //14mS延时
  }
}

void Timer0Config()
{
TMOD &= 0xF0;
TMOD |= 0x01;
TH0 = 0xFF;
TL0 = 0x7E;
EA = 1;
ET0 = 1;
TR0 = 1;
}

void zhizou()
{
 Motor_Left(1 50) Motor_Right(1 50);
 Infrared = P0 & 0x0F; 
}
void houtui1()
{
 Motor_Left(0 50) Motor_Right(0 50);
//  Infrared = P0 & 0x0F; 
}
void left()
{  
  Motor_Left(1 20) Motor_Right(1 70);
//   Infrared = P0 & 0x0F; 
}
void right()
{  
  Motor_Left(1 70) Motor_Right(1 20);
//   Infrared = P0 & 0x0F; 
}
void dazhuan1()
{
a=1;

while(a)
{
Motor_Left(0 60); Motor_Right(1 60);
Infrared = P0 & 0x0F;
if(Infrared==0x04)
{
Motor_Left(1 80); Motor_Right(0 80); break;
}
else if(Infrared==0x02)
{
Motor_Left(1 80); Motor_Right(0 80); break;
}
}
Infrared = P0 & 0x0F;
}

void dazhuan2()
{
a=1;

while(a)
{
Motor_Left(1 60); Motor_Right(0 60);
Infrared = P0 & 0x0F;
if(Infrared==0x02)
{
Motor_Left(0 80); Motor_Right(1 80); break;

}
else if(Infrared==0x04)
{
Motor_Left(0 80); Motor_Right(1 80); break;

}
}
Infrared = P0 & 0x0F;
}

void weitiao1()
{
a=1;
while(a)
{
Motor_Left(0 40); Motor_Right(1 80);
Infrared = P0 & 0x0F;
switch(Infrared)
{
case 0x04:
a=1; break;
default:
a=0; break;
}
}
Infrared = P0 & 0x0F;
}

void weitiao2()
{
a=1;
while(a)
{
Motor_Left(1 80); Motor_Right(0 40);
Infrared = P0 & 0x0F;
switch(Infrared)
{
case 0x02:
a=1; break;
default:
a=0; break;
}
}
Infrared = P0 & 0x0F;
}




void Motor_Left(bit ReverOrCoro unsigned char DutyCycle) //传递正反转(1为正转,0为反转)、占空比参数
{
if(ReverOrCoro == 1)
{
IN1 = 1;
if(cnt <= DutyCycle)
{
IN2 = 0;
}
else
{
IN2 = 1;
}
}
else
{
IN2 = 1;
if(cnt <= DutyCycle)
{
IN1 = 0;
}
else
{
IN1 = 1;
}
}
}

void Motor_Right(bit ReverOrCoro unsigned char DutyCycle) //传递正反转(1为正转,0为反转)、占空比参数
{
if(ReverOrCoro == 1)
{
IN3 = 1;
if(cnt <= DutyCycle)
{
IN4 = 0;
}
else
{
IN4 = 1;
}
}
else
{
IN4 = 1;
if(cnt <= DutyCycle)
{
IN3 = 0;
}
else
{
IN3 = 1;
}
}
}


void stop()
{
IN1=0;
IN2=0;
IN3=0;
IN4=0;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        2874  2018-06-27 15:20  循迹决赛程序1.0\car.c
     文件         418  2018-06-27 16:54  循迹决赛程序1.0\car.h
     文件        8380  2018-06-27 17:17  循迹决赛程序1.0\car.LST
     文件        9030  2018-06-27 17:17  循迹决赛程序1.0\car.OBJ
     文件          34  2018-06-27 17:20  循迹决赛程序1.0\main.__i
     文件        6117  2018-06-27 17:31  循迹决赛程序1.0\main.c
     文件       14279  2018-06-27 17:20  循迹决赛程序1.0\main.LST
     文件        9613  2018-06-27 17:20  循迹决赛程序1.0\main.OBJ
     文件        1111  2018-06-26 19:25  循迹决赛程序1.0\motor.c
     文件           0  2018-06-26 19:37  循迹决赛程序1.0\motor.h
     文件        3752  2018-06-26 19:27  循迹决赛程序1.0\motor.LST
     文件        3198  2018-06-26 19:27  循迹决赛程序1.0\motor.OBJ
     文件        1711  2018-06-27 11:30  循迹决赛程序1.0\red.c
     文件           0  2018-06-26 20:05  循迹决赛程序1.0\red.h
     文件        6376  2013-06-24 10:27  循迹决赛程序1.0\STARTUP.A51
     文件       14056  2018-06-27 17:17  循迹决赛程序1.0\STARTUP.LST
     文件         749  2018-06-27 17:17  循迹决赛程序1.0\STARTUP.OBJ
     文件       15898  2018-06-27 17:20  循迹决赛程序1.0\决赛
     文件        3189  2018-06-27 17:20  循迹决赛程序1.0\决赛.hex
     文件          68  2018-06-27 17:20  循迹决赛程序1.0\决赛.lnp
     文件        8614  2018-06-26 19:25  循迹决赛程序1.0\决赛.LST
     文件       26763  2018-06-27 17:20  循迹决赛程序1.0\决赛.M51
     文件        7404  2018-06-26 19:25  循迹决赛程序1.0\决赛.OBJ
     文件        3819  2018-06-27 17:31  循迹决赛程序1.0\决赛.plg
     文件      139903  2017-05-20 11:46  循迹决赛程序1.0\决赛.uvgui.Administrator
     文件      140065  2017-05-18 13:28  循迹决赛程序1.0\决赛.uvgui_Administrator.bak
     文件       59770  2018-06-27 17:31  循迹决赛程序1.0\决赛.uvopt
     文件       13560  2018-06-26 20:59  循迹决赛程序1.0\决赛.uvproj
     文件       59266  2018-06-27 16:10  循迹决赛程序1.0\决赛_uvopt.bak
     文件       13568  2018-06-26 19:26  循迹决赛程序1.0\决赛_uvproj.bak

评论

共有 条评论