请教智能小车的电机转动问题

2019-07-15 16:45发布

小弟最近开始学做一个基于51单片机的循迹小车,却在第一步遇上了麻烦。
我用L298n步进电机驱动
OUT1,OUT2接左边电机;
OUT3,OUT4接右边电机;
然后写了一个让两个电机转动的程序:
#include <reg51.h>

sbit IN1=P1^0;
sbit IN2=P1^1;
sbit IN3=P1^2;
sbit IN4=P1^3;

//延时函数
void delay(unsigned int k)
{
unsigned int x,y;
for(x=0;x<k;x++)
for(y=0;y<2000;y++);
}
/************************************************************************/
/*--主函数--*/
void main(void)
{

delay(100);
while(1)
{
IN1=1;
IN2=0;
IN3=1;
IN4=0;
}
}



问题是接好线后电机不转了。
对于左边的电机,我将IN1和IN2分别与P1.0和P1.1相接,电机不转;
当我将其中一个断开(只将IN1与P1.0相接,IN2断开),电机就转动了;反过来只接IN2也是这样。
IN1,IN2其中任意一个与单片机的IO口的任意一只引脚相接,另外一个断开,都会让电机转动;
两个同时接上就不动了。IN3和IN4的情况也是这样。




请问这是怎么回事呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。