使用ULN2003A的步进电机驱动例程

描述

今天要讲的是步进电机的驱动例程,硬件电路中采用的是ULN2003A来进行步进电机的驱动。下面就来看一下今天的例程吧!

一、硬件电路

电路很简单,最右侧是步进电机,使用ULN2003A进行驱动。最左下角的三个按键时用来控制步进电机正反转及停止的。KEY1控制步进电机顺时针旋转;KEY2控制步进电机逆时针旋转;KEY3控制步进电机的停止。

硬件电路

二、软件程序

C程序:

#include < reg51.h >
#include < absacc.h >
sbit p10=P1^0;
sbit p11=P1^1;
sbit p12=P1^2;


#define  UP   20
#define  DOWN  30
#define  STOP  40


void delay()//延时程序
{
  unsigned i,j,k;
  for(i=0;i< 0x02;i++)
    for(j=0;j< 0x02;j++)
      for(k=0;k< 0xff;k++);
}


main()
{
  unsigned char temp;
  while(1)
  {
    if(p10==0)
    {
      temp=UP;//控制正转
      P2=0X00;
      delay();
    }
    if(p11==0)
    {
      temp=DOWN;//控制反转
      P2=0X00;
      delay();
    }
    if(p12==0)
    {
      temp=STOP;//控制停止
    }
    switch(temp)
    {
    case DOWN : P2=0X01;//控制反转 //0011
          delay();
          delay();
          P2=0X02;//0110
          delay();
          delay();
          P2=0X04;//1100
          delay();
          delay();
          P2=0X08;//1001
          delay();
          delay();
          break;
    case UP :  P2=0X08;//控制正转
          delay();
          delay();
          P2=0X04;
          delay();
          delay();
          P2=0X02;
          delay();
          delay();
          P2=0X01;
          delay();
          delay();
          break;
    case  STOP ://控制停止
          P2=0X00;
          delay();
          delay();          
          break;
    }
   }
}

三、仿真展示

程序很简单,小伙伴们可以根据需要自己修改程序,然后进行验证哦!

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分