步進(jìn)電機(jī)正反轉(zhuǎn)啟停控制的設(shè)計_第1頁
步進(jìn)電機(jī)正反轉(zhuǎn)啟??刂频脑O(shè)計_第2頁
步進(jìn)電機(jī)正反轉(zhuǎn)啟??刂频脑O(shè)計_第3頁
步進(jìn)電機(jī)正反轉(zhuǎn)啟??刂频脑O(shè)計_第4頁
步進(jìn)電機(jī)正反轉(zhuǎn)啟??刂频脑O(shè)計_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、成績 電機(jī)控制課程設(shè)計報告書 題 目 步進(jìn)電機(jī)正反轉(zhuǎn)啟??刂频脑O(shè)計 院 部 名 稱 機(jī)電工程學(xué)院 專 業(yè) 電氣工程及其自動化 班 級 組 長 姓 名 學(xué) 號 同 組 學(xué) 生 設(shè) 計 地 點 工科樓C 設(shè) 計 學(xué) 時 1周 指 導(dǎo) 教 師 金陵科技學(xué)院教務(wù)處制 目錄一、設(shè)計任務(wù)和要求二、設(shè)計思路2.1系統(tǒng)總框圖-022.2設(shè)計原理-03三、系統(tǒng)硬件設(shè)置3.1時鐘信號控制電路原理介紹-03 3.1.1 芯片89C51介紹-03 3.1.2 芯片管腳說明-03 3.1.3 時鐘信號控制電路-053.2系統(tǒng)復(fù)位電路原理介紹-06 3.2.1 系統(tǒng)復(fù)位電路-063.3驅(qū)動電路原理介紹-06 3.3.1步

2、進(jìn)電機(jī)原理介紹-06 3.3.2驅(qū)動電路-083.4正反轉(zhuǎn)控制電路原理介紹-08 3.4.1正反轉(zhuǎn)控制電路-08四、系統(tǒng)軟件設(shè)置4.1主程序流程圖-094.2源程序-09五、調(diào)試過程與結(jié)果-18六、總結(jié)與體會-18七、參考資料-19八、附錄-20附錄一 總電路圖20一、設(shè)計任務(wù)和要求電機(jī)控制課程設(shè)計是考察學(xué)生利用所學(xué)過的電機(jī)控制專業(yè)知識,進(jìn)行綜合的電機(jī)控制系統(tǒng)設(shè)計并最終完成實際系統(tǒng)連接,能夠使學(xué)生對電氣與自動化的專業(yè)知識進(jìn)行綜合應(yīng)用,培養(yǎng)學(xué)生的創(chuàng)新能力和團(tuán)隊協(xié)作能力,提高學(xué)生的動手實踐能力。最終形成一篇符合規(guī)范的設(shè)計說明書,并參加綜合實踐答辯,為后期的畢業(yè)設(shè)計做好準(zhǔn)備。本次設(shè)計考核的能力主要有

3、:1) 專業(yè)知識應(yīng)用能力,包括電路分析、電子技術(shù)、單片機(jī)、檢測技術(shù)、電氣控制、電機(jī)與拖動、微特電機(jī)及其驅(qū)動、計算機(jī)高級語言、計算機(jī)輔助設(shè)計、計算機(jī)辦公軟件等課程,還包括本專業(yè)的拓展性課程如變頻器、組態(tài)技術(shù)、現(xiàn)場總線技術(shù)、伺服電機(jī)等課程。2) 項目設(shè)計與運作能力,團(tuán)隊協(xié)作能力,技術(shù)文檔撰寫能力,PPT匯報與口頭表達(dá)能力。3) 電氣與自動化系統(tǒng)的設(shè)計與實際應(yīng)用能力。要求完成的工作量包括:1) 制作實際成品,并現(xiàn)場演示效果。2) 學(xué)生結(jié)合課題進(jìn)行PPT演講與答辯。3) 學(xué)生上交課題要求的各類設(shè)計技術(shù)文檔。二、 設(shè)計思路2.1 設(shè)計總體方框圖89C51單片機(jī)電源及晶振模塊復(fù)位模塊鍵盤控制模塊驅(qū)動模塊步

