康小印
级别: 探索解密
精华主题: 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;这样修改,这次步进电机就不运动了。我若想通过程序实现步进电机能够反向运动,程序应该怎么修改?谢谢大家
tingfenghu
级别: 工控侠客

精华主题: 0
发帖数量: 2795 个
工控威望: 3567 点
下载积分: 3413 分
在线时间: 3719(小时)
注册时间: 2007-11-04
最后登录: 2024-05-23
查看tingfenghu的 主题 / 回贴
1楼  发表于: 2016-03-04 12:20
        很久没有写过单片机程序呢。脉冲口输出好像用中断方式,你可以先输出方向,使能,然后再输出脉冲,看上面说明并不是差分方式。
      确定哪个P口是脉冲输出,方向,使能。使能输出不用改变,或者说你直接接线而不用单片机控制也可以,主要是脉冲输出和方向。
二手PLC,触摸屏,伺服驱动,各类气动设备
http://shop58129605.taobao.com/
康小印
级别: 探索解密
精华主题: 0
发帖数量: 14 个
工控威望: 105 点
下载积分: 601 分
在线时间: 4(小时)
注册时间: 2015-12-19
最后登录: 2016-03-09
查看康小印的 主题 / 回贴
2楼  发表于: 2016-03-04 15:45
引用
引用第1楼tingfenghu于2016-03-04 12:20发表的  :
        很久没有写过单片机程序呢。脉冲口输出好像用中断方式,你可以先输出方向,使能,然后再输出脉冲,看上面说明并不是差分方式。
      确定哪个P口是脉冲输出,方向,使能。使能输出不用改变,或者说你直接接线而不用单片机控制也可以,主要是脉冲输出和方向。

对呀,有三种接线方式,我选择的差分方式。现在只能够实现单向运动。。。
康小印
级别: 探索解密
精华主题: 0
发帖数量: 14 个
工控威望: 105 点
下载积分: 601 分
在线时间: 4(小时)
注册时间: 2015-12-19
最后登录: 2016-03-09
查看康小印的 主题 / 回贴
3楼  发表于: 2016-03-04 16:51
自己顶一下,求帮忙.....
hdkcxym
行者无疆勇者无畏
级别: 探索解密
精华主题: 0
发帖数量: 14 个
工控威望: 103 点
下载积分: 433 分
在线时间: 51(小时)
注册时间: 2014-11-22
最后登录: 2019-04-14
查看hdkcxym的 主题 / 回贴
4楼  发表于: 2016-03-04 20:34
呵呵,要用定时中断来改变脉冲I/O的,判断方向也要写在中断里。写的还好,建议搜一下
康小印
级别: 探索解密
精华主题: 0
发帖数量: 14 个
工控威望: 105 点
下载积分: 601 分
在线时间: 4(小时)
注册时间: 2015-12-19
最后登录: 2016-03-09
查看康小印的 主题 / 回贴
5楼  发表于: 2016-03-05 10:42
引用
引用第4楼hdkcxym于2016-03-04 20:34发表的  :
呵呵,要用定时中断来改变脉冲I/O的,判断方向也要写在中断里。写的还好,建议搜一下

好的,谢谢
往事如风
科技改变制造
级别: 网络英雄

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