基于51單片機(jī)的步進(jìn)電機(jī)的控制設(shè)計(jì)_第1頁
基于51單片機(jī)的步進(jìn)電機(jī)的控制設(shè)計(jì)_第2頁
基于51單片機(jī)的步進(jìn)電機(jī)的控制設(shè)計(jì)_第3頁
基于51單片機(jī)的步進(jìn)電機(jī)的控制設(shè)計(jì)_第4頁
基于51單片機(jī)的步進(jìn)電機(jī)的控制設(shè)計(jì)_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)報(bào)告設(shè)計(jì)題目: 步進(jìn)電機(jī)控制器設(shè)計(jì) 專業(yè)班級(jí): 學(xué)生姓名: 指導(dǎo)教師: 設(shè)計(jì)時(shí)間: 2016年12月 一、 設(shè)計(jì)要求及方案1、設(shè)計(jì)要求可以實(shí)現(xiàn)步進(jìn)電機(jī)正轉(zhuǎn)和反轉(zhuǎn)控制及速度的控制,同時(shí)實(shí)現(xiàn)步進(jìn)電機(jī)步數(shù)的控制。2、設(shè)計(jì)方案本次設(shè)計(jì)采用AT89C51單片機(jī)控制一個(gè)四相步進(jìn)電機(jī)。單片機(jī)輸出脈沖序列,驅(qū)動(dòng)步進(jìn)電機(jī)轉(zhuǎn)動(dòng);并設(shè)置開關(guān)、按鍵電路,來控制步進(jìn)電機(jī)的2擋轉(zhuǎn)速,即加速、減速;以及步數(shù)的變化,即四拍驅(qū)動(dòng)方式、八拍驅(qū)動(dòng)方式,同時(shí)控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)方向,即正轉(zhuǎn)、反轉(zhuǎn)。步進(jìn)電機(jī)單片機(jī)最小系統(tǒng)單片機(jī)AT89C51單片機(jī)最小系統(tǒng)開關(guān)、按鍵電路設(shè)計(jì)方案總體框圖:二、 步進(jìn)電機(jī)簡介1、步進(jìn)電機(jī)工

2、作原理步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信 號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度(稱為“步距角”),它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的。可以通過控制脈沖個(gè)數(shù)來控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)可以通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的。步進(jìn)電機(jī)可以作為一種控制用的特種電機(jī),利用其沒有積累誤差(精度為100%)的特點(diǎn),廣泛應(yīng)用于各種開環(huán)控制。步進(jìn)電機(jī)是一種感應(yīng)電機(jī),它的工作原理是利用電子電路,將直流電變成分時(shí)供電的,多相時(shí)序控制電流,用這種電流為步進(jìn)電機(jī)供電,步進(jìn)電機(jī)才能正常工作,驅(qū)動(dòng)器就是為步進(jìn)電機(jī)分時(shí)供電

3、的多相時(shí)序控制器。雖然步進(jìn)電機(jī)已被廣泛地應(yīng)用,但步進(jìn)電機(jī)并不能象普通的直流電機(jī),交流電機(jī)在常規(guī)下使用。它必須由雙環(huán)形脈沖信號(hào)、功率驅(qū)動(dòng)電路等組成控制系統(tǒng)方可使用。因此用好步進(jìn)電機(jī)卻非易事,它涉及到機(jī)械、電機(jī)、電子及計(jì)算機(jī)等許多專業(yè)知識(shí)。步進(jìn)電機(jī)作為執(zhí)行元件,是機(jī)電一體化的關(guān)鍵產(chǎn)品之一, 廣泛應(yīng)用在各種自動(dòng)化控制系統(tǒng)中。隨著微電子和計(jì)算機(jī)技術(shù)的發(fā)展,步進(jìn)電機(jī)的需求量與日俱增,在各個(gè)國民經(jīng)濟(jì)領(lǐng)域都有應(yīng)用。2、步進(jìn)電機(jī)磁力方式選擇步進(jìn)電機(jī)的勵(lì)磁方式主要分為全步勵(lì)磁和半步勵(lì)磁兩種,其中全步勵(lì)磁又有一相勵(lì)磁和二相勵(lì)磁之分,半步勵(lì)磁又稱一-二相勵(lì)磁。 一相勵(lì)磁:在每一瞬間,步進(jìn)電機(jī)只有一個(gè)線圈導(dǎo)通。每送出

4、一個(gè)勵(lì)磁信號(hào),步進(jìn)電機(jī)旋轉(zhuǎn)1.8°,這是三種勵(lì)磁方式中最簡單的一種。其特點(diǎn)是:精確度好、消耗電力小,但輸出轉(zhuǎn)矩小,震動(dòng)較大。 二相勵(lì)磁:在每一瞬間,步進(jìn)電機(jī)有兩個(gè)線圈同時(shí)導(dǎo)通。每送一個(gè)勵(lì)磁信號(hào),步進(jìn)電機(jī)旋轉(zhuǎn)1.8°。其特點(diǎn)是:輸出轉(zhuǎn)矩大,振動(dòng)小。 一-二相勵(lì)磁:為一相勵(lì)磁與二相勵(lì)磁交替導(dǎo)通的方式。每送一個(gè)勵(lì)磁信號(hào),步進(jìn)電機(jī)旋轉(zhuǎn)0.9°。其特點(diǎn)是:分辨率高,運(yùn)轉(zhuǎn)平滑。本次設(shè)計(jì),八拍驅(qū)動(dòng)時(shí)采用一相勵(lì)磁方式,四拍驅(qū)動(dòng)時(shí)采用二相勵(lì)磁方式。八拍磁力順序表:時(shí)序12345678置1A-B-C-D-置0-D-A-B-C四拍磁力順序表:時(shí)序1234置0DABC置1A,BB,CC,

