摘要:步進(jìn)電動機(jī)由于用其組成的開環(huán)系統(tǒng)既簡單、廉價,又非??尚?,因此在打印機(jī)等辦公自動化設(shè)備以及各種控制裝置等眾多領(lǐng)域有著極其廣泛的應(yīng)用。本文應(yīng)用單片機(jī)對步進(jìn)電機(jī)進(jìn)行控制,從硬件和軟件設(shè)計論述其實(shí)現(xiàn)方式,實(shí)現(xiàn)了步進(jìn)電機(jī)的智能化,有一定的實(shí)用價值。
關(guān)鍵詞:單片機(jī);步進(jìn)電機(jī);驅(qū)動方式
中圖分類號:TP311.52 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9599(2012)24-0174-02
1 引言
步進(jìn)電機(jī)是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負(fù)載變化的影響,即給電機(jī)加一個脈沖信號,電機(jī)則轉(zhuǎn)過一個步距角。這一線性關(guān)系的存在,加上步進(jìn)電機(jī)只有周期性的誤差而無累積誤差等特點(diǎn)。使得在速度、位置等控制領(lǐng)域用步進(jìn)電機(jī)來控制變的非常的簡單。
2 步進(jìn)電機(jī)驅(qū)動方式
由三相步進(jìn)電機(jī)工作原理可知,這類步進(jìn)電機(jī)通常有3種通電工作方式:
假設(shè)按以上順序通電,步進(jìn)電機(jī)正轉(zhuǎn),則按相反方向通電,步進(jìn)電機(jī)反轉(zhuǎn)。用單片機(jī)的P1.0,P1.1,P1.2分別控制步進(jìn)電機(jī)的A,B,C相繞組,由控制方式來找出控制模型。
3 硬件設(shè)計
本系統(tǒng)采用外部中斷方式,采用的晶振為12MHz。p0口作為信號的輸入部分,p1口為發(fā)光二極管顯示部分,p2口作為電機(jī)的驅(qū)動部分。單片機(jī)的P2.0、P2.1、P2.2分別連接驅(qū)動器輸入端,驅(qū)動器輸出端分別接步進(jìn)電機(jī)的ABC三相。利用LM7812和LM7805芯片得到12V和5V的電壓。片機(jī)的P0口來控制信號的輸入,所以把按鍵開關(guān)和P0口連接起來,當(dāng)按下開關(guān)S1時,相當(dāng)于給P0.0口一個低電平;當(dāng)按下開關(guān)S2時,相當(dāng)于給P0.1口一個低電平;當(dāng)按下開關(guān)S3時,相當(dāng)于給P0.2口一個低電平;當(dāng)按下開關(guān)S4時,相當(dāng)于給P0.3口一個低電平;當(dāng)按下開關(guān)S5時,相當(dāng)于給P0.4口一個低電平。然后通過單片機(jī)實(shí)行相應(yīng)的操作。選用ULN2004芯片來驅(qū)動的,ULN2004系列是一款高耐壓,大電流達(dá)林頓管驅(qū)動器。狀態(tài)指示用P1口控制發(fā)光二極管的顯示,如果相應(yīng)端口是低電平,相應(yīng)的發(fā)光二極管就會亮,用它來表示步進(jìn)電機(jī)所處的狀態(tài)。
4 軟件設(shè)計
由步進(jìn)電機(jī)工作原理可知,步進(jìn)電機(jī)控制程序的設(shè)計主要包括:(1)判斷旋轉(zhuǎn)方向;(2)順序送出控制脈沖;(3)脈沖是否送完;(4)恒速還是變速;(5)變速時要判斷是升速還是降速等。
下面主要介紹恒速系統(tǒng)控制程序設(shè)計。轉(zhuǎn)向標(biāo)志存放在程序狀態(tài)寄存器用戶標(biāo)志位F1(D5H)中,當(dāng)F1為“0”時,步進(jìn)機(jī)正轉(zhuǎn),反之步進(jìn)機(jī)反轉(zhuǎn)。步進(jìn)機(jī)要走的步數(shù)放在R4中,以三相六拍工作方式為例,正轉(zhuǎn)控制字及單元分配表見表1所示,反轉(zhuǎn)控制字及單元分配見表2所示。
表1 正轉(zhuǎn)模型單元分配表
內(nèi)存字節(jié)地址20H21H22H23H24H25H26H
控制模型數(shù)據(jù)01H03H02H06H04H05H00H
表2 反轉(zhuǎn)模型單元分配表
內(nèi)存字節(jié)地址27H28H29H2AH2BH2CH2DH
控制模型數(shù)據(jù)01H05H04H06H02H03H00H
步進(jìn)電機(jī)的工作頻率(轉(zhuǎn)速)由送至步進(jìn)機(jī)三相繞組的脈沖頻率決定。在此設(shè)計脈沖序列產(chǎn)生由定時器T0中斷來產(chǎn)生,故調(diào)整定時器T0的定時時間即可調(diào)節(jié)步進(jìn)機(jī)的轉(zhuǎn)速。
程序清單如下:
主程序:
ORG 0000H
MOV R4,#N; 設(shè)步長計數(shù)器。
CLR C
ORL C,0D5H; 轉(zhuǎn)向標(biāo)志為1則轉(zhuǎn)。
JC ROTE;C=1,轉(zhuǎn)ROTE。
MOV R0,#20H; 正轉(zhuǎn)模型首址送R0。
AJMP PH
ROTE:MOV R0,#27H;反轉(zhuǎn)模型首址送R0。
PH:MOV TMOD,#01H;T0定時器工作方式1。
MOV TL0,#XL; T0賦初值。
MOV TH0,#XH
SETB TR0;啟動T0。
SETB ET0;允許T0中斷。
SETB EA; CPU開中斷。
LOOP:MOV A,R4;等待中斷。
(下轉(zhuǎn)第179頁)