1、sbit HW3=P02;sbit HW4=P03;sbit ENA=P32; /PWM输入sbit ENB=P33;sbit IN5=P24; /电机sbit IN6=P25;sbit IN7=P26;sbit IN8=P27;void delay(uint x) /延时1ms uint i,j; for(i=0;ix;i+) for(j=0;j120;j+);void qianjin() /小车前进 IN5=0; IN6=1; IN7=0; IN8=1; dj1=15; dj2=15;void turnleft2() /小车前进向左微调 dj1=7; dj2=20;void turnrig
2、ht2() /小车前进向右微调 dj1=20; dj2=7;void right() IN7=1; IN8=0; dj2=25;void left() IN5=1; IN6=0; dj1=25;void stop() /小车后退 dj1=0; dj2=0;void init() /初始化 TMOD=0x01; TH0=(65536-500)/256; TL0=(65536-500)%256; EA=1; ET0=1; TR0=1;void timer0() interrupt 1 using 1 /定时器0中断 t+; if(t=50) t=0; void main() init(); whi
3、le(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
4、); 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);