① 5线4相步进电机如何应用51单片机实现单步运转,求C程序(用ULN2003控制电机)
#include <reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
//sbit key1=P1^4;
void delay(uint z);
unsigned char code RUN[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
unsigned char code BACK[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};
void BACK_motor()/肆滚/反转子程序
{
uchar j;
for(j=0;j<8;j++)
{
P0=BACK[j];
delay(2);
}
}
void RUN_motor()//正转子程序
{
uchar i;
for(i=0;i<8;i++)//旋转带乱一周 内部旋转一裂行余周
{
P0=RUN[i];
delay(2);
}
}
void main()
{
while(1)
{
RUN_motor();
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=950;y>0;y--);
}
我用的12C60S2控制,L298驱动的,你用2003,是一样的,参考下吧
② 单片机程序 单步执行可以 直接运行不可以
需要时间等待,单步的时候程序运行时间很充裕,直接运行就不一样了,你在程序的需要等待语句间加wait函数