版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計 報 告</p><p> 課程設(shè)計名稱:單片機系統(tǒng)綜合課程設(shè)計</p><p> 課程設(shè)計題目:基于51單片機的步進電機控制</p><p> 院(系):計算機學(xué)院</p><p> 專 業(yè):計算機科學(xué)與技術(shù)(嵌入式)</p><p><b> 目
2、錄</b></p><p> 第1章 總體設(shè)計方案1</p><p> 1.1 課程設(shè)計的內(nèi)容和要求1</p><p> 1.2課程設(shè)計原理1</p><p> 1.3課程設(shè)計思路2</p><p> 1.4 實驗環(huán)境3</p><p> 第2章 詳
3、細(xì)設(shè)計方案4</p><p> 2.1 實現(xiàn)方法4</p><p> 2.2模塊設(shè)計5</p><p> 2.2.1 步進電機的驅(qū)動5</p><p> 2.2.2 按鍵電路設(shè)計5</p><p> 2.2.3 時鐘產(chǎn)生及復(fù)位電路6</p><p> 2.3主程序流
4、程圖圖7</p><p> 第3章 調(diào)試及結(jié)果分析8</p><p> 3.1 調(diào)試步驟及方法8</p><p> 3.2 實驗結(jié)果及分析8</p><p><b> 參考文獻9</b></p><p> 附 錄1(源程序)10</p><p&g
5、t; 附 錄2(系統(tǒng)原理圖)14</p><p> 附 錄3(器件清單)15</p><p> 第1章 總體設(shè)計方案</p><p> 1.1 課程設(shè)計的內(nèi)容和要求</p><p><b> 一、課程設(shè)計內(nèi)容:</b></p><p> 步進電機是一種將電脈沖轉(zhuǎn)換成角位
6、移或線位移的電磁機械裝置,也是一種能把輸出解析為唯一增量和輸入數(shù)字脈沖對應(yīng)的驅(qū)動器件。步進電機具有快速啟動、停止的能力,精度高、控制方便,因此,在工業(yè)上得到了廣泛應(yīng)用。</p><p> 利用單片機控制一個步進電機,而且要滿足如下技術(shù)指標(biāo):</p><p> 開始通電時,步進電機停止轉(zhuǎn)動。</p><p> 單片機分別接按鍵開關(guān)K1、K2和K3,用來控制步進電
7、機的轉(zhuǎn)向,要求如下:</p><p> 當(dāng)按下K1時,步進電機正轉(zhuǎn)。</p><p> 當(dāng)按下K2時,步進電機反轉(zhuǎn)。</p><p> 當(dāng)按下K3時,步進電機停止轉(zhuǎn)動。</p><p> 步進電機的工作方式有單四拍、雙四拍、單雙八拍。</p><p><b> 二、課程設(shè)計要求:</b>
8、</p><p> 1. 獨立完成課程設(shè)計任務(wù);</p><p> 2. 通過老師當(dāng)場驗收;</p><p> 3. 交出完整的課程設(shè)計報告。</p><p><b> 課程設(shè)計原理</b></p><p> 步進電機是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機構(gòu)。通俗一點講:當(dāng)步進驅(qū)動器接收到一
9、個脈沖信號,它就驅(qū)動步進電機按設(shè)定的方向轉(zhuǎn)動一個固定的角度(及步進角)??梢酝ㄟ^控制脈沖個來控制角位移量,從而達到準(zhǔn)確定位的目的;同時可以通過控制脈沖頻率來控制電機轉(zhuǎn)動的速度和加速度,從而達到調(diào)整節(jié)拍的目的。</p><p> 本次設(shè)計是采用步進電機28BYJ48型四相八拍電機,電壓為DC5V—DC12V。當(dāng)對步進電機施加一系列連續(xù)不斷的控制脈沖時,它可以連續(xù)不斷地轉(zhuǎn)動。每一個脈沖信號對應(yīng)步進電機的某一相或兩相
10、繞組的通電狀態(tài)改變一次,也就對應(yīng)轉(zhuǎn)子轉(zhuǎn)過一定的角度(一個步距角)。當(dāng)通電狀態(tài)的改變完成一個循環(huán)時,轉(zhuǎn)子轉(zhuǎn)過一個齒距。四相步進電機可以在不同的通電方式下運行,常見的通電方式有單(單相繞組通電)四拍(A-B-C-D-A),雙(雙相繞組通電)四拍(AB-BC-CD-DA-AB),八拍(A-AB-B-BC-C-CD-D-DA-A)。 </p><p
11、> 單四拍、雙四拍與八拍工作方式的電源通電時序與波形分別如圖1.1 (a)、(b)、(c)所示。</p><p> a. 單四拍 b. 雙四拍 c八拍</p><p> 圖1.1步進電機工作時序波形圖</p><p><b> 課程設(shè)計思路</b></p><p&
12、gt;<b> (1) 提出方案</b></p><p> 電機的運轉(zhuǎn)一般由脈沖和方向信號來控制的,脈沖的頻率控制電機的轉(zhuǎn)速,脈沖的個數(shù)控制電機的轉(zhuǎn)角;方向信號的高、低電平控制著電機的正、反轉(zhuǎn)。用單片機控制步進電機,可以用一個輸出口發(fā)送脈沖:高電平->延時->低電平->延時……延時的長短控制脈沖的頻率,電平的轉(zhuǎn)換次數(shù)就是脈沖個數(shù)。</p><p>
13、; 因為步進電機的控制是通過脈沖信號來控制的,將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件。所以怎樣產(chǎn)生這個脈沖信號和產(chǎn)生怎樣的信號是電機控制的關(guān)鍵。</p><p><b> (2) 方案論證</b></p><p> 用單片機來產(chǎn)生這個脈沖信號,通過單片機的P1口輸出脈沖信號,因為所選電機是四相的,所以只需要P1口的低四位P1.0~P1.3分別接到電機的四
14、根電線上。定時器定時來調(diào)整電機的轉(zhuǎn)速,通過鍵盤的按鈕,就可以對步進電機啟動和停止以及轉(zhuǎn)動方向節(jié)拍的控制,單片機上P3.0~P3.1連的是按鍵,這里鍵盤上的D鍵為啟動與A鍵停止鍵,B鍵為反轉(zhuǎn)鍵,C鍵為正轉(zhuǎn)鍵,K0、K1鍵為節(jié)拍控制鍵。用8051單片機作為控制芯片。</p><p><b> 設(shè)計方案的確定</b></p><p> 對步進電機的控制和驅(qū)動方案:<
15、;/p><p> 方案一:使用多個功率放大器件驅(qū)動電機,通過使用不同的放大電路和不同參數(shù)的器件,可以達到不同的放大要求,放大后能夠得到較大的功率。但是由于使用的是四相的步進電機,就需要對四路信號分別放大,由于放大電路很難做到完全一致,當(dāng)電機的功率較大時運行起來會不穩(wěn)定,而且電路的制作也比較復(fù)雜。</p><p> 方案二:使用ULN2003芯片驅(qū)動步進電機,可以直接用單片機的Y/O口提供信
16、號;而且電路簡單,使用比較方便。因此選擇方案二作為本設(shè)計的驅(qū)動電路。</p><p><b> 1.4 實驗環(huán)境</b></p><p> ·硬件環(huán)境:lab6000實驗箱,PC機。</p><p> ·軟件環(huán)境:WAVE應(yīng)用軟件</p><p> 第2章 詳細(xì)設(shè)計方案</p>
17、<p><b> 2.1 實現(xiàn)方法</b></p><p> 步進電機和普通電動機不同之處是步進電機接受脈沖信號的控制。即步進電機是將電脈沖信號轉(zhuǎn)換為機械角位移的執(zhí)行元件。步進電機的控制可以用硬件,也可以用軟件通過單片機實現(xiàn)。硬件方法是采用脈沖分配器芯片進行通用換相控制;而軟件方法是用單片機產(chǎn)生控制脈沖來控制步進電機的運行狀態(tài),這種方法可簡化電路,降低成本。</p&
18、gt;<p> 在用軟件控制時,主要設(shè)計要點如下:</p><p><b> 判斷旋轉(zhuǎn)方向;</b></p><p><b> 按相序確定控制字;</b></p><p><b> 按順序輸入控制字;</b></p><p> 確定控制步數(shù)和每一步的延時
19、時間。</p><p> 由于單片機的驅(qū)動電流一般都比較小,不能直接驅(qū)動電機工作,所以單片機的I/O口輸出必須接驅(qū)動電路,即功率驅(qū)動,才得以控制電機正常工作。控制框圖如下圖所示:</p><p> 開始啟動時點擊處于停止轉(zhuǎn)動狀態(tài),當(dāng)按下啟動按鍵時,點擊開始轉(zhuǎn)動并以單四拍作為默認(rèn)啟動方式,用兩個開關(guān)按鍵用于節(jié)拍控制,用鍵盤按鍵控制停止、啟動、正轉(zhuǎn)、反轉(zhuǎn)。用8051作為總控制芯片。ULN2
20、003用于步進電機的驅(qū)動控制。其中在鍵盤控制時用鍵盤掃描程序。如圖2.1總方案圖。</p><p><b> 圖2.1 總方案圖</b></p><p><b> 模塊設(shè)計</b></p><p> 2.2.1步進電機的驅(qū)動</p><p> 步進電機的驅(qū)動采用ULN2003,接到單片機的P
21、1.0~P1.3,如圖2.1步進電機驅(qū)動和單片機連線圖。</p><p> 圖2.1 步進電機驅(qū)動和單片機連線圖</p><p> 2.2.2按鍵電路設(shè)計</p><p> 鍵盤接口按不同標(biāo)準(zhǔn)有不同分類方法,按鍵盤排布,可以分為獨立方式(一組相互獨立的鍵盤)和矩陣(一行列組成矩陣)方式。此次設(shè)計只用到了六個按鍵,故可采用獨立按鍵,P3.0~P3.5分別接到K
22、1~K6。其原理圖如圖2.2 按鍵連線圖。</p><p> 圖2.2 按鍵連線圖</p><p> 2.2.3時鐘產(chǎn)生及復(fù)位電路</p><p> 時鐘電路部分晶振為6MHz,其原理圖如圖2.3 時鐘產(chǎn)生及復(fù)位連線圖。</p><p> 圖2.3 時鐘產(chǎn)生及復(fù)位連線圖</p><p><b>
23、 主程序流程圖圖</b></p><p> 進入主程序,首先是對鍵盤掃描,調(diào)用步進電機相關(guān)數(shù)據(jù)控制電機轉(zhuǎn)動,若檢測到有鍵按下,則進行相應(yīng)的處理。流程圖如下圖2.4主程序流程圖。</p><p> 圖2.4 主程序流程圖</p><p> 第3章 調(diào)試及結(jié)果分析</p><p> 3.1 調(diào)試步驟及方法</p>
24、<p> 本電路經(jīng)調(diào)試符合題目要求,各項技術(shù)指標(biāo)均達到設(shè)計的目的。具體操作控制方法如下:</p><p> 1、當(dāng)電機啟動按鈕時,步進電機根據(jù)制定默認(rèn)狀態(tài)開始轉(zhuǎn)動;</p><p> 2、當(dāng)電機停止按鈕時,步進電機停止轉(zhuǎn)動;</p><p> 3、當(dāng)電機正轉(zhuǎn)按鈕時,步進電機正轉(zhuǎn);</p><p> 4、當(dāng)電機反轉(zhuǎn)按鈕時
25、,步進電機反轉(zhuǎn);</p><p> 5、當(dāng)電機按鈕K1K0為00時,步進電機單四拍工作;</p><p> 6、當(dāng)電機按鈕K1K0為01時,步進電機雙四拍工作;</p><p> 7、當(dāng)電機按鈕K1K0為11時,步進電機單雙八拍工作。</p><p> 3.2 實驗結(jié)果及分析</p><p> 故障一:首先在
26、設(shè)計總體方案時,思路上出現(xiàn)了一些問題,我首先是想在中斷里完成許多應(yīng)在中斷之外完成的事,經(jīng)過老師的指點,后來想清楚了。只需在主函數(shù)調(diào)用就行了,并設(shè)定了一個參數(shù)對電機的轉(zhuǎn)動節(jié)拍進行調(diào)控。</p><p> 故障二:由于編寫程序的經(jīng)驗不多,在計算電機節(jié)拍,并將其控制電機時,遇到了一些問題,節(jié)拍轉(zhuǎn)換公式是找出來了,但怎樣將其節(jié)拍表示出來,困惑了好久,最后還查閱資料才解決。</p><p> 故
27、障三:在鍵盤掃描時不太懂怎么進行掃描,總是不懂地址的掃描和讀數(shù)據(jù),我以為是程序方面出了問題,后來又仔細(xì)看了關(guān)于鍵盤掃描這些知識才弄明白了,最后掃描正。</p><p><b> 參考文獻</b></p><p> [1]王迎旭.《單片機原理及及應(yīng)用》.北京:機械工業(yè)出版社</p><p> [2]張迎新.《單片微型計算機原理、應(yīng)用及接口技
28、術(shù)》.北京:國防工業(yè)出版社</p><p> [3]郭天祥.《新概念51單片機C語言教程》.北京:電子工業(yè)出版社</p><p> [4]蔡明文 馮先成編著.《單片機課程設(shè)計》.北京:華中科技大學(xué)出版社</p><p> [5]王曉明.《電動機的單片機控制》.北京航空航天大學(xué)出版社 </p><p> [6]張毅剛.劉杰.MCS-51
29、單片機原理及應(yīng)用[M].哈爾濱:哈爾冰工業(yè)大學(xué)出版社,2008</p><p> 附 錄1(源程序)</p><p> #include <reg51.h> //頭文件</p><p> #include <stdio.h></p><p> #include <std
30、lib.h></p><p> #define uint unsigned int //宏定義整形</p><p> #define uchar unsigned char //宏定義字符型</p><p> void delay(uint xms); //延時函數(shù),調(diào)整轉(zhuǎn)速,數(shù)越小轉(zhuǎn)的越快</p><p>
31、; void keyw0(); //電機工作函數(shù)</p><p> void keyw1(); //反轉(zhuǎn)函數(shù)</p><p> void keyz1(); //正轉(zhuǎn)函數(shù)</p><p> void keyover(); //停止函數(shù)</p><p>
32、unsigned int i;</p><p> unsigned char xdata *q1=0x8002; //列地址</p><p> unsigned char xdata *q2=0x8001; //行地址</p><p> sbit key1=P3^0; // 節(jié)拍選擇控制,00為單四拍;01為雙四拍;11為單雙八拍
33、</p><p> sbit key2=P3^1;</p><p> // 單雙八拍工作方式:</p><p> //A-AB-B-BC-C-CD-D-DA</p><p> uchar code FFZ[]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; //正轉(zhuǎn)</p><
34、p> uchar code FFW[]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08}; //反轉(zhuǎn)</p><p> //雙四拍工作方式:</p><p> //AB-BC-CD-DA</p><p> uchar code shuangz[]={0x0c,0x06,0x03,0x09};</p>&l
35、t;p> uchar code shuangw[]={0x09,0x03,0x06,0x0c};</p><p> //單四拍工作方式:</p><p><b> //A-B-C-D</b></p><p> uchar code danz[]={0x08,0x04,0x02,0x01};</p><p>
36、 uchar code danw[]={0x01,0x02,0x04,0x08};</p><p><b> void main</b></p><p><b> {</b></p><p><b> while(1)</b></p><p><b> {&
37、lt;/b></p><p> if((*q2&0x0f)==0x0f) //行掃描鍵盤</p><p><b> {</b></p><p> *q1=0xfb; //鍵盤第三列掃描給低電平</p><p> if((*q2&0x0f)
38、==0x0e) //按D啟動電機</p><p><b> {</b></p><p> keyw0(); //調(diào)用電機工作函數(shù)</p><p><b> }</b></p><p><b> }</b></p><
39、;p><b> }</b></p><p><b> }</b></p><p> void keyw0()</p><p><b> {</b></p><p><b> while(1)</b></p><p>
40、<b> {</b></p><p> if((*q2&0x0f)==0x0d) keyz1(); //按C鍵正轉(zhuǎn) ;調(diào)用正轉(zhuǎn)函數(shù)</p><p> if((*q2&0x0f)==0x0b) keyw1(); //按B鍵反轉(zhuǎn) ;調(diào)用反轉(zhuǎn)函數(shù)</p><p> if((*q2&0x0f)==0x07)
41、 keyover(); //按A鍵停止;調(diào)用停止函數(shù)</p><p> for(i=0;i<4;i++)</p><p> { //默認(rèn)以單四拍正轉(zhuǎn)工作</p><p> P1=danz[i];</p><p> delay(30);</p>&l
42、t;p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void keyz1() //正轉(zhuǎn)函數(shù)</p><p><b> {</b></p><p
43、><b> while(1)</b></p><p><b> {</b></p><p> if((*q2&0x0f)==0x0e) keyw0();</p><p> if((*q2&0x0f)==0x0b) keyw1();</p><p> if((*q2&a
44、mp;0x0f)==0x07) keyover();</p><p> if(key1==1&&key2==0) //雙四拍</p><p><b> {</b></p><p> for(i=0;i<4;i++)</p><p><b> {</b&
45、gt;</p><p> P1=shuangz[i];</p><p> delay(30);</p><p><b> }</b></p><p><b> }</b></p><p> if(key1==1&&key2==1)
46、 //單雙八拍</p><p><b> {</b></p><p> for(i=0;i<8;i++)</p><p><b> {</b></p><p> P1=FFZ[i];</p><p> delay(30);</p><p
47、><b> }</b></p><p><b> }</b></p><p> if(key1==0&&key2==0) //單四拍</p><p><b> {</b></p><p> for(i=0;i<4;i++
48、)</p><p><b> {</b></p><p> P1=danz[i];</p><p> delay(30);</p><p><b> }</b></p><p><b> }</b></p><p>&l
49、t;b> }</b></p><p><b> }</b></p><p> void keyw1() //反轉(zhuǎn)函數(shù)</p><p><b> {</b></p><p><b> while(1)</b></p><p
50、><b> {</b></p><p> if((*q2&0x0f)==0x0e) keyw0();</p><p> if((*q2&0x0f)==0x0d) keyz1();</p><p> if((*q2&0x0f)==0x07) keyover();</p><p> i
51、f(key1==1&&key2==0) //雙四拍</p><p><b> {</b></p><p> for(i=0;i<4;i++)</p><p><b> {</b></p><p> P1=shuangw[i];</p>
52、<p> delay(30);</p><p><b> }</b></p><p><b> }</b></p><p> if(key1==1&&key2==1) //單雙八拍</p><p><b> {</b>&l
53、t;/p><p> for(i=0;i<8;i++)</p><p><b> {</b></p><p> P1=FFW[i];</p><p> delay(30);</p><p><b> }</b></p><p><b&g
54、t; }</b></p><p> if(key1==0&&key2==0) //單四拍</p><p><b> {</b></p><p> for(i=0;i<4;i++)</p><p><b> {</b></p>&l
55、t;p> P1=danw[i];</p><p> delay(30);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</
56、b></p><p> void keyover() //停止函數(shù)</p><p><b> {</b></p><p><b> while(1)</b></p><p><b> {</b></p><p&g
57、t; if((*q2&0x0f)==0x0e) keyw0(); //是否按了D啟動</p><p> P1=0xf0; // 停止</p><p><b> }</b></p><p><b> }</b></p><p> void
58、 delay(uint xms) //延時函數(shù)</p><p><b> {</b></p><p><b> uint i,j;</b></p><p> for(i=110;i>0;i--)</p><p> for(j=xms;j>0;j--);</
59、p><p><b> }</b></p><p> 附 錄2(系統(tǒng)原理圖)</p><p> 附 錄3(器件清單)</p><p> Bill of Material for DJ.Bom</p><p> Used Part Type Design
60、ator Footprint </p><p> ==== ====================== ========== ========== </p><p> 5 4.7K R1 R2 R3 DIP-16 </p><p> R4 R5 </p>&
61、lt;p> 1 6MHZ X1 L5 </p><p> 1 10u C3 RB.2/.4 </p><p> 2 30p C1 C2 RAD-0.2 </p>&l
62、t;p> 1 8051 U1 DIP-40 </p><p> 1 A K3 S/1 </p><p> 1 B K4 S/1 </p><
63、;p> 1 C K5 S/1 </p><p> 1 D K6 S/1 </p><p> 1 K0 S0 L10 </p><
64、p> 1 K1 S1 L10 </p><p> 1 K2 S2 L10 </p><p> 1 MOTOR STEPPER M1 V.20/.10 </p><p
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于51單片機的步進電機的課程設(shè)計
- 基于51單片機的步進電機的課程設(shè)計
- 單片機步進電機課程設(shè)計--單片機控制步進電機的設(shè)計
- 課程設(shè)計--基于at89c51單片機控制步進電機
- 單片機課程設(shè)計--單片機控制步進電機
- 單片機課程設(shè)計--基于單片機的步進電機控制
- 單片機課程設(shè)計-單片機控制步進電機
- 單片機-控制步進電機課程設(shè)計
- 基于單片機的步進電機控制單片機課程設(shè)計
- 基于單片機的步進電機控制課程設(shè)計
- 基于單片機的步進電機控制課程設(shè)計
- 單片機課程設(shè)計--步進電機控制
- 單片機課程設(shè)計報告——單片機控制步進電機
- 單片機課程設(shè)計---步進電機控制
- 單片機課程設(shè)計-步進電機的控制
- 單片機課程設(shè)計步進電機控制設(shè)計
- 基于51單片機的步進電機控制-
- 單片機課程設(shè)計--基于單片機的四相步進電機控制
- 單片機課程設(shè)計-步進電機的控制
- 單片機課程設(shè)計——基于單片機的步進電機控制器設(shè)計
評論
0/150
提交評論