一个简单的智能小车.c 程序,P0口电机驱动电路 L293D 2只后轮和一只万向轮,5只红外反射式传感器,其中左右方向用2只,距离近,中远各一只,
#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(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; } } }
|