本文為大家帶來兩個89C51單片機的步進電動機控制系統設計。
89C51單片機的步進電動機控制系統設計一
系統整圖如圖1所示,本系統采用外部中斷方式,p0口作為信號的輸入部分,p1口為發光二極管顯示部分,p2口作為電機的驅動部分。

圖1 系統整圖
電源部分
利用LM7812和LM7805芯片得到12V和5V的電壓,它們的應用要注意以下幾點:
(1)輸入輸出壓差不能太大,太大則轉換效率急速降低,而且容易擊穿損壞;
(2)輸出電流不能太大,1.5A 是其極限值。大電流的輸出,散熱片的尺寸要足夠大,否則會導致高溫保護或熱擊穿;
(3)輸入輸出壓差也不能太小,大小效率很差。 其中12V電壓給步進電機供電,5V電壓則給單片機供電。分別如圖2、圖3所示。
(1)產生12V的電壓給步進電機供電

圖2 12V電路部分
(2)產生5V的電壓給單片機供電

圖3 5V電路部分
按鍵部分
本次設計選用的是單片機的P0口來控制信號的輸入,所以把按鍵開關和P0口連接起來,當按下開關S1時,相當于給P0.0口一個低電平;當按下開關S2時,相當于給P0.1口一個低電平;當按下開關S3時,相當于給P0.2口一個低電平;當按下開關S4時,相當于給P0.3口一個低電平;當按下開關S5時,相當于給P0.4口一個低電平。然后通過單片機實行相應的操作。如圖4。

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

圖5 驅動部分電路
狀態指示部分
狀態指示用P1口控制發光二極管的顯示,如果相應端口是低電平,相應的發光二極管就會亮,用它來表示步進電機所處的狀態。
時鐘部分
時鐘電路是計算機的心臟,它控制著計算機的工作節奏,可以通過提高時鐘頻率來提高CPU的速度,本次設計采用的晶振為12MHz。如圖6。

圖6 時鐘部分電路
系統軟件設計
系統主程序
系統分為電機正轉、電機反轉、電機加速與電機減速的幾部分組成,其主程序框圖如圖7所示。

圖7 主程序框圖
查鍵部分
查鍵程序用于判斷P0.0口與P0.1口的值,當p0.0口為0時,電機正轉,當p0.0口為1時,繼續判斷p0.1口的值,p0.1口為0時,電機反轉。如圖8所示。

圖8 查鍵部分流程圖
前進部分
系統初始化之后,前進子程序R0用于給P2口送不同的值,根據電機轉動的相序,使電機正向轉動,P2口的值分別為01H,03H,02H,06H,04H,0CH,08H,09H。流程圖如圖9所示。

圖9 前進部分流程圖
后退部分
電機反轉原理與正轉相似,此時P2口的值分別為09H,08H,0CH,04H,06H,02H,03H,01H。流程圖如圖10所示。

圖10 后退部分流程圖
加速部分
當電機正轉或反轉的時候,按下加速鍵,調用加速子程序,使電機每轉動一步的延時時間變短,從而實現電機的加速。流程圖如圖11所示。

圖11 加速部分流程圖
減速部分
電機正轉或反轉的時候,按下減速鍵,通過改變電機每轉動一步的延時時間,使時間變長,從而實現電機減速。流程圖如圖12所示。

圖12
89C51單片機的步進電動機控制系統設計二
控制系統設計
步進電機控制系統主要由單片機、PC上位機、驅動電路、步進電動機、4*4鍵盤和LED顯示等模塊組成,下圖為步進電機控制系統是總體結構圖。單片機產生脈沖信號并將脈沖信號傳送給步進電動機,完成對步進電動機的步數和圈數的準確計數,從而實現對步進電動機的轉速控制。PC上位機模塊是系統的核心,通過串口向單片機發送控制命令,實現PC機對步進電動機的實時控制,并實時顯示步進電動機的運行狀態。4*4鍵盤模塊實現指令輸入,LED顯示模塊可顯示步進電動機的轉速和轉向等運行狀態。為保護單片機控制系統硬件電路,在單片機和步進電機之間增加過驅動電路。

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

步進電機與單片機硬件接線圖
軟件實現
單片機程序判斷步進電機是否啟動;若啟動則進一步判斷其旋轉方向;然后按照既定的旋轉方向傳送控制脈沖序列,再加上脈寬延時即可。每走一步步數減1,并判斷步數是否為零,從而決定是否送下一個脈沖序列。其控制狀態如下表所示。

三相單三拍控制模式
由上表可以看出,輸出的不同狀態字,表示不同的勵磁方式。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相。從而用軟件實現了步進電機的正反轉控制。步進電機的旋轉速度可以用脈沖寬度,即送出控制狀態字后的延時時間長短來控制。
軟件設計流程框圖如下圖所示。

步進電動機控制流程圖
電子發燒友App






評論