4、進(jìn)電機(jī) 圖2-1 系統(tǒng)總體框圖2.2 設(shè)計原理 本系統(tǒng)主要是由電源(+5V)及時鐘信號模塊、復(fù)位模塊、電機(jī)驅(qū)動模塊(ULN2003A)、鍵盤控制模塊、步進(jìn)電機(jī)等5個模塊組成。電源模塊的功能是提供直流5V電源給其余幾個模塊供電,時鐘信號模塊的功能是對單片機(jī)89C51提供工作周期,使89C51能夠正常工作,該電路也稱最小模式電路,對于沒有內(nèi)部晶振的單片機(jī),接上電源和晶振就是該單片機(jī)的最小系統(tǒng)。89C51芯片內(nèi)部有一個反相放大器,用于構(gòu)成振蕩器,反相放大器的輸入端為XTAL1,輸出端XTAL2,兩端跨接石英晶體及兩個電容就可以構(gòu)成穩(wěn)定的自激振蕩器(這里電容取值在30PF,石英晶體為12MHZ),復(fù)位

5、電路的功能是使單片機(jī)初始化操作,只要給RESET引腳(9腳)加上2個機(jī)器周期以上的高電平信號,即可使單片機(jī)復(fù)位。復(fù)位電路的功能是只對89C51單片機(jī)復(fù)位,除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)程序運行出錯或是操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,為了擺脫死鎖狀態(tài),也需要按復(fù)位鍵重新復(fù)位。驅(qū)動模塊的功能是通過驅(qū)動器ULN2003A來驅(qū)動步進(jìn)電機(jī),通過單片機(jī)的P1.0-P1.3輸出脈沖到ULN2003A的1B-4B口,經(jīng)信號放大后從1C-4C口分別輸出到電機(jī)的A、B、C、D相。鍵盤控制電路的功能是控制輸入部分設(shè)置了正/反轉(zhuǎn)控制、加減速和停止控制按鈕,內(nèi)部程序檢測P0.0的狀態(tài)來調(diào)用相應(yīng)的來調(diào)用相應(yīng)的啟動和換向程

6、序,實現(xiàn)步進(jìn)電機(jī)的正反轉(zhuǎn)控制。在該步進(jìn)電機(jī)的控制器中,電機(jī)實現(xiàn)正反轉(zhuǎn)、加減速、停止控制。三、 系統(tǒng)硬件設(shè)計3.1 時鐘信號控制電路原理介紹3.1.1 芯片89C51介紹 圖3-1 89C51芯片引腳圖3.1.2 芯片管腳說明:1.VCC:供電電壓。2.GND:接地。3.P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗時,P0輸出原碼,此時P0外部必須被拉高。4.P1口:P1口是一個內(nèi)部提供上拉電阻

7、的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 5.P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位

8、地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。6.P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時器0外部輸入)P3.5 T1(記時器1外部輸入)P3

9、.6 /WR(外部數(shù)據(jù)存儲器寫選通)P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些控制信號。7.RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機(jī)器周期的高電平時間。8.ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。9./PSEN:外部程序存儲器的選通信號。在由外部程序存儲器

10、取指期間,每個機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。10./EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。11.XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。12.XTAL2:來自反向振蕩器的輸出。3.1.3 時鐘信號控制電路圖3-2 時鐘信號控制電路該電路工作原理:該電路也稱最小模式電路,對于沒有內(nèi)部晶振的單

11、片機(jī),接上電源和晶振就是該單片機(jī)的最小系統(tǒng)。89C51芯片內(nèi)部有一個高增益反相放大器,用于構(gòu)成振蕩器,反相放大器的輸入端為XTAL1,輸出端XTAL2,兩端跨接石英晶體及兩個電容就可以構(gòu)成穩(wěn)定的自激振蕩器。電容C1、C2通常取30pf左右,可以穩(wěn)定頻率并對振蕩頻率有微調(diào)作用。振蕩信號從XTAL2端輸入到片內(nèi)的時鐘發(fā)生器上。3.2 系統(tǒng)復(fù)位電路原理介紹3.2.1 系統(tǒng)復(fù)位電路圖3-3 系統(tǒng)復(fù)位電路 該電路工作原理:復(fù)位電路是單片機(jī)的初始化操作,只要給RESET引腳(9腳)加上2個機(jī)器周期以上的高電平信號,即可使單片機(jī)復(fù)位。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)程序運行出錯或是操作錯誤使系統(tǒng)處于死鎖狀態(tài)

