登录|立即注册|使用QQ帐号登录
论坛 > 51单片机
发帖|
看2694|回1|收藏
楼主 ID:266830 只看他
2017-12-25 23:12
51单片机控制步进电机正转5圈,反转5圈。
单片机源程序如下:

代码:

  1. //步进电机正反转
  2. //电机使用端口P1.0,P1.1,P1.2,P1.3
  3. //单双八拍工作方式:A-AB-B-BC-C-CD-D-DA
  4. //
  5. #include <reg51.h>
  6. #include <intrins.h>


  7. //**********************正向旋转相序表*****************************
  8. unsigned char code FFW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};


  9. //**********************反向旋转相序表*****************************


  10. unsigned char code REV[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};


  11. //***********************延时子程序********************************


  12. void delay(unsigned int t)
  13. {                          
  14.    unsigned int k;
  15.    while(t--)
  16.    {
  17.      for(k=0; k<125; k++)
  18.      {}
  19.    }
  20. }





  21. //**********************步进电机正转******************************


  22. void  motor_ffw(unsigned int n)
  23. {
  24.    unsigned char i;
  25.    unsigned int  j;
  26.    for (j=0; j<8*64*n; j++)
  27.     {
  28.       for (i=0; i<8; i++)
  29.         {
  30.           P1 = FFW[i];
  31.          delay(1);
  32.          }
  33.     }
  34. }

  35. //*********************步进电机反转********************************


  36. void  motor_rev(unsigned int n)
  37. {
  38.     unsigned char i;
  39.   unsigned int  j;
  40.   for (j=0; j<8*64*n; j++)
  41.       {
  42.         for (i=0; i<8; i++)
  43.         {
  44.           P1 = REV[i];
  45.           delay(1);
  46.         }
  47.       }
  48. }





  49. //*************************主程序*********************************
  50. main()
  51. {  
  52.    while(1)                    
  53.     {
  54.        motor_ffw(5);          //正转5圈
  55.        delay(1000);
  56.        motor_rev(5);          //反转5圈
  57.        delay(1000);


  58.     }
  59. }

所有资料51hei提供下载:
28BYJ48.zip (693 Bytes)
(下载次数: 44, 2017-12-25 23:12 上传)

下载积分: 黑币 -5




沙发 ID:421308 只看他
2019-7-15 15:08
这个加了驱动板吗

51黑电子论坛

Powered by Discuz! X3.1

首页|标准版|触屏版|电脑版