📄 l297_driven_stepper_motor.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 + -