//**********************正向旋转相序表,逆时针*****************************
unsigned char code FFW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};
//**********************反向旋转相序表,顺时针*****************************
unsigned char code REV[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};
//***********************延时子程序********************************
/*void delay(unsigned int t)
{
unsigned int k;
while(t--)
{
for(k=0; k<125; k++)
{}
}
} */ //参考延时函数
void delay(unsigned int s)
{
int t,k;
for(t=0;tfor(k=0;k<100;k++); //电机调速,脉冲时间设定
}
//**********************步进电机正转******************************
void motor_ffw(unsigned int n)
{
unsigned char i;
unsigned int j;
for (j=0; j<8**n; j++)
{
for (i=0; i<8; i++)
{
P1 = FFW[i];
delay(1); //电机调速,脉冲时间设定
}
}
}
//*********************步进电机反转********************************
void motor_rev(unsigned int n)
{
unsigned char i;
unsigned int j;
for (j=0; j<8**n; j++)
{
for (i=0; i<8; i++)
{
P1 = REV[i];
delay(1);
}
}
}
//*************************主程序*********************************
main()
{
while(1)
{
motor_ffw(1); //电机正转1圈
delay(100); //转换间隔时间
motor_rev(2); //电机反转2圈
delay(100); //转换间隔时间
}
}