通过51单片机驱动步进电机
proteus模拟
电机内部数据参数,初始的即可,不用调改。
整体程序的结果:
(1)先正转一圈,等待一秒后再反转一圈。这一过程可以自己修改程序,把它去掉,即整体main函数while循环的前面那部分,只会执行一次。
while(1)
{
(2)按下按钮1,整个电机开始正转N圈,当检测按钮一直按下时,整个电机就一直正转下去。当检测到其他按钮按下时,立即跳转到其他按钮对应的程序。
(3)按下按钮2,和按钮1相反。
(4)按钮3,使整个电机停止工作。
}
上面2,3,4部分是一直在循环扫描检测的。
程序代码
#include <reg52.h>
#include <intrins.h>
unsigned char code z[]={
0x02,0x06,0x04,0x0c,0x08,0x09,0x01,0x03//315,270,225......360(0)
};//八拍
unsigned char code f[]={
0x01,0x09,0x08,0x0c,0x04,0x06,0x02,0x03//45,90,145......360(0)
};
sbit K1 = P3^0;//定义正转按钮
sbit K2 = P3