首頁 > 新能源汽車

89C51單片機的步進電動機控制系統(tǒng)設(shè)計

來源:新能源汽車網(wǎng)
時間:2018-01-22 16:00:07
熱度:

89C51單片機的步進電動機控制系統(tǒng)設(shè)計本文為大家?guī)韮蓚€89C51單片機的步進電動機控制系統(tǒng)設(shè)計。89C51單片機的步進電動機控制系統(tǒng)設(shè)計一系統(tǒng)整圖如圖1所示,本系統(tǒng)采用外部中斷

本文為大家?guī)韮蓚€89C51單片機的步進電動機控制系統(tǒng)設(shè)計。

89C51單片機的步進電動機控制系統(tǒng)設(shè)計一

系統(tǒng)整圖如圖1所示,本系統(tǒng)采用外部中斷方式,p0口作為信號的輸入部分,p1口為發(fā)光二極管顯示部分,p2口作為電機的驅(qū)動部分。

89C51單片機的步進電動機控制系統(tǒng)設(shè)計

圖1 系統(tǒng)整圖

電源部分

利用LM7812和LM7805芯片得到12V和5V的電壓,它們的應(yīng)用要注意以下幾點:

(1)輸入輸出壓差不能太大,太大則轉(zhuǎn)換效率急速降低,而且容易擊穿損壞;

(2)輸出電流不能太大,1.5A 是其極限值。大電流的輸出,散熱片的尺寸要足夠大,否則會導(dǎo)致高溫保護或熱擊穿;

(3)輸入輸出壓差也不能太小,大小效率很差。 其中12V電壓給步進電機供電,5V電壓則給單片機供電。分別如圖2、圖3所示。

(1)產(chǎn)生12V的電壓給步進電機供電

89C51單片機的步進電動機控制系統(tǒng)設(shè)計

圖2 12V電路部分

(2)產(chǎn)生5V的電壓給單片機供電

89C51單片機的步進電動機控制系統(tǒng)設(shè)計

圖3 5V電路部分

按鍵部分

本次設(shè)計選用的是單片機的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口一個低電平。然后通過單片機實行相應(yīng)的操作。如圖4。

89C51單片機的步進電動機控制系統(tǒng)設(shè)計

圖4 按鍵部分電路

驅(qū)動部分

此電路是步進電機的驅(qū)動部分,我選用的是ULN2004芯片來驅(qū)動的,ULN2004系列是一款高耐壓,大電流達林頓管驅(qū)動器,包含7個NPN達林頓管。如圖5。

89C51單片機的步進電動機控制系統(tǒng)設(shè)計

圖5 驅(qū)動部分電路

狀態(tài)指示部分

狀態(tài)指示用P1口控制發(fā)光二極管的顯示,如果相應(yīng)端口是低電平,相應(yīng)的發(fā)光二極管就會亮,用它來表示步進電機所處的狀態(tài)。

時鐘部分

時鐘電路是計算機的心臟,它控制著計算機的工作節(jié)奏,可以通過提高時鐘頻率來提高CPU的速度,本次設(shè)計采用的晶振為12MHz。如圖6。

89C51單片機的步進電動機控制系統(tǒng)設(shè)計

圖6 時鐘部分電路

系統(tǒng)軟件設(shè)計

系統(tǒng)主程序

系統(tǒng)分為電機正轉(zhuǎn)、電機反轉(zhuǎn)、電機加速與電機減速的幾部分組成,其主程序框圖如圖7所示。

89C51單片機的步進電動機控制系統(tǒng)設(shè)計

圖7 主程序框圖

查鍵部分

查鍵程序用于判斷P0.0口與P0.1口的值,當(dāng)p0.0口為0時,電機正轉(zhuǎn),當(dāng)p0.0口為1時,繼續(xù)判斷p0.1口的值,p0.1口為0時,電機反轉(zhuǎn)。如圖8所示。

89C51單片機的步進電動機控制系統(tǒng)設(shè)計

圖8 查鍵部分流程圖

前進部分

系統(tǒng)初始化之后,前進子程序R0用于給P2口送不同的值,根據(jù)電機轉(zhuǎn)動的相序,使電機正向轉(zhuǎn)動,P2口的值分別為01H,03H,02H,06H,04H,0CH,08H,09H。流程圖如圖9所示。

89C51單片機的步進電動機控制系統(tǒng)設(shè)計

圖9 前進部分流程圖

后退部分

