步进电机1.c

来自「硬件电路是C51单片机,1298及2相4线步进电机组成.步进电机驱动程序包含单步」· C语言 代码 · 共 49 行

C
49
字号
#include "at89x52.h"
#define uchar unsigned char 
#define uint unsigned int 
sbit EnA=P3^4;//L298N驱动使能端
sbit EnB=P3^5;
uchar np;

//步进电机运行数据表
const uchar motortb[]={0x08,0x09,0x01,0x05,0x04,0x06,0x02,0x0a};

void delay(uchar t)   //每步延时子程序
{uchar i;
 uint j;
 for(i=0;i<t;i++)
  for(j=0;j<900;j++);
}


//步进电机走一步,d=0时,电机正转;d=1时,电机反转;
//t越在,电机转动越慢.
void a_step(uchar d,uchar t)
{EnA=1;EnB=1;
 if(d&0x01)
   {if(np==0)
      np=7;
	else np--; 
    }
 else 
   {if(np==7)
     np=0;
	else np++;
	}
 P3=(P3&0xf0)|motortb[np];//对P3口低四位置位
 delay(t);
  }

//步进电机走一圈
  void a_turn(uchar d,uchar t)
  {uchar i;
   for(i=0;i<96;i++)
     a_step(d,t);
  }

 void main(void)
 {  np=4;
   while(1)
   a_turn(1,1);
 }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?