梅濤
【摘 要】本文通過(guò)綜合運(yùn)用單片機(jī)技術(shù)、電力電子技術(shù)和遙控系統(tǒng)設(shè)計(jì),從硬件和軟件兩方面研究了基于80c51單片機(jī)控制步進(jìn)電機(jī)系統(tǒng)的實(shí)現(xiàn)方法,通過(guò)PROTEL軟件對(duì)電路板的的繪制以及PROTEUS的仿真,證明了系統(tǒng)運(yùn)行的可靠性。
【關(guān)鍵詞】80c51;單片機(jī);步進(jìn)電機(jī)
1、前言
步進(jìn)電機(jī)有慣性小、轉(zhuǎn)矩大、反應(yīng)時(shí)間短等特點(diǎn),可以滿足即時(shí)啟動(dòng)和停止的需求,因此,具有廣泛的應(yīng)用前景。步進(jìn)電機(jī)和其他元件比較起來(lái),一般不用反饋就可以對(duì)距離和速率進(jìn)行準(zhǔn)確的測(cè)量,并且出來(lái)的轉(zhuǎn)角或距離相對(duì)較高,誤差也不累計(jì);制控系統(tǒng)結(jié)構(gòu)精簡(jiǎn),與配套設(shè)備兼容,售價(jià)較低。所以,在直流電機(jī)伺服系統(tǒng)、交流電機(jī)伺服系統(tǒng)大量應(yīng)用在計(jì)算機(jī)制控系統(tǒng)中的同時(shí),步進(jìn)電機(jī)卻仍然可以統(tǒng)治簡(jiǎn)易數(shù)控機(jī)床、送料機(jī)構(gòu)、儀器、儀表等領(lǐng)域。為此,本文綜合運(yùn)用單片機(jī)技術(shù)、電力電子技術(shù)和遙控系統(tǒng)設(shè)計(jì),從硬件和軟件兩方面研究了其實(shí)現(xiàn)方法,并通過(guò)PROTEUS、PROTEL軟件實(shí)現(xiàn)了80c51單片機(jī)控制步進(jìn)電機(jī),最后給出仿真結(jié)果和分析。
2、實(shí)現(xiàn)方案的選擇
本文提出的兩種方案,按如下描述。
2.1 方案一。采用ULN2003驅(qū)動(dòng)芯片。鍵盤輸入信號(hào),然后輸入單片機(jī)STC89C52的P3口低四位,經(jīng)過(guò)單片機(jī)的編程處理,將信號(hào)由單片機(jī)的P2口低四位輸出。進(jìn)入驅(qū)動(dòng)芯片ULN2003,從而控制步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)。與此同時(shí),單片機(jī)對(duì)由鍵盤輸入的信號(hào)編程處理,用單片機(jī)的P0口輸出信號(hào),進(jìn)入液晶顯示屏1602。
2.2 方案二。采用L297+L298的經(jīng)典電路設(shè)計(jì)。采用四個(gè)獨(dú)立按鍵輸入信號(hào),與單片機(jī)STC89C52的高四位相連接,輸入信號(hào),再由單片機(jī)編程處理,由P2.0,P2.1,P2.2輸出,進(jìn)入芯片L297輸入端,再有A,B,C,D四個(gè)輸出端口輸入到L298的輸入端IN1,IN2,IN3,IN4,最后輸出端OUT1,OUT2,OUT3,OUT4輸出信號(hào),二相四拍控制步進(jìn)電機(jī)的啟動(dòng),停止,正轉(zhuǎn)反轉(zhuǎn),加速減速。
2.3 方案論證及選擇。方案一中uln2003相當(dāng)于繼電器的作用,例如7個(gè)繼電器的一端連某電壓[也即uln2003電源電壓](<50)在一起,而另一端作為則作為輸出,就像一個(gè)二極管,只不過(guò)因電路集成功能的因素,輸出的電壓等同于uln2003的電壓罷了,常用于步進(jìn)電機(jī)。方案二中的L298/L297可以為負(fù)載提供雙向的電流。適合驅(qū)動(dòng)2相或4相的步進(jìn)電機(jī)和直流電機(jī),特別是當(dāng)驅(qū)動(dòng)電機(jī)的方向要改變時(shí),只須把原來(lái)電機(jī)方向的電位置反即可(port1/port2電平一高一低控制電機(jī)B;port3/port4電平一高一低控制電機(jī)A,電平改變時(shí)電機(jī)的方向也隨即改變,而A pwm/B pwm 則分別控制電機(jī)AB的速度),而uln2003則須要重新改變電圖上的接線或外加器件接成h橋電路才行。并且方案二只需要給L297一個(gè)脈沖信號(hào)即可,對(duì)單片機(jī)的管腳占用少編程簡(jiǎn)單,易于實(shí)現(xiàn)。故綜合比較判斷,采用第二種設(shè)計(jì)方案完成此次設(shè)計(jì)任務(wù)。
3、步進(jìn)電機(jī)驅(qū)動(dòng)模塊
設(shè)計(jì)中由單片機(jī)的P2.0,P2.1,P2.2三個(gè)口輸入信號(hào)到驅(qū)動(dòng)模塊。先經(jīng)過(guò)L297,L297芯片中的EN,CW和CLOCK三個(gè)引腳跟別接在單片機(jī)的P2.0,P2.1,P2.2。RES和HALF兩個(gè)引腳接高電平,OSC引腳接在VCC。輸出端A,B,C,D分別接在L298的四個(gè)輸入端口IN1,IN2,IN3,IN4。然后經(jīng)過(guò)的L298芯片,最后輸出信號(hào)通過(guò)OUT1,OUT2,OUT3,OUT4,最終控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)。
4、步進(jìn)電機(jī)驅(qū)動(dòng)系統(tǒng)的軟件設(shè)計(jì)
4.1 Keil軟件及驅(qū)動(dòng)系統(tǒng)總體設(shè)計(jì)。Keil軟件把指令植入菜單欄,同時(shí)還供應(yīng)了一個(gè)可以即時(shí)確定指令按鍵的工具欄以及信息提示窗口、對(duì)話框等。Keil軟件能夠同時(shí)審查多個(gè)源碼文件,它有兩大模式:1、Keil軟件可以譯碼幾乎全部的應(yīng)用程序并合成可以運(yùn)行的程序,這個(gè)模式的詳細(xì)特點(diǎn)隨后在新建應(yīng)用時(shí)再討論;2、Keil軟件可以為各種應(yīng)用軟件供應(yīng)一個(gè)強(qiáng)大的調(diào)試器,這個(gè)模式在隨后的調(diào)試程序介紹時(shí)再詳述。這兩種模式有一個(gè)共同的特點(diǎn),就是都可以用Keil Vision3的編碼器來(lái)調(diào)整源碼。
4.2 單片機(jī)主程序。單片機(jī)主程序主要是整個(gè)系統(tǒng)控制的核心框架,不僅控制著整個(gè)系統(tǒng)的運(yùn)轉(zhuǎn),而且還起著銜接子程序模塊的作用。在考慮系統(tǒng)要實(shí)現(xiàn)的功能的情況下,設(shè)計(jì)的主程序的流程如下:
IT0 = 1;//外部中斷信號(hào)負(fù)跳變有效
EA = 1;//開(kāi)總控制開(kāi)關(guān)
EX0 = 1;//開(kāi)中斷
P2_0=0;//P2.0口賦初值
P3_4=1;//K1為高電平
P3_5=1;//K2為高電平
P3_6=1; //K3為高電平
P3_7=1; //K4為高電平
Lcd_Init();//進(jìn)入LCD初始化
printXY(0,1,"Speed(r/m):");//LCD顯示第二行
printXY(0,0,"Direction: front");//LCD顯示第一行
disspeed();//調(diào)入disspeed子函數(shù)
while(1)
{
delay(speed);//延時(shí)
P2_2=~P2_2;//P2.2口不斷的取反
}
LCD顯示程序
對(duì)于LCD程序,其主要包括LCD的初始化,LCD的讀寫數(shù)據(jù),LCD的狀態(tài)的讀取,LCD寫指令以及LCD顯示一個(gè)字符和一串字符。
LCD的初始化主要是對(duì)LCD的模式的設(shè)置、清屏以及顯示光標(biāo)位置的設(shè)置。該部分程序如下:
void Lcd_Init(void)
{
delay1_64ms();
Lcd_Write(0,0x38); //8位數(shù)據(jù)端口,2行顯示,5*7點(diǎn)陣
Lcd_Write(0,0x38);
Lcd_Write(0,0x38);
Lcd_SetDisplay(0x04); //開(kāi)啟顯示, 無(wú)光標(biāo)|
Lcd_Cursor|Lcd_Flash
Lcd_SetInput(0x02|0x00); //AC遞增, 畫面不動(dòng)_To
}
LCD顯示字符程序主要是對(duì)光標(biāo)位置的設(shè)置以及LCD字符的顯示設(shè)置,LCD顯示字符的程序如下:
void Lcd_SetDisplay(uchar DisplayMode)
{
Lcd_Write(0,0x08|DisplayMode);
}
void Lcd_SetInput(uchar InputMode)
{
Lcd_Write(0,0x04|InputMode);
}
4.3 仿真驗(yàn)證及結(jié)果分析。此次設(shè)計(jì)系統(tǒng)運(yùn)用的是Proteus7仿真軟件對(duì)電路程序進(jìn)行仿真。在設(shè)計(jì)過(guò)程中,也選用了利用ULN2003驅(qū)動(dòng)步進(jìn)電機(jī),進(jìn)行對(duì)比,但是由于ULN2003只能驅(qū)動(dòng)4相步進(jìn)電機(jī)。軟件編程過(guò)于復(fù)雜,并且出現(xiàn)許多問(wèn)題,如每次轉(zhuǎn)動(dòng)都有回轉(zhuǎn)的現(xiàn)象。
5、結(jié)論
基于單片機(jī)的步進(jìn)電機(jī)驅(qū)動(dòng)系統(tǒng)的設(shè)計(jì),主要用到了STC89C52單片機(jī),L297,L298步進(jìn)電機(jī)驅(qū)動(dòng)芯片,紅外遙控,獨(dú)立鍵盤,LCD1602液晶顯示屏,USB數(shù)據(jù)線,串行線等元器件。本課題開(kāi)發(fā)的步進(jìn)電機(jī)驅(qū)動(dòng)系統(tǒng)也有許多不完善的地方,需要進(jìn)行多方面的后續(xù)開(kāi)發(fā),進(jìn)一步增強(qiáng)其功能。
【參考文獻(xiàn)】
[1]陳石龍.基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)[J].寧德師專學(xué)報(bào),2009(01).
[2]婁俊,朱志甫.基于單片機(jī)AT89C51的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)[J].湖南農(nóng)機(jī),2010(09).
[3]高志遠(yuǎn),姚建國(guó),曹陽(yáng),等.智能電網(wǎng)發(fā)展機(jī)理研究初探[J].電力系統(tǒng)保護(hù)與控制,2014(05).
[4]李亞平,姚建國(guó),黃海峰,等.SVG技術(shù)在電網(wǎng)調(diào)度自動(dòng)化系統(tǒng)中的應(yīng)用[J].電力系統(tǒng)自動(dòng)化,2005(23).