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