51单片机学习之3-步进电机
for(;x>
for(y=10;y>
硬件反应的过来
DA=0; //A相断电
DB=1; //B相通电
delay(delayCout);//需要延时一小段时间让硬件反应的过来
DB=0; //B相断电
DC=1; //C相通电
delay(delayCout); //需要延时一小段时间让硬件反应的过来
DC=0; //C相断电
DD=1; //D相通电
delay(delayCout);//需要延时一小段时间让硬件反应的过来
DD=0;//D相断电
}
while(1);//旋转完后就停在这里,避免重复执行main函数
}
上面那份源码很好理解,下面是按逻辑运算实现的通断A、B、C、D四相:
#include"reg51.h"
#defineucharunsignedchar
#defineuintunsignedint
voiddelay(uintx)
{
uinty;
for(;x>0;x--)
for(y=10;y>0;y--);
}
voidmain()
{
uinti=512;
ucharXh;
uchardelayCout=25;
while(i--)//循环512次就转动360°的角度。调整角度
{
Xh=3;
P1=0x01;//P1==00000001相当于P1^0置1将A相通电
delay(delayCout);//延时一段时间让步进电机能反应过来
while(Xh--)
{
P1<=1;//第一次循环00000001<1=00000010相当于P1^1置1同时将P1^0置0A相断电B相通
电每次循环都会将1向左移动一位
delay(delayCout);//这里是调节切换速度,即转动速度
}
}
while(1);//旋转完后就停在这里,避免重复执行main函数
}
步进电机主要知道它的工作原理和计算角度。步进电机最大的方便是可以精确控制转动角度和速度。
51单片机步进电 相关文章:
- 51单片机驱动步进电机(汇编语言)(12-01)
- 51单片机驱动步进电机__终极(完整版)(11-30)
- 51单片机—步进电机程序(11-29)
- 51单片机控制步进电机转动以及用lcd1602显示(11-28)
- 51单片机实现步进电机加减速的例子-加注释(11-22)
- 基于51单片机的步进电机驱动器(11-20)