51单片机如何控制二相四拍步进电机的启动和停止?驱动器采用

单片机如何调用步进电机运转程序,如果想停止不转。那又该怎么设置呢?最好能有完整C语言程序,附加注释在上面。求大神帮忙啊!
驱动器采用L298驱动

#include<reg52.h>

/*****P1.0=A ;P1.1=B ;P1.2=A' ; P1.3=B'****/
//////////////////////////////////////////////////////////////////////////////////////////////
/*******************************正转数组**************************************************/
//code unsigned char run[4]={0x0e,0x0d,0x0b,0x07}; //两相四线四拍工作方式
/*******************************反转数组**************************************************/
code unsigned char run[4]={0x07,0x0b,0x0d,0x0e}; //两相四线四拍工作方式

unsigned char s,i,j,k;

void delay(i)//延时函数
{
for(j=0;j<i;j++)
for(k=0;k<250;k++);
}
main()
{
unsigned char z,y;
y=30; //定义延时时间,时间越长电机转速越慢反之则快
while(1)
{
for(z=0;z<4;z++)
{
P1=run[z];
delay(y);
}
}
}追问

非常感谢你,真心有用。还有两个问题要请教你。

    有两相二拍的步进电机吗?如果有,那要实现对它的控制,C程序该如何写呢?

    A 、B、A' 、B'*分别指的是哪四个引脚?也就是它们的排列位置。

    如果想要电机停止,是不是四个引脚的点评都设置为0就可以了?

刚接触步进电机,对它不是很了解,希望能得到你的帮忙。

追答

嗯。没有二拍的。控制的话根据它的时序控制。A B就是它的两相四根线。

温馨提示:内容为网友见解,仅供参考
无其他回答

51单片机如何控制四个两相四线57步进电机
接线图嘛...如果你不想用驱动芯片,也可以用8条IO口线来控制一个电机,外围电路的话,可以用两个H桥来控制一个电机,每个H桥驱动两相中的一相,这样需要四个8位端口,标准51刚好够用,但是就没法接按钮了,所以需要扩展.如果采用步进电机专用驱动芯片的话,则用两条IO口线就可以控制它的正反转和停止了,那...

怎样用51单片机接两相步进电机驱动器来控制步进电机?
例如:用到P1^0和P1^1;把P10制低电平,P11制高电平,延时一段时间后,P10制高电平 P11制低电平,如此循环,看程序:include "reg52.h"sbit P10=P1^0;sbit P11=P1^1;void delay(unsigned int x)P10=0;P11=1;delay(1000);P10=1;P11=0;delay(1000);} }1-B1-B1A0;两相四线程序 接...

二项四线步进电机用52单片机的话,选用什么驱动芯片
建议用L297+L298做驱动器:它能自己生成步进电机工作所需相序,在很大程度上能够减轻软件设计的负担,控制比较简单,只需要发送脉冲即可;ULN2003其实也可以(如果做比较小的东西的话),ULN2003是一个非门电路,包含7个单元,单独每个单元驱动电流最大可达350mA,能够直接驱动直流电机或步进电机,但是,ULN2003...

如何用51单片机控制4个步进电机同时工作
一个步进电机,比如4相5线那种,4个IO口可控制一个,四个步进电机就要16个,驱动芯片用ULN2003即可。当然,如果你的IO口不允许使用这么多,那也可以通过串转并的方法,扩展IO口,比如用74HC595,三根IO口控制它,它可以级联,三根线可以控制很多片。一片为8位,两片就为16位,3片为24位 …… 只要...

51系列单片机 程序设计 用4个开关控制步进电机进行启动停止正转和反转...
1、分析功能需求:四个按键控制步进电机的四种状态,那么必须要在程序中有IO口按键扫描程序;而且步进电机的控制一定要先设置好定时器。2、功能模块定义:四个按键对应四个函数,每个函数实现不同功能,对于正反转,先定义控制电机每一步时P0口的数据列表,把列表地址赋给DPTR,即TAB1,和TAB2,分别为正...

51单片机控制步进电机正反转、加减速
51单片机控制步进电机正反转、加减速 我本来想实现步进电机自由调速的,可现在的程序如果先加速就不能减速了,如果先减速就不能加速了并且减几下就变得很慢了(经测试上下限都是可以正常速度运转的)求各位路过的大侠指点... 我本来想实现步进电机自由调速的,可现在的程序如果先加速就不能减速了,如果先减速就不能...

51单片机控制步进电机
首先我说下思路:我们采用P1口来采集ADC0832的8位数据,用P0.0口控制步进电机动作,利用T0的时间中断来采集P1口的ADC0832数据并做出比较后设置步进电机启动标志位start=1;并设置他的运行频率,当然,楼主没说怎么比较,我这就只是写了个简单的例子,一通百通,希望对你有帮助 下面是程序:include <reg...

如何用c51编写51单片机控制步进电机转动程序
pc总是指向下一条指令的首地址的。但是在返回的时候得看堆栈中的数了。上面程序执行完之后:(A)=50H;sp=50H(因为在程序中,sp减了两次,后来又加了两次,在程序最后ret有在返回的时候减了两次,即地址出栈,故最终结果是50h。(51h)=30h;(52h)=50h;因为ret指令返回时,出栈的结果是高...

如何用单片机控制步进电机?
当控制脉冲Ui为低电平时,光耦OT截断,线圈W断电,步进电机停止转动。2、图中W上的电流、电压波形图:电流波形图:由于步进电机驱动是通过控制脉冲Ui来实现的,因此W上的电流波形会随着脉冲信号的变化而变化。当控制脉冲Ui为高电平时,W上的电流为正向脉冲;当控制脉冲Ui为低电平时,W上无电流流过。电...

求51单片机控制步进电机程序
\/ 函数名:步进电机正反转一步 调 用:MOTOR()参 数:Mot=0,电机反转一步 ,Mot=1电机正转 返回值:无 结 果:电机坐标 Motor 自动加一或减一,电机走一步 \/ void MOTOR(void){ \/\/步进电机正反转一步子程序 code unsigned char MOTOR_DB[]={0x00,0xb0,0x90,0xd0,0x50,0x70,0x...

相似回答