版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 課程設計結題報告</b></p><p> 題 目 步進電機角度控制 </p><p> 姓 名 </p><p> 所在學院 自動化學院 </p><p> 專業(yè)班級 測控技術與儀器
2、 </p><p> 學 號 </p><p> 指導教師 </p><p> 日 期 20 年 月 日 </p><p><b> 摘要</b></p><p>
3、; 步進電機因其精度高、過載性好、控制方便等優(yōu)點,在工業(yè)生產及控制領域得到了廣泛的應用。對步進電機轉動角度進行精確地測量與控制具有很高的應用價值。本次課程設計由小組七位成員合作完成,我在其中負責的是角度測控系統(tǒng)的軟件設計。因此本報告中將對軟件設計部分作詳細闡述,系統(tǒng)硬件部分只作簡單介紹,具體情況參見小組其他成員報告。</p><p> 使用軟件通過光電編碼器反饋環(huán)節(jié)獲得當前轉角并與預期角度進行比對,經過步長步
4、頻控制系統(tǒng)控制輸出下一時刻轉速。</p><p> 關鍵詞: 步進電機、89C51單片機、數碼管</p><p><b> Abstract</b></p><p> Stepper motor has been widely used in industrial production and control field because
5、of its high precision, good overload ability and easy to control, etc. The precise measurement and control of the rotation angle of the stepper motor is of high value. This curriculum design is completed by a team of sev
6、en members collaborating together, in which I was responsible for the monitoring and control system software design part. Therefore, this report will be focused mainly on software design, while </p><p> Key
7、words: Stepper Motor、89C51 Microcontroller、Digital Tube</p><p> 步進電機角度控制系統(tǒng)設計</p><p><b> 一、設計目的</b></p><p> 設計基于單片機的步進電機角度測控系統(tǒng)。通過這個過程學習熟悉鍵盤控制和七段數碼管的使用,掌握步進電機的角度控制和角度顯示
8、方法。</p><p><b> 二、設計內容及要求</b></p><p> 具有顯示功能,在顯示器上顯示任意四位十進制數。</p><p> 具有按鍵輸入和操作功能。</p><p><b> 實現(xiàn):</b></p><p><b> 鍵盤功能;<
9、;/b></p><p><b> 顯示界面;</b></p><p><b> 給出原理圖;</b></p><p> 給出控制算法及相應程序;</p><p><b> 開發(fā)串口通信功能。</b></p><p><b>
10、三、系統(tǒng)總體設計</b></p><p> 本次課程設計要求實現(xiàn)用按鍵控制并用數碼管顯示步進電機轉過的角度。一般情況下,要實現(xiàn)上述功能通常需要使用單片機來進行控制。</p><p> 按鍵可以輸入一個數值,即目標角度。步進電機在驅動電路的驅動下轉動,輸出角位移;同時,步進電機上裝有角度傳感器,從而能夠測量步進電機所轉過的角度。</p><p> 單
11、片機作為整個角度測控系統(tǒng)的中心控制單元,接收由按鍵輸入的角度值、光電編碼器測量所得到的角度。按鍵輸入值為目標角度,光電編碼器測量值為實際轉動角度。當實際轉動角度與目標角度之間存在差值時,該差值通過單片機內的控制算法運算,轉變成控制步進電機轉動的電脈沖信號。同時,單片機將測量所得的實際轉動角度輸出到數碼顯示管上。只要差值存在,單片機就控制步進電機繼續(xù)轉動,直到步進電機轉過的角度達到目標要求值。</p><p>
12、為便于表述,可將上述過程用下圖表示:</p><p> 四、系統(tǒng)硬件設計及原理</p><p> 本角度測控系統(tǒng)中,使用到的器件及傳感器主要有步進電機、電機驅動芯片、89C51單片機、鍵盤、帶驅動芯片的數碼顯示管、光電編碼器。由于硬件部分主要由小組內其他成員負責,在此只對這些器件及原理作簡單介紹。</p><p> 步進電機及其驅動芯片</p>
13、<p> 步進電機是一種將電脈沖轉化為角位移的執(zhí)行機構。通俗一點講就是,當步進驅動器接收到一個脈沖信號后,它就驅動步進電機按設定的方向轉動一個固定的角度(即步進角)??梢酝ㄟ^控制脈沖個數來控制角位移量,從而達到準確定位的目的;同時也可以通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。步進電機具有精度高、過載性好、整機結構簡單和控制方便的特點。</p><p> 我們小組電機選用的是
14、混合式兩相42HB44-056步進電機,具體參數如下:步距腳1.8度,電壓12伏,電流0.4安,靜轉矩2000g.cm,六線的連接方式是A+,地,A-,B+,地,B-。步進角精度:±5%,溫升:75℃ Max,環(huán)境溫度:-20℃~+50℃。</p><p> 驅動芯片采用的是L297+L298,其中L297是運動控制器,L298是驅動器。</p><p><b>
15、鍵盤</b></p><p> 鍵盤是一組按壓式開關的集合,是微機系統(tǒng)不可缺少的輸入設備,用于輸入數據和命令。鍵盤的每一個按鍵都被賦予一個代碼,稱為鍵碼。鍵盤系統(tǒng)的主要工作包括及時發(fā)現(xiàn)有鍵閉合,求閉合鍵的鍵碼。根據這一過程的不同,鍵盤可以分為兩種,即編碼鍵盤和非編碼鍵盤。編碼鍵盤通過一個編碼電路來識別閉合鍵,非編碼鍵盤是通過軟件來識別鍵碼。由于非編碼鍵盤的硬件電路簡單,用戶可以方便地增減鍵的數量,因
16、此在單片機系統(tǒng)中應用廣泛。</p><p><b> 數碼顯示管</b></p><p> 顯示部分是由四位七段數碼管顯示轉動的角度,精確到小數點后一位。為了便于使用,選擇集成了驅動芯片的數碼顯示管,從而單片機的輸出和光電編碼器返回的測量值可以直接顯示到數碼管上。</p><p><b> 光電編碼器</b><
17、/p><p> 光電編碼器,是一種通過光電轉換將輸出軸上的機械幾何位移量轉換成脈沖或數字量的傳感器,是目前應用最多的傳感器。一般的光電編碼器主要由光柵盤和光電探測裝置組成。根據其刻度方法及信號輸出形式,可分為增量式、絕對式以及混合式3種。</p><p> 本次課設采用的是增量式編碼器,其直接利用光電轉換原理輸出三組方波脈沖A、B和Z相;A、B兩組脈沖相位差90°,從而可方便地判
18、斷出旋轉方向,而Z相為每轉一個脈沖,用于基準點定位。它的優(yōu)點是原理構造簡單,機械平均壽命可在幾萬小時以上,抗干擾能力強,可靠性高,適合于長距離傳輸。</p><p> 4.5 AT89C51單片機</p><p> 目前世界上有很多單片枕制造公司,如美國的INTEL、ATMEL、MOTOROLA和ZILOG公司、德國的SIEMES公司、荷蘭的PHILIP公司等。他們相繼推出了各種類型
19、的單片機,其中INTEL公司推出的一種高性能8位單片機MCS--51系列單片機以優(yōu)越的性能,成熟的技術和高性價比迅速占領了工業(yè)測控和自動化工程領域的主要市場,成為單片機領域中的主流產品。除了INTEL公司外,PHILIP,ATMEL,ADM,SIEMES等公司紛紛推出了與MCS--51系列兼容的單片機,其中ATMEL公司的89系列單片機也稱Flash單片機是以8031為核心構成的,它和INTEL公司的MCS--51系列單片機完全兼容,它
20、不但繼承了MCS一51系列原有的功能,而且又擴展了它的功能。對于一般用戶來說,89系列單片機存在下列很顯著的優(yōu)點:①內部含F(xiàn)lash存儲器;②和AT80CSl插座兼容;③靜態(tài)時鐘方式:④錯誤編程亦無廢品產生;⑤可反復進行系統(tǒng)試驗。使用方便是ATMEL公司89系列單片機被廣泛應用的一個主要因素。一般的OTP產品,一旦錯誤編程就成了廢品,而89系列單片楓內部采用了Flash存儲器,所以,錯誤</p><p> 五、
21、系統(tǒng)軟件設計及流程圖</p><p> 步進電機和普通電動機不同之處是步進電機接受脈沖信號的控制。即步進電機是將電脈沖信號轉換為機械角位移的執(zhí)行元件。步進電機的控制可以用硬件,也可以用軟件通過單片機實現(xiàn)。硬件方法是采用脈沖分配器芯片進行通用換相控制;而軟件方法是用單片機產生控制脈沖來控制步進電機的運行狀態(tài),這種方法可簡化電路,降低成本。本次課設中,我們采用89C51單片機來產生控制脈沖。</p>
22、<p> 本系統(tǒng)軟件部分主要有以下四個功能:</p><p><b> 接收按鍵輸入的值;</b></p><p> 接收光電編碼器的測量值;</p><p> 對以上兩個值進行處理,從而給出步進電機的控制脈沖;</p><p> 將步進電機轉過的角度輸出顯示到數碼管上。</p><
23、;p> 本報告只對上述四個功能中的第三個進行詳細說明,其他部分內容由小組其他成員來具體描述。</p><p> 步進電機控制脈沖的形成</p><p> 實現(xiàn)對步進電機的控制,單片機就能輸出有一定周期的控制脈沖。先輸出一個高電平,延時一段時間后,再輸出一個低電平,然后再延時。改變延時時間的長短,即可改變脈沖的周期,脈沖的周期由步進電機的工作頻率確定。</p>&l
24、t;p><b> 步進電機的速度控制</b></p><p> 步進電機的轉動是機械運動,如果轉速改變過大,會出現(xiàn)所謂“失步”現(xiàn)象。當從靜止開始啟動時,啟動頻率越高,啟動轉矩就越小,帶負載能力下降,當轉矩與負載相當時轉速即為最高速運行頻率。所以控制步進電機的運行速度,實際上是控制系統(tǒng)發(fā)出時鐘脈沖的頻率或換相的周期,即在升速過程中,使脈沖的輸出頻率逐漸增加;在減速過程中,使脈沖的輸出
25、頻率逐漸減少。</p><p> 設鍵盤輸入的目標角度值為 ,光電編碼器測得的實際轉動角度為 。單片機通過A/D接口從外圍設備中讀取到這兩個角度值。</p><p> 由于本方案設定步進電機轉動方向恒定,所以在步進電機工作時要控制其轉過角度不能超過目標角度,故添加步長步頻控制系統(tǒng)進行控制,以達到實際角度逼近目標角度而不超過的目的。計算差比值</p><p>
26、通過差比值 判斷實際轉過角度對目標角度的逼近情況,進而控制下一時刻步進電機的轉速。</p><p> 本設計中將劃分為三段,分別為加速階段、恒速階段、減速階段,其中加速階段采取線性關系,減速階段采取拋物線關系,如下圖所示:</p><p> 采用該設計思路,目的在于步進電機剛啟動時讓電機加速轉動以達到快速性的設計目的;中間段采用恒速,主要是考慮帶負載是盡量保證電機的平穩(wěn)運行;最后一段采
27、用拋物線減速,以快速減速,使電機在短時間內降速并停止工作,不至于超過目標角度。</p><p> 程序流程圖如下圖所示:</p><p><b> 六、收獲及體會</b></p><p> 經過兩個星期的辛苦努力,這次的課程設計終于得到了完成。從剛看到題目時的一頭霧水,到現(xiàn)在對本次課設有了全面深入的理解,我的感觸很深。</p>
28、<p> 首先是與之前做過的電子課程設計不同,本次課程設計的題目要求更高。之前的課設主要用到的是數電和模電課上的知識,而本次課設涵蓋的課程有自動控制原理、傳感器原理、單片機原理及應用、C語言程序設計等等。復雜的題目要求不僅需要我們熟練掌握這些課程的知識,更需要我們學會將不同課程的內容綜合起來,從而順利的解決題目提出的要求。本次課設很好地提醒我們,要學會融合所學專業(yè)知識。</p><p> 其次是
29、本次課設要求我們去查找大量的資料以得到想要的結果。教材上的東西畢竟是有限的,不可能把將來工作中遇到的問題一概囊括。本次課設中我們遇到的問題就是一個很好的例子。該角度測控系統(tǒng)用到了步進電機,而書上只介紹了步進電機的基本原理及主要特性,沒有覆蓋如何選擇步進電機的內容。為了明確選用哪個步進電機能符合相關電氣參數,我們必須在網上查找相關資料,在大量的步進電機中篩選出滿足電路要求的電機產品。這對我們查閱資料的能力是一個很好的鍛煉。</p&g
30、t;<p> 最后,本次課程設計讓大家深深地體會到了團隊合作的重要性。由于題目的要求較復雜,設計出來的角度測控系統(tǒng)也具有較復雜的結構,憑一個人的力量是很難在有限的時間內完成的,所以我們將系統(tǒng)設計按照功能拆分成了五個模塊,然后分配到各個成員手中。為了保證系統(tǒng)的整體性,分別負責兩個相連模塊的成員必須保持溝通,不斷協(xié)調,這樣才能保證最終設計出來的系統(tǒng)是可行可靠的。如果大家各干各的,可能出現(xiàn)系統(tǒng)不能正常工作的情況,例如角度測量器
31、測得的信號不能被單片機接收并處理。</p><p> 兩周的課程設計很快就要結束了,作為即將步入社會的大四學生,課程設計教會了我們很多教室里學不到的東西。通過此次課程設計,我認識到實際應用才是最能檢驗是否掌握了所學知識的辦法。將來走上工作崗位,更應該學會靈活運用所學知識。同時,一個人的力量終究是有限的,團隊合作能融合各人所長,集眾人之力。</p><p><b> 參考文獻&
32、lt;/b></p><p> [1] 何麗民,《單片機初級教程》,北京航空航天大學出版社.</p><p> [2] 沙占友,王彥朋,孟志永,《單片機外圍電路設計》,電子工業(yè)出版社.</p><p> [3] 童詩白,華成英,《模擬電子技術基礎》,北京高等教育出版社.</p><p> [4] 姚燕南,《微型計算機原理與接口技
33、術》,高等教育出版社.</p><p> [5] 陸鑫、康建明,《微機原理與接口技術》,機械工業(yè)出版社.</p><p> [6] 黃繼昌,張海貴,郭繼忠,《實用單元電路及其應用》,人民郵電出社.</p><p> [7] 謝宜仁,《單片機實用技術問答》,人民郵電出版社.</p><p> [8] 張迎新,《單片機初級教程——單片機基
34、礎》,北京航空航天大學出版社.</p><p><b> 附錄</b></p><p><b> 程序代碼主要部分</b></p><p> #include<reg51.h></p><p> #include<intrins.h></p><p
35、> #define uint unsigned int</p><p> #define uchar unsigned char</p><p> uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};</p><p> uchar refreshcon[4
36、]={0x00,0x01,0x02,0x03};</p><p> /********************************************************************</p><p> * 名稱 : Delay_1ms()</p><p> * 功能 : 延時子程序,延時時間為 1ms * x</p>&l
37、t;p> * 輸入 : x (延時一毫秒的個數)</p><p><b> * 輸出 : 無</b></p><p> ***********************************************************************/</p><p> void Delay_1ms(uint i)//
38、1ms延時</p><p><b> {</b></p><p> uchar x,j;</p><p> for(j=0;j<i;j++)</p><p> for(x=0;x<=148;x++);</p><p><b> }</b></p&
39、gt;<p> /********************************************************************</p><p> * 名稱 : Keyscan()</p><p> * 功能 : 實現(xiàn)按鍵的讀取。下面這個子程序是按處理 矩陣鍵盤 的基本方法處理的。</p><p><b>
40、* 輸入 : 無</b></p><p> * 輸出 : 按鍵值</p><p> ***********************************************************************/</p><p> uchar Keyscan(void)</p><p><b>
41、{</b></p><p> uchar i,j, temp, Buffer[3] = {0xfe, 0xfd, 0xfb}; //讓矩陣鍵盤的每行分別為低電平</p><p> for(j=0; j<3; j++)</p><p><b> {</b></p><p> P3 = Buffe
42、r[j];</p><p> temp = 0x10; </p><
43、p> for(i=0; i<4; i++)</p><p><b> {</b></p><p> if(!(P3 & temp)) //判斷P1口高4位某一行為低電平</p><p><b> {</b></p><p> return (i+j*4); //返
44、回鍵碼</p><p><b> }</b></p><p> temp <<= 1;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b><
45、/p><p> /********************************************************************</p><p> * 名稱 : Main()</p><p> * 功能 : 主函數</p><p><b> * 輸入 : 無</b></p>&
46、lt;p><b> * 輸出 : 無</b></p><p> ***********************************************************************/</p><p> void Main(void)</p><p><b> {</b></p&
47、gt;<p> uchar Key_Value; //讀出的鍵值</p><p> uchar key_type = 0;</p><p> int settemp;</p><p> uchar sin;</p><p><b> uchar f;</b></p><p&g
48、t;<b> while(1)</b></p><p><b> {</b></p><p> P1 = 0xf0;</p><p> if((P3 != 0xf0)&(key_type == 0))//判斷有無按鍵按下</p><p><b> {</b>
49、</p><p> Delay_1ms(20); //按鍵消抖</p><p> if(P3 != 0xf0) //第二次判斷有無按鍵按下</p><p><b> {</b></p><p> Delay_1ms(20); //按鍵消抖</p><p> if(P3 != 0xf
50、0)//第三次判斷有無按鍵按下</p><p><b> {</b></p><p> key_type = 1;</p><p> Key_Value = Keyscan();</p><p> if (Key_Value == 11)</p><p><b> {<
51、/b></p><p> settemp = 0;</p><p><b> }</b></p><p> else if (Key_Value == 10)</p><p><b> {</b></p><p> settemp = (-1)*settemp
52、;</p><p><b> }</b></p><p> else settemp = settemp*10+Key_Value;</p><p> if(settemp<0)</p><p> { </p><p> sin = 0x40;</p>
53、<p> settemp=(-1)*settemp;</p><p><b> }</b></p><p> else sin = 0;</p><p><b> }</b></p><p><b> }</b></p><p>
54、<b> }</b></p><p> if ((P3 == 0xf0)&(key_type == 1))</p><p><b> {</b></p><p> Delay_1ms(20);</p><p> if(P3 == 0xf0)</p><p>
55、<b> {</b></p><p> key_type = 0;</p><p><b> }</b></p><p><b> }</b></p><p><b> //顯示</b></p><p> for(f=0
56、;f<4;f++)</p><p><b> {</b></p><p><b> switch(f)</b></p><p><b> {</b></p><p> case 0: P0 = sin; break;</p><p> c
57、ase 1: P0 = table[settemp%1000/100]; break;</p><p> case 2: P0 = table[settemp%100/10]; break; </p><p> case 3: P0 = table[settemp%10]; break;</p><p><b> }</b></p&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 步進電機專業(yè)課程設計--步進電機控制系統(tǒng)設計
- 測控技術與儀器專業(yè)課程設計報告
- 測控技術與儀器專業(yè)課程設計報告
- 專業(yè)課程設計
- 數顯式測量電路的設計-測控專業(yè)課程設計
- 專業(yè)課程設計
- 課程設計報告---步進電機角度控制(mc51系統(tǒng))
- 步進電機控制a課程設計報告
- 步進電機課程設計報告---步進電機控制系統(tǒng)
- 測控電路課程設計--步進電機控制器設計
- 單片機課程設計--步進電機角度控制
- 步進電機課程設計報告--步進電機控制系統(tǒng)設計
- 液壓專業(yè)課程設計
- 鑄造專業(yè)課程設計
- 步進電機的控制課程設計報告
- 材料成型與控制專業(yè)課程設計
- 電氣工程專業(yè)課程設計報告
- 計算機控制課程設計--步進電機角度控制
- 課程設計-步進電機控制步進電機轉速實時控制
- 《專業(yè)課程設計[料]》課程簡介
評論
0/150
提交評論