12、時,為了擺脫死鎖狀態(tài),也需要按復(fù)位鍵重新復(fù)位。3.3 驅(qū)動電路原理介紹3.3.1步進(jìn)電機(jī)原理介紹 該步進(jìn)電機(jī)為四相步進(jìn)電機(jī),采用單極性直流電源供電。只要對步進(jìn)電機(jī)的各相繞組按合適的時序通電,就能使步進(jìn)電機(jī)步進(jìn)轉(zhuǎn)動。下圖是該四相反應(yīng)式步進(jìn)電機(jī)工作原理示意圖: 圖3-3 四相步進(jìn)電機(jī)步進(jìn)示意圖 開始時,開關(guān)SB接通電源,SA、SC、SD斷開,B相磁極和轉(zhuǎn)子0、3號齒對齊,同時,轉(zhuǎn)子的1、4號齒就和C、D相繞組磁極產(chǎn)生錯齒,2、5號齒就和D、A相繞組磁極產(chǎn)生錯齒。 當(dāng)開關(guān)SC接通電源,SB、SA、SD斷開時,由于C相繞組的磁力線和1、4號齒之間磁力線的作用,使轉(zhuǎn)子轉(zhuǎn)動,1、4號齒和C相繞組的磁極對齊

13、。而0、3號齒和A、B相繞組產(chǎn)生錯齒,2、5號齒就和A、D相繞組磁極產(chǎn)生錯齒。依次類推,A、B、C、D四相繞組輪流供電,則轉(zhuǎn)子會沿著A、B、C、D方向轉(zhuǎn)動。四相步進(jìn)電機(jī)按照通電順序的不同,可分為單四拍、雙四拍、八拍三種工作方式。單四拍與雙四拍的步距角相等,但單四拍的轉(zhuǎn)動力矩小。八拍工作方式的步距角是單四拍與雙四拍的一半,因此,八拍工作方式既可以保持較高的轉(zhuǎn)動力矩又可以提高控制精度。 a. 單四拍      b. 雙四拍         c.八拍 3.3.2 驅(qū)動電路

14、 圖3-4 驅(qū)動電路 該電路工作原理:通過驅(qū)動器ULN2003A來驅(qū)動步進(jìn)電機(jī),如圖3.3所示,通過單片機(jī)的P1.0-P1.3輸出脈沖到ULN2003A的1B-4B口,經(jīng)信號放大后從1C-4C口分別輸出到電機(jī)的A、B、C、D相。3.4 正反轉(zhuǎn)控制電路原理介紹3.4.1 正反轉(zhuǎn)控制電路 圖3-5正反轉(zhuǎn)控制電路 該電路工作原理:根據(jù)系統(tǒng)的控制要求,控制輸入部分設(shè)置了正/反轉(zhuǎn)控制、加速控制、減速控制和停止控制按鈕,通過按鍵狀態(tài)變化來實現(xiàn)電機(jī)的啟動、加減速和換向功能。當(dāng)按鍵的狀態(tài)變化時,內(nèi)部程序檢測P0.0的狀態(tài)來調(diào)用相應(yīng)的來調(diào)用相應(yīng)的啟動和換向程序,實現(xiàn)步進(jìn)電機(jī)的正反轉(zhuǎn)控制。四、系統(tǒng)軟件設(shè)計4.1

15、主程序流程圖開始電動機(jī)停止轉(zhuǎn)動按鍵掃描判斷電機(jī)初試狀態(tài)轉(zhuǎn)動初始化程序電動機(jī)減轉(zhuǎn)動電動機(jī)加速轉(zhuǎn)動電動機(jī)反轉(zhuǎn) 4.2 源程序#include <reg52.h>#include <intrins.h>#include "key.h"#define uchar unsigned char#define uint unsigned int /Motorsbit A = P10; /定義管腳sbit b = P11;sbit C = P12;sbit D = P13; /步進(jìn)電機(jī)驅(qū)動uchar velocity=30;unsigned char MotorSt

16、ep=0;unsigned int MotorTimer = 0;unsigned int MotorDelay,Speed=1,TIM,CT;bit flag=0;/#define speed 8 / 調(diào)整速度 數(shù)值不要設(shè)的太低 低了會引起震動。/* 初始化馬達(dá) */void InitMotor() A = 1; b = 1; C = 1; D = 1;void SetMotor1() / if(Speed = 0) return; /MotorDelay=Speed;/調(diào)整速度 switch(MotorStep) case 0: if(TIM) / A A = 0; /0xf1 b = 1

