任艷焱, 史俊偉
(1.赤峰學(xué)院 計(jì)算機(jī)與信息工程學(xué)院,內(nèi)蒙古 赤峰 024000;2.中國人民解放軍第五七一五工廠,河南 洛陽 471000)
51系列單片機(jī)控制步進(jìn)電機(jī)研究
任艷焱1, 史俊偉2
(1.赤峰學(xué)院 計(jì)算機(jī)與信息工程學(xué)院,內(nèi)蒙古 赤峰 024000;2.中國人民解放軍第五七一五工廠,河南 洛陽 471000)
目前電機(jī)控制已經(jīng)在很多的自動(dòng)控制領(lǐng)域中得到了廣泛的應(yīng)用.由于步進(jìn)電機(jī)具有易于精準(zhǔn)控制的良好性能,并且利用單片機(jī)來設(shè)計(jì)和開發(fā)的控制系統(tǒng),可以很好地滿足性能可靠和結(jié)構(gòu)簡單的要求.所以本文利用 8051 單片機(jī)來對步進(jìn)電機(jī)進(jìn)行控制.
步進(jìn)電機(jī);51 單片機(jī);LED 顯示;接口
目前,控制電機(jī)的方式方法有很多,其驅(qū)動(dòng)方式一般有恒壓、恒壓串電阻、高低壓驅(qū)動(dòng)、恒流、細(xì)分?jǐn)?shù)等.步進(jìn)電機(jī)必須由脈沖信號、功率驅(qū)動(dòng)電路等組成控制系統(tǒng)才可以使用.其中用 51系列單片機(jī)微機(jī)系統(tǒng),采用軟硬件結(jié)合的方法,可以有效地降低成本、節(jié)約資源.原因是近年來各種單片機(jī)的迅速發(fā)展和普及以及大規(guī)模集成電路的快速發(fā)展,所以說利用單片機(jī)與集成電路來控制步進(jìn)電機(jī)的方法不但靈活有效,而且易于實(shí)現(xiàn).
步進(jìn)電機(jī)經(jīng)過幾十年的發(fā)展已經(jīng)成為儀器儀表以及現(xiàn)代數(shù)字控制技術(shù)中最重要的執(zhí)行部件之一,它具有控制靈活、啟??旖荨?zhǔn)確定位、精度高、可以直接接收數(shù)字信號等優(yōu)越特點(diǎn),尤其是步進(jìn)電機(jī)的高精度特點(diǎn)在以精度為要求的現(xiàn)代控制中是極為重要,所以它在很多領(lǐng)域中有著不可替代的地位.
我們都知道步進(jìn)電機(jī)的驅(qū)動(dòng)電路是由脈沖信號來控制的(脈沖信號一般由單片機(jī)或 CPU 產(chǎn)生),每當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號,步進(jìn)電機(jī)就按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)步距角,它可以作步進(jìn)式旋轉(zhuǎn)是通過切換每相線圈中的電流的順序來實(shí)現(xiàn)的,所以想改變步進(jìn)電機(jī)的轉(zhuǎn)速可以調(diào)節(jié)脈沖信號的頻率,所以說通過單片機(jī)來控制步進(jìn)電機(jī)是最切實(shí)可行的.在其控制系統(tǒng)里,步進(jìn)電機(jī)需要在CPU 的控制下,按工作程序的要求,實(shí)現(xiàn)一定角度的旋轉(zhuǎn).同時(shí)想要達(dá)到調(diào)速的目的可以通過控制脈沖頻率來控制它的速度和加速度.
為了適應(yīng)嵌入式應(yīng)用的需要,單片機(jī)應(yīng)運(yùn)而生且已經(jīng)發(fā)展成為一個(gè)可以滿足不同領(lǐng)域需要的龐大家族.而 51系列單片機(jī)在結(jié)構(gòu)上的逐漸完善而變成了有眾多制造廠商支持的發(fā)展處上百個(gè)品種的大家族.
單片機(jī)簡單的來講就是在一塊芯片上集成了一臺(tái)微型計(jì)算機(jī)的各個(gè)主要部分.因此可以說它是一臺(tái)簡單的計(jì)算機(jī),但它的主要作用是用于控制.其中 51系列單片機(jī)屬于標(biāo)準(zhǔn)型單片機(jī),它主要包括由內(nèi)部總線相連的 CPU、存儲(chǔ)器、定時(shí)器(計(jì)數(shù)器)、可編程的輸入輸出口、串行口等.
在嵌入式應(yīng)用系統(tǒng)中,LED(數(shù)碼管顯示器)和LCD(液晶顯示器)是我們經(jīng)常用到的顯示器.由于他們的特點(diǎn)不同,其應(yīng)用的場合也不同.本次試驗(yàn)采用 LED 顯示.
LED 顯示器是由 8 個(gè)發(fā)光的二極管構(gòu)成,也可以成為數(shù)碼管,通過不同的組合來顯示不同的字符.它通常有兩種型號,共陰極和共陽極.以共陰極為例,它常用的顯示字形按照顯示字符順序排列,通常顯示代碼放在程序存儲(chǔ)器的固定區(qū)域,構(gòu)成顯示代碼表.想要顯示某個(gè)字符時(shí),可以根據(jù)代碼表查找.
步進(jìn)電機(jī)在其本質(zhì)上是一個(gè)數(shù)字/角度轉(zhuǎn)換器.本次試驗(yàn)主要是通過讀取 LED 上顯示的步進(jìn)電機(jī)的正轉(zhuǎn)和反轉(zhuǎn)相對應(yīng)的命令,還有它的轉(zhuǎn)速和轉(zhuǎn)動(dòng)步數(shù),直到其轉(zhuǎn)動(dòng)步數(shù)減為零后才轉(zhuǎn)動(dòng)停止.
在這次的實(shí)驗(yàn)過程里,我們采用 51單片機(jī)的P1 口,P1 口是一個(gè)準(zhǔn)雙向的 8 位并行口,主要作為通用的 I/O 口使用,由特殊功能寄存器 P1 管理 P1口各位的工作狀態(tài),其地址為 90H, 各位地址為90H~97H.P1 口各位的結(jié)構(gòu)完全相同,但又互相獨(dú)立.其中 P1 口的 5 位 P1.0、P1.1、P1.5、P1.6、P1.7 還有第二功能.本試驗(yàn)中用到了 P1.0、P1.1、P1.3.通過這幾條 I/O 線,向步進(jìn)電動(dòng)機(jī)傳送控制信號.我們把步進(jìn)電機(jī)通電換相的過程稱為脈沖分配.而單片機(jī)控制步進(jìn)電機(jī)嚴(yán)格按照步進(jìn)電動(dòng)機(jī)的工作方式進(jìn)行.我們利用單片機(jī)的輸入輸出口線直接來控制步進(jìn)電機(jī)各相驅(qū)動(dòng)線路.
下面就程序的執(zhí)行過程作簡要概述:步進(jìn)電機(jī)的正反轉(zhuǎn)、停止等功能我們可以通過中斷程序來設(shè)置,我們知道單片機(jī)的中斷系統(tǒng)的主要作用是對其外部或者內(nèi)部的中斷請求進(jìn)行管理或者處理.那么,它的中斷源怎樣來選擇呢?因?yàn)槲覀円玫芥I盤,所以我們利用鍵盤作為它的一個(gè)外部中斷源是很好的選擇.控制步進(jìn)電機(jī)達(dá)到最優(yōu)效果可以通過調(diào)用中斷服務(wù)程序采用中斷和查詢相結(jié)合的方法來實(shí)現(xiàn).
我們通過鍵盤輸入數(shù)字,設(shè)定步進(jìn)電機(jī)正轉(zhuǎn)時(shí)顯示器第一位為 0,反轉(zhuǎn)時(shí)為 1;顯示器第二位顯示0—F時(shí)表示步進(jìn)電機(jī)的實(shí)時(shí)轉(zhuǎn)速,第三位到第六位為預(yù)先設(shè)定的步進(jìn)電機(jī)轉(zhuǎn)動(dòng)步數(shù),當(dāng)我們按下F0/EX 鍵后,步進(jìn)電機(jī)開始轉(zhuǎn)動(dòng),步數(shù)逐漸減小到零時(shí)步進(jìn)電機(jī)停止轉(zhuǎn)動(dòng).實(shí)驗(yàn)程序流程圖如圖 1 所示:
圖1 實(shí)驗(yàn)程序流程圖
程序初始化部分以及其他部分程序省略.
本文由單片機(jī)發(fā)出相應(yīng)的控制信號、運(yùn)用中斷程序來控制步進(jìn)電機(jī).很好地滿足了控制系統(tǒng)的研制中最基本的性能可靠和結(jié)構(gòu)簡單的要求.
〔1〕王曉明.電動(dòng)機(jī)的單片機(jī)控制[M].北京:北京航空航天大學(xué)出版社,2002.
〔2〕胡漢才.單片機(jī)原理及接口技術(shù)[M].北京:清華大學(xué)出版社,1996.
〔3〕宋錦河.步進(jìn)電機(jī)控制系統(tǒng)的快速實(shí)現(xiàn)[J].鄂州大學(xué)學(xué)報(bào),2004(10):4~6.
〔4〕李華.MCS-51 系列單片機(jī)實(shí)用接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2004.
〔5〕張迎新.單片機(jī)(微控制器)原理及應(yīng)用.北京:高等教育出版社,2009.
〔6〕何立民.單片機(jī)應(yīng)用技術(shù)選編[M].北京:北京航空航天大學(xué)出版社,1993.
TPM383.6
:A
:1673-260X(2016)02-0023-02
2015 年 11 月 10 日
赤峰學(xué)院學(xué)報(bào)·自然科學(xué)版2016年3期