|
單片機C語言實例-264-步進電機正反轉(zhuǎn)
/*-----------------------------------------------
名稱:步進電機
公司:上海浩豚電子科技有限公司
網(wǎng)站:www.doflye.cn
編寫:師訪
日期:2009.5
修改:無
內(nèi)容:1、本程序用于測試4相步進電機常規(guī)驅(qū)動
2、需要用跳帽或者杜邦線把信號輸出端和對應的步進電機信號輸入端連接起來
3、速度不可以調(diào)節(jié)的過快,不然就沒有力矩轉(zhuǎn)動了
4、按s4(設(shè)置成獨立按鍵模式)可以控制正反轉(zhuǎn)
------------------------------------------------*/
#include <reg52.h>
bit Flag;//定義正反轉(zhuǎn)標志位
unsigned char code F_Rotation[4]={0xf1,0xf2,0xf4,0xf8}; //正轉(zhuǎn)表格
unsigned char code B_Rotation[4]={0xf8,0xf4,0xf2,0xf1}; //反轉(zhuǎn)表格
/******************************************************************/
/* 延時函數(shù) */
/******************************************************************/
void Delay(unsigned int i)//延時
{
while(--i);
}
/******************************************************************/
/* 主函數(shù) */
/******************************************************************/
main()
{
unsigned char i;
EX1=1; //外部中斷0開
IT1=1; //邊沿觸發(fā)
EA=1; //全局中斷開
while(!Flag)
{
P0=0x71;//顯示 F 標示正轉(zhuǎn)
for(i=0;i<4;i++) //4相
{
P1=F_Rotation; //輸出對應的相 可以自行換成反轉(zhuǎn)表格
Delay(500); //改變這個參數(shù)可以調(diào)整電機轉(zhuǎn)速 ,數(shù)字越小,轉(zhuǎn)速越大
}
}
while(Flag)
{
P0=0x7C;//顯示 b 標示反轉(zhuǎn)
for(i=0;i<4;i++) //4相
{
P1=B_Rotation; //輸出對應的相
Delay(500); //改變這個參數(shù)可以調(diào)整電機轉(zhuǎn)速 ,數(shù)字越小,轉(zhuǎn)速越大
}
}
}
/******************************************************************/
/* 中斷入口函數(shù) */
/******************************************************************/
void ISR_Key(void) interrupt 2 using 1
{
Delay(300);
Flag=!Flag; //s3按下觸發(fā)一次,標志位取反
}
更多詳情參考附件文檔
+08:00C119聯(lián)盟網(wǎng)1145.png (28.07 KB, 下載次數(shù): 7)
下載附件
保存到相冊
2022-3-14 09:51 上傳
|
|