17、;C = 1; D = 1; MotorStep = 1;TIM=0; break; case 1: / AB if(TIM) A = 0; /0xf3 b = 0; C = 1; D = 1; MotorStep = 2;TIM=0; break; case 2: /B if(TIM) A = 1; b = 0; /0xf2 C = 1; D = 1; MotorStep = 3;TIM=0; break; case 3:/BC if(TIM) A = 1; b = 0; /0xf6 C = 0; D = 1; MotorStep = 4;TIM=0; break; case 4: /C i

18、f(TIM) A = 1; b = 1; /0xf4 C = 0; D = 1; MotorStep = 5;TIM=0; break;case 5: /CD if(TIM) A = 1; b = 1; /0xfc C = 0; D = 0; MotorStep = 6;TIM=0; break;case 6: /D if(TIM) A = 1; b = 1; /0xf8 C = 1; D = 0; MotorStep = 7;TIM=0; break;case 7:/DA if(TIM) A = 0; b = 1; /0xf9 C = 1; D = 0; MotorStep = 0;TIM=

19、0; break;void SetMotor2() switch(MotorStep) case 0: if(TIM) / A A = 0; /0xf1 b = 1;C = 1; D = 0; MotorStep = 1;TIM=0; break; case 1: / AB if(TIM) A = 1; /0xf3 b = 1; C = 1; D = 0; MotorStep = 2;TIM=0; break; case 2: /B if(TIM) A = 1; b = 1; /0xf2 C = 0; D = 0; MotorStep = 3;TIM=0; break; case 3:/BC

20、if(TIM) A = 1; b = 1; /0xf6 C = 0; D = 1; MotorStep = 4;TIM=0; break; case 4: /C if(TIM) A = 1; b = 0; /0xf4 C = 0; D = 1; MotorStep = 5;TIM=0; break;case 5: /CD if(TIM) A = 1; b = 0; /0xfc C = 1; D = 1; MotorStep = 6;TIM=0; break;case 6: /D if(TIM) A = 0; b = 0; /0xf8 C = 1; D = 1; MotorStep = 7;TI

21、M=0; break;case 7:/DA if(TIM) A = 0; b = 1; /0xf9 C = 1; D = 1; MotorStep = 0;TIM=0; break;void system_Ini() TMOD|= 0x11; TH0=0xDC; /11.0592M TL0=0x00;IE = 0x8A; TR0 = 1;main() uchar num; system_Ini(); InitMotor(); while(1) if(velocity!= 0) if(flag=0) SetMotor1(); else SetMotor2(); else InitMotor();

22、 num=KeyScan(); /循環(huán)調(diào)用按鍵掃描 switch(num) case 0: CT=0; flag=flag; /SetMotor(); break; case 1: CT=0; velocity=10; /SetMotor(); break; case 2: CT=0; velocity=20; /SetMotor(); break; case 3: CT=0; velocity=0; /InitMotor(); break; default: break; /* 定時中斷延時 */ void Tzd(void) interrupt 1 TH0 = 0xfe; /11.0592

23、 TL0 = 0x33;if( CT+=velocity) TIM=1; CT=0; 5、 調(diào)試過程與結(jié)果本次調(diào)試過程及注意事項可分為三個步驟:1. 檢查所有元件已被連接,電源線和接地線是否都連接完成,否則電路不能正常工作。2. 再將程序錄入到單片機(jī)89C51中,并且保證5V電源提供給所有元件,使各模塊可以正常工作;在調(diào)試過程中必須保證單片機(jī)可以正常工作,一旦不能正常工作,電路就不能運行;3.將步進(jìn)電機(jī)與電路連接時,保證四相線連接時正確的,確保步進(jìn)電機(jī)正常運轉(zhuǎn);六、總結(jié)與體會在做本次課程設(shè)計的過程中,感觸最深的當(dāng)屬查閱大量的設(shè)計資料了。為了讓自己的設(shè)計更加完善,查閱這方面的設(shè)計資料是十分必要的,同時也是必不可少的。我們是在做微特電機(jī)課程設(shè)計,但我們不是藝術(shù)家,他們可以拋開實際盡情在幻想的世界里翱翔,而我們一切都要有據(jù)可依,有理可尋,不切實際的構(gòu)想永遠(yuǎn)只能是構(gòu)想,永遠(yuǎn)無法升級為設(shè)計。     其次,在這次課程設(shè)計中,我們運用到了以前所學(xué)的專業(yè)課知識,如:匯編語言、模擬和數(shù)字電路知識等。雖然過去從未獨立應(yīng)用過它們,但在學(xué)習(xí)的過程中帶著問題去學(xué)我發(fā)現(xiàn)效率

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論