標(biāo)題:
單片機(jī)步進(jìn)電機(jī)
[打印本頁(yè)]
作者:
CDW0510
時(shí)間:
2020-7-5 15:35
標(biāo)題:
單片機(jī)步進(jìn)電機(jī)
#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開(kāi)
IT1=1; //邊沿觸發(fā)
EA=1; //全局中斷開(kāi)
while(Flag==0)
{
P0=0x71;//顯示 F 標(biāo)示正轉(zhuǎn)
for(i=0;i<4;i++) //4相
{
P1=F_Rotation[i]; //輸出對(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[i]; //輸出對(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;
}
}
復(fù)制代碼
作者:
admin
時(shí)間:
2020-7-7 01:28
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說(shuō)明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1