康小印
级别: 探索解密
精华主题: 0
发帖数量: 14 个
工控威望: 105 点
下载积分: 601 分
在线时间: 4(小时)
注册时间: 2015-12-19
最后登录: 2016-03-09
查看康小印的 主题 / 回贴
楼主  发表于: 2016-03-04 10:53
大家好,小弟用51单片机想控制步进电机正转和反转,但是现在只能够实现正转,反转无法实现。下面是正转程序(只能够是向一个方向运动):
#include<reg52.h>

#define uchar unsigned char
#define uint unsigned int

sbit zmc=P1^0;
sbit fmc=P1^1;
sbit zfx=P1^2;
sbit ffx=P1^3;
void delayws(uchar);
void main()
{
    uchar i,a;
    for(a=1000;a>0;a--)
    {
        for(i=1000;i>0;i--)
        {
            zfx=1;
            ffx=0;
            zmc=1;
            fmc=0;
            zmc=0;        
        }
    }
    while(1)
    {
        zfx=0;
        ffx=0;
        zmc=0;
        fmc=0;
    }
}
接线图如下,采用的是差分接线办法。
我尝试过单独修改zfx=0;ffx=1,但是依旧不会改变方向,还是会向下运动;
尝试过单独修改fmc=1;zmc=0;fmc=0;这样修改,这次步进电机就不运动了。我若想通过程序实现步进电机能够反向运动,程序应该怎么修改?谢谢大家
往事如风
科技改变制造
级别: 网络英雄

精华主题: 0
发帖数量: 10873 个
工控威望: 18028 点
下载积分: 10766 分
在线时间: 2646(小时)
注册时间: 2013-01-31
最后登录: 2024-06-13
查看往事如风的 主题 / 回贴
1楼  发表于: 2016-03-05 15:27
学习一下
三人行者必有我师 ,择其善者而从之