⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 l297_driven_stepper_motor.c

📁 以L298作为驱动器,采用单片机对步进电机的控制.
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -