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

电路图案要完整,能看清多谢!!... 电路图案要完整,能看清 多谢!! 展开
 我来答
os5858哦哦哦
2013-05-03 · 超过29用户采纳过TA的回答
知道答主
回答量:142
采纳率:0%
帮助的人:79.6万
展开全部

#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拍都可以)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式