微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 为什么51单片机驱动不了我的4相5线步进电机?(有程序)

为什么51单片机驱动不了我的4相5线步进电机?(有程序)

时间:10-02 整理:3721RD 点击:
#include <reg52.h>  
#define uchar unsigned char
#define uint unsigned int
//4相8拍  
uchar code tableCCW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};   //逆时针旋转相序表  
uchar code tableCW[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};    //顺时针旋转相序表  
sbit S3=P3^5;  //反转 按键  
sbit S4=P3^6;  //正转 按键  
sbit S5=P3^4;  //停止 按键  
void delay(uint z)  
{
    uint i,j;
    for(i=z;i>0;i--)
      for(j=110;j>0;j--);
}
void motorTurn_ccw()      //转1圈,逆时针  
{     
    uint i,j;  
    for(j=0;j<8;j++)       //电机内部的转子旋转一周  
    {  
        if(S5==0)   //按键没处理抖动  
        {  
            break;          //如果停止键按下,退出此循环  
        }  
        for(i=0;i<8;i++)    //旋转45度, 8*5.625°=45°  
        {  
            P1=tableCCW[i];  
            delay(500);      //调节转速  
        }  
    }  
}  
void motorTurn_cw()         //转1圈 ,顺时针  
{  
    uint i,j;  
    for(j=0;j<8;j++)     //8*45°=360°  
    {  
        if(S5==0)  
        {  
            break;          //如果停止键按下,退出此循环  
        }  
        for(i=0;i<8;i++)    //旋转45度,8*5.625°=45°  
        {  
            P1=tableCW[i];  
            delay(500);     //调节转速  
        }  
    }  
}  

void main()  
{  
    uint r;  
    uint N=64; //减速步进电机,减速比1/64,所以N=64时,步进电机外主轴转一圈   
         //我们的P1口接有8个led灯,先锁定,不要让它们亮 ,节能环保   
    while(1)  
    {  
        if(S3==0)                 //按键了  
        {  
            for(r=0;r<N;r++)  
            {  
                motorTurn_ccw();  //电机逆时针转  
                if(S5==0)  
                {  
                   break;         //俺S5键立马停止  
                }  
            }  
        }  
        else if(S4==0)  
        {  
            for(r=0;r<N;r++)  
            {  
                motorTurn_cw();    //电机顺时针转  
                if(S5==0)  
                {  
                    break;  
                }  
            }  
        }  
        else  
        {  
            P1=0xf0;                //平时也是停止的         
        }  
    }  
}

非常感谢。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top