新闻  |   论坛  |   博客  |   在线研讨会
步进机
1356170559 | 2017-08-24 21:02:11    阅读:3782   发布文章

先分享两段代码,一个是简易的(实现步进机一个方向转动),一个较复杂(改编于其他人代码,可以实现以按键控制步进机正传一圈停,反转一圈停,以及中途停止)。按键可以改为蓝牙控制。节约i/o口。pQKqDS


#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uint i;

uchar code step_table[]={
0x08,0x0c,0x04,0x06,
0x02,0x03,0x01,0x09};    //八个节拍。


void delay(uint t)
{
  while(t--);
}
void main()
{
 while(1)
 {
  for(i=0;i<8;i++)
  {
   P1=step_table[i];
   delay(200);
  }
 }
}





#include<reg52.h>
 #include<intrins.h>
 #define uchar unsigned char
 #define uint unsigned int
 
 uchar code CCW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};   //逆时钟旋转相序表
 uchar code CW[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};    //正时钟旋转相序表

 sbit K1=P3^4;  //反转按键
 sbit K2=P3^5;  //正转按键
 sbit K3=P3^6;  //停止按键
 sbit FMQ=P3^7;  //  蜂鸣器
 
void delaynms(uint aa)
{
  uchar bb;
  while(aa--)
  {
   for(bb=0;bb<115;bb++)     //1ms基准延时程序
   {
    ;
   }
  }
 
}
void delay500us(void)
{
  int j;
  for(j=0;j<57;j++)
  {
   ;
  }
}

void beep(void)
{
  uchar t;
  for(t=0;t<100;t++)
  {
   delay500us();
 FMQ=!FMQ;   //产生脉冲
  }
  FMQ=1;    //关闭蜂鸣器
}

void motor_ccw(void)
{
  uchar i,j;
  for(j=0;j<8;j++)                 //电机旋转一周,不是外面所看到的一周,是里面的传动轮转了一周
  {
   if(K3==0)
 {
   break;   //如果K3按下,退出此循环
 }
 for(i=0;i<8;i++)  //旋转45度
 {
   P1=CCW[i];
   delaynms(10);   //调节转速
 }
  }
}

void motor_cw(void)
{
  uchar i,j;
  for(j=0;j<8;j++)
  {
   if(K3==0)
 {
   break;   //如果K3按下,退出此循环
 }
 for(i=0;i<8;i++)  //旋转45度
 {
   P1=CW[i];
   delaynms(2);   //调节转速
 }
  }
}


void main(void)
{
 uchar r;
 uchar N=64;          //因为步进电机是减速步进电机,减速比的1/64 ,
       //所以N=64时,步进电机主轴转一圈
 while(1)
 {
   if(K1==0)
   {
    beep();
  for(r=0;r<N;r++)
  {
    motor_ccw();  //电机逆转
    if(K3==0)
    {
     beep();
   break;
    }
  }
   }
   else if(K2==0)
   {
    beep();
        for(r=0;r<N;r++)
  {
    motor_cw();    //电机反转
    if(K3==0)
    {
     beep();
   break;
    }
  }
   }
   else
   P1=0xf0;    //电机停止
 }

}     
 
 







*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客