三相步進(jìn)電機(jī)的計(jì)算機(jī)控制系統(tǒng)課程設(shè)計(jì)_第1頁
已閱讀1頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p>  1 設(shè)計(jì)任務(wù)及要求1</p><p>  2 方案比較及選擇1</p><p>  2.1 電機(jī)驅(qū)動選擇方案1</p><p>  2.2 LED顯示選擇方案1</p><p>  2.3 按鍵狀態(tài)的讀取1</p>

2、;<p>  3 系統(tǒng)實(shí)現(xiàn)的原理2</p><p>  3.1 步進(jìn)電機(jī)控制工作原理2</p><p>  3.1.1 步進(jìn)電機(jī)的啟??刂?</p><p>  3.1.2 步進(jìn)電機(jī)的轉(zhuǎn)向控制2</p><p>  3.2 系統(tǒng)設(shè)計(jì)思路2</p><p>  3.3 系統(tǒng)的整體框圖3</

3、p><p>  4 系統(tǒng)的硬件設(shè)計(jì)3</p><p>  4.1 總體設(shè)計(jì)3</p><p>  4.2 步進(jìn)電機(jī)控制電路4</p><p>  4.2.1啟/??刂?、正/反轉(zhuǎn)控制、工作模式控制電路分析4</p><p>  4.2.2步進(jìn)電機(jī)控制電路5</p><p><b>

4、  4.3顯示電路6</b></p><p>  4.3.1發(fā)光二極管顯示電路6</p><p>  4.3.2八段數(shù)碼管顯示電路6</p><p><b>  5系統(tǒng)軟件設(shè)計(jì)7</b></p><p>  5.1 總體設(shè)計(jì)7</p><p>  5.1.1步進(jìn)電機(jī)的工作方式

5、7</p><p>  5.1.2 系統(tǒng)總體流程圖8</p><p>  5.2 關(guān)鍵模塊設(shè)計(jì)10</p><p>  5.2.1. 三相步進(jìn)電機(jī)模塊設(shè)計(jì)10</p><p>  5.2.2顯示模塊設(shè)計(jì)11</p><p><b>  6 系統(tǒng)仿真12</b></p>&

6、lt;p>  7 小結(jié)及體會12</p><p><b>  參考文獻(xiàn)14</b></p><p><b>  附錄15</b></p><p>  三相步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)</p><p><b>  1 設(shè)計(jì)任務(wù)及要求</b></p><p

7、>  設(shè)計(jì)一個三相步進(jìn)電機(jī)控制系統(tǒng),要求系統(tǒng)具有如下功能:用K0-K2做為通電方式選擇鍵,K0為三相單三拍,K1為三相雙三拍,K2為三相六拍;K3為啟動/停止控制、K4方向控制;用4位LED數(shù)碼管顯示工作步數(shù)。用3個發(fā)光二極管顯示狀態(tài):正轉(zhuǎn)時紅燈亮,反轉(zhuǎn)時黃燈亮,不轉(zhuǎn)時綠燈亮。</p><p><b>  2 方案比較及選擇</b></p><p>  2.1

8、電機(jī)驅(qū)動選擇方案</p><p>  方案1:使用功率三極管等電子器件搭建成功率驅(qū)動電路來驅(qū)動電機(jī)的運(yùn)行。優(yōu)點(diǎn)是電路簡單,但信號不夠穩(wěn)定,器件較大而不便電路的集成。</p><p>  方案2:使用專門的電機(jī)驅(qū)動芯片ULN2004A來驅(qū)動電機(jī)運(yùn)行。其優(yōu)點(diǎn)是便于電路的集成,且驅(qū)動簡單,驅(qū)動信號穩(wěn)定,不受外部干擾。</p><p>  通過對方案的比較,我選擇使用電機(jī)驅(qū)

