#include
#define uchar unsigned char
#define uint unsigned int
//--------------------------------
uchar step1[] = {0x05, 0x06, 0x0A, 0x09};
uchar stepx = 0;
//--------------------------------
void zs(uint a)
{
while(a--);
}
//--------------------------------
void zheng(void)
{
P0 = step1[stepx]; //走一步
stepx++;
if (stepx >= 4) stepx = 0;
}
//--------------------------------
void fan(void)
{
P0 = step1[stepx]; //走一步
stepx--;
if (stepx == 255) stepx = 3;
}
//--------------------------------
void main ()
{
uint i;
while(1) {
for(i = 0; i < 400; i++) {//正转400步
zheng(); //走一步
zs(90); //控制转速
}
for(i = 0; i < 400; i++) {//反转400步
fan(); //走一步
zs(90); //控制转速
}
}
}
//--------------------------------
退另一段距离的话是不是就是让电机反转。如果是的话你还要再设置一个反转数组,加一个反转程序,与上面类似。