打印
[电机及执行机构驱动]

步进电机加速起动:示例代码 : 8拍(也叫 2拍半)

[复制链接]
1951|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jrcsh|  楼主 | 2013-8-19 22:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

/******************************************************************
/*                                                                *
/* KT900单片机开发系统演示程序 - 步进电机控制程序                 *
/*                                                                *
/* 步进电机启动时,转速由慢到快逐步加速。                         *
/*                                                                *
/* 邮箱: 89s51@163.com                                           *
/* 网站: http://www.150000.com                                   *
/* 作者: 007                                                     *
/* 时间: 2006/05/18                                              *
/*                                                                *
/*【版权】COPYRIGHT(C)南方电子 www.150000.com ALL RIGHTS RESERVED *
/*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!      *
/*                                                                *
/******************************************************************/
   
#include <reg51.h>       //51芯片管脚定义头文件
#include <intrins.h>         //内部包含延时函数 _nop_();

#define uchar unsigned char
#define uint  unsigned int

uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};
//uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};
uchar rate ;        
/********************************************************/
/*                                                  
/* 延时
/* 11.0592MHz时钟,                                    
/*                                                      
/********************************************************/
void delay()
{                           
   uchar k,t;
   k = rate;
   t = 0x00;

   do{
       do{ _nop_();_nop_();_nop_();_nop_();
                 _nop_();_nop_();_nop_();_nop_();
             }while(--t);
               
     }while(--k);
}
/********************************************************/
/*
/*步进电机正转
/*
/********************************************************/
void  motor_ffw()
{
   uchar i;

      for (i=0; i<8; i++)     //一个周期转30度
        {
          P1 = FFW;        //取数据
          delay();            //调节转速
        }
}

/********************************************************
*                                                      
*  主程序                                               
*                                                      
*********************************************************/

main()
{     
   rate = 0x10;
   while(1)                     
    {  
     motor_ffw();          //电机正转
           if(rate>2)
           rate--;      
    }
}

/********************************************************/                           

相关帖子

沙发
airwill| | 2013-8-22 13:14 | 只看该作者
这个程序的调速特性可调整性比较差. 难以实现调速曲线.
另外, 除了调速, 单片机不能再做其他工作, 否则影响调速精度.
感觉只是个用着玩的程序.

使用特权

评论回复
板凳
受不了了| | 2013-8-22 14:23 | 只看该作者
哪怕是写来示范也不能这样写

使用特权

评论回复
地板
jrcsh|  楼主 | 2013-11-3 20:40 | 只看该作者
能实现目的就行了

使用特权

评论回复
5
电子学习员| | 2013-11-28 16:58 | 只看该作者
写的玩的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:以上以下纯属瞎扯,概不承认!!!!! 感谢  应试教育 培养了我的基础    感谢自己  没吧应试教作为各种借口

228

主题

2350

帖子

18

粉丝