怎样用51单片机接两相步进电机驱动器来控制步进电机?

AT89S52的单片机,步进电机驱动器需要一个脉冲信号来驱动电机运转,还需要一个方向信号来控制方向。

刚接触硬件,想做一个小东西来玩的。请各位大仙帮帮忙,能有带注释的源码最好。

脉冲信号就是像流水灯差不多,用两个口。

例如:

用到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;

两相四线程序  接P1口

 

#include "reg52.h"

#define uint unsigned int

#define uchar unsigned char

uchar code tab[]={0xfd,0xfb,0xf7,0xef};

uint i;

void delay(uint x)

{

uint y;

for(;x>0;x--)

{

for(y=0;y<124;y++);  

void main()

 while(1)

P1=tab[i];

i++;

if(i==4)

{

i=0;

}

delay(20);

扩展资料:

同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如ATMEL的89C51(已经停产)、89S51, PHILIPS,和WINBOND等;

常说的已经停产的89C51指的是ATMEL公司的 AT89C51单片机,同时是在原基础上增强了许多特性,如时钟,更优秀的是由Flash(程序存储器的内容至少可以改写1000次)存储器取代了原来的ROM(一次性写入),AT89C51的性能相对于8051已经算是非常优越的了。

参考资料来源:百度百科-步进电机

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-25
你说的是步进电机是2相步进的电机吗?
脉冲信号就是像流水灯差不多的,用两个口
例如:用到P1^0和P1^1
先把P10制低电平,P11制高电平
延时一段时间后
然后P10制高电平 P11制低电平
如此循环

看程序:
#include "reg52.h"
sbit P10=P1^0;
sbit P11=P1^1;
void delay(unsigned int x)
{
unsigned int y;
for(;x>0;x--)
{
for(y=0;y<124;y++);
}
}

void main()
{
while(1)
{
P10=0;P11=1;
delay(1000);
P10=1;P11=0;
delay(1000);
}
}追问

两相四线,有另外配了一个专用的驱动器,卖的人说只要接入单片机的5V,以及一个脉冲信号来驱动电机运转,一个方向信号来控制方向,就可以了。

追答

两相四线程序 接P1口

#include "reg52.h"
#define uint unsigned int
#define uchar unsigned char
uchar code tab[]={0xfd,0xfb,0xf7,0xef};
uint i;
void delay(uint x)
{
uint y;
for(;x>0;x--)
{
for(y=0;y<124;y++);
}
}

void main()
{
while(1)
{
P1=tab[i];
i++;
if(i==4)
{
i=0;
}
delay(20);
}
}

追问

很感谢了,另外就是不知道那个方向信号,是什么东西来着?

追答

方向信号 dir 是用高低电平来控制步进电机的方向的

本回答被提问者采纳
第2个回答  2019-07-16
最后弄成了吗?教教我来,迷茫中
第3个回答  2012-12-22
哇,大神啊!!追问

大神都是从菜鸟出来的吧。或者说你有爱因斯坦的智商,那我甘拜下风。

怎样用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;两相四线程序 接P1口 ...

步进电机的驱动电路与51单片机的连接电路图
51单片机的引脚随处都可以查到,P0、P1、P2随便选择一个作为脉冲发送口,在程序开始前定义好就可,驱动器一般都会分配脉冲,看你用的是哪一种,有的驱动器有电流可调档,也就是相电流细分。后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公...

51单片机控制L298N驱动两相步进电机
1、程序节拍不对,这个您既然已经排除了,就查另外其他问题 2、一个线圈没电。试试单独接一个线圈,找出没电的线圈,看是否电路问题,比如对应线圈的EN脚的电平是否正常,还是接触不良。还有一个极小的可能是电机烧了一个线圈,用万用表测一下两个线圈的电阻,如果悬殊太大就说明一个线圈烧了。3、...

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

求用51型的单片机控制步进电机,要求步进电机转90度后停5秒,再转90度...
驱动器有两种,一种是直接控制各个绕组的,如有4个绕组,就要4个IO引脚信号,驱动只是功率放大 另一种是带脉冲分配的,单片机发过来一串方波脉冲,脉冲个数决定转动的步数,另外输出一个控制正转和反转的信号 这两种驱动器的单片机程序当然是不一样的 用C语言编程很简单:(第一种驱动器)for(i=0;i<...

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

怎么用一个51单片机控制两个步进电机,实现一个电机快转,同时另一个慢...
PWM波,实现占空比不同,没有PWM的单片机可以用软件延时 PWM波:例如方波,是高电平很低电平时间相同,PWM波是高低电平时间不同,利用两个输出口控制两个电机。具体说起来挺多的,也不一定让你明白。 建议你去看PWM波的资料就行 查看原帖>> ...

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

单片机步进电机驱动器怎么连接
方向信号 ---> 串个小电阻下接到单片机输出方向引脚 有上面3根线就可以控制步进电机的走动了, 一上电时, 电机是自动锁定的, 如果还需要控制步进电机锁定和放开, 那还要再接一根 电机释放信号, 接法同脉冲信号 追问 我用IO口电平驱动 脉冲信号 方向信号就接到引脚上就可以??例如P1.0 P1.1 追答 单片机引脚...

求机电大神帮助,用51单片机控制uln2003驱动四线两相步进电机,求接线方 ...
电机是从光驱上拆下 求机电大神帮助,用51单片机控制uln2003驱动四线两相步进电机,求接线方式。电机是从光驱上拆下来的,想用两个电机做一个类似于数控机床的东西。... 求机电大神帮助,用51单片机控制uln2003驱动四线两相步进电机,求接线方式。电机是从光驱上拆下来的,想用两个电机做一个类似于数控机床的东西。

相似回答