51单片机综合学习系统之 步进电机控制篇
步进电机分类与结构
图1步进电机实物图
图2 步进电机内部图
步进电机现场应用驱动电路
图3 一般驱动电路
图4 ULN2003内部框图及等效电路图
图5 典型应用图
步进电机的程序设计
实现功能:开发板上电时电机正转,按住51单片机综合学习系统上的按键SW20(P14)时反转。
图6 步进电机实验演示图
电机正反转的环形脉冲分配表如下:
步数 |
P00 |
P01 |
P02 |
P03 |
A |
B |
/A |
/B |
|
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
表1:正转环形脉冲分配表
步数 |
P00 |
P01 |
P02 |
P03 |
A |
B |
/A |
/B |
|
1 |
1 |
1 |
0 |
0 |
2 |
1 |
0 |
0 |
1 |
3 |
0 |
0 |
1 |
1 |
4 |
0 |
1 |
1 |
0 |
表2:反转环形脉冲分配表
硬件原理图
图7 硬件原理图
程序流程图
图8 软件流程图
软件代码
#include
sbit key = P1^4;
void delay(void)
{
int k;
for(k=0;k<2000;k++);
}
void main()
{
P0=0x00;//输出全高
key=1;//按键置输入状态
while(1)//主循环
{
if(key==1)//无键按下正转
{
P0=0xFC;//1100
delay();
P0=0xF6;//0110
delay();
P0=0xF3;//0011
delay();
P0=0xF9;//1001
delay();
}
else//有键按下反转
{
P0=0xFC;//1100
delay();
P0=0xF9;//1001
delay();
P0=0xF3;//0011
delay();
P0=0xF6;//0110
delay();
}
}
}
评论