康小印
級別: 探索解密
精華主題: 0
發(fā)帖數量: 14 個
工控威望: 105 點
下載積分: 601 分
在線時間: 4(小時)
注冊時間: 2015-12-19
最后登錄: 2016-03-09
查看康小印的 主題 / 回貼
樓主  發(fā)表于: 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
發(fā)帖數量: 2844 個
工控威望: 3616 點
下載積分: 3515 分
在線時間: 3798(小時)
注冊時間: 2007-11-04
最后登錄: 2024-11-10
查看tingfenghu的 主題 / 回貼
1樓  發(fā)表于: 2016-03-04 12:20
        很久沒有寫過單片機程序呢。脈沖口輸出好像用中斷方式,你可以先輸出方向,使能,然后再輸出脈沖,看上面說明并不是差分方式。
      確定哪個P口是脈沖輸出,方向,使能。使能輸出不用改變,或者說你直接接線而不用單片機控制也可以,主要是脈沖輸出和方向。
二手PLC,觸摸屏,伺服驅動,各類氣動設備
http://shop58129605.taobao.com/
康小印
級別: 探索解密
精華主題: 0
發(fā)帖數量: 14 個
工控威望: 105 點
下載積分: 601 分
在線時間: 4(小時)
注冊時間: 2015-12-19
最后登錄: 2016-03-09
查看康小印的 主題 / 回貼
2樓  發(fā)表于: 2016-03-04 15:45
引用
引用第1樓tingfenghu于2016-03-04 12:20發(fā)表的  :
        很久沒有寫過單片機程序呢。脈沖口輸出好像用中斷方式,你可以先輸出方向,使能,然后再輸出脈沖,看上面說明并不是差分方式。
      確定哪個P口是脈沖輸出,方向,使能。使能輸出不用改變,或者說你直接接線而不用單片機控制也可以,主要是脈沖輸出和方向。

對呀,有三種接線方式,我選擇的差分方式,F在只能夠實現單向運動。。。
康小印
級別: 探索解密
精華主題: 0
發(fā)帖數量: 14 個
工控威望: 105 點
下載積分: 601 分
在線時間: 4(小時)
注冊時間: 2015-12-19
最后登錄: 2016-03-09
查看康小印的 主題 / 回貼
3樓  發(fā)表于: 2016-03-04 16:51
自己頂一下,求幫忙.....
hdkcxym
行者無疆勇者無畏
級別: 探索解密
精華主題: 0
發(fā)帖數量: 14 個
工控威望: 103 點
下載積分: 433 分
在線時間: 51(小時)
注冊時間: 2014-11-22
最后登錄: 2019-04-14
查看hdkcxym的 主題 / 回貼
4樓  發(fā)表于: 2016-03-04 20:34
呵呵,要用定時中斷來改變脈沖I/O的,判斷方向也要寫在中斷里。寫的還好,建議搜一下
康小印
級別: 探索解密
精華主題: 0
發(fā)帖數量: 14 個
工控威望: 105 點
下載積分: 601 分
在線時間: 4(小時)
注冊時間: 2015-12-19
最后登錄: 2016-03-09
查看康小印的 主題 / 回貼
5樓  發(fā)表于: 2016-03-05 10:42
引用
引用第4樓hdkcxym于2016-03-04 20:34發(fā)表的  :
呵呵,要用定時中斷來改變脈沖I/O的,判斷方向也要寫在中斷里。寫的還好,建議搜一下

好的,謝謝
往事如風
科技改變制造
級別: 網絡英雄

精華主題: 0
發(fā)帖數量: 11361 個
工控威望: 18518 點
下載積分: 12028 分
在線時間: 2686(小時)
注冊時間: 2013-01-31
最后登錄: 2024-11-02
查看往事如風的 主題 / 回貼
6樓  發(fā)表于: 2016-03-05 15:27
學習一下
三人行者必有我?guī)?,擇其善者而從之