導航:首頁 > 編程語言 > 二相步進電機程序

二相步進電機程序

發布時間:2023-09-09 04:13:46

❶ 求一個兩相四線步進電機的c程序,電機用三極體和場管控制的

/*89C51控制步進電機c程序
使用89C51控制四相六線步進電機,
步進電機採用四相六線,步距角1.8度,半步工作0.9度八拍運行。
介面如下:
P15---啟動輸入
P14---停止輸入
P13---接光電感測器
P20---輸出控制步進電機的A相
P21---輸出控制步進電機的B相
P22---輸出控制步進電機的C相
P23---輸出控制步進電機的D相

如下是我給步進電機八拍運行正向通電順序:

P23(D相)、P22(C相)、P21(B相)、P20(A相)
第一步: 0 0 0 1
第二步: 0 0 1 1
第三步: 0 0 1 0
第四步: 0 1 1 0
第五步: 0 1 0 0
第六步: 1 1 0 0
第七步: 1 0 0 0
第八步: 1 0 0 1

使用光電感測器的輸出作為脈沖,光電接收管的後面加一個三極體做放大。
光電感測器前有個齒盤,齒空的間隔距離是相等的,要求齒盤每一格,
光電感測器輸出一個脈沖,步進電機一個角度0.9度。齒盤轉動的速度不固定,
可能快也可能慢。步進電機沒有轉動之前,齒盤一直是轉動的,
只有按下啟動按鈕步進電機才開始轉動。

*/

//作成:吳天
//.
//完成時間.05.11
//上海.奉賢
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
it START = P1^5;
it STOP = P1^4;
it COM = P1^3;
//電機接在低4位,接在其他位可修改數組。
uchar code lab[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09;

void Mdelay(uchar x)
{uchar j,k;for(j=x;j

❷ 51單片機控制二相四線步進電機程序

#include<reg52.h> //頭文件

sbit A1=P1^0; //定義A線圈正埠
sbit A2=P1^1; //定義A線圈負埠
sbit B1=P1^2; //定義B線圈正埠
sbit B2=P1^3; //定義B線圈負埠
sbit en1=P2^0;
sbit en2=P2^1;
int t=0;
#define F1 {A1=1;B1=0;A2=0;B2=0;} //A線圈通正向電壓
#define F2 {A1=0;B1=1;A2=0;B2=0;} //B線圈通正向電壓
#define F3 {A1=0;B1=0;A2=1;B2=0;} //A線圈通反向電壓
#define F4 {A1=0;B1=0;A2=0;B2=1;} //B線圈通反向電壓
#define OFF {A1=0;B1=0;A2=0;B2=0;} //全部斷電

unsigned int b=2000; //中斷初值變數

void Init_Timer0(void) //初始化定時器0
{
TMOD=0x01; //定時器0,使用模式1,16位定時器
TH0=(65536-b)/256; //給定初值
TL0=(65536-b)%256;
EA=1; //打開總中斷
ET0=1; //打開定時器中斷
TR0=1; //開定時器
}

void main() //主函數
{
en1=1;
en2=1;
Init_Timer0(); //初始化定時器0
while(1);

}

❸ 兩相四線42步進電機 程序 只有step 和dir 的c51程序 跪求

/*89C51控制步進電機c程序
使用89C51控制四相六線步進電機,
步進電機採用四相六線,步距角1.8度,半步工作0.9度八拍運行。
介面如下:
P15---啟動信號輸入
P14---停止信號輸入
P13---接光電感測器
P20---輸出控制步進電機的A相
P21---輸出控制步進電機的B相
P22---輸出控制步進電機的C相
P23---輸出控制步進電機的D相

如下是我給步進電機八拍運行正向通電順序:

P23(D相)、P22(C相)、P21(B相)、P20(A相)
第一步: 0 0 0 1
第二步: 0 0 1 1
第三步: 0 0 1 0
第四步: 0 1 1 0
第五步: 0 1 0 0
第六步: 1 1 0 0
第七步: 1 0 0 0
第八步: 1 0 0 1

使用光電感測器的輸出作為脈沖信號,光電接收管的後面加一個三極體做信號放大。
光電感測器前有個齒盤,齒空的間隔距離是相等的,要求齒盤每移動一格,
光電感測器輸出一個脈沖,步進電機移動一個角度0.9度。齒盤轉動的速度不固定,
可能快也可能慢。步進電機沒有轉動之前,齒盤一直是轉動的,
只有按下啟動按鈕步進電機才開始轉動。

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit START = P1^5;
sbit STOP = P1^4;
sbit COM = P1^3;
//電機接在低4位,接在其他位可修改數組。
uchar code lab[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};

void Mdelay(uchar x)
{uchar j,k;
for(j=x;j>0;j--)
{
for(k=124;k>0;k--)
{;}
}
}

//步進程序,調用一次程序,移動一步,
//參數:方向,1為正轉,0為反轉。
void motormove(uchar dir)
{
static step=0;
P2&=0xf0;
if(dir)
{
if(step<=7)
{ P2|=lab[step++];}
else
{step=0;P2|=lab[step];}
}
else
{
if(step==0)
{P2|=lab[step];step=7;}
if(step>0)
{P2|=lab[step--];}
}
}

void main()
{
bit RUN=0;
while(1)
{

if(RUN==0)
{

if(!START) //讀啟動
{Mdelay(1);
if(!START)
{RUN=1;}
}
}
else
{

if(!COM) //讀感測器,低電平移動步進電機
{motormove(1);}

if(!STOP) //讀停止
{
Mdelay(1);
if(!STOP)
{RUN=0;}
}
}

}
}

閱讀全文

與二相步進電機程序相關的資料

熱點內容
蘋果升級系統白屏 瀏覽:136
三菱gxplc編程軟體如何使用 瀏覽:710
海康威視手機app怎麼看不了 瀏覽:482
wordpress下載中心插件 瀏覽:402
微信限制字數是多少 瀏覽:20
策劃輸出主要從哪些文件來 瀏覽:174
網路營銷找什麼工作 瀏覽:372
tcl匹配文件名的正則表達式 瀏覽:461
音頻文件數據量為何8 瀏覽:534
有哪些分享學習的網站 瀏覽:174
小程序文件發到微信電腦如何打開 瀏覽:265
四星五星做號工具 瀏覽:920
qq郵箱怎麼發送視頻文件 瀏覽:453
能免費開店的網站有哪些 瀏覽:548
中國網路營銷發展史 瀏覽:828
違法紅頭文件有哪些 瀏覽:43
瀏覽器單文件版 瀏覽:982
騰訊視頻離線緩存文件 瀏覽:944
如何讓教育過好網路關 瀏覽:906
新版本vk10001p 瀏覽:13

友情鏈接