#include
sbit up1=P2^0;
sbit down1=P2^1;
sbit up2=P2^2;
sbit down2=P2^3;
sbit s1=P1^0;
int h;
void delay(int t) //误差 0us
{
unsigned char a,b,c;
for (c=0;c
for(b=173;b>0;b--)
for(a=143;a>0;a--);
}
}
void motor(int i)
{ if(i==0)
{up1=0;down1=0;up2=0;down2=0;}//停止
if (i==1)
{up1=1;down1=0;up2=1;down2=0;} //正转
if(i==2)
{up1=0;down1=1;up2=0;down2=1;} //反转
}
void R()
{motor(1);
delay(20);
motor(0);
delay(4);
motor(2);
delay(10);
motor(0);
delay(4);
}
void main()
{
R();
h=s1;
if(h==1)
{R();}
else if(h==0)
{motor(0);}
}
额···我是新手,你看看这个烧到单片机里小车行驶是否有正确。还有控制小车停转的时间t,也就是delay的时间我随便设的,到时候你要转10秒还5秒的自己调整下t的值就好了。
用系统的定时器也可以做,或者软件编程延时,很 简单啊,你只要找准了两根正反转的线
ULN2003是个驱动电路,你只在在单怎机里编程就好了啊,
程序已经在你别的问题中给你了,呵呵