?? bizhang1.c
字號:
/************************/
/* */
/* 避障程序模塊 */
/* */
/************************/
#include <reg51.h>
bizhang()
{ unsigned int k;
int zai ,p22;
for(zai=0;zai==0;) /*判斷前方是否有障礙物,有障礙物則左轉直到無障礙物*/
{ if(p3_2==0) /*如果K1鍵按下則返回主函數*/
{ delay1ms(1000,1000);
return;
}
leftrun();
zai=p2_7;
}
xianshi(); /*調用顯示函數*/
for (k=0;k<8000;k++) /*再左轉一定的余量,考慮車身的大小*/
{ if(p3_2==0) /*如果K1鍵按下則返回主函數*/
{ delay1ms(1000,1000);
return;
}
leftrun();
}
xianshi(); /*調用顯示函數*/
for(k=0;k<15000;k++) /*前進一定的距離*/
{ if(p3_2==0)
{ delay1ms(1000,1000);
return;
}
forwordrun();
zai=p2_7;
if(zai==0) /*如果再次碰到障礙物,則返回主函數重新避障*/
return;
}
xianshi(); /*調用顯示函數*/
for(k=0;k<10000;k++) //右轉直到碰到障礙物,但限定了最大的右轉量//
{ if(p3_2==0) /*如果K1鍵按下則返回主函數*/
{ delay1ms(1000,1000);
return;
}
zai=p2_7;
if (zai)
rightrun();
else
break;
}
xianshi(); /*調用顯示函數*/
for(k=0;k<1000;k++) //左轉一定余量//
{ if(p3_2==0)
{ delay1ms(1000,1000);
return;
}
leftrun();
}
xianshi();
for(p22=0;p22==0;) //前進直到尋到跡//
{ if(p3_2==0) /*如果K1鍵按下則返回主函數*/
{ delay1ms(1000,1000);
return;
}
zai=p2_7;
p22=p2_2;
if (!zai) //如果碰到障礙物則左轉一定量//
{ for(k=0;k<20000;k++)
{ if(p3_2==0)
{ delay1ms(1000,1000);
return;
}
leftrun();
}
forwordrun();
xianshi(); //顯示//
}
return;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -