机器人擂台赛51程序_第1页
机器人擂台赛51程序_第2页
机器人擂台赛51程序_第3页
机器人擂台赛51程序_第4页
机器人擂台赛51程序_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、/* 机器人擂台赛51 程序 */* 使用芯片: AT89S52 或者STC89C52 或 AT89S51 STC89C51*/* 晶振: 11.0592MHZ*/* 编译环境: Keil*/* 作者: wangzhian yuhao*/* 时间: 20120526*/* 机器人底座四个角下面各有一个灰度传感器,正前面对称安装两个红外传感器,后面,左面右面个一个传感器*/* 电机电压为12V 直流减速电机,驱动为L298N 模块 */* 程序应尽量避免电机转向的突然变化,电机为高速蜗杆减速电机,转速高,电压高,突然转向容易闪火花,烧坏电机 */#include <reg52.h>#

2、define uchar unsigned char#define uintunsigned int#define con P0uchar sj,sec,count;uchar sj1,sec1,count1;uchar sj2,sec2,count2;uchar sj3,sec3,count3;uchar sj4,sec4,count4;uchar sj5,sec5,count5;uint a,b,m;/*=机器人电路接线图=*/* 四个灰度传感器,从左到右,序号从0 到 3,为 P2 口的低四位 ,遇到遮挡物返回为低电平*/sbit f0=P27;sbit f1=P26;sbit f2=P

3、25;sbit f3=P24;/* 五个红外传感器,从左到右,序号从0 到 3,为 P2 口的高四位,检测到目标后返回是低电平 */sbit f4=P23;sbit f5=P22;sbit f6=P21;sbit f7=P20;sbit f8=P13;int z=0xaa,0x55,0x5a,0xa5,0xe5,0xb5,0xad,0xa7,0xda,0x7a,0x5e,0x5b;/z0 前进 0xaa,二进制为10101010/z1 后退 0x55,二进制为01010101/z2 左转 0x5a,二进制为01011010/z3 右转 0xa5,二进制为10100101/z4 沿左后轮顺时针转

4、0xe5,二进制为11100101/z5 沿左前轮顺时针转0xb5,二进制为10110101/z6 沿右前轮顺时针转0xad,二进制为10101101/z7 沿右后轮顺时针转0xa7,二进制为10100111/z8 沿左后轮逆时针转0xda,二进制为11011010/z9 沿左前轮逆时针转0x7a,二进制为01111010/z10 沿右前轮逆时针转0x5e,二进制为01011110/z11 沿右前轮逆时针转0x5b,二进制为01011011int hdjc();/ 灰度检测int hwjc();/ 红外检测void zttz();/ 姿态调整void xzsm();/ 扫描void xzsm1

5、();/ 旋转扫描void jingong();/ 进攻void delay(uint i);void main()m=0;sec1=2;/一秒count1=0;/1 代表 10 微秒,sj1=20*sec1+count1;/ 左转时间sec2=2;count2=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;I

6、E=0x82;TH0=(65536-50000)/256;TL0=(65536-50000)%256;/左转 45 度/*con=z2;count=0;sec=0;/秒置 0TR0=1;/ 定时器 1 开始工作doa=hdjc();/ 灰度检测b=hwjc();/ 红外检测sj=sec*20+count;while(a=0)&&(b=0)|(b=4)&&(sj<=sj1);TR0=0;/ 定时器 1 停止工作 */前进到擂台中间con=z0;count=0;sec=0;/秒置 0TR0=1;/ 定时器 1 开始工作doa=hdjc();/ 灰度检测b=hw

