微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51单片机学习之3-步进电机

51单片机学习之3-步进电机

时间:11-30 来源:互联网 点击:

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函数

}

步进电机主要知道它的工作原理和计算角度。步进电机最大的方便是可以精确控制转动角度和速度。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top