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

2019-07-15 14:38发布

#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;                //平时也是停止的         
        }  
    }  
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
1条回答
wait512
2019-07-15 17:57
singleMCU 发表于 2016-3-27 12:13
有一点你还是需要注意的就是,51的开发板你最好还是(USB供电)先将程序下载到开发板上面(此时不要连接点击),把程序下载好之后再连接电机,否则USB供电是这种大功率期间很可能无法“冷启动”
http://pan.baidu.com/s/1c1pajba
这个百度 {MOD}(安装百度 {MOD}才能下载)的单片机资源还算是比较不错的,你可以挑你喜欢的下载 ...

非常感谢。。。。。。。。。。。。。。。。

一周热门 更多>