7、jc();/ 红外检测sj=sec*20+count;while(a=0)&&(b=0)&&(sj<=sj2);TR0=0;/ 定时器 1 停止工作a=hdjc();b=hwjc();while(1)if(a=0)|(a=5)|(a=8)if(b=0)xzsm();/ 未遇到边沿,未遇到敌人,旋转扫描elseif(b=1)|(b=2)xzsm1();elseif(b=3)|(b=4)jingong();/ 遇到敌人,进攻elsezttz();/ 遇到边沿,但没发现敌人,调整姿态void delay(uint i)uint x,y;for(x=i;x>

8、0;x-)for(y=110;y>0;y-);/灰度检测int hdjc()int i=0;if(f3=0)&&(f2=0)&&(f1=0)&&(f0=1) i=1;/0001,if(f3=0)&&(f2=0)&&(f1=1)&&(f0=0) i=2;/0010,if(f3=0)&&(f2=0)&&(f1=1)&&(f0=1) i=6;/0011,if(f3=0)&&(f2=1)&&(f1=0)&&

9、(f0=0) i=3;/0100,if(f3=0)&&(f2=1)&&(f1=1)&&(f0=1) i=8;/0110,if(f3=1)&&(f2=0)&&(f1=0)&&(f0=0) i=4;/1000,if(f3=1)&&(f2=0)&&(f1=0)&&(f0=1) i=5;/1001,if(f3=1)&&(f2=1)&&(f1=0)&&(f0=0) i=7;/1100,return(i);左后遇到边

10、沿左前遇到边沿左边两个都遇到边沿右前遇到边沿前面两个都遇到边沿右后遇到边沿后面两个都遇到边沿右边都两个遇到边沿/红外检测int hwjc()int i=0;if(f5=0)&&(f6=0) i=3;elseif(f4=0)|(f5=0) i=1,m=1;if(f6=0)|(f7=0) i=2,m=2;if(f8=0) i=4;return(i);/旋转扫描函数void xzsm()intj,k;j=0;k=0;do/前进扫描if(j>=1)if(a=0)con=z0;if(a=5)con=z0;elseif(a=8)con=z1;elsej+;/*con=z1;j+;el

11、secon=z0;*/count=0;sec=0;/秒置 0TR0=1;/ 定时器 1 开始工作doa=hdjc();/ 灰度检测b=hwjc();/ 红外检测sj=sec*20+count;/ 计时while(a=0)&&(b=0)&&(sj<=sj3);/发现边沿,敌人,到达定时,则跳出TR0=0;/ 定时器 1 停止工作if(a=0)&&(b=0)con=z3;count=0;/100 毫秒置 0sec=0;/秒置 0TR0=1;doa=hdjc();/ 灰度检测b=hwjc();/ 红外检测sj=sec*20+count;/ 计时w

12、hile(a=0)&&(b=0)&&(sj<=sj4);/发现边沿,敌人,到达定时,则跳出TR0=0;/ 定时器 1 停止工作while(a=0)|(a=5)|(a=8)&&(b=0);/发现边沿,敌人,则跳出void xzsm1()if(m=1)con=z2;elseif(m=2)con=z3;count=0;/100 毫秒置 0sec=0;/秒置 0TR0=1;doa=hdjc();/ 灰度检测b=hwjc();/ 红外检测sj=sec*20+count;/ 计时while(a=0)&&(b!=0)&&(

13、b!=3)&&(b!=4)&&(sj<=sj5);/发现边沿,敌人,到达定时,则跳出TR0=0;/ 定时器 1 停止工作if(sj>sj5)docon=0x00;while(!(f4=1)&&(f7=1);/姿态调整函数void zttz()doswitch(a)case 1:con=z0;delay(400);con=z3;delay(400);con=z0;break;/前进,右转,后退case 2:con=z1;delay(400);con=z2;delay(400);con=z1;break;/后退,左转,前进case 3:con=z1;delay(400);con=z3;delay(400);con=z1;break;/后退,右转,前进case 4:con=z0;delay(400);con=z2;delay(400);con=z0;break;/前进,左转,后退case 6:con=z3;delay(900);con=z1;break;case 7:con=z2;delay(900);con=z1;break;a=hdjc();b=hwjc();while(a!=0)&&(a!=5)&&(a!=8);/ 调整姿态,正对边沿跳出/进攻函数void jingong()doswi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论