這是無線加紅外循跡和避障的小車程序/********************************************** 功能: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); }*/ } } |