步進電機控制設計
A. 步進電機控制系統設計(匯編語言)
ORG 0000H
AJMP MAIN
MAIN: MOV A,#020H ;PC5口置1,綠燈亮,不工作
MOV DPTR,#8002
MOVX @DPTR,A
LCALL DELAY
LOOP:MOV DPTR,#8002
MOVX A,@DPTR
ANL A,#020H ;判斷是否啟動,若沒啟動則重新啟動
JZ MAIN
MOV DPTR,#8002 ;判斷工作模式;
MOVX A,@DPTR
ANL A,#01H
JNZ L1
MOV DPTR,#8002
MOVX A,@DPTR
ANL A,#02H
JNZ L2
MOV DPTR,#8002
MOVX A,@DPTR
ANL A,#04H
JNZ A,L3
L1: MOV DPTR,#DONE1 ;跳轉到方式1的控制模型
JMP LP2
L2: MOV DPTR,#DONE2 ;跳轉到方式2的控制模型
JMP LP2
L3: MOV DPTR,#DONE3 ;跳轉到方式3的控制模型
JMP LP2
LP2:MOV DPTR,#8000 ;讀入PA口設定的步數到R2
MOVX A,#DPTR
MOV R0,A
LP3: MOV DPTR,#8002 ;判斷PC4口(正反轉口)是否為0,為0電機反轉
MOVX A,#DPTR
ANL A,#010H
JZ LP5
MOV A,#080H ;PC4不為0,正轉,紅燈亮
MOV R1,#00H
LP4: MOV A,R1 ;P1口輸出電機模型
MOVC A,@A+DPTR
JZ LP3
MOV P1,A
LCALL DELAY
INC R1 ;控制步數加1
DEC R0 ;剩餘步數減1
LCALL LED ;LED顯示剩餘步數
DJNZ R0,LP4 ;步數未走完,繼續
RET
LP5:MOV A,#040H ;PC4為0,反轉,黃燈亮
MOV R1,A
AJMP LP4
DONE1:DB 01H,02H,04H,00H,01H,04H,02H,00H
DONE2:DB 03H,06H,05H,00H,03H,05H,06H,00H
DONE3:DB 01H,03H,02H,06H,04H,05H,00H,01H,05H,04H,06H,02H,03H,00H
DELAY: MOV R2,#0
DELAY0: MOV R4,DELAY0
RET
DISPLY:MOV A,#30H ;(顯示輸出參考課本P68)
MOV DPTR,#8001
MOV @DPTR,A
MOV R2,#30H ;顯示緩沖區首地址送R2
MOV R3,#04H ;位選碼指向最左一位,第三位
DISPY1: MOV A,@R ;取出要顯示的數
MOV DPTR,#SEGTAB ;指向換嗎表首址
MOVC A,@A+DPTR ;取出顯示碼
MOV DPTR,#8001 ;從B口輸出顯示碼
MOV A,R3 ;從P1口輸入位選碼
MOV P1,A
LCALL DELAY
MOV A,R3
JNB ACC.O,DISPY2
RET
DISPY2:INC R2 ;求下一位待顯示的數的存放地址
MOV A,R3 ;求下一個位選碼
RR A
MOV R3,A
AJMP DISPY1
DELAY: MOV R4,#20 ;延時程序
DELAY1: MOV R5,#0
DJNZ R5,DELAY1
DJNZ R4,DELAY1
RET
SEGTAB:
DB
3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H ;對應字元0 ~ F,8段管顯示碼
END
B. 步進電機控制設計
四拍驅動,您點燈的方式就可以驅動了。
驅動時序:
sbit A = P0^0;
sbit B=P0^1;
sbit C=P0^2;
sbit D= P0^3;
unsigned char step_phase;
void MOTOR_RUN_ZHENGZHUAN(unsigned char phase)
{
switch(phase%4)//四拍版模式
{
case 0:{A=0;B=C=D=1;}break;//因為您的是ULN2003晶元,權注意反向。
case 0:{B=0;A=C=D=1;}break;//因為您的是ULN2003晶元,注意反向。
case 0:{C=0;B=A=D=1;}break;//因為您的是ULN2003晶元,注意反向。
case 0:{D=0;B=C=A=1;}break;//因為您的是ULN2003晶元,注意反向。
}
}
C. 課程設計:步進電機控制
(一)1步進電機驅動原理:
是通過對每相線圈中的電流的順序切換來使電機機作步進式旋轉,切換是通過單片機輸出脈沖信號來實現的。所以調節脈沖信號的頻率便可以改變步進機的轉速,改變各相輸入脈沖先後順序,可以改變電機的旋轉方向。
2轉速控制:
調節脈沖信號的頻率便可以改變步進機的轉速
3位置控制:
改變脈沖信號的個數便可以改變步進機的位置
4方向控制:
改變各相脈沖的先後順序,便可以改變步進機的轉向
(二)8255可編程並行介面芯的連接方法
1用8255APB0-PB3輸出脈沖信號,驅動步進電機轉動
2硬體線路原理圖如圖
3將步進電機插頭連到DVCC-8086H中間5芯插座J1(步進電機驅動輸出插座)上
4將8255CS連到060H
3 設計程序清單及注釋
CODESEGMENT
ASSUMECS:CODE
IOCONPTEQU0063H ;8255控制埠地址
IOBPT EQU0061H ;B口埠地址
START: MOVAL,80H ;初始化8255控制埠,A、B、C口輸出,工作方
MOVDX,IOCONPT ;式0
OUTDX,AL
NOP
NOP
NOP
IOLED1:MOVDX,IOBPT
MOVAL,03H ;步進電機初始化勵磁數據03H(BA相)
OUTDX,AL
CALLDELAY ;調用延時子程序DELAY
MOVAL,06H ;步進電機勵磁數據左移一位後為06H(BB相)
OUTDX,AL
CALLDELAY
MOVAL,0CH ;步進電機勵磁數據左移一位後為0CH(BC相)
OUTDX,AL
CALLDELAY
MOVAL,09H ;步進電機勵磁數據左移一位後為09H(BD相)
OUTDX,AL
CALLDELAY
JMPIOLED1 ;無條件轉移,死循環以上程序,步進機不停轉動
DELAY:MOVCX,03FFFH ;延時子程序(改變步進機轉速時修改該參數)
DELA: LOOPDELA
RET
CODEENDS
ENDSTART
4、正轉、反轉則通過改變相位順序來實現,轉速則通過修改CX的參數值就能實現對轉速的控制。
D. 如何實現同時控制10個以上步進電機
常見的步進電機有3相,4相,5相等不同的相位,每相還可以分成單拍和雙拍。比如:4相8拍的步進電機的控制,就需要供給ABCD 4相脈沖,每相2拍,其脈沖順序為 A- AB-B-BC-C-CD-D-DA-A.
控制10個步進電機,不管10個步進電機是否相同,都是供給符合相數和拍數的脈沖。脈沖的頻率決定了步進電機的轉速。
在多數情況下,步進電機的控制採用單片機來控制,單片機根據步進電機的型號不同輸出符合要求的脈沖。一般來說,單片機的運行速度遠遠高於步進電機,可以同時輸出多個步進電機的控制控制脈沖。幾台十幾台步進電機甚至可以用一個單片機來控制。
單片機在進行數量不多的步進電機控制時,可以採用中斷方式。但在進行較多台電機(如10台)控制時,由於單片機可響應的中斷源數量不足,則可以採用定時器配合查詢方式來進行控制。此時要求較高速度的單片機。
當然,上面所說的對步進電機的控制,是說對步進電機的「驅動控制」,實際應用中,對步進電機的控制還可能是指對步進電機所組成的系統的「系統控制」,即可能還包括步進電機帶動的負載在內機械傳動,電機帶動的閥門,控制流量,壓力,或者小車的速度等,由這些部分組成的系統。這時所說的對步進電機的控制,實際上就需要包括電機的驅動控制,及步進電機系統的指標控制。由系統指標控制的數據,來驅動步進電機,按照某條曲線工作。
E. 設計一個由51單片機控制的步進電機調速系統
單片機控制步進電機正反轉以及加速減速的程序
電路圖所在位置:
http://hi..com/tianhj2001/album/item/c0dc7d4fc718aed7d1c86a98.html
;文件名:DJ15-4.ASM
;程序功能:開關控制步進電機正反轉
K1 EQU P3.2
K2 EQU P3.3
K3 EQU P3.4
STOP: MOV P0, #0FFH
LOOP: JNB K1, Z_M2
JNB K2, F_M2
JNB K3, STOP1
JMP LOOP
;-----------------------------
STOP1: ACALL DELAY
JNB K3, $
ACALL DELAY
JMP STOP
Z_M2: ACALL DELAY
JNB K1, $
ACALL DELAY
JMP Z_M
F_M2: ACALL DELAY
JNB K2, $
ACALL DELAY
JMP F_M
;---------------------------
Z_M: MOV R0,#00H
Z_M1: MOV A, R0
MOV DPTR, #TABLE
MOVC A,@A+DPTR
JZ Z_M
MOV P0,A
JNB K3, STOP1
JNB K2, F_M2
ACALL DELAY
INC R0
JMP Z_M1
RET
;-----------------------------
F_M: MOV R0,#05H
F_M1: MOV A, R0
MOV DPTR, #TABLE
MOVC A,@A+DPTR
JZ F_M
MOV P0,A
JNB K3, STOP1
JNB K1, Z_M2
ACALL DELAY
INC R0
JMP F_M1
RET
;-----------------------------
DELAY: MOV R1,#40
D1: MOV R2,#248
DJNZ R2,$
DJNZ R1,D1
RET
;-----------------------------
TABLE: DB 0FCH, 0F9H, 0F3H, 0F6H
DB 00
DB 0F7H, 0F3H, 0FBH, 0F9H
DB 0FDH, 0FCH, 0FEH, 0F6H
DB 00
;-------------------------------
END
F. 你的步進電機控制設計有做出來嗎
步進電機是工業控制中的一種常用執行部件,具有控制靈活、價格低等優點,因而在許多設備和裝置中常被採用。嵌入式步進電機控制器就是將微處理器置於電機控制器中,使步進電機控制器能按設定的相數、拍數以及單個觸發脈沖所走的步數,提供相應的控制邏輯。
1、步進電機的工作原理
步進電機是一種能夠將電脈沖信號轉換成角位移或線位移的機電元件,它實際上是一種單相或多相同步電動機。目前常用的步進電機有3類:反應式步進電動機(VR)、永磁式步進電動機(PM)和混合式步進電動機(HB)。現以反應式三相步進電機為例說明其工作原理,定子鐵芯上有六個形狀相同的大齒,相鄰兩個大齒之間的夾角為60o。每個大齒上都套有一個線圈,徑向相對的兩個線圈串聯起來成為一個繞組,各個大齒的內表面上又有若干個均勻分布的小齒。轉子是一個圓柱形鐵心,外表面上圓周方向均勻地布滿了小齒。轉子小齒的齒距是和定子相同的。設計時應使轉子齒數能被2整除,但某一項繞組通電,而轉子可自由旋轉時,該相兩個大齒下的各個小齒將吸引相近的轉子小齒,使電動機轉動到轉子小齒與該相定子小齒對齊的位置,而其他兩相的各個大齒下的小齒必定和轉子的小齒分別錯開1/3的齒距,開成「齒錯位」,從而形成電磁引力使電動機連續地轉動下去。
永磁式步進電機和混合式步進電機的繞組電流要求正、反向流動,故驅動電路一般要做成雙極性驅動。更多資訊 http://emotor.big-bit.com/news/158593.html
G. 步進電機功能模塊如何設計
本模塊可分為如下3個部分:
1、單片機系統:控制步進電動機;
2、外圍電路:PIC單片機和步進電動機的介面電路;
3、PIC程序:編寫單片機控制步進電功機的介面程序,實現三角波信號的輸出功能。
(1)步進電動機與單片機的介面。
單片機是性能極佳的控制處理器,在控制步進電機工作時,介面部件必須要有下列功能。
①電壓隔離功能。
單片機工作在5V,而步進電機是工作在幾十V,甚至更高。一旦步進電機的電壓串到單片機中,就會損壞單片機;步進電機的信號會干擾單片機,也可能導致系統工作失誤,因此介面器件必須有隔離功能。
②信息傳遞功能。
介面部件應能夠把單片機的控制信息傳遞給步進電機迴路,產生工作所需的控制信息,對應於不同的工作方式,介面部件應能產生相應的工作控制波形。
③產生所需的不同頻率。
為了使步進電機以不同的速度工作,以適應不同的目的,介面部件應能產生不同的工作頻率。
(2)電壓隔離介面。
電壓隔離介面專用於隔離低壓部分的單片機和高壓部分的步進電機驅動電路,以保證它們的正常工作。
電壓隔離介面可以用脈沖變壓器或光電隔離器,基本上是採用光電隔離器。單片機輸出信號可以通過TTL門電路或者直接送到晶體管的基極,再由晶體管驅動光電耦合器件的發光二極體。
發光二極體的光照到光電耦合器件內部的光敏管上,轉換成電信號,再去驅動步進電機的功率放大電路,電流放大介面是步進電機功放電路的前置放大電路。它的作用是把光電隔離器的輸出信號進行電流放大,以便向功放電路提供足夠大的驅動電流。
(3)工作方式介面和頻率發生器。
用單片機控制步進電動機,需要在輸入輸出介面上用3條I/0線對步進電動機進行控制,這時,單片機用I/O口的RA0、RAI、RA2控制步進電動機的三相。
H. 步進電機控制系統輸出的是什麼信號
步進電機來驅動器接收的信號和輸出信源號是對應的,驅動器把控制系統輸出的脈沖信號給放大了,因為控制系統不能直接輸出那麼大的電流來直接驅動步進電機的,當步進電機驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(「步距角」),它的旋轉是以固定的角度一步一步運行的。可以通過控制脈沖個數來控制角位移量,從而達到准確定位的目的;同時可以通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。 步進電機是一種將電脈沖轉化為角位移的執行機構。步進電機廣泛應用於各種開環控制,主要應用於繞線機,切片機,雕刻機,排線機,包裝機械,食品加工行業,復印機,雕刻機,醫療器械,舞台燈光,光電子技術,自動化工程,機器人等方面。
I. 步進電機控制系統一共包括哪些功能模塊
包括上位機,控制器,驅動器,步進電機等。