用c语言写一个51单片机步进电机的程序
时间: 2023-05-24 14:00:44 浏览: 63
以下是51单片机步进电机的C语言程序:
#include<reg52.h> //头文件
sbit IN1 = P2^0; //定义IN1-IN4分别接口1-4
sbit IN2 = P2^1;
sbit IN3 = P2^2;
sbit IN4 = P2^3;
unsigned char code sta[] = {0x01,0x02,0x04,0x08}; //四相空载一周期
void delay(unsigned int xms) //延时函数
{
unsigned int i, j;
for (i = xms; i > 0; i--)
for (j = 110; j > 0; j--);
}
void forward() //正转函数
{
unsigned char i,j;
for(j=0;j<200;j++)
for(i=0;i<4;i++)
{
P2=sta[i];
delay(5);
}
}
void reverse() //反转函数
{
unsigned char i,j;
for(j=0;j<200;j++)
for(i=3;i>=0;i--)
{
P2=sta[i];
delay(5);
}
}
void main() //主函数
{
IN1 = IN2 = IN3 = IN4 = 0;
while(1) //死循环
{
forward(); //正转
delay(1000);
reverse(); //反转
delay(1000);
}
}