找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3019|回复: 9
打印 上一主题 下一主题
收起左侧

急求助:单片机控制步进电机无法控制转向

[复制链接]
跳转到指定楼层
楼主
ID:193297 发表于 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++;       
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:147575 发表于 2017-4-25 13:11 | 只看该作者
while循环里应该是DIR取反才能反向,而不是一直置1
回复

使用道具 举报

板凳
ID:193381 发表于 2017-4-25 13:27 | 只看该作者
你应该设置一个变量控制它的正反转
回复

使用道具 举报

地板
ID:193381 发表于 2017-4-25 13:28 | 只看该作者
你应该设置一个变量控制它的正反转,经过5秒就取反
回复

使用道具 举报

5#
ID:193395 发表于 2017-4-25 14:10 | 只看该作者
你应该设置一个变量
回复

使用道具 举报

6#
ID:193410 发表于 2017-4-25 14:33 | 只看该作者
设置个变量
回复

使用道具 举报

7#
ID:193297 发表于 2017-4-25 15:14 | 只看该作者
守护神 发表于 2017-4-25 13:11
while循环里应该是DIR取反才能反向,而不是一直置1

我之前令DIR=0时电机能走一个方向,令DIR走1时电机也能走另一个方向,但合到一块从1变到0时却还是只走一个方向,还有0取反不是1吗?
回复

使用道具 举报

8#
ID:193297 发表于 2017-4-25 15:16 | 只看该作者
YU15260 发表于 2017-4-25 13:27
你应该设置一个变量控制它的正反转

我就是用DIR控制方向啊?您说的是怎么回事呢?
回复

使用道具 举报

9#
ID:138155 发表于 2017-4-25 15:31 | 只看该作者
你这个应该是普通直流电机吧 两个口一个口高 另一个口就应该是低电平 不然控制不了
回复

使用道具 举报

10#
ID:193619 发表于 2017-4-25 21:44 | 只看该作者
其二为
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表