當前位置:編程學習大全網 - 源碼下載 - 單片機控制的異步電機源代碼

單片機控制的異步電機源代碼

# include & ltreg52.h & gt

#定義uchar無符號字符

#定義uint無符號整數

sbit key 1 = p3^2;//步進電機逆時針旋轉。

sbit key 2 = p3^3;//步進電機順時針旋轉。

sbit key 3 = p3^4;//步進電機速度調節

uchar步長= 0;

位AB _ flag = 0;

無符號char碼A_Rotation[8]={0x08,0x18,0x10,0x30,0x20,0x60,0x40,0x 48 };//順時針轉動桌子

無符號char碼B_Rotation[8]={0x48,0x40,0x60,0x20,0x30,0x10,0x18,0x 08 };//逆時針轉動桌子

/********************************************************************

*名稱:Delay_1ms()

*函數:延時子程序,延時時間為1 ms * x。

*輸入:X(壹毫秒延遲的次數)

*輸出:無

***********************************************************************/

無效延遲

{

uchar x,j;

for(j = 0;j & lt我;j++)

for(x = 0;x & lt=148;x++);

}

空鍵(void)

{

If(KEY1 == 0) //按P3.2實現步進電機逆時針旋轉。

{

延時(15);

if(KEY1 == 0)

{

while(1)

{

if(KEY1 == 1)

{

延時(15);

if(KEY1 == 1)

{

AB _ flag = 0;

打破;

}

}

}

}

}

If(KEY2 == 0) //按P3.3實現步進電機順時針旋轉。

{

延時(15);

if(KEY2 == 0)

{

while(1)

{

if(KEY2 == 1)

{

延時(15);

if(KEY2 == 1)

{

AB _ flag = 1;

打破;

}

}

}

}

}

If(KEY3 == 0) //按P3.4實現步進電機的調速。

{

延時(15);

if(KEY3 == 0)

{

while(1)

{

if(KEY3 == 1)

{

延時(15);

if(KEY3 == 1)

{

step++;

如果(步長== 3)

{

步長= 0;

}

打破;

}

}

}

}

}

}

主()

{

烏恰爾壹世;

while(1)

{

KEY();//按鍵處理功能

for(I = 0;我& lt8;I++) //因為有8個控制序列。

{

if(AB_flag == 0)

{

p 1 = A _ Rotation[I];//逆時針旋轉

}

其他

{

p 1 = B _ Rotation[I];//順時針旋轉

}

延時(2+步);//改變該參數來調整電機速度。

}

}

}

  • 上一篇:如何使用 Go 語言寫遊戲服務器
  • 下一篇:貓科和犬科誰更擅長捕獵?獅子和老虎誰更強?
  • copyright 2024編程學習大全網