今天要讲的是步进电机的驱动例程,硬件电路中采用的是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;
}
}
}
三、仿真展示
程序很简单,小伙伴们可以根据需要自己修改程序,然后进行验证哦!
全部0条评论
快来发表一下你的评论吧 !