9、動芯片來作為驅(qū)動。</p><p>  2.2 LED顯示選擇方案</p><p>  方案1:把所要顯示的數(shù)據(jù)通過專用的七段顯示芯片的轉(zhuǎn)換輸出給LED顯示屏。其優(yōu)點(diǎn)是輸出簡單,可以簡化程序,但增加了芯片的費(fèi)用。</p><p>  方案2:通過軟件把所要的數(shù)據(jù)轉(zhuǎn)化為七段顯示的數(shù)據(jù),直接通過單片機(jī)接口來顯示,其優(yōu)點(diǎn)是簡化了電路,但增加了軟件編寫的負(fù)擔(dān)。</p&

10、gt;<p>  通過對方案的比較,我選擇通過軟件編寫來輸出顯示信號。</p><p>  2.3 按鍵狀態(tài)的讀取</p><p>  方案1:把按鍵接到單片機(jī)的中斷口,若有按鍵按下,單片機(jī)接收到中斷信號,再通過軟件編寫的中斷程序來執(zhí)行中斷,優(yōu)點(diǎn)是接線簡單,簡化了電路,但軟件編寫較為復(fù)雜,不易掌握。</p><p>  方案2:不使用中斷,直接把開關(guān)分

11、別接在單片機(jī)的接口上,通過查詢端口信號來動作。其優(yōu)點(diǎn)是程序得到簡化,可讀性加強(qiáng)。</p><p>  通過對方案的比較,我選擇通過查詢方式來讀取端口信號。</p><p><b>  3 系統(tǒng)實(shí)現(xiàn)的原理</b></p><p>  3.1 步進(jìn)電機(jī)控制工作原理</p><p>  3.1.1 步進(jìn)電機(jī)的啟??刂?lt;/

12、p><p>  步進(jìn)電機(jī)由于其電氣特性,運(yùn)轉(zhuǎn)時會有步進(jìn)感 ,即振動感。為了使電機(jī)轉(zhuǎn)動平滑 ,減小振動 ,可在步進(jìn)電機(jī)控制脈沖的上升沿和下降沿采用細(xì)分的梯形波 ,可以減小步進(jìn)電機(jī)的步進(jìn)角 ,提高電機(jī)運(yùn)行的平穩(wěn)性。在步進(jìn)電機(jī)停轉(zhuǎn)時 ,為了防止因慣性而使電機(jī)軸產(chǎn)生順滑 ,則需采用合適的鎖定波形 ,產(chǎn)生鎖定磁力矩 ,鎖定步進(jìn)電機(jī)的轉(zhuǎn)軸 ,使步進(jìn)電機(jī)的轉(zhuǎn)軸不能自由轉(zhuǎn)動。</p><p>  3.1.2

13、步進(jìn)電機(jī)的轉(zhuǎn)向控制</p><p>  如果給定工作方式正序換相通電 ,步進(jìn)電機(jī)正轉(zhuǎn)。若步進(jìn)電機(jī)的勵磁方式為三相六拍 ,即 A-AB-B-BC-C-CA。如果按反序通電換相 ,即則電機(jī)就反轉(zhuǎn)。其他方式情況類似。</p><p>  3.2 系統(tǒng)設(shè)計(jì)思路</p><p>  此次我們所設(shè)計(jì)的是一個步進(jìn)電機(jī)控制系統(tǒng),主要由單片機(jī)80C51,3相步進(jìn)電機(jī),7段數(shù)碼管,及一

14、些其他相關(guān)元件設(shè)計(jì)而成??梢酝ㄟ^開關(guān)來控制系統(tǒng)的啟/停工作,當(dāng)系統(tǒng)運(yùn)轉(zhuǎn)時,用開關(guān)來控制方向,并使相應(yīng)的指示燈亮起,同樣由開關(guān)來選擇工作模式。運(yùn)轉(zhuǎn)時,用4位7段數(shù)碼管來輸出步數(shù)。最后根據(jù)思路所設(shè)計(jì)出來的硬件圖設(shè)計(jì)相適應(yīng)的軟件。</p><p>  3.3 系統(tǒng)的整體框圖</p><p>  圖1 系統(tǒng)的整體框圖</p><p><b>  4 系統(tǒng)的硬件設(shè)

