黄工无刷电机学习
直播中

陈键

7年用户 1016经验值
擅长:可编程逻辑 电源/新能源
私信 关注
[问答]

c51单片机如何驱动unl2003控制步进电机正反转?

c51单片机如何驱动unl2003控制步进电机正反转?

回帖(1)

王艳红

2021-10-14 10:51:27

  • 分享一个萌新入门小工程

一、原件连接:
第一种直接用51开发板





第二种用最小单元加unl2003驱动





二、开发板威廉希尔官方网站









三、keil的代码

程序文件
#include
#include
***it p31=P3^1;
***it p32=P3^2;
***it p33=P3^3;


#define  UP   40
#define  DOWN  50
#define  STOP  60


void delay()//延时程序
{
        unsigned i,j,k;
        for(i=0;i<0x02;i++)
                for(j=0;j<0x02;j++)
                        for(k=0;k<0xff;k++);     //控制速度    快一点的用  for(k=0;k<0x8f;k++);
}                                                      


main()
{
        unsigned char temp;
        while(1)
        {
                if(p31==0)
                {
                        temp=UP;//控制正转
                        P1=0X00;
                        delay();
                }
                if(p32==0)
                {
                        temp=DOWN;//控制反转
                        P1=0X00;
                                                
                        delay();
                }
                if(p33==0)
                {
                        temp=STOP;//控制停止
                }
                switch(temp)
                {
                case DOWN : P1=0X01;//控制反转 //0011      
                                        delay();
                                        delay();
                                        P1=0X02;//0110
                                        delay();
                                        delay();
                                        P1=0X04;//1100
                                        delay();
                                        delay();
                                        P1=0X08;//1001
                                        delay();
                                        delay();
                                        break;
                case UP :        P1=0X08;//控制正转
                                        delay();
                                        delay();
                                        P1=0X04;
                                        delay();
                                        delay();
                                        P1=0X02;
                                        delay();
                                        delay();
                                        P1=0X01;
                                        delay();
                                        delay();
                                        break;
                case  STOP ://控制停止
                                        P1=0X00;
                                        delay();
                                        delay();                                       
                                        break;
                }
   }           修改p1,改成p2。就可使用p2端口,适用于第二种接线方式。
}
1 举报

更多回帖

发帖
×
20
完善资料,
赚取积分