找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2180|回复: 5
收起左侧

想问单片机步进电机IF函数的问题,我想在IF函数加个停止函数

[复制链接]
ID:380156 发表于 2018-8-7 16:56 | 显示全部楼层 |阅读模式
20黑币
单片机源码

#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int
#define MotorData P2                    //步进电机控制接口定义
sbit A=P1^0;
sbit F=P1^1;
uchar phasecw[4] ={0x40,0x20,0x10,0x08};//正转 电机导通相序 D-C-B-A
uchar phaseccw[4]={0x08,0x10,0x20,0x40};//反转 电机导通相序 A-B-C-D
//ms延时函数                j

void Delay_xms(uint x)
{
uint i,j;
for(i=0;i<x;i++)                                       
  for(j=0;j<112;j++);
}
//顺时针转动
void MotorCW(void)
{
uchar i;
for(i=0;i<4;i++)
  {
   MotorData=phasecw[ i];
   Delay_xms(4);//转速调节
  }
}
//逆时针转动
void MotorCCW(void)
{
uchar i;
for(i=0;i<4;i++)
  {
   MotorData=phaseccw[ i];
   Delay_xms(4);//转速调节
  }
}
//停止转动
void MotorStop(void)
{
MotorData=0x00;
}
//主函数
void main(void)
{        
uint i;
Delay_xms(50);//等待系统稳定
while(1)
{                 
         if(A==0)                       //想在这设个 停止函数    就让他转两圈就不再转   等待下一次指令

{
  for(i=0;i<500;i++)
  {
   MotorCW();   //顺时针转动
  }
  MotorStop();  //停止转动
  Delay_xms(500);
                   }
                   else if (F==0)      
                   {
  for(i=0;i<500;i++)
  {
   MotorCCW();  //逆时针转动
  }
  MotorStop();  //停止转动
  Delay_xms(500);  
}         
}                  
}
         

回复

使用道具 举报

ID:382600 发表于 2018-8-7 18:25 来自手机 | 显示全部楼层
我觉得转两圈停止很难实现,因为你得精确测量步进电机的转数,如果是转一定时间就跟容易实现

评分

参与人数 1黑币 +2 收起 理由
记得好好学习 + 2 赞一个!

查看全部评分

回复

使用道具 举报

ID:380156 发表于 2018-8-7 20:16 | 显示全部楼层
111252 发表于 2018-8-7 18:25
我觉得转两圈停止很难实现,因为你得精确测量步进电机的转数,如果是转一定时间就跟容易实现

怎么设置转一定时间
回复

使用道具 举报

ID:382600 发表于 2018-8-8 16:21 来自手机 | 显示全部楼层
记得好好学习 发表于 2018-8-7 20:16
怎么设置转一定时间

可以用定时器中断来设置一定时间,但我觉得你的程序主函数中有些问题应该再加个按键控制会更好,我现在也刚好正在学用单片机控制步进电机,我们可以交流一下吗?qq2074262016

评分

参与人数 1黑币 +5 收起 理由
记得好好学习 + 5 很给力!

查看全部评分

回复

使用道具 举报

ID:380156 发表于 2018-8-10 12:23 | 显示全部楼层
111252 发表于 2018-8-8 16:21
可以用定时器中断来设置一定时间,但我觉得你的程序主函数中有些问题应该再加个按键控制会更好,我现在也 ...

我只是简单的应用下   还没学  不过我们可以加个好友  可以一起学习
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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