15、計(jì)</b></p><p><b>  4.1 總體設(shè)計(jì)</b></p><p>  設(shè)計(jì)一個單片機(jī)三相步進(jìn)電機(jī)控制系統(tǒng)要求系統(tǒng)具有如下功能:</p><p>  用K0-K2做為通電方式選擇鍵,K0為單三拍,K1為雙三拍,K2為三相六拍;</p><p>  K3、K4分別為啟動和方向控制;</p&g

16、t;<p>  正轉(zhuǎn)時紅色指示燈亮,反轉(zhuǎn)時黃色指示燈亮,不轉(zhuǎn)時綠色指示燈亮;</p><p>  用4位LED顯示工作步數(shù)。</p><p>  根據(jù)設(shè)計(jì)要求用PROTEUS所做的硬件連線圖如下圖1:</p><p>  圖2 總體硬件連線</p><p>  4.2 步進(jìn)電機(jī)控制電路</p><p>

17、  4.2.1啟/??刂?、正/反轉(zhuǎn)控制、工作模式控制電路分析</p><p><b>  原理圖如下:</b></p><p><b>  圖3 按鍵控制圖</b></p><p> ?。?)K3為啟/??刂崎_關(guān),控制整個系統(tǒng)的開啟和關(guān)閉。</p><p> ?。?)K4為正/反轉(zhuǎn)控制開關(guān),控制步

18、進(jìn)電機(jī)的轉(zhuǎn)向。</p><p> ?。?)K0-K3為工作模式控制開關(guān),KO接電時,為步進(jìn)電機(jī)單三拍工作模式;K1接電時,為步進(jìn)電機(jī)雙三拍工作模式;K2接電時,步進(jìn)電機(jī)工作模式為三相六拍。</p><p>  4.2.2步進(jìn)電機(jī)控制電路</p><p>  將80c51的P1.0-P1.3作為步進(jìn)電機(jī)的輸出控制口。原理圖如下:</p><p>

19、;  圖4 步進(jìn)電機(jī)的輸出控制口</p><p><b>  4.3顯示電路</b></p><p>  4.3.1發(fā)光二極管顯示電路</p><p>  用3個不同顏色的發(fā)光二極管來作為指示燈顯示,將P3.5接紅燈,P3.6接黃燈,P3.7接綠燈,正轉(zhuǎn)時紅色指示燈亮,反轉(zhuǎn)時黃色指示燈亮,不轉(zhuǎn)時綠色指示燈亮。原理圖如下:</p>

20、<p>  圖5 指示燈接線圖</p><p>  4.3.2八段數(shù)碼管顯示電路</p><p>  由80c51的P0口取出顯示碼,從80c51的P2.0-P2.3輸出位選碼,設(shè)計(jì)中我們主要用到4位顯示步數(shù)既可。原理圖如下:</p><p>  圖6 led接線圖</p><p><b>  5系統(tǒng)軟件設(shè)計(jì)<

21、/b></p><p><b>  5.1 總體設(shè)計(jì)</b></p><p>  5.1.1步進(jìn)電機(jī)的工作方式</p><p> ?。?)三相單三拍工作方式 在這種工作方式下,A、B、C三相輪流通電,電流切換三次,磁場旋轉(zhuǎn)一周,轉(zhuǎn)子向前轉(zhuǎn)過一個齒距角。因此這種通電方式叫做三相單三拍工作方式。這時步距角θb (度)為 θb = 36

