欢迎您光临机械网,如有问题请及时联系我们。

51单片机编一个控制步进电机转动的程序?51单片机,编一个控制步进电机转动的程序?

作者:机械网
文章来源:本站

  #include <reg51.h> //51芯片管脚定义头文件

  #include <intrins.h>//内部包含延时函数 _nop_();

  #define uchar unsigned char

  #define uint unsigned int

  uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};

  uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};

  /********************************************************/

  /*

  /* 延时t毫秒

  /* 11.0592MHz时钟,延时约1ms

  /*

  /********************************************************/

  void delay(uint t)

  {

  uint k;

  while(t--)

  {

  for(k=0; k<125; k++)

  { }

  }

  }

  /********************************************************/

  /*

  /*步进电机正转

  /*

  /********************************************************/

  void motor_ffw(uint n)

  {

  uchar i;

  uint j;

  for (j=0; j<12*n; j++) //转1×n圈

  {

  for (i=0; i<8; i++) //一个周期转30度

  {

  P1 = FFW[i]; //取数据

  delay(15); //调节转速

  }

  }

  }

  /********************************************************/

  /*

  /*步进电机反转

  /*

  /********************************************************/

  void motor_rev(uint n)

  {

  uchar i;

  uint j;

  for (j=0; j<12*n; j++) //转1×n圈

  {

  for (i=0; i<8; i++) //一个周期转30度

  {

  P1 = REV[i]; //取数据

  delay(15); //调节转速

  }

  }

  }

  /********************************************************

  *

  * 主程序

  *

  *********************************************************/

  main()

  {

  while(1)

  {

  motor_ffw(5); //电机正转

  delay(5000); //换向延时

  //motor_rev(5); //电机反转

  //delay(1000); //换向延时

  }

  }

  /********************************************************/

  

51单片机编一个控制步进电机转动的程序?51单片机,编一个控制步进电机转动的程序?

来源:文章来源于网络,如有侵权请联系我们及时删除。本文由机械网转载编辑,欢迎分享本文!