電機反轉(zhuǎn)原理與正轉(zhuǎn)相似,此時P2口的值分別為09H,08H,0CH,04H,06H,02H,03H,01H。流程圖如圖10所示。

89C51單片機的步進電動機控制系統(tǒng)設(shè)計

圖10 后退部分流程圖

加速部分

當(dāng)電機正轉(zhuǎn)或反轉(zhuǎn)的時候,按下加速鍵,調(diào)用加速子程序,使電機每轉(zhuǎn)動一步的延時時間變短,從而實現(xiàn)電機的加速。流程圖如圖11所示。

89C51單片機的步進電動機控制系統(tǒng)設(shè)計

圖11 加速部分流程圖

減速部分

電機正轉(zhuǎn)或反轉(zhuǎn)的時候,按下減速鍵,通過改變電機每轉(zhuǎn)動一步的延時時間,使時間變長,從而實現(xiàn)電機減速。流程圖如圖12所示。

89C51單片機的步進電動機控制系統(tǒng)設(shè)計

圖12

89C51單片機的步進電動機控制系統(tǒng)設(shè)計二

控制系統(tǒng)設(shè)計

步進電機控制系統(tǒng)主要由單片機、PC上位機、驅(qū)動電路、步進電動機、4*4鍵盤和LED顯示等模塊組成,下圖為步進電機控制系統(tǒng)是總體結(jié)構(gòu)圖。單片機產(chǎn)生脈沖信號并將脈沖信號傳送給步進電動機,完成對步進電動機的步數(shù)和圈數(shù)的準(zhǔn)確計數(shù),從而實現(xiàn)對步進電動機的轉(zhuǎn)速控制。PC上位機模塊是系統(tǒng)的核心,通過串口向單片機發(fā)送控制命令,實現(xiàn)PC機對步進電動機的實時控制,并實時顯示步進電動機的運行狀態(tài)。4*4鍵盤模塊實現(xiàn)指令輸入,LED顯示模塊可顯示步進電動機的轉(zhuǎn)速和轉(zhuǎn)向等運行狀態(tài)。為保護單片機控制系統(tǒng)硬件電路,在單片機和步進電機之間增加過驅(qū)動電路。

89C51單片機的步進電動機控制系統(tǒng)設(shè)計

系統(tǒng)總體結(jié)構(gòu)圖

由于步進電動機的驅(qū)動電流比較大,步進電動機較大驅(qū)動電流的通斷會造成電磁干擾,進而會影響單片機的正常工作。因而單片機與步進電動機之間的驅(qū)動電路就顯得尤為重要。本系統(tǒng)采用74LS04非門與有光電隔離的4N29達林頓管組成驅(qū)動電路,這樣不僅避免了在驅(qū)動電路發(fā)生故障,造成高電壓、大電流進入單片機而燒毀器件。同時割斷了驅(qū)動電路與單片機控制電路之間的電氣連接。另外步進電動機的啟停和正反轉(zhuǎn)分別由S1,S2控制。硬件接線圖如下圖所示。

89C51單片機的步進電動機控制系統(tǒng)設(shè)計

步進電機與單片機硬件接線圖

軟件實現(xiàn)

單片機程序判斷步進電機是否啟動;若啟動則進一步判斷其旋轉(zhuǎn)方向;然后按照既定的旋轉(zhuǎn)方向傳送控制脈沖序列,再加上脈寬延時即可。每走一步步數(shù)減1,并判斷步數(shù)是否為零,從而決定是否送下一個脈沖序列。其控制狀態(tài)如下表所示。

89C51單片機的步進電動機控制系統(tǒng)設(shè)計

三相單三拍控制模式

由上表可以看出,輸出的不同狀態(tài)字,表示不同的勵磁方式。P1=0x06H,表示A相通電,其它兩相斷電:P1=0x05H,表示B相通電,其它兩相斷電;P1=0x03H,表示C相通電,其它兩相斷電。若以次給P1口送0X06H,0X05H,0X03H,則步進電機通電順序為A——B——C——A相。反之若以次給P1口送0X03H,0X05H,0X06H,則步進電機通電順序為C——B——A——C相。從而用軟件實現(xiàn)了步進電機的正反轉(zhuǎn)控制。步進電機的旋轉(zhuǎn)速度可以用脈沖寬度,即送出控制狀態(tài)字后的延時時間長短來控制。

軟件設(shè)計流程框圖如下圖所示。

89C51單片機的步進電動機控制系統(tǒng)設(shè)計

步進電動機控制流程圖