22、0 /mz (公式1)式中:m──定子相數(shù); z ──轉(zhuǎn)子齒數(shù)</p><p><b>  單三拍的數(shù)學(xué)模型:</b></p><p><b>  表1</b></p><p> ?。?)三相六拍工作方式 在這種工作方式下,繞組以A—AB—B—BC—C—CA—A時序(或反時序)轉(zhuǎn)換6次,磁場旋轉(zhuǎn)一周,轉(zhuǎn)

23、子前進(jìn)一個齒距,每次切換均使轉(zhuǎn)子轉(zhuǎn)動1. 5°,故這種通電方式稱為三相六柏工作方式。其步距角θb 為:θb = 360 /2mz = 180 /mz (公式2)</p><p><b>  六拍的數(shù)學(xué)模型:</b></p><p><b>  表2</b></p><p> ?。?)雙三拍工作方式

24、 這種工作方式每次都是有兩相導(dǎo)通,兩相繞組處在相同電壓之下,以AB─BC─CA─AB (或反之)方式通電,故稱為雙三拍工作方式。以這種方式通電,轉(zhuǎn)子齒所處的位置相當(dāng)于六拍控制方式中去掉單三拍后的三個位置。它的步距角計(jì)算公式與單三拍時的公式相同。極分度角/齒距角= R + k·1/m進(jìn)一步化簡得齒數(shù)z:z = q (mR + k) (公式3)式中:m──相數(shù); q──每相的極數(shù); k──≤ (m - 1)

25、的正整數(shù);R──正整數(shù),為0、1、2、3……。雙三拍的數(shù)學(xué)模型:</p><p><b>  表3</b></p><p>  5.1.2 系統(tǒng)總體流程圖</p><p>  設(shè)計(jì)說明:首先復(fù)位單片機(jī),然后從P3口讀出開關(guān)狀態(tài),判斷是否啟動,沒啟動綠燈亮重新確認(rèn)啟動。啟動后再次讀取P3口數(shù)據(jù),判斷工作方式并將對應(yīng)的用來存儲步進(jìn)電機(jī)工作方式字

26、的數(shù)組首地址值給q。由P3.4口的雙向開關(guān)來控制步進(jìn)電機(jī)的正反轉(zhuǎn),如果是正轉(zhuǎn)則紅燈亮,反轉(zhuǎn)則綠燈亮。在電機(jī)每走一步后,步數(shù)記數(shù)加1,然后通過LED顯示把工作步數(shù)顯示出來。再從P3口把狀態(tài)信息讀出來,與之前的P3口的狀態(tài)信息進(jìn)行比較。如果狀態(tài)信息沒有改變,電機(jī)繼續(xù)運(yùn)行。如果狀態(tài)信息改變了,就需要重新返回程序的開端,對電機(jī)的運(yùn)行狀態(tài)進(jìn)行判斷,讓電機(jī)重新以新的狀態(tài)運(yùn)行。由此,開關(guān)的狀態(tài)在電機(jī)每走一步都會查詢一遍,做到實(shí)時地反映。</p&

27、gt;<p><b>  圖7 總體流程圖</b></p><p>  5.2 關(guān)鍵模塊設(shè)計(jì)</p><p>  5.2.1. 三相步進(jìn)電機(jī)模塊設(shè)計(jì)</p><p>  設(shè)計(jì)說明:在此設(shè)計(jì)中,采用的是三相步進(jìn)電機(jī),對于步進(jìn)電機(jī)模塊的程序設(shè)計(jì)采用循環(huán)程序設(shè)計(jì)方法。先把正反轉(zhuǎn)向的控制模型存放在內(nèi)存單元中,然后再逐一從單元中取出控制模

28、塊并輸出。首先啟動,選擇步進(jìn)電機(jī)的拍數(shù),輸入步數(shù),然后讀入正反轉(zhuǎn)的控制模型驅(qū)動步進(jìn)電機(jī)轉(zhuǎn)動。</p><p>  三相步進(jìn)電機(jī)的流程框圖:</p><p>  圖8 三相步進(jìn)電機(jī)的流程框圖</p><p>  5.2.2顯示模塊設(shè)計(jì)</p><p>  設(shè)計(jì)說明:顯示模塊是用4位八段數(shù)碼管來顯示工作步數(shù)。先將顯示碼存入數(shù)組中,指向最左邊一位

