導航:首頁 > 操作系統 > 單片機控制三相步進電機

單片機控制三相步進電機

發布時間:2023-07-11 14:52:57

① 1. 設計要求 採用單片機控制一個三相單三拍的步進電機工作。求大神給出匯編程序,謝謝,急用。

#include <reg51.h>

#define unchar unsigned char

sbit kai_key p3^1; //開關,作鎖功能

sbit zheng_key p3^2; //正轉

sbit fan_key p3^3; //翻轉睜卜

sbit 18_key p1^0; //18步

sbit 15_key p1^1; //15步

sbit 12_key p1^2; //12步

sbit 9_key p1^3; //9步

sbit 6_key p1^4; //6步

sbit 3_key p1^5; //3步

sbit 21_key p1^6; //備廳21步

sbit 24_key p1^7; //24步

sbit 27_key p3^0; //27步

bit flag=0; //電機正反標志位

uchar bushu,maichong=3,table_begin=0;

uchar code table[]={0x01,0x02,0x04,0x04,0x02,0x01};

//電機正反轉I/O口的高低電平對應表

void delay(uchar i) //延時函數

{

uchar j,k;

for(j=i;j>0;j--)

for(k=125;k>0;k--);

}

void key()

{

/仿早隱/kaikey=shuo_key;

if(kai_key==0) //這里開關閉合,表示鍵盤鎖打開。如果開關不閉合,表示上鎖,電機不轉

{

if(27_key==0) bushu=27; //步數高的優先,即多個步數開關同時打上,運行高步數

else if(24_key==0) bushu=24;

else if(21_key==0) bushu=21;

else if(18_key==0) bushu=18;

else if(15_key==0) bushu=15;

else if(12_key==0) bushu=12;

else if(9_key==0) bushu=9;

else if(6_key==0) bushu=6;

else if(3_key==0) bushu=3;

esle bushu=0;

}

if(zheng_key==0)

flg=0;

else if(fan_key==0)

flg=1;

}

void dispose() //數據處理函數

{

if(flag==0)

{

table_begin=0; //flag為0正轉

}

else

table_begin=3; //flag為1反轉

}

void qudong()

{

while(kai_key==0)

{

while(bushu!=0)

{

unchar i,j;

for(j=0+table_begin;(j<3+table_begin)&&(bushu!=0);j++)

{

PO=table[j]

for(i=0;i<maichong;i++)

{

delay(10) //延時函數,控制電機速度

}

bushu--;

}

}

}

}

void main()

{

while(1)

{

key();

dispose();

qudong();

while(kai_key==0); //等待開鎖

}

}

② 單片機控制步進電動機的運動的原理及單片機程序

51單片步進電機控制原理與控制設計程序
51單片步進電機是數字控制電機,它將脈沖信號轉變成角位移,即給一個脈沖信號,步進電機就轉動一個角度,因此非常適合於單片機控制。步進電機可分為反應式步進電機(簡稱vr)、永磁式步進電機(簡稱pm)和混合式步進電機(簡稱hb)。
51單片步進電機區別於其他控制電機的最大特點是,它是通過輸入脈沖信號來進行控制的,即電機的總轉動角度由輸入脈沖數決定,而電機的轉速由脈沖信號頻率決定。
51單片步進電機的驅動電路根據控制信號工作,控制信號由單片機產生。其基本原理作用如下:
(1)控制換相順序
通電換相這一過程稱為脈沖分配。例如:三相步進電機的三拍工作方式,其各相通電順序為a-b-c-d,通電控制脈沖必須嚴格按照這一順序分別控制a,b,c,d相的通斷。
(2)控制步51單片進電機的轉向
如果給定工作方式正序換相通電,步進電機正轉,如果按反序通電換相,則電機就反轉。
(3)控制51單片步進電機的速度
如果給步進電機發一個控制脈沖,它就轉一步,再發一個脈沖,它會再轉一步。兩個脈沖的間隔越短,步進電機就轉得越快。調整單片機發出的脈沖頻率,就可以對步進電機進行調速。步進電機是機電控制中一種常用的執行機構,它的用途是將電脈沖轉化為角位移,通俗地說:當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(及步進角)。通過控制脈沖個數即可以控制角位移量,從而達到准確定位的目的;同時通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。

③ 如何用51單片機PWM控制3個步進電機

用單片機同時是不可能的,當然,時間間隔小到可以接受,跑幾個任務,那也可以視為同時。要實現真正意義上的同時,用FPGA/CPLD是可以完成的。

話說回來,也許你的同時並不是說一定嚴格地同時工作,只是說一個單片機去控制四個步進電機,那就好辦多了。

一個步進電機,比如4相5線那種,4個IO口可控制一個,四個步進電機就要16個,驅動晶元用ULN2003即可。

當然,如果你的IO口不允許使用這么多,那也可以通過串轉並的方法,擴展IO口,比如用74HC595,三根IO口控制它,它可以級聯,三根線可以控制很多片。一片為8位,兩片就為16位,3片為24位 ……

閱讀全文

與單片機控制三相步進電機相關的資料

熱點內容
單片機中三位數碼管原件 瀏覽:140
pdf可以刪除其中一頁 瀏覽:216
清dns緩存的命令 瀏覽:103
免費pdf在線轉換 瀏覽:768
堆貨演算法 瀏覽:878
vsc編譯vc程序 瀏覽:197
centos55命令 瀏覽:709
美國干編程有什麼條件 瀏覽:505
阿里雲伺服器遠程鏈接 瀏覽:250
墨鏡慧眼怎麼下載廠商的app 瀏覽:61
iphone加密專線 瀏覽:491
aes產生加密文件 瀏覽:415
編程實現藍牙通信 瀏覽:769
怎麼恢復掉簽的app 瀏覽:848
伺服器部署ip地址 瀏覽:323
涉密場所周邊安全防護距離演算法 瀏覽:674
安卓fpse模擬器怎麼設置加速 瀏覽:948
建行app怎麼生成電子簽章 瀏覽:510
獲取當前時間javadate 瀏覽:75
帶密碼的wifi如何加密 瀏覽:239