智能循迹小车程序Word文档格式.docx
《智能循迹小车程序Word文档格式.docx》由会员分享,可在线阅读,更多相关《智能循迹小车程序Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
sbitHW3=P0^2;
sbitHW4=P0^3;
sbitENA=P3^2;
//PWM输入
sbitENB=P3^3;
sbitIN5=P2^4;
//电机
sbitIN6=P2^5;
sbitIN7=P2^6;
sbitIN8=P2^7;
voiddelay(uintx)//延时1ms
{
uinti,j;
for(i=0;
i<
x;
i++)
for(j=0;
j<
120;
j++);
}
voidqianjin()//小车前进
IN5=0;
IN6=1;
IN7=0;
IN8=1;
dj1=15;
dj2=15;
voidturnleft2()//小车前进向左微调
dj1=7;
dj2=20;
voidturnright2()//小车前进向右微调
dj1=20;
dj2=7;
voidright()
IN7=1;
IN8=0;
dj2=25;
voidleft()
IN5=1;
IN6=0;
dj1=25;
voidstop()//小车后退
dj1=0;
dj2=0;
voidinit()//初始化
TMOD=0x01;
TH0=(65536-500)/256;
TL0=(65536-500)%256;
EA=1;
ET0=1;
TR0=1;
voidtimer0()interrupt1using1//定时器0中断
t++;
if(t<
dj1)ENA=1;
elseENA=0;
dj2)ENB=1;
elseENB=0;
if(t>
=50)
{
t=0;
}
voidmain()
init();
while
(1)
{
if(num1==0)
{
if(HW1==0&
&
HW2==1&
HW3==1&
HW4==0)
{
qianjin();
}
HW3==0&
turnleft2();
if(HW1==1&
HW2==0&
turnright2();
HW4==1)
if(num2==0&
HW1==0&
delay(500);
if(num2==0&
{
stop();
delay(50);
num1=1;
}
}
if(num1==1)
right();
num2=1;
delay(50);
if(num2==1&
if(num2==1&
num1=2;
}
}
if(num1==2)
num2=2;
if(num3==0&
HW1==1&
num3=1;
delay(10);
stop();
delay(100);
if(num2==2&
if(num2==2&
num1=3;
}
if(num1==3)
num2=3;
if(num2==3&
if(num2==3&
num1=4;
if(num1==4)
num2=4;
if(num3==1&
num3=2;
if(num2==4&
if(num2==4&
num1=5;
}
if(num1==5)
left();
num2=5;
if(num2==5&
HW4==1)
num1=6;
}
if(num1==6)
}
num2=6;
num3=3;
if(num3==3&
num3=4;
if(num2==6&
if(num2==6&
delay(500);
num1=7;
if(num1==7)
num2=7;
if(num3==4&
num3=5;
if(num3==5&
num3=6;
if(num2==7&
HW4==0)
if(num2==7&
{
delay(90000);
}