29、,然后取出要顯示的數(shù)據(jù),指向換碼表首地址,取出顯示碼,從P0口輸出顯示碼,P2口輸入位選碼,顯示出4位工作步數(shù),最后修改數(shù)組地址,求下一位位選碼繼續(xù)顯示。</p><p>  圖9 顯示模塊的程序框圖</p><p><b>  6 系統(tǒng)仿真</b></p><p>  當(dāng)選擇電機(jī)工作在單三拍,正轉(zhuǎn)的模式下,K0、K4置高電平,K1、K2置低

30、電平,系統(tǒng)啟動,K3置高電平,電機(jī)開始轉(zhuǎn)動。LED四位顯示屏顯示工作步數(shù),LED指示燈紅燈亮顯示電機(jī)正轉(zhuǎn)的狀態(tài)。仿真圖如下:</p><p>  圖10 系統(tǒng)仿真圖</p><p><b>  7 小結(jié)及體會</b></p><p>  經(jīng)過這個學(xué)期對微機(jī)的深入學(xué)習(xí),并且在老師的悉心指導(dǎo)和嚴(yán)格要求下,我們終于完成了三相步進(jìn)電機(jī)設(shè)計(jì)課程。從書本

31、上的知識到自己親手的課程設(shè)計(jì),每一步對我們來說無疑是巨大的嘗試和挑戰(zhàn),也成就了我們目前在大學(xué)期間獨(dú)立完成的最大的項(xiàng)目。記得在剛接到這個課題時,由于對相關(guān)知識不是很了解,我們都有些茫然不知所措。設(shè)計(jì)好一個步進(jìn)電機(jī)需要什么專業(yè)知識?帶著這個疑問我們開始了地學(xué)習(xí)和實(shí)驗(yàn):去圖書館查閱相關(guān)資料、上網(wǎng)去了解相關(guān)的內(nèi)容,漸漸頭腦中的概念清晰了起來。在具體設(shè)計(jì)的過程中,我們遇到了更大的困難。我們不斷地給自己提出新的問題,然后去論證、推翻,再接著提出新的

32、問題。在這個循環(huán)往復(fù)的過程中,我們這篇稚嫩的設(shè)計(jì)日臻完善。雖然我們的設(shè)計(jì)作品不是很成熟,即使借鑒前人的很多資料仍然還有很多不足之處,但我仍然心里有一種莫大的幸福感,因?yàn)槲覀儗?shí)實(shí)在在地走過了一個完整的設(shè)計(jì)所應(yīng)該走的每一個過程,并且享受了每一個過程。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 于海生編著.《計(jì)算機(jī)控制技術(shù)》.北京:機(jī)械工業(yè)出

33、版社.2005</p><p>  [2] 張義和、王敏男等編著.《例說51單片機(jī)》.北京:人民郵電出版社.2008</p><p>  [3] 張靖武,周靈彬編著.《單片機(jī)系統(tǒng)的PROTEUS設(shè)計(jì)與仿真》. 北京:電子工業(yè)出版社,2007.</p><p>  [4]求是科技編著.《單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航》.北京:人民郵電出版社,2008</p>

34、<p>  [5]頂明亮、唐前輝編著.《51單片機(jī)應(yīng)用設(shè)計(jì)與仿真:基于keil與proteus》.</p><p>  北京:北京航空航天大學(xué)出版社,2009</p><p><b>  附錄</b></p><p><b>  總程序如下:</b></p><p>  #include

35、<reg51.h></p><p>  #include<stdio.h></p><p>  void delay1(void);</p><p>  void delay2(void);</p><p>  void display(int);</p><p><b>  int

