标题: 急求助:单片机控制步进电机无法控制转向 [打印本页]

作者: 夜袭男澡堂    时间: 2017-4-25 10:35
标题: 急求助:单片机控制步进电机无法控制转向

我是个小白,因为要做的模型里需要单片机控制步进电机,所以最近抱佛脚学习了一下,虽然让步进电机动了起来,但是我改了好久也没法控制改变方向,我外面的电路是单片机的P1^0口接了驱动器的PUL-,P1^1口接了驱动器的DIR-,PUL+和DIR+共阳极接+5v,驱动器接的是单轴四线的步进电机
下面是我编的程序,我的目的是想让它先朝一个方向走,5s后改变方向朝另一个方向走,我对速度没有要求,只希望它可以改变方向就好,因为晚上就要交,所以时间很赶,希望各位大神能帮帮忙,帮我看一下出问题的原因以及如何改正,感激不尽
#include <reg52.h>
sbit PUL=P1^0;
sbit DIR=P1^1;
unsigned int time;
void Time1Config();

void main(void)
{
        DIR=0;
        TMOD=0x01;
        TH0=(65536-100)/256;   
        TL0=(65536-100)%256;
        EA=1;
        ET0=1;
        TR0=1;
        while(1);
        {
                if(time%50000==0&&time!=0)
                        DIR=1;
        }
       
}

void Time1Config() interrupt 1
{
        TH0=(65536-100)/256;  
        TL0=(65536-100)%256;
        if(PUL) PUL=0;                       
                else PUL=1;
        time++;       
}


作者: 守护神    时间: 2017-4-25 13:11
while循环里应该是DIR取反才能反向,而不是一直置1
作者: YU15260    时间: 2017-4-25 13:27
你应该设置一个变量控制它的正反转
作者: YU15260    时间: 2017-4-25 13:28
你应该设置一个变量控制它的正反转,经过5秒就取反
作者: 123456lkjhn    时间: 2017-4-25 14:10
你应该设置一个变量
作者: cc4988    时间: 2017-4-25 14:33
设置个变量
作者: 夜袭男澡堂    时间: 2017-4-25 15:14
守护神 发表于 2017-4-25 13:11
while循环里应该是DIR取反才能反向,而不是一直置1

我之前令DIR=0时电机能走一个方向,令DIR走1时电机也能走另一个方向,但合到一块从1变到0时却还是只走一个方向,还有0取反不是1吗?
作者: 夜袭男澡堂    时间: 2017-4-25 15:16
YU15260 发表于 2017-4-25 13:27
你应该设置一个变量控制它的正反转

我就是用DIR控制方向啊?您说的是怎么回事呢?
作者: wuyibin2003    时间: 2017-4-25 15:31
你这个应该是普通直流电机吧 两个口一个口高 另一个口就应该是低电平 不然控制不了
作者: 505451371    时间: 2017-4-25 21:44
其二为




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1