本帖最后由 召唤师 于 2020-4-11 13:43 编辑
#include<reg52.h>
unsigned char beatcode[]={0xe,0xc,0xd,0x9,0xb,0x3,0x7,0x6}; //步进电机控制时序
void delay();
unsigned char temp;
unsigned char index=0;
unsigned long j=0;
unsigned int n=2;//转动圈数
int main(){
while(n!=0){
temp=P1; //p1口低四位控制步进电机
temp=temp&0xF0;
temp=temp|beatcode[index];
P1=temp;
index++;
j++;
delay();
if(index==7)
{
index=0;
}
if(j==(n*4096)) //4096是转动一圈的脉冲数
{
n=0;
}
}
P1=P1|0x0f; //关闭电机所有相
return 0;
}
void delay(){
unsigned int i=200;
while(i--);
}
用这个程序就是电机会一直转,不会按设定的两圈去停止。
|