36、bs=0;</b></p><p><b>  main()</b></p><p><b>  { </b></p><p>  char a,b,c,d,j,*q,</p><p>  done1[8]={0x01,0x02,0x04,0x00,0x01,0x04,0x02,

37、0x00},</p><p>  done2[8]={0x03,0x06,0x05,0x00,0x03,0x05,0x06,0x00},</p><p>  done3[14]={0x01,0x03,0x02,0x06,0x04,0x05,0x00,0x01,0x05,0x04,0x06,0x02,0x03,0x00};</p><p>  P3=0x20;

38、 //P3.5口置1,綠燈亮,不工作</p><p>  delay1(); </p><p>  L: a=P3; </p><p>  while(!(a&0x08)) //判斷是否啟動,若沒啟動則重新啟動</p><p>  {P3=0x20;</p><p><

39、;b>  a=P3;</b></p><p>  delay1();}</p><p>  a=P3; //判斷工作模式</p><p>  if(a&0x01) //方式1模型</p><p><b>  q=done1;</b>

40、</p><p>  if(a&0x02) //方式2模型</p><p><b>  q=done2;</b></p><p>  if(a&0x04) //方式3模型</p><p><b>  q=done3;</b>

41、;</p><p>  if(a&0x10) //判斷電機(jī)是否要正轉(zhuǎn)</p><p>  { P3=0x80; //P3.4口為1,電機(jī)正轉(zhuǎn),紅燈亮</p><p><b>  b=0;}</b></p><p><b>  else</b><

42、;/p><p>  { P3=0x40; //P3.4口為,電機(jī)反轉(zhuǎn),黃燈亮</p><p>  if(a&0x04)b=7;</p><p><b>  else b=4;</b></p><p><b>  }</b></p><p><

43、b>  d=b;</b></p><p><b>  while(1)</b></p><p>  { c=*(q+b); //判斷電機(jī)步數(shù)是否走完</p><p>  if(c==0)b=d; //步數(shù)走完,電機(jī)重新再走</p><p><

44、b>  else</b></p><p>  { P1=c; //從P1輸出電機(jī)控制信號</p><p><b>  b++;</b></p><p>  bs++; //總步數(shù)加1</p><p>  display(bs);

45、 //顯示步數(shù)</p><p><b>  j=a;</b></p><p><b>  a=P3;</b></p><p>  if(a!=j) //判斷P3口狀態(tài)信號是否改變</p><p>  {if(!(a&0x08))bs=

46、0; //若為停止信號,總步數(shù)清零</p><p>  goto L; } //狀態(tài)信號改變,返回到開始,重新對電機(jī)控制</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b>&

47、lt;/p><p>  void delay1()</p><p>  { int i,j;</p><p>  for(i=0;i<200;i++)</p><p>  for(j=0;j<300;j++);</p><p><b>  }</b></p><p>

48、;  void display(int n)</p><p>  {unsigned char tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};</p><p>  unsigned char i,k,t,num[4];</p><p>  num[0]=n%10;

49、 //將總步數(shù)的各位分別存在num數(shù)組中</p><p>  num[1]=(n/10)%10;</p><p>  num[2]=(n/100)%10;</p><p>  num[3]=(n/1000)%10;</p><p>  for(t=0;t<50;t++) //掃描50次</p>&l

50、t;p>  { k=0x08; //位選碼指向最左一位,第四位</p><p>  for(i=0;i<4;i++)</p><p>  { P2=k; //從P2口輸入位選碼</p><p>  P0=~(tab[num[i]]); //取出顯示碼,并從P0口輸出顯示碼&

51、lt;/p><p>  k=k>>1; //求下一個位選碼</p><p><b>  delay2();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>&l

52、t;b>  }</b></p><p>  void delay2()</p><p>  { int i,j;</p><p>  for(i=0;i<10;i++)</p><p>  for(j=0;j<60;j++);</p><p><b>  }</b>

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論