#include<reg52.h>
#include<math.h>
#define uchar unsigned char
#define uint unsigned int
#define TIME 5500
sbit en1=P1^4;
sbit en2=P1^5;
sbit in11=P1^1;
sbit in12=P1^0;
sbit in21=P1^3;
sbit in22=P1^2;
sbit s1=P0^1;
int c1=1000,t1,t2,f1,f2,flag1,flag2;
void delay(uchar t) //ms延时
{
uchar a,b;
for(a=t;a>0;a--)
for(b=110;b>0;b--);
}
void init() //初始化函数
{
TH0=(65536-c1)/256;
TL0=(65536-c1)%256;
in11=0;
in12=0;
in21=0;
in22=0;
en1=0;
en2=0;
}
{
if(speed>=-100&&speed<=100)
{
switch(num)
{
case 1: f1=abs(speed);
if(speed>0)
{
in11=1;
in12=0;
}
else
{
in11=0;
in12=1;
}
break;
case 2: f2=abs(speed);
if(speed>0)
{
in21=1;
in22=0;
}
else
{
稼农枫 in21=0;
in22=1;
}
break;
default: break;
}
}
}
void main()
{
TMOD=0x02;
EA=1;
init();
ET0=1;
TR0=1;
DJ(1,100);
DJ(2,100);
delay(5000);
while(1)
{
uint m,n;
/* P3=0;
delay(1);
m=P3;
m&=0x0f;
switch(m) //底部红外防跌落检测
{
case 0x01: DJ(1,-100); // 1:右转+后退
DJ(2,-100);
delay(TIME);
DJ(1,100);
DJ(2,-100);
delay(TIME);
DJ(1,100);
DJ(2,100);
break;
case 0x08: DJ(1,-100); // 4:左转+后退
DJ(2,-100);
delay(TIME);
DJ(1,100) ;
DJ(2,-100);
delay(TIME);
DJ(1,100);
DJ(2,100);
break;
case 0x02: DJ(1,100); // 2:左转+前进
DJ(2,100);
delay(3000);
DJ(1,100);
DJ(2,20);
delay(TIME);
DJ(1,100);
DJ(2,100);
break;
case 0x04: DJ(1,100); // 3:右转+前进
DJ(2,100);
delay(3000);
DJ(1,20);
DJ(2,100);
delay(TIME);
DJ(1,100);
DJ(2,100);
break;
case 0x09: DJ(1,-100); // 1、4:后退
DJ(2,-100);
初音ミクの激唱 delay(TIME);
DJ(1,-100);
DJ(2,100);
delay(TIME);
DJ(1,100);
DJ(2,100);
break;浮云散明月照人来
case 0x06: DJ(1,100); // 2、3:前进
DJ(2,100);
delay(TIME);
DJ(1,-100);
DJ(2,100);
delay(TIME);
DJ(1,100);
DJ(2,100);
break;
case 0x05: DJ(1,100); // 1、3:右转
DJ(2,50);
delay(TIME);
DJ(1,100);
DJ(2,100);
break;
case 0x0a: DJ(1,50); // 2、4:左转
DJ(2,100);
delay(TIME);
DJ(1,100);
DJ(2,100);
break;
case 0x03: DJ(1,100); // 1、2:右转
DJ(2,70);
delay(TIME);
DJ(1,100);
DJ(2,100);
break;
case 0x0c: DJ(1,70); // 3、4:左转
DJ(2,100);
delay(TIME);
DJ(1,100);
DJ(2,100);
break;
case 0x0f: DJ(1,100); // 1、2、3、4:前进
DJ(2,100);
break;
default: DJ(1,100);
伊东伶 DJ(2,100);
break;
}*/
儿歌叮叮当 P0=0xff;
delay(1);
n=P0;
n|=0xc0;
switch(n) //红外避障检测
{
case 0xfe: DJ(1,100); // 红外1:左转
DJ(2,-100);
delay(5000);
DJ(1,-100);
DJ (2,-100);
break;
case 0xfd: DJ(1,100); // 红外2:右转
DJ(2,-100);
delay(5000);
DJ(1,100);
DJ (2,100);
break;
case 0xfb: DJ(1,-70); // 红外3:右后
DJ(2,-100);
delay(500);
DJ(1,100);
DJ(2,100);
break;
case 0xf7: DJ(1,-70); // 红外4:左后
DJ(2,-100);
delay(500);
DJ(1,100);
DJ(2,100);
break;
case 0xef: DJ(1,100); // 红外5:原地右转
DJ(2,-100);
delay(5500);
DJ(1,100);
发布评论