一个简单的智能小车.c 程序
一个简单的智能小车.c 程序,2只后轮和一只万向轮,5只红外反射式传感器,其中左右方向用2只,距离近,中远各一只,只用方向控制程序,或者前进停止后退程序时均正常,一旦将方向控制程序+前进停止后退程序时 ,方向控制不能正常工作
敬请哪位老师看看问题出在哪里 谢谢!
智能小车.c 程序
#include<reg52.h>
sbitPF1=P1^0; //左方向 红外传感器
sbitPF2=P1^1; //右方向 红外传感器
sbitPJ1=P1^2; //近距离 15cm 红外传感器
sbitPJ2=P1^3; //中距离 30cm 红外传感器
sbitPJ3=P1^5; //远距离 50cm 红外传感器
sbitPA1=P0^0; //电机驱动电路 L293D 左轮
sbitPA2=P0^1;
sbitPA=P0^4;
sbitPB1=P0^2; //电机驱动电路 L293D 左轮
sbitPB2=P0^3;
sbitPB=P0^5;
voidmain(void) //主程序
{
P1=0x00; //程序初始化
P1=0xFF; //P1口置1
while(1) //循环
{
if(PJ2==1&&PJ2==1&&PJ3==0)// 距离判断 前进
{
PA1=1; //前进
PA2=0;
PA=1;
PB1=1;
PB2=0;
PB=1;
}
elseif(PJ2==1&&PJ2==0&&PJ3==0&&PF1==1&&PF2==0) // 距离+方向判断 左拐
{
PA1=1; //左拐
PA2=0;
PA=1;
PB1=1;
PB2=0;
PB=0;
}
elseif(PJ2==1&&PJ2==0&&PJ3==0&&PF1==0&&PF2==1)// 距离+方向判断 右拐
{
PA1=1; //右拐
PA2=0;
PA=0;
PB1=1;
PB2=0;
PB=1;
}
elseif(PJ1==1&&PJ2==1&&PJ3==1) // 距离判断 无信号停止
{
PA1=1; //无信号 停止
PA2=0;
PA=0;
PB1=1;
PB2=0;
PB=0;
}
elseif(PJ1==0&&PJ2==0&&PJ3==0) // 距离判断 后退
{
PA1=0; //后退
PA2=1;
PA=1;
PB1=0;
PB2=1;
PB=1;
}
}
}
