}
void zuo() //左转函数 {
P1=0x04; for(a=0;a<23;a++) { time(); } P1=0x00; for(a=0;a<12;a++) { time(); } return; }
void you() //右转函数 {
P1=0x01; for(a=0;a<23;a++) { time(); } P1=0x00; for(a=0;a<12;a++) { time(); } return; }
- 11 -
void hou() //反向倒退函数 {
P1=0x0a; delay(150); P1=0x00; P2=0xff; sec=0; init_timer(); for(a=0;a<1000;a++) { time(); } sec=0; P2=0xff; P3=0xff; while(1) {
r=(P3&0x0f); if((r&0x01)==0x01) {
daoche(); //倒车函数 } else {
P1=0x0a; for(a=0;a<23;a++) { time(); }
P1=0x00;
- 12 -
for(a=0;a<12;a++) { time(); } } } }
void ting() //停车函数 { while(1) { P1=0x00; P2=0x00; } }
void daoche() //倒车函数 {
P3=0xff; while(1) {
v=(P3&0x0f);
if((v&0x0fe)==0x0e) {
P1=0x05; delay(150); ting(); //停车函数 }
else if((v&0x08)==0x08) {
- 13 -
P1=0x0a;
for(a=0;a<23;a++) { time(); } P1=0x00;
for(a=0;a<12;a++) { time(); } }
else if((v&0x02)==0x02) {
P1=0x08;
for(a=0;a<23;a++) { time(); } P1=0x00;
for(a=0;a<12;a++)
{ time();
} }
else if((v&0x04)==0x04) {
P1=0x02;
for(a=0;a<23;a++)
{ time();
- 14 -
} P1=0x00;
for(a=0;a<12;a++)
{ time(); } } } }
void init_timer() {
TMOD=0x01; TH0=-(2400/256); TL0=-(2400%6); IE=0x82; TR0=1; }
void T0_srv(void) interrupt 1 {
TH0=-(2400/256); TL0=-(2400%6); deda++; }
void conv() { if(deda<=100)d_05s=0;
- 15 -