|
單片機(jī)C語言實(shí)例-263-帶停機(jī) 步進(jìn)電機(jī)正反轉(zhuǎn)
/*-----------------------------------------------
名稱:步進(jìn)電機(jī)
公司:上海浩豚電子科技有限公司
網(wǎng)站:www.doflye.cn
編寫:師訪
日期:2009.5
修改:無
內(nèi)容:1、本程序用于測(cè)試4相步進(jìn)電機(jī)常規(guī)驅(qū)動(dòng)
2、需要用跳帽或者杜邦線把信號(hào)輸出端和對(duì)應(yīng)的步進(jìn)電機(jī)信號(hào)輸入端連接起來
3、速度不可以調(diào)節(jié)的過快,不然就沒有力矩轉(zhuǎn)動(dòng)了
4、按s4(設(shè)置成獨(dú)立按鍵模式)可以控制正反轉(zhuǎn)
------------------------------------------------*/
#include <reg52.h>
unsigned char Flag;//定義正反轉(zhuǎn)和停止標(biāo)志位
sbit KEY = P3^3;
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í)函數(shù) */
/******************************************************************/
void Delay(unsigned int i)//延時(shí)
{
while(--i);
}
/******************************************************************/
/* 主函數(shù) */
/******************************************************************/
main()
{
unsigned char i;
EX1=1; //外部中斷0開
IT1=1; //邊沿觸發(fā)
EA=1; //全局中斷開
while(Flag==0)
{
P0=0x71;//顯示 F 標(biāo)示正轉(zhuǎn)
for(i=0;i<4;i++) //4相
{
P1=F_Rotation; //輸出對(duì)應(yīng)的相 可以自行換成反轉(zhuǎn)表格
Delay(500); //改變這個(gè)參數(shù)可以調(diào)整電機(jī)轉(zhuǎn)速 ,數(shù)字越小,轉(zhuǎn)速越大
}
}
while(Flag==1)
{
P0=0x7C;//顯示 b 標(biāo)示反轉(zhuǎn)
for(i=0;i<4;i++) //4相
{
P1=B_Rotation; //輸出對(duì)應(yīng)的相
Delay(500); //改變這個(gè)參數(shù)可以調(diào)整電機(jī)轉(zhuǎn)速 ,數(shù)字越小,轉(zhuǎn)速越大
}
}
while(Flag==2) //停止
{
P0=0x6D;// 顯示 S
P1=0;
}
}
/******************************************************************/
/* 中斷入口函數(shù) */
/******************************************************************/
void ISR_Key(void) interrupt 2 using 1
{
Delay(500);
if(!KEY)
{
Flag++; //s3按下觸發(fā)一次
if(Flag==3)
Flag=0;
}
}
更多詳情參考附件文檔
+08:00C148聯(lián)盟網(wǎng)5661.png (27.73 KB, 下載次數(shù): 6)
下載附件
保存到相冊(cè)
2022-3-12 10:34 上傳
游客,如果您要查看本帖隱藏內(nèi)容請(qǐng) 回復(fù)
|
|