本帖最后由 召喚師 于 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--);
}
用這個程序就是電機會一直轉,不會按設定的兩圈去停止。
|