欢迎来到天天文库
浏览记录
ID:37753077
大小:15.86 KB
页数:6页
时间:2019-05-30
《基于AT89C52单片机的智能小车c语言程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include#defineucharunsignedchar#defineuintunsignedintucharpro_left=35,pro_right=35,i,j;//左右占空比标志sbitleft1=P2^1;//定义端口sbitleft2=P2^0;sbitright1=P2^3;sbitright2=P2^2;sbitpleft=P2^7;sbitpright=P2^6;sbiten1=P1^0;sbiten2=P1^1;//循迹口三个红外传感器sbitleft_red=P1^2;//白线位置sbitright_red=P1^4;//白线位置vo
2、iddelay(uintz){uchari;while(z--){for(i=0;i<121;i++);}}voidinit(){left_red=0;//白线位置right_red=0;TMOD=0X01;TH0=(65536-100)/256;TL0=(65536-100)%256;EA=1;ET0=1;TR0=1;en1=1;en2=1;}voidtime0(void)interrupt1//定时中断{i++;j++;if(i<=pro_right){en1=1;}elseen1=0;if(i==40){en1=~en1;i=0;}if(j<=pro_left){en2=1;
3、}elseen2=0;if(j==40){en2=~en2;j=0;}TH0=(65536-100)/256;TL0=(65536-100)%256;}voidstraight()//走直线函数{pro_right=20;pro_left=20;left1=1;left2=0;right1=1;right2=0;}voidturn_left()//左转弯函数{pro_right=0;pro_left=20;left1=1;left2=0;right1=1;right2=0;}voidturn_right()//右转弯函数{pro_right=40;pro_left=0;left1=
4、1;left2=0;right1=1;right2=0;}voidturn_back()//后退(反转)函数{left1=0;left2=1;right1=0;right2=1;pro_right=20;pro_left=20;}voidinfrared()//循迹和避障{ucharflag;if((pright==1)
5、
6、(pleft==1)){if((left_red==1)&(right_red==0)){flag=1;}elseif((right_red==1)&(left_red==0)){flag=2;}elseif((left_red==0)&(right_red==
7、0)){flag=3;}else{flag=0;}}elseif((pright==0)&(pleft==1)){flag=4;}elseif((pright==1)&(pleft==0)){flag=5;}elseif((pright==0)&(pleft==0)){flag=6;}else{flag=0;}switch(flag){case0:straight();break;case1:turn_right();delay(1000);break;case2:turn_left();delay(1000);break;case3:straight();delay(1000);
8、break;case4:turn_back();delay(1000);turn_left();delay(1000);break;case5:turn_back();delay(1000);turn_right();delay(1000);break;case6:turn_back();delay(1000);turn_left();delay(1000);break;default:break;}}main(){init();delay(1);while(1){infrared();}}
此文档下载收益归作者所有