郭蕓俊,張煥梅
(1.太原工業(yè)學院計算機工程系,山西 太原 030008;2.太原工業(yè)學院機械工程系,山西 太原 030008)
基于AT89C51的步進電機控制系統(tǒng)的設(shè)計
郭蕓俊1,張煥梅2
(1.太原工業(yè)學院計算機工程系,山西 太原 030008;2.太原工業(yè)學院機械工程系,山西 太原 030008)
本設(shè)計以單片機AT89C51為控制核心,采用其內(nèi)部的定時器改變CP脈沖頻率從而實現(xiàn)對步進電機的轉(zhuǎn)速進行控制。以L297作為驅(qū)動芯片產(chǎn)生驅(qū)動脈沖信號,由按鍵控制步進電機的步進方向和步進速度,并經(jīng)液晶顯示器實時顯示,通過仿真軟件Proteus對系統(tǒng)做了仿真和測試。
AT89C51;步進電機;Proteus;控制系統(tǒng)
步進電機是一種將脈沖電信號直接轉(zhuǎn)換為角位移的機電一體化執(zhí)行元件。電機本體、控制器和驅(qū)動器是構(gòu)成步進電機控制系統(tǒng)的三大重要組成部分。當步進電機本體確定后,則系統(tǒng)的性能主要取決于驅(qū)動器及控制器的優(yōu)劣。在工業(yè)控制中,由于步進電機具有良好的步進特性及較好的控制性能,其啟停、正反轉(zhuǎn)等均可在少數(shù)脈沖內(nèi)完成,沒有累積誤差且可獲得較高的控制精度[1],使其非常適合于單片機控制。以單片機為控制器的步進電機控制系統(tǒng)因其穩(wěn)定性好、性價比高、使用靈活等優(yōu)點,在各種自動化控制系統(tǒng)和機電一體化設(shè)備,如數(shù)控機床、機器人等中得到了廣泛的應用,一般利用單片機的可編程I/O口P0-P3即可實現(xiàn)對步進電機的控制[2]。
該系統(tǒng)采用單片機AT89C51作為主控芯片,利用其產(chǎn)生的驅(qū)動脈沖通過驅(qū)動芯片放大,從而驅(qū)動四相步進電機。通過相關(guān)按鍵,實現(xiàn)對步進電機的控制,如啟停、正轉(zhuǎn)、反轉(zhuǎn)等功能,通過軟硬件相結(jié)合的控制方法,實現(xiàn)了單片機對步進電機的控制,通過液晶顯示屏實時顯示步進電機轉(zhuǎn)速及方向。[3]系統(tǒng)總體結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
本系統(tǒng)的硬件電路主要包括單片機最小系統(tǒng)、步進電機驅(qū)動電路、按鍵電路及顯示電路等部分。
2.1 步進電機驅(qū)動電路設(shè)計
步進電機的驅(qū)動方式有很多,集成電路集驅(qū)動和保護于一體,作為步進電動機的專用驅(qū)動芯片,使用起來非常方便,故本設(shè)計中選擇ULN2003A作為步進電動機的驅(qū)動芯片。步進電機常用控制方式有單雙四拍及四相八拍等,可以通過微機控制L297生成四相控制信號,實現(xiàn)對步進電機的控制。
本系統(tǒng)采用L297和ULN2003A構(gòu)成驅(qū)動電路,P0.0口控制L297的方向控制端,P0.1控制步進時鐘輸入端,使L297輸出四相八拍工作所需的正確相序,L297的四相輸出接ULN2003A的1-4B使其1-4C輸出放大后的四相驅(qū)動信號,從而驅(qū)動步進電機運行[4]。電路圖如圖2所示。
圖2 電機驅(qū)動電路圖
2.2 液晶顯示電路設(shè)計
系統(tǒng)采用液晶顯示芯片LM016L,與單片機的連接采用直連的方法,通過P1口的P1.0-P1.7控制LM016L實時顯示步進電機的轉(zhuǎn)速和轉(zhuǎn)動方向。電路連接如圖3所示。
圖3 顯示模塊設(shè)計圖
2.3 按鍵電路設(shè)計
按鍵主要用來提供人機接口,在本設(shè)計中,按鍵采用獨立按鍵。按鍵工作方式采用定時掃描方式,利用定時器T0定時,通過輸出數(shù)據(jù),識別按鍵的工作狀態(tài)。各功能按鍵分別與AT89C51的P3.1-P3.5相連接,實現(xiàn)步進電機的暫停、加速、減速、正轉(zhuǎn)和反轉(zhuǎn)。
系統(tǒng)軟件采用模塊化程序設(shè)計,系統(tǒng)主程序要完成的工作主要有系統(tǒng)參數(shù)初始化、系統(tǒng)初始狀態(tài)的顯示以及各種開關(guān)狀態(tài)的檢測判斷等。包括初始化定時器及外部中斷、對P1口、速度值存儲區(qū)和方向值存儲區(qū)送初值等內(nèi)容。若初始化時P1=11H,速度和方向初始值均設(shè)為0,則意味著步進電機按四相單八拍運行,系統(tǒng)上電后在沒有操作的情況下,步進電機不旋轉(zhuǎn),方向值顯示“0”,速度值顯示“0”,主程序流程圖如圖4所示。
圖4 主程序流程圖
本設(shè)計采用Keil和Proteus對系統(tǒng)進行仿真及調(diào)試。系統(tǒng)檢測按鍵按下的情況,利用LCD將步進電機的轉(zhuǎn)速和方向顯示出來,正轉(zhuǎn)仿真結(jié)果如圖5所示,反轉(zhuǎn)仿真結(jié)果如圖6所示。
圖5 正轉(zhuǎn)仿真圖 圖6 反轉(zhuǎn)仿真圖
本設(shè)計基于Proteus和單片機AT89C51完成了步進電機控制系統(tǒng)的設(shè)計。整個系統(tǒng)采用模塊化設(shè)計,結(jié)構(gòu)簡單,性能穩(wěn)定,可應用于步進電機控制的大多數(shù)場合。
[1] 盧超.基于Proteus的步進電機控制系統(tǒng)仿真設(shè)計[J].實驗室研究與探索,2010(6):54-57.
[2] 李明.基于Proteus的單片機對步進電機運動控制仿真[J].價值工程,2012(5):153-154.
[3] 楊宏,李國輝.基于Proteus與單片機的步進電機控制設(shè)計[J].現(xiàn)代電子技術(shù),2010(5):104-106,109.
[4] 彭礴,張明敏,林飛龍,等.基于AT89S52高精度步進電機伺服控制系統(tǒng)設(shè)計[J].電子測量技術(shù),2011(3):49-53.
Design of Stepper Motor Controlling System Based on AT89C51
Guo Yunjun1, Zhang Huanmei2
(1.DepartmentofComputerEngineering,TaiyuanInstituteofTechnology,TaiyuanShanxi030008,China;2.DepartmentofMechanicalEngineering.TaiyuanInstituteofTechnology,TaiyuanShanxi030008,China)
The design uses the AT89C51 MCU as the control center; the speed of stepper motor is controlled by changing the CP pulse frequency with the internal timer of AT89C51 MCU. The L297 is used as driver chip to produce a drive pulse signal. The stepping direction and speed are controlled by the keyboard, and at the same time, they are displayed on the LCD real-time. The system is simulated and tested by the simultative software proteus.
AT89C51; stepper motor; Proteus; control system
2017-02-09
郭蕓俊(1971- ),男,山西祁縣人,實驗師,碩士,研究方向為嵌入式系統(tǒng)及應用軟件開發(fā)。
1674- 4578(2017)02- 0005- 02
TM383.6
A