这是无线加红外循迹和避障的小车程序/********************************************** 功能:4键无线遥控小车程序 单片机:STC12C5A60S2 晶振 :11.0592M 注释 : 遥控器就是普通的4键315M遥控器加接收模块。 电机驱动用LM298或者LM293D,驱动板的电机使能端接5v。 ********************************************/ #include <reg52.h> #include <intrins.h> #define uint unsigned int #define uchar unsigned char #define A P3_4 //遥控按键A #define BB P3_5 //遥控按键B #define C P3_6 //遥控按键C #define D P3_7 //遥控按键D sbit in1=P1^0; //小车端口 sbit in2=P1^1; //小车端口 sbit in3=P1^2; //小车端口 sbit in4=P1^3; //小车端口 sbit P3_4=P3^4;//遥控按键A sbit P3_5=P3^5;//遥控按键B sbit P3_6=P3^6;//遥控按键C sbit P3_7=P3^7;//遥控按键D sbit xj_l=P2^0;//循迹或避障左传感器 sbit xj_r=P2^1;//循迹或避障右传感器 void delay10ms(uint z) { uint a,b; for(a=z;a>0;a--) for(b=425;b>0;b--); } void qianjin() { in1 = 0 ; in2 = 1 ; in3 = 0; in4 = 1; delay10ms(100); } void houtui() { in1 = 1 ; in2 = 0 ; in3 = 1; in4 = 0; delay10ms(100); } void zuozhuan() { in1 = 0 ; in2 = 1 ; in3 = 1; in4 = 0; delay10ms(100); } void youzhuan() { in1 = 1 ; in2 = 0 ; in3 = 0; in4 = 1; delay10ms(100); } //******************************************************** //******************************************************** void main() { while(1) { //循迹或避障功能,循迹的时候把传感器朝下安装 //避障的时候把传感器安装在车的前面朝前安装 if(xj_l==1&&xj_r==1) qianjin(); if(xj_l==0&&xj_r==1) youzhuan(); if(xj_l==1&&xj_r==0) zuozhuan(); if(xj_l==0&&xj_r==0) houtui(); delay10ms(1500); //无线遥控功能 /* in1 = 0; in2 = 0 ; in3 = 0 ; in4 = 0; if(A) //前进 { in1 = 0 ; in2 = 1 ; in3 = 0; in4 = 1; delay10ms(100); } if(BB) //后退 { in1 = 1; in2 = 0 ; in3 = 1 ; in4 = 0; delay10ms(100); } if(C) //左转 { in1 = 0; in2 = 1 ; in3 = 1 ; in4 = 0; delay10ms(100); } if(D) //右转 { in1 = 1 ; in2 = 0 ; in3 = 0 ; in4 = 1; delay10ms(100); }*/ } } |