打印
[经验分享]

步进电机驱动代码分析

[复制链接]
1578|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
黎明前奏|  楼主 | 2011-11-13 10:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "STC12C5A60S2.h"
void delay();
//Motor
sbit F1 = P0^0;
sbit F2 = P0^1;
sbit F3 = P0^2;
sbit F4 = P0^3;
unsigned char code FFW[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6}; //反转
unsigned char code FFZ[8]={0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xfe}; //正转
unsigned int  K, rate;
/**********************************************************
*   *
*                 步进电机驱动   *
***********************************************************/
void  motor_ffw(void)
{
   unsigned char i;
      for (i=0; i<8; i++)       //一个周期转30度
        {
          P0 = FFW[i]&0x1f;  //取数据
          delay();           //调节转速
        }
     }
/********************************************
延时程序
*********************************************/
void delay(void)   
{                           
   unsigned int k,t;
    t=rate;
   while(t--)
   {
     for(k=0; k<150; k++)
     { }
   }
}
/********************************************************
*                                                      
*步进电机运行                                               
*                                                      
*********************************************************/
void  motor_turn(void)
{
   unsigned char x;
   rate=0x0a;
   x=0x40;
   do
     {
  motor_ffw();          //加速
      rate--;
}while(rate!=0x01);
   do
     {     
   motor_ffw();        //匀速
   x--;
}while(x!=0x01);
   do
     {
  motor_ffw();         //减速
      rate++;
}while(rate!=0x0a);   
}
main()
{
    while(1)
{
motor_turn();
}
}
沙发
一个机会| | 2011-11-13 11:28 | 只看该作者
看不懂的代码啊

使用特权

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

本版积分规则

0

主题

85

帖子

1

粉丝