51单片机为什么驱动不了步进电机,程序如下,结果是里面一直在动,可是转头就是不转,,,

#include"reg51.h"
int table[]={0x03,0x06,0x0c,0x09};
void delay(int i)
{
int j;
while(i--)
{
j=100;
while(j--);
}
}
main()
{
int i;
while(1)
{
for(i=0;i<4;i++)
{
P2=table[i];
delay(20);
}
}
}

第1个回答  2013-07-22

把int table[]={0x03,0x06,0x0c,0x09};换为int table[]={0x08,0x04,0x02,0x01};

本回答被提问者采纳
第2个回答  2013-07-23
时间间隔太快了也会导致不转,现象是电机在响但是电机轴不动,看看是不是这个问题
第3个回答  2013-07-21
里面有颤动,一般就是电压不够,你可以测一下
第4个回答  2013-07-21
相序不对,改变一下接线的顺序
第5个回答  2013-07-21
delay(20);太小了追问

大了也不行哎,,我改为40,60,100,都不行,,

追答

改1000

追问

1000不行,,越大,转的越慢,1000就基本不动了

追答

找个开发板上的例程看下吧

相似回答