『壹』 c51 單片機 四相五線 步進電機 怎麼停止
//根據你的相序表來看,你是按全步運行的,也就是每步走1.8度,4步一循環走7.2度,也就是50個循環轉一圈。所以你程序里的512轉一圈是不對的,512將轉10圈多。
//根據你的程序j減到零就會停止,不存在一直轉下去的情況。
//要做到隨時停止的話,可以加一個按鍵切換啟停就OK了
main()
{
unsigned char i,flag;
unsigned int j;
j=512*2; //512轉一圈
////////////////////////////////////////////////////////////////
P0=0XFF;//關掉數碼管的位選信號。阻止數碼管受到P0口信號的影響。
Delay(500);
WELA=1; //WELA=P2^7,開通位選,寫進命令
Delay(500);
WELA=0;
flag=0;
////////////////////////////////////////////////////////////////
while(1)
{
for(i=0;i<4;i++) //4相
{
P0=B_Rotation[i]; //輸出對應的相 可以自行換成反轉表格
while(1)
{
if(key==0)
{
while(key==0); //等待鍵抬起
flag=~flag;
}
if(flag)break;
}
Delay(400); //改變這個參數可以調整電機轉速 ,數字越小,轉速越大
}
}
}