5、DD,A三、硬件電路設(shè)計(jì)1、晶振電路設(shè)計(jì)AT89C51單片機(jī)各功能部件的運(yùn)行都以時(shí)鐘控制信號(hào)為基準(zhǔn),有條不紊,一拍一拍地工作。本次設(shè)計(jì)時(shí)鐘電路采用內(nèi)部時(shí)鐘方式。AT89C51內(nèi)部有一個(gè)用于構(gòu)成震蕩器的高增益方向放大器,它的輸入端為芯片引腳XTAL1,輸出端引腳為XTAL2。這兩個(gè)引腳跨接石英晶體和微調(diào)電容,構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。本次設(shè)計(jì)選擇振蕩頻率為12MHZ的石英晶體。圖 晶振電路2、復(fù)位電路設(shè)計(jì)AT89C51的復(fù)位是由外部的復(fù)位電路實(shí)現(xiàn)的。復(fù)位引腳RST通過一個(gè)施密特觸發(fā)器與復(fù) 位電路相連,施密特觸發(fā)器用來抑制噪聲,在每個(gè)機(jī)器周期的S5P2,施密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然

6、后才能得到內(nèi)部復(fù)位操作所需要的信號(hào)。復(fù)位電路通常采用上電復(fù)位和按鈕復(fù)位兩種方式,本次設(shè)計(jì)采用上電復(fù)位方式。圖 復(fù)位電路3、開關(guān)、按鍵電路本次設(shè)計(jì)采用開關(guān)、按鍵電路來控制步進(jìn)電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、加速、減速、步數(shù)。并且由單片機(jī)的P2口對(duì)其進(jìn)行控制。圖 開關(guān)、按鍵電路4、驅(qū)動(dòng)電路設(shè)計(jì)本設(shè)計(jì)采用ULN2003作為驅(qū)動(dòng)器驅(qū)動(dòng)步進(jìn)電機(jī)運(yùn)轉(zhuǎn),把單片機(jī)P1口輸出的脈沖信號(hào)轉(zhuǎn)化為 脈沖電流,驅(qū)動(dòng)步進(jìn)電機(jī)運(yùn)轉(zhuǎn)。圖 驅(qū)動(dòng)電路5、總電路圖圖 總電路圖四、軟件程序設(shè)計(jì)1、程序設(shè)計(jì)思路通過分析可以看出,實(shí)現(xiàn)系統(tǒng)功能可以采用多種方法,由于隨時(shí)有可能輸入加速、加速信號(hào)和方向信號(hào),因而采用中斷方式效率最高,這樣總共要完成2個(gè)部分

7、的工作才能滿足課題要求,即主程序部分、定時(shí)器中斷部分,其中主程序的主要功能是系統(tǒng)初始參數(shù)的設(shè)置及啟動(dòng)開關(guān)的檢測,若啟動(dòng)開關(guān)合上則系統(tǒng)開始工作,反之系統(tǒng)停止工作;定時(shí)器中斷器部分,控制按鍵標(biāo)志位值的改變,從而可以控制主程序中步進(jìn)電機(jī)轉(zhuǎn)速、轉(zhuǎn)向、步數(shù)。2、程序框圖Flag置1減少延時(shí)Flag置0是是否否增加延時(shí)訪問標(biāo)志位輸出一拍脈沖延時(shí)速度變快?改變步數(shù)?開始初始化3、程序#include<reg51.h>#define uchar unsigned char#define uint unsigned intuint temp=4,flag=0;int k=100,m=0;void d

8、elay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);sbit P2_5=P25;sbit P2_6=P26;sbit P2_7=P27;uchar check_key1() uchar n; P2=0xff; n=P2; if(n!=0xdf) return 1; else return 0;uchar check_key2() uchar n; P2=0xff; n=P2; if(n!=0xbf) return 1; else return 0;uchar check_key() uchar n; P2=0xff; n=P2

