微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 一个简单的智能小车.c 程序

一个简单的智能小车.c 程序

时间:10-02 整理:3721RD 点击:

一个简单的智能小车.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;

    }

  }

}


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top