void Motor_Turn(bit dir)
{
static unsigned char t = 5;
if(dir)
{
if(t++==7)t=0;
}else{
if(t--==0)t=7;
}
switch(t)
{
case 0:
MOTO_B = 1;
break;
case 1:
MOTO_A = 0;
break;
case 2:
MOTO_C = 1;
break;
case 3:
MOTO_B = 0;
break;
case 4:
MOTO_D = 1;
break;
case 5:
MOTO_C = 0;
break;
case 6:
MOTO_A = 1;
break;
case 7:
MOTO_D = 0;
break;
}
delay_ms(1);
}
不知道想问下,就是一个8步循环发脉冲的程序啊。
dir是正反转控制,正转0-7依次走,倒转7-0顺序
每一个时刻引脚的电平如下图。
如果解决了你的疑问,采纳一下吧
你想问啥...