9、; if(n!=0x7f) return 1; else return 0;void timer0() interrupt 1switch(P2)case 0xde:if(check_key1()=1)delay(5);if(check_key1()=1)temp=0;P1=0xf0;break;case 0xdd:if(check_key1()=1)delay(5);if(check_key1()=1)temp=1;P1=0xf0; break;case 0xbb:if(check_key2()=1) delay(5);if(check_key2()=1)temp=2; while(chec

10、k_key2();break; case 0xb7:if(check_key2()=1)delay(5);if(check_key2()=1)temp=3; while(check_key2();break;case 0x6f:if(check_key()=1)delay(5);if(check_key()=1)flag+;if(flag>=2)flag=0; while(check_key();break; void sudu0() if(temp=2)k+=200;if(k>=1000)k=1000;temp=0;if(temp=3)k-=200;if(k<=0)k=10

11、0;temp=0;void sudu1() if(temp=2)k+=200;if(k>=1000)k=1000;temp=1;if(temp=3)k-=200;if(k<=0)k=100;temp=1;sbit P1_0=P10;sbit P1_1=P11;sbit P1_2=P12;sbit P1_3=P13;void main(void) TMOD=0x01;EA=1;ET0=1;TR0=1; P1_0=0;P1_1=0;P1_2=0;P1_3=0;while(1) for(m=1;m<=8;m+)if(flag=0)if(temp=0)switch(m)case 1:

12、P1_0=1;delay(k);break;case 2:P1_3=0;delay(k);break;case 3:P1_1=1;delay(k);break;case 4:P1_0=0;delay(k);break;case 5:P1_2=1;delay(k);break;case 6:P1_1=0;delay(k);break;case 7:P1_3=1;delay(k);break;case 8:P1_2=0;delay(k);break;sudu0();if(flag=1)P1=0xe0;if(P1=0xe0)break;if(temp=1)switch(m)case 1:P1_3=1

13、;delay(k);break;case 2:P1_0=0;delay(k);break;case 3:P1_2=1;delay(k);break;case 4:P1_3=0;delay(k);break;case 5:P1_1=1;delay(k);break;case 6:P1_2=0;delay(k);break;case 7:P1_0=1;delay(k);break;case 8:P1_1=0;delay(k);break;sudu1();if(flag=1)P1=0xe0;if(P1=0xe0)break;if(flag=1)if(temp=0)switch(m)case 1:P1

14、_3=0; P1_0=1;P1_1=1; delay(k);break;case 2:P1_0=0; P1_1=1; P1_2=1; delay(k);break;case 3:P1_1=0;P1_2=1;P1_3=1;delay(k);break;case 4:P1_2=0;P1_3=1;P1_0=1;delay(k);break;sudu0();if(flag=0)P1=0xd0;if(P1=0xd0)break;if(temp=1)switch(m)case 1:P1_0=0;P1_3=1;P1_2=1;delay(k);break;case 2:P1_3=0;P1_2=1;P1_1=1

15、;delay(k);break;case 3:P1_2=0;P1_1=1;P1_0=1;delay(k);break;case 4:P1_1=0; P1_0=1; P1_3=1;delay(k);break;sudu1();if(flag=0)P1=0xd0;if(P1=0xd0)break; 五、新的體會(huì)因?yàn)槲C(jī)課和單片機(jī)課沒怎么學(xué)好,故感覺在做這個(gè)設(shè)計(jì)時(shí)有點(diǎn)困難,比如匯編程序。后來決定用c來編寫程序,這樣稍微輕松點(diǎn),在設(shè)計(jì)程序中涉及到了中斷程序的編寫,發(fā)現(xiàn)已學(xué)的理論知識(shí)完全用不上來,也許這就是理論脫離時(shí)間的結(jié)果,在期間惡補(bǔ)了單片機(jī)的中斷知識(shí)及其相應(yīng)的程序編寫。 通過這次課程設(shè)計(jì)實(shí)驗(yàn),我對(duì)步

16、進(jìn)電機(jī)調(diào)速控制系統(tǒng)有了實(shí)際的了解和認(rèn)識(shí),提高了動(dòng)手能力。本次實(shí)驗(yàn)把書本上、課堂上學(xué)到的知識(shí)靈活地運(yùn)用到實(shí)際的實(shí)物上,感覺是對(duì)學(xué)以致用的一種鍛煉和考驗(yàn)提高了用所學(xué)知識(shí)解決實(shí)際問題的能力,加深和鞏固的對(duì)知識(shí)的理解和掌握。控制電路、驅(qū)動(dòng)電路、測速反饋電路、步進(jìn)電機(jī)幾個(gè)模塊的整合,也實(shí)際中提高了自己對(duì)系統(tǒng)的認(rèn)識(shí),有了些整體的概念和思維觀。實(shí)驗(yàn)是團(tuán)隊(duì)合作完成的,從設(shè)計(jì)電路到設(shè)計(jì)軟件,然后仿真到做硬件做出符合要求的控制系統(tǒng),不僅從實(shí)際中鍛煉了動(dòng)手能力而且學(xué)會(huì)了團(tuán)隊(duì)合作,互相學(xué)習(xí),提高自己。 這次的課程設(shè)計(jì)總的感覺就是很累,但在不斷的學(xué)習(xí)機(jī)實(shí)踐當(dāng)中學(xué)到了很多東西,知識(shí)的提高那是最基礎(chǔ)的,中斷,電路工作及相關(guān)的知識(shí)都是得到了提升;然后就是個(gè)人處理問題能力的提高,雖然說這次的設(shè)計(jì)不算一個(gè)大的項(xiàng)目,但也算是小的雛形,課題的

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論