找回密码
 立即注册

QQ登录

只需一步,快速开始

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

步进电机如何加快速度

  [复制链接]
跳转到指定楼层
楼主
ID:157221 发表于 2016-12-25 23:51 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
将步进电机驱动作为子程序调用,但是由于主程序处理其他子模块需要很多时间导致步进电机装的很慢,这种情况下该如何加快转速,比如让步进电机的驱动并行运行??
下面是我的代码:
void main(void)
{         
        InitLcd();
        temp_set_num=250;
        while(1)
        {
           temp_display();  //主要是这个显示模块要耗费很多时间
          
           stepper(&x);
        };       
}


#include <reg51.h>
#include "key.h"

unsigned char code F_Rotation[4]={0x02,0x04,0x08,0x10}; //正转表格
unsigned char code B_Rotation[4]={0x10,0x08,0x04,0x02}; //反转表格

/*       延时函数            */

void Delay_2(unsigned int i)//延时
{
while(--i);
}

/*       主函数          */

void stepper(unsigned int *x)
{

//unsigned char i;

        if(flag==1)            
         {
             (*x)++;      //4相
             if((*x)==4) (*x)=0;
             P1=F_Rotation[*x];  //输出对应的相 可以自行换成反转表格
             Delay_2(1);        //改变这个参数可以调整电机转速 ,数字越小,转速越大
                 
          }
        if(flag==2)
         {
                 (*x)++;     //4相
                 if((*x)==4) (*x)=0;
             P1=B_Rotation[*x];  //输出对应的相
             Delay_2(1);        //改变这个参数可以调整电机转速 ,数字越小,转速越大
                 
          }
        if(flag==0)  //停止
         {
          P1=0;
          }
}


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

使用道具 举报

沙发
ID:157221 发表于 2016-12-26 08:11 | 显示全部楼层
谢谢您的回答。我是一名学生,这是一个微机实验,做模拟空调,只有一个51单片机,不做量产。我后来的想法是用定时器中后段来单独做。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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