|
发表于 2023-3-16 21:21:42
|
显示全部楼层
/*2相4线步进电机控制*/
#include<reg52.h>
#define uchar unsigned char
sbit a=P0^0; //定义电机的A+
sbit a1=P0^1; // A-
sbit b=P0^2; // B+
sbit b1=P0^3; // B-
/***延时函数***/
void delay(uchar z)
{
uchar x,y;
for(x=z;x>0;x--)
for(y=10;y>0;y--);
}
/***给电机一个4拍驱动电压***/
void run()
{
/*a=1;a1=1;b=0;b1=0;delay(10); //A+ A-
a=1;a1=1;b=1;b1=1;delay(10); //A+ A- B+ B-
a=0;a1=0;b=1;b1=1;delay(10); //B+ B-
a=~1;a1=~1;b=0;b1=0;delay(10); //~A+ ~A- B+ B-
a=~1;a1=~1;b=0;b1=0;delay(10); //~A+ ~A-
a=~1;a1=~1;b=~1;b1=~1;delay(10);//~A+ ~A- ~B+ ~B-
a=0;a1=0;b=~1;b1=~1;delay(10); //~B+ ~B-
a=1;a1=1;b=~1;b1=~1;delay(10); //A+ A- ~B+ ~B-
*/
a=1;a1=0;b=0;b1=0;delay(10);
a=0;a1=0;b=1;b1=0;delay(10);
a=0;a1=1;b=0;b1=0;delay(10);
a=0;a1=0;b=0;b1=1;delay(10);
}
void main()
{
a=0;a1=0;b=0;b1=0;//控制端口初始化为低电平
while(1)
{
run();
}
} |
|