资源描述:
《机器人擂台赛51程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、/*机器人擂台赛51程序*****************************************//*使用芯片:AT89S52或者STC89C52或AT89S51STC89C51*//*晶振:11.0592MHZ****************************************//*编译环境:Keil*************************************//*作者:wangzhianyuhao******************************//*时间:*************************
2、************//*机器人底座四个角下面各有一个灰度传感器,正前面对称安装两个红外传感器,后面,左面右面个一个传感器*//*电机电压为12V直流减速电机,驱动为L298N模块*//*程序应尽量避免电机转向的突然变化,电机为高速蜗杆减速电机,转速高,电压高,突然转向容易闪火花,烧坏电机*/#include#defineucharunsignedchar#defineuintunsignedint#defineconP0ucharsj,sec,count;ucharsj1,sec1,count1;ucharsj2,sec2,coun
3、t2;ucharsj3,sec3,count3;ucharsj4,sec4,count4;ucharsj5,sec5,count5;uinta,b,m;/*==============机器人电路接线图=====================*//*四个灰度传感器,从左到右,序号从0到3,为P2口的低四位,遇到遮挡物返回为低电平*/sbitf0=P2^7;sbitf1=P2^6;sbitf2=P2^5;sbitf3=P2^4;/*五个红外传感器,从左到右,序号从0到3,为P2口的高四位,检测到目标后返回是低电平*/sbitf4=P2^3;sbitf5=P2
4、^2;sbitf6=P2^1;sbitf7=P2^0;sbitf8=P1^3;intz[]={0xaa,0x55,0x5a,0xa5,0xe5,0xb5,0xad,0xa7,0xda,0x7a,0x5e,0x5b};//z[0]前进0xaa,二进制为//z[1]后退0x55,二进制为//z[2]左转0x5a,二进制为//z[3]右转0xa5,二进制为//z[4]沿左后轮顺时针转0xe5,二进制为//z[5]沿左前轮顺时针转0xb5,二进制为//z[6]沿右前轮顺时针转0xad,二进制为//z[7]沿右后轮顺时针转0xa7,二进制为//z[8]沿左后轮逆时针
5、转0xda,二进制为//z[9]沿左前轮逆时针转0x7a,二进制为//z[10]沿右前轮逆时针转0x5e,二进制为//z[11]沿右前轮逆时针转0x5b,二进制为inthdjc();//灰度检测inthwjc();//红外检测voidzttz();//姿态调整voidxzsm();//扫描voidxzsm1();//旋转扫描voidjingong();//进攻voiddelay(uinti);voidmain(){m=0;sec1=2;//一秒count1=0;//1代表10微秒,sj1=20*sec1+count1;//左转时间sec2=2;count2
6、=0;sj2=20*sec2+count2;//前进时间sec3=2;count3=0;sj3=20*sec3+count3;//扫描前进时间sec4=3;count4=0;sj4=20*sec4+count4;//扫描旋转时间sec5=1;count5=10;sj5=20*sec5+count5;//扫描旋转时间TMOD=0x01;IE=0x82;TH0=(65536-50000)/256;TL0=(65536-50000)%256;//左转45度/*con=z[2];count=0;sec=0;//秒置0TR0=1;//定时器1开始工作do{a=hdj
7、c();//灰度检测b=hwjc();//红外检测sj=sec*20+count;}while((a==0)&&((b==0)
8、
9、(b==4))&&(sj<=sj1));TR0=0;//定时器1停止工作*///前进到擂台中间con=z[0];count=0;sec=0;//秒置0TR0=1;//定时器1开始工作do{a=hdjc();//灰度检测b=hwjc();//红外检测sj=sec*20+count;}while((a==0)&&(b==0)&&(sj<=sj2));TR0=0;//定时器1停止工作a=hdjc();b=hwjc();while(1)
10、{if((a==0)
11、
12、(a==5)
13、
14、(a==8)){if(b=