一個(gè)簡單的智能小車.c 程序,2只后輪和一只萬向輪,5只紅外反射式傳感器,其中左右方向用2只,距離近,中遠(yuǎn)各一只,電機(jī)驅(qū)動(dòng)電路 L293D 只用方向控制程序,或者前進(jìn)停止后退程序時(shí)均正常,一旦將方向控制程序+前進(jìn)停止后退程序時(shí) ,方向控制不能正常工作 敬請哪位老師看看問題出在哪里 謝謝!
智能小車.c 程序
#include <reg52.h> sbit PF1=P1^0; //左方向 紅外傳感器 sbit PF2=P1^1; //右方向紅外傳感器 sbit PJ1=P1^2; //近距離 15cm 紅外傳感器 sbit PJ2=P1^3; //中距離 30cm 紅外傳感器 sbit PJ3=P1^5; //遠(yuǎn)距離 50cm 紅外傳感器 sbit PA1=P0^0; //電機(jī)驅(qū)動(dòng)電路 L293D 左輪 sbit PA2=P0^1; sbit PA=P0^4; sbit PB1=P0^2; //電機(jī)驅(qū)動(dòng)電路 L293D 左輪 sbit PB2=P0^3; sbit PB=P0^5; void main(void) //主程序 { P1=0x00; //程序初始化 P1=0xFF; //P1口置1 while(1) //循環(huán) { if(PJ2==1&&PJ2==1&&PJ3==0) //距離判斷 前進(jìn) { PA1=1; //前進(jìn) 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; } } }
|