求利用51单片机实现控制步进电机(PWM电机)前进、后退、加减速 的程序(C语言),以及电路图 不胜感激

电路图案要完整,能看清 多谢!!

#include "reg52.h"

 void delay(unsigned int t);

 //Motor

sbit F1 = P1^0;

sbit F2 = P1^1;

sbit F3 = P1^2;

sbit F4 = P1^3;

unsigned char code FFW[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6}; //反转

unsigned char code FFZ[8]={0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xfe}; //正转

unsigned int  K;


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

*                   *

*                       æ­¥è¿›ç”µæœºé©±åŠ¨          *

*                   *

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

void  motor_ffw()

 {

   unsigned char i;

   unsigned int  j;

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

    {

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

        {

          if(K==1) P1 = FFW[i]&0x1f;  //取数据

    if(K==2) P1 = FFZ[i]&0x1f;

          delay(15);                   //调节转速

        }

     }

 }

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

*

*              å»¶æ—¶ç¨‹åº

*

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

 void delay(unsigned int t)

{                          

   unsigned int k;

   while(t--)

   {

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

     { }

   }

}


main()

 {

    while(1)

 {

  K=1;

  motor_ffw();

  K=2;

  motor_ffw();

  }

}

 

给你个例子,这是正反转的可以用这个修改出加减速程序

追问

unsigned char code FFZ[8]={0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xfe}; //正转 这是哪种步进电机的? 如果是28byj-48电机 数组里面怎么改(8拍4拍都可以)

温馨提示:答案为网友推荐,仅供参考