版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 單片機(jī)課程設(shè)計</b></p><p> 題目:步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計</p><p> 編 號: 0802A組06 </p><p> 學(xué)生姓名: </p><p>
2、 同 組 者: </p><p> 指導(dǎo)教師: </p><p> 2010年11月18日</p><p><b> 目錄</b></p><p> 摘要 …………………………
3、………………………………………4</p><p> 第一章緒論…………………………………………………………5</p><p> 1.1 關(guān)于步進(jìn)電機(jī)……………………………………………5</p><p> 1.2 選題的目的和意義…………………………………………6</p><p> 第二章 元器件的介紹………………………………………
4、…………8</p><p> 2.1 步進(jìn)電機(jī)………………………………………………8</p><p> 2.2 89C51…………………………………………………9</p><p> 第三章步進(jìn)電機(jī)控制系統(tǒng)硬件電路設(shè)計………………………………11</p><p> 3.1 控制電路………………………………………………10</
5、p><p> 3.2 最小系統(tǒng)………………………………………………12</p><p> 3.3 驅(qū)動電路………………………………………………13</p><p> 3.4 顯示電路………………………………………………14</p><p> 3.5 總體電路………………………………………………14</p><p>
6、 第四章軟件的設(shè)計………………………………………………16</p><p> 4.1 方案論證………………………………………………16</p><p> 4.2 主程序設(shè)計………………………………………………17</p><p> 4.3 定時中斷設(shè)計…………………………………………18</p><p> 4.4 外部中斷設(shè)計……
7、……………………………………19</p><p> 第五章仿真與調(diào)試……………………………………………25</p><p> 5.1 Proteus軟件介紹……………………………………25</p><p> 5.2 keil軟件介紹…………………………………………25</p><p> 5.3 仿真過程………………………………………
8、………25</p><p> 心得體會……………………………………………………………27</p><p> 附錄 PCB板圖及其三視圖……………………………………………28</p><p><b> 摘 要</b></p><p> 能夠?qū)崿F(xiàn)步進(jìn)電機(jī)控制的方式有多種,可以采用前期的模擬電路、 數(shù)字電路或模
9、擬與數(shù)字電路相結(jié)合的方式。近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷深入,同時帶動傳統(tǒng)控制檢測日新月異更新。本文介紹一種用AT89C51作為核心部件進(jìn)行邏輯控制及信號產(chǎn)生的單片機(jī)技術(shù)和匯編語言編程設(shè)計的步進(jìn)電機(jī)控制系統(tǒng),步進(jìn)電機(jī)背景與現(xiàn)狀、硬件設(shè)計、軟件設(shè)計及其仿真都做了詳細(xì)的介紹,使我們不僅對步進(jìn)電機(jī)的原理有了深入的了解,也對單片機(jī)的設(shè)計研發(fā)過程有了更加深刻的體會。</p><p> 本控制系統(tǒng)采用單片機(jī)
10、控制,通過人為按動開關(guān)實現(xiàn)步進(jìn)電機(jī)的開關(guān),復(fù)位。該系統(tǒng)還增加了步進(jìn)電機(jī)的加速及減速功能。具有靈活方便、適用范圍廣的特點,基本能夠滿足實踐需求。</p><p> 關(guān)鍵字:步進(jìn)電機(jī) 單片機(jī)</p><p><b> Abstract</b></p><p> Stepper motor control can be achieved in
11、different ways, can be used early analog circuits, digital circuits or a combination of analog and digital circuit means. With the rapid development of science and technology in recent years, the application of SCM is a
12、growing, while traditional control test drive rapid updates. This paper describes a core component of the AT89C51, as the signal generated by logic control and microcontroller technology and assembly language programming
13、 designed stepper m</p><p> The control system uses SCM control, pressing the switch through the realization of human stepper motor switch, reset. The system also increased the stepper motor acceleration an
14、d deceleration. Has the flexibility for a wide range of features, the basic practice to meet the demand. </p><p> Keywords: stepper motor microcontroller </p><p><b> 第一章 緒論</b><
15、/p><p> 1.1 關(guān)于步進(jìn)電機(jī)</p><p> 步進(jìn)電機(jī)是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元步進(jìn)電機(jī)件。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負(fù)載變化的影響,當(dāng)步進(jìn)驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動一個固定的角度,稱為“步距角”,它的旋轉(zhuǎn)是以固定的角度一步一步運行的??梢酝ㄟ^控制脈沖個數(shù)來控制角位移量,從而達(dá)
16、到準(zhǔn)確定位的目的;同時可以通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動的速度和加速度,從而達(dá)到調(diào)速的目的。</p><p> 步進(jìn)電機(jī)的相關(guān)參數(shù):</p><p><b> 相數(shù) </b></p><p> 產(chǎn)生不同對極N、S磁場的激磁線圈對數(shù),是指電機(jī)內(nèi)部的線圈組數(shù),目前常用的有二相、三相、四相、五相步進(jìn)電機(jī)。電機(jī)相數(shù)不同,其步距角也不同,一般二相
17、電機(jī)的步距角為0.9°/1.8°、三相的為0.75°/1.5°、五相的為0.36°/0.72° 。在沒有細(xì)分驅(qū)動器時,用戶主要靠選擇不同相數(shù)的步進(jìn)電機(jī)來滿足自己步距角的要求。如果使用細(xì)分驅(qū)動器,則‘相數(shù)’將變得沒有意義,用戶只需在驅(qū)動器上改變細(xì)分?jǐn)?shù),就可以改變步距角。目前應(yīng)用最廣泛的是兩相和四相,四相電機(jī)一般用作兩相,五相的成本較高。</p><p>&
18、lt;b> 拍數(shù)</b></p><p> 完成一個磁場周期性變化所需脈沖數(shù)或?qū)щ姞顟B(tài)用n表示,或指電機(jī)轉(zhuǎn)過一個齒距角所需脈沖數(shù),以四相電機(jī)為例,有四相四拍運行方式即AB-BC-CD-DA-AB,四相八拍運行方式即 A-AB-B-BC-C-CD-D-DA-A.</p><p><b> 固有步距角 </b></p><p&
19、gt; 對應(yīng)一個脈沖信號,電機(jī)轉(zhuǎn)子轉(zhuǎn)過的角位移用θ表示。θ=360度(轉(zhuǎn)子齒數(shù)J*運行拍數(shù)),以常規(guī)二、四相,轉(zhuǎn)子齒為50齒電機(jī)為例。四拍運行時步距角為θ=360度/(50*4)=1.8度(俗稱整步),八拍運行時步距角為θ=360度/(50*8)=0.9度(俗稱半步)。這個步距角可以稱之為‘電機(jī)固有步距角’,它不一定是電機(jī)實際工作時的真正步距角,真正的步距角和驅(qū)動器有關(guān)。</p><p><b>
20、定位轉(zhuǎn)矩 </b></p><p> 電機(jī)在不通電狀態(tài)下,電機(jī)轉(zhuǎn)子自身的鎖定力矩(由磁場齒形的諧波以及機(jī)械誤差造成的),DETENT TORQUE 在國內(nèi)沒有統(tǒng)一的翻譯方式,容易使大家產(chǎn)生誤解;由于反應(yīng)式步進(jìn)電機(jī)的轉(zhuǎn)子不是永磁材料,所以它沒有DETENT TORQUE。</p><p><b> 最大靜轉(zhuǎn)矩 </b></p><
21、p> 也叫保持轉(zhuǎn)矩(HOLDING TORQUE),電機(jī)在額定靜態(tài)電作用下(通電),電機(jī)不作旋轉(zhuǎn)運動時,電機(jī)轉(zhuǎn)軸的鎖定力矩,即定子鎖住轉(zhuǎn)子的力矩。此力矩是衡量電機(jī)體積(幾何尺寸)的標(biāo)準(zhǔn),與驅(qū)動電壓及驅(qū)動電源等無關(guān)。通常步進(jìn)電機(jī)在低速時的力矩接近保持轉(zhuǎn)矩。由于步進(jìn)電機(jī)的輸出力矩隨速度的增大而不斷衰減,輸出功率也隨速度的增大而變化,所以保持轉(zhuǎn)矩就成為了衡量步進(jìn)電機(jī)最重要的參數(shù)之一。比如,當(dāng)人們說2N.m的步進(jìn)電機(jī),在沒有特殊說明的情
22、況下是指保持轉(zhuǎn)矩為2N.m的步進(jìn)電機(jī)。</p><p><b> 步距角精度 </b></p><p> 步進(jìn)電機(jī)每轉(zhuǎn)過一個步距角的實際值與理論值的誤差。用百分比表示:誤差/步距角*100%。不同運行拍數(shù)其值不同,四拍運行時應(yīng)在5%之內(nèi),八拍運行時應(yīng)在15%以內(nèi)。</p><p><b> 失步 </b><
23、/p><p> 電機(jī)運轉(zhuǎn)時運轉(zhuǎn)的步數(shù),不等于理論上的步數(shù)。稱之為失步。</p><p><b> 失調(diào)角 </b></p><p> 轉(zhuǎn)子齒軸線偏移定子齒軸線的角度,電機(jī)運轉(zhuǎn)必存在失調(diào)角,由失調(diào)角產(chǎn)生的誤差,采用細(xì)分驅(qū)動是不能解決的。</p><p> 最大空載啟動頻率 </p><p>
24、 電機(jī)在某種驅(qū)動形式、電壓及額定電流下,在不加負(fù)載的情況下,能夠直接起動的最大頻率。</p><p> 最大空載運行頻率 </p><p> 電機(jī)在某種驅(qū)動形式,電壓及額定電流下,電機(jī)不帶負(fù)載的最高轉(zhuǎn)速頻率。</p><p><b> 運行矩頻特性</b></p><p> 電機(jī)在某種測試條件下測得運行中輸出
25、力矩與頻率關(guān)系的曲線稱為運行矩頻特性,這是電機(jī)諸多動態(tài)曲線中最重要的,也是電機(jī)選擇的根本依據(jù)。</p><p> 1.2 選題的目的和意義</p><p> 通過這次課程設(shè)計,掌握51單片機(jī)的原理,了解步進(jìn)電機(jī)的工作原理,提高動手能力和排除故障的能力。同時通過本次設(shè)計與調(diào)試,調(diào)高自己的動手能力,鞏固已學(xué)的理論知識,建立單片機(jī)理論和實踐的結(jié)合,了解步進(jìn)電機(jī)控制系統(tǒng)中電路之間的關(guān)系及相互影
26、響,從而能正確設(shè)計各個單元電路。初步掌握步進(jìn)電機(jī)控制系統(tǒng)的測試方法。提高動手能力和排除故障的能力。</p><p> 第二章 元器件的介紹</p><p><b> 2.1步進(jìn)電機(jī)</b></p><p> 步進(jìn)電機(jī)是數(shù)字控制電機(jī),它將脈沖信號轉(zhuǎn)變成角位移,即給一個脈沖信號,步進(jìn)電機(jī)就轉(zhuǎn)動一個角度,因此非常適合于單片機(jī)控制。步進(jìn)電機(jī)區(qū)別于
27、其他控制電機(jī)的最大特點是:它是通過輸入脈沖信號來進(jìn)行控制的,即電機(jī)的總轉(zhuǎn)動角度由輸入脈沖數(shù)決定,而電機(jī)的轉(zhuǎn)速由脈沖信號頻率決定。</p><p> 步進(jìn)電機(jī)分三種:永磁式(PM),反應(yīng)式(VR)和混合式(HB),步進(jìn)電機(jī)又稱為脈沖電機(jī),是工業(yè)過程控制和儀表中一種能夠快速啟動,反轉(zhuǎn)和制動的執(zhí)行</p><p> 元件,其功用是將電脈沖轉(zhuǎn)換為相應(yīng)的角位移或直線位移,由于開環(huán)下就能實現(xiàn)精確定
28、位的特點,使其在工業(yè)控制領(lǐng)域獲得了廣泛應(yīng)用。步進(jìn)電機(jī)的運轉(zhuǎn)是由電脈沖信號控制的,其角位移量或線位移量與脈沖數(shù)成正比,每個一個脈沖,步進(jìn)電機(jī)就轉(zhuǎn)動一個角度(不距角)或前進(jìn)、倒退一步。步進(jìn)電機(jī)旋轉(zhuǎn)的角度由輸入的電脈沖數(shù)確定,所以,也有人稱步進(jìn)電機(jī)為數(shù)字/角度轉(zhuǎn)換器。</p><p> 四相步進(jìn)電機(jī)的工作原理</p><p> 該設(shè)計采用了20BY-0型步進(jìn)電機(jī),該電機(jī)為四相步進(jìn)電機(jī),采用單
29、極性直流電源供電。只要對步進(jìn)電機(jī)的各相繞組按合適的時序通電,就能使步進(jìn)電機(jī)轉(zhuǎn)動。當(dāng)某一相繞組通電時,對應(yīng)的磁極產(chǎn)生磁場,并與轉(zhuǎn)子形成磁路,這時,如果定子和轉(zhuǎn)子的小齒沒有對齊,在磁場的作用下,由于磁通具有力圖走磁阻最小路徑的特點,則轉(zhuǎn)子將轉(zhuǎn)動一定的角度,使轉(zhuǎn)子與定子的齒相互對齊,由此可見,錯齒是促使電機(jī)旋轉(zhuǎn)的原因。</p><p> 步進(jìn)電機(jī)的靜態(tài)指標(biāo)及術(shù)語</p><p> 相數(shù):產(chǎn)生
30、不同隊N、S磁場的激磁線圈對數(shù),常用m表示。</p><p> 拍數(shù):完成一個磁場周期性變化所需脈沖用n表示,或指電機(jī)轉(zhuǎn)過一個齒距角所需脈沖數(shù),以四相電機(jī)為例,有四相四拍運行方式即AB→BC→CD→DA→AB,四相八拍運行方式即A→AB→B→BC→C→CD→D→DA→A。</p><p> 步距角:對應(yīng)一個脈沖信號,電機(jī)轉(zhuǎn)子轉(zhuǎn)過的角位移用θ表示。Θ=360度(轉(zhuǎn)子齒角運行拍數(shù)),以常規(guī)
31、二、四相,轉(zhuǎn)子齒角為50齒角電機(jī)為例。四相運行時步距角為θ=360度/(50*4)=1.8度,八拍運行時步距角為θ=360度/(50*8)=0.9度。</p><p> 定位轉(zhuǎn)矩:電機(jī)在不通電的狀態(tài)下,電機(jī)轉(zhuǎn)子自身的鎖定力矩(由磁場齒形的諧波以及機(jī)械誤差造成的)。</p><p> 靜轉(zhuǎn)矩:電機(jī)在額定靜態(tài)作業(yè)下,電機(jī)不做旋轉(zhuǎn)運動時,電機(jī)轉(zhuǎn)軸的鎖定力矩。此力矩是衡量電機(jī)體積的標(biāo)準(zhǔn),與驅(qū)動
32、電壓及驅(qū)動電源等無關(guān)。雖然靜態(tài)轉(zhuǎn)矩與電磁激磁匝數(shù)成正比,與定子和轉(zhuǎn)子間的氣隙有關(guān)。但過分采用減小氣隙,增加勵磁匝數(shù)來提高靜轉(zhuǎn)矩是不可取的,這樣會造成電機(jī)的發(fā)熱及機(jī)械噪音。</p><p> 四相步進(jìn)電機(jī)的脈沖分配規(guī)律</p><p> 目前,對步進(jìn)電機(jī)的控制主要有分散器件組成的環(huán)形脈沖分配器、軟件環(huán)形脈沖分配器、專用集成芯片環(huán)形脈沖分配器等。本設(shè)計利用單片機(jī)進(jìn)行控制,主要是利用軟件進(jìn)行
33、環(huán)形脈沖分配。四相步進(jìn)電機(jī)的工作方式為四相單四拍,雙四拍和四相八拍工作的方式。各種工作方式在電源通電時的時序 與波形分別如圖1 a、b、c所示。本設(shè)計的電機(jī)工作方式為四相單四拍,根據(jù)步進(jìn)電機(jī)的工作的時序和波形圖,總結(jié)出其工作方式為四相單四拍時的脈沖分配規(guī)律,四相雙四拍的脈沖分配規(guī)律,在每一種工作方式中,脈沖的頻率越高,其轉(zhuǎn)速就越快,但脈沖頻率高到一定程度,步進(jìn)電機(jī)跟不上頻率的變化后電機(jī)會出現(xiàn)失步現(xiàn)象,所以脈沖頻率一定要控制在步進(jìn)電機(jī)允許
34、的范圍內(nèi)。</p><p> 2.2 89C51單片機(jī)</p><p> Atmel公司生產(chǎn)的89C51單片機(jī)是一種低功耗/低電壓‘高性能的8位單片機(jī),它采用CMOS和高密度非易失性存儲技術(shù),而且其輸出引腳和指令系統(tǒng)都與MCS-51兼容;片內(nèi)的Flash ROM允許在系統(tǒng)內(nèi)改編程序或用常規(guī)的非易失性編程器來編程,內(nèi)部除CPU外,還包括256字節(jié)RAM,4個8位并行I/O口,5個中斷源
35、,2個中斷優(yōu)先級,2個16位可編程定時計數(shù)器,89C51單片機(jī)是一種功能強(qiáng)、靈活性高且價格合理的單片機(jī),完全滿足本系統(tǒng)設(shè)計需要。</p><p> 第三章 步進(jìn)電機(jī)原理及硬件設(shè)計</p><p> 本設(shè)計的硬件電路只要包括控制電路、最小系統(tǒng)、驅(qū)動電路、顯示電路四大部分。最小系統(tǒng)只要是為了使單片機(jī)正常工作??刂齐娐分灰砷_關(guān)和按鍵組成,由操作者根據(jù)相應(yīng)的工作需要進(jìn)行操作。顯示電路主要是
36、為了顯示電機(jī)的工作狀態(tài)和轉(zhuǎn)速。驅(qū)動電路主要是對單片機(jī)輸出的脈沖進(jìn)行功率放大,從而驅(qū)動電機(jī)轉(zhuǎn)動。</p><p><b> 3.1控制電路</b></p><p> 根據(jù)系統(tǒng)的控制要求,控制輸入部分設(shè)置了啟動控制,換向控制,加速控制和減速控制按鈕,分別是K1、K2、S2、S3,控制電路如圖2所示。通過K1、K2狀態(tài)變化來實現(xiàn)電機(jī)的啟動和換向功能。當(dāng)K1、K2的狀態(tài)變
37、化時,內(nèi)部程序檢測P1.0和P1.1的狀態(tài)來調(diào)用相應(yīng)的啟動和換向程序,發(fā)現(xiàn)系統(tǒng)的電機(jī)的啟動和正反轉(zhuǎn)控制。</p><p> 根據(jù)步進(jìn)電機(jī)的工作原理可以知道,步進(jìn)電機(jī)轉(zhuǎn)速的控制主要是通過控制通入電機(jī)的脈沖頻率,從而控制電機(jī)的轉(zhuǎn)速。對于單片機(jī)而言,主要的方法有:軟件延時和定時中斷在此電路中電機(jī)的轉(zhuǎn)速控制主要是通過定時器的中斷來實現(xiàn)的,該電路控制電機(jī)加速度主要是通過S2、S3的斷開和閉合,從而控制外部中斷根據(jù)按鍵次數(shù)
38、,改變速度值存儲區(qū)中的數(shù)據(jù)(該數(shù)據(jù)為定時器的中斷次數(shù)),這樣就改變了步進(jìn)電機(jī)的輸出脈沖頻率,從而改變了電機(jī)的轉(zhuǎn)速。</p><p> 圖2 控制電路原理圖</p><p><b> 3.2最小系統(tǒng)</b></p><p> 單片機(jī)最小系統(tǒng)或者稱為最小應(yīng)用系統(tǒng),素質(zhì)用最少的元件組成的單片機(jī)可以工作的系統(tǒng),對51系列單片機(jī)來說,最小系統(tǒng)一般應(yīng)
39、該包括:單片機(jī)、復(fù)位電路、晶振電路。</p><p> 復(fù)位電路:使用了獨立式鍵盤,單片機(jī)的P1口鍵盤的接口。該設(shè)計要求只需4個鍵對步進(jìn)電機(jī)的狀態(tài)進(jìn)行控制,但考慮到對控制功能的擴(kuò)展,使用了6路獨立式鍵盤。復(fù)位電路采用手動復(fù)位,所謂手動復(fù)位,是指通過接通一按鈕開關(guān),使單片機(jī)進(jìn)入復(fù)位狀態(tài),晶振電路用30PF的電容和一12M晶體振蕩器組成為整個電路提供時鐘頻率。如圖3示。</p><p>
40、晶振電路:8051單片機(jī)的時鐘信號通常用兩種電路形式電路得到:內(nèi)部震蕩方式和外部中斷方式。在引腳XTAL1和XTAL2外部接晶振電路器(簡稱晶振)或陶瓷晶振器,就構(gòu)成了內(nèi)部晶振方式。由于單片機(jī)內(nèi)部有一個高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時鐘脈沖。內(nèi)部振蕩方式的外部電路如圖5示。其電容值一般在5~30pf,晶振頻率的典型值為12MHz,采用6MHz的情況也比較多。內(nèi)部振蕩方式所得的時鐘信號比較穩(wěn)定,實用電路實用較
41、多。</p><p> 圖3復(fù)位及時鐘振蕩電路</p><p><b> 3.3驅(qū)動電路</b></p><p> 通過ULN2803構(gòu)成比較多的驅(qū)動電路,電路圖如圖4所示。通過單片機(jī)的P1.0~P1.3輸出脈沖到ULN2803的1B~4B口,經(jīng)信號放大后從1C~4C口分別輸出到電機(jī)的A、B、C、D相。</p><p&
42、gt; 圖4 步進(jìn)電機(jī)驅(qū)動電路</p><p><b> 3.4顯示電路</b></p><p> 在該步進(jìn)電機(jī)的控制器中,電機(jī)可以正反轉(zhuǎn),可以加速、減速,其中電機(jī)轉(zhuǎn)速的等級分為七級,為了方便知道電機(jī)的運行狀態(tài)和電機(jī)的轉(zhuǎn)速的等級,這里設(shè)計了電機(jī)轉(zhuǎn)速和電機(jī)的工作狀態(tài)的顯示電路。在顯示電路中,主要是利用了單片機(jī)的P0口和P2口。采用兩個共陽數(shù)碼管作顯示。第一個數(shù)碼管
43、接的a、b、c、d、e、f、g、h分別接P0.0~P0.7口,用于顯示電機(jī)正反轉(zhuǎn)狀態(tài),正轉(zhuǎn)時顯示“1”,反轉(zhuǎn)時顯示“一”,不轉(zhuǎn)時顯示“0”。第二個數(shù)碼管的a、b、c、d、e、f、g、h分別接P2.0~P2.7口,用于顯示電機(jī)的轉(zhuǎn)速級別,共七級,即從1~7轉(zhuǎn)速依次遞增,“0”表示轉(zhuǎn)速為零。電路如圖5所示。</p><p><b> 圖5 顯示電路</b></p><p&g
44、t;<b> 3.5總體電路圖</b></p><p> 把各個部分的電路圖組合成總電路圖,如圖6所示。</p><p><b> 圖6 總體電路圖</b></p><p> 第四章 軟件的設(shè)計</p><p><b> 4.1方案論證</b></p>
45、<p> 從該系統(tǒng)的設(shè)計 要求可知,該系統(tǒng)的輸入量為速度和方向,速度應(yīng)該有增減變化,通常用加減按鈕控制速度,這樣只要2根口線,再加上一根方向線和一根啟動信號線共需要4根輸入線。系統(tǒng)的輸出線與步進(jìn)電機(jī)的繞組數(shù)有關(guān)。這里選</p><p> 進(jìn)電機(jī),該電機(jī)共有四相繞組,工作電壓為+5V,可以個單片機(jī)共用一個電源。步進(jìn)電機(jī)的四相繞組用P1口的P1.0~P1.3控制,由于P1口驅(qū)動能力不夠,因而用一片2
46、803增加驅(qū)動能力。用P0口控制第一數(shù)碼管用于顯示正反轉(zhuǎn),用P2口控制第二個數(shù)碼管用于顯示轉(zhuǎn)速等級。數(shù)碼管采用共陽的。</p><p> 通過分析可以看出,實現(xiàn)系統(tǒng)功能可以采用多種方法,由于隨時有可能輸入加速、加速信號和方向信號,因而采用中斷方式效率最高,這樣總共要完成4個部分的工作才能滿足課題要求,即主程序部分、定時器中斷部分、外部中斷0和外部中斷1部分,其中主程序的主要功能是系統(tǒng)初始參數(shù)的設(shè)置及啟動開關(guān)的檢
47、測,若啟動開關(guān)合上則系統(tǒng)開始工作,反之系統(tǒng)停止工作;定時器部分控制脈沖頻率,它決定了步進(jìn)電機(jī)轉(zhuǎn)速的快慢;兩個外部中斷程序要做的工作都是為了完成改變速度這一功能。下面分析主程序與定時器中斷程序及外部中斷程序。</p><p><b> 4.2主程序設(shè)計</b></p><p> 主程序中要完成的工作主要有系統(tǒng)初始值的設(shè)置、系統(tǒng)狀態(tài)的顯示以及各種開關(guān)狀態(tài)的檢測判斷等。
48、其中系統(tǒng)初始狀態(tài)的設(shè)置內(nèi)容較多,該系統(tǒng)中,需要初始化定時器、外部中斷;對P1口送初值以決定脈沖分配方式,速度值存儲區(qū)送初值決定步進(jìn)電機(jī)的啟動速度,對方向值存儲區(qū)送初值決定步進(jìn)電機(jī)旋轉(zhuǎn)方向等內(nèi)容。若初始化P1=11H、速度和方向初始值均設(shè)為0,就意味著步進(jìn)電機(jī)按四相單四拍運行,系統(tǒng)上電后在沒有操作的情況下,步進(jìn)電機(jī)不旋轉(zhuǎn),方向值顯示“0”,速度值顯示“0”,主程序流程圖如圖7所示。</p><p><b>
49、; 4.3定時中斷設(shè)計</b></p><p> 步進(jìn)電機(jī)的轉(zhuǎn)動主要是給電機(jī)各繞組按一定的時間間隔連續(xù)不斷地按規(guī)律通入電流,步進(jìn)電機(jī)才會旋轉(zhuǎn),時間間隔越短,速度就越快。在這個系統(tǒng)中,這個時間間隔是用定時器重復(fù)中斷一定次數(shù)產(chǎn)生的,即調(diào)節(jié)時間間隔就是調(diào)節(jié)定時器的中斷次數(shù),因而在定時器中斷程序中,要做的工作主要是判斷電機(jī)的運行方向、發(fā)下一個脈沖,以及保存當(dāng)前的各種狀態(tài)。程序流程圖如圖8所示。</p
50、><p><b> 4.4外部中斷設(shè)計</b></p><p> 外部中斷所要完成的工作是根據(jù)按鍵次數(shù),改變速度值存儲區(qū)中的數(shù)據(jù)(該數(shù)據(jù)為定時器的中斷次數(shù)),這樣就改變了步進(jìn)電機(jī)的輸出脈沖頻率,也就是改變了電機(jī)的轉(zhuǎn)速。速度增加按鈕S2為INT0中斷,其程序流程為原數(shù)據(jù),當(dāng)值等于7時,不改變原數(shù)值返回,小于7時,數(shù)據(jù)加1后返回;速度減少按鈕S3,當(dāng)原數(shù)據(jù)不為0,減1保存
51、數(shù)據(jù),原數(shù)據(jù)為0則保持不變。程序流程圖如圖9所示。</p><p><b> C語言程序如下:</b></p><p> #include <reg51.h></p><p> #define uint unsigned int </p><p> sbit k1=P3^4; //啟動開關(guān)</p
52、><p> sbit k2=P3^5; //換向開關(guān)</p><p> sbit s2=P3^2; //加速按鈕</p><p> sbit s3=P3^3; //減速按鈕</p><p> void isr_int0(void);//外部中斷0中斷服務(wù)函數(shù)聲明</p><p> void isr_int1(vo
53、id);</p><p> void zd_t0ist(void);</p><p> uint speed,count,r1,i,t,k;</p><p><b> main()</b></p><p><b> {k=0;</b></p><p><b>
54、; t=0;</b></p><p> r1=0x11 ;</p><p><b> speed=0;</b></p><p><b> count=1;</b></p><p> TMOD=0x01;</p><p><b> ET0=1
55、;</b></p><p><b> EA=1;</b></p><p><b> EX0=1;</b></p><p><b> EX1=1;</b></p><p><b> TH0=0xcf;</b></p><
56、;p><b> TL0=0x2c;</b></p><p><b> for(;;)</b></p><p> {if(k1==0)</p><p><b> {P0=0xff;</b></p><p><b> P2=0xff;</b>&
57、lt;/p><p><b> speed=0;</b></p><p><b> TR0=0;</b></p><p><b> }</b></p><p><b> else </b></p><p><b> {
58、</b></p><p><b> if(k2==0)</b></p><p><b> P0=0xbf;</b></p><p> else P0=0xf9;</p><p> if(speed==0)</p><p><b> {P2=0x
59、c0;</b></p><p><b> TR0=0;</b></p><p><b> }</b></p><p> else TR0=1;</p><p><b> }</b></p><p><b> }</b
60、></p><p><b> }</b></p><p> void isr_int0(void) interrupt 0</p><p><b> {</b></p><p> if(speed<7)</p><p> speed=speed+1;&l
61、t;/p><p> while(s2==0)</p><p> {for(i=0;i<10;i++);}</p><p><b> }</b></p><p> void isr_int1(void) interrupt 2</p><p><b> {</b>&
62、lt;/p><p> if(speed>0)</p><p> speed=speed-1;</p><p> while(s3==0)</p><p> {for(i=0;i<10;i++);}</p><p><b> }</b></p><p>
63、void zd_t0ist(void) interrupt 1</p><p><b> {</b></p><p><b> TH0=0xd8;</b></p><p><b> TL0=0xf0;</b></p><p> switch(speed)</p&g
64、t;<p><b> {</b></p><p> case 0:P2=0xc0;count=0;break;</p><p> case 1:P2=0xf9;count=60;break;</p><p> case 2:P2=0xa4;count=40;break;</p><p> case
65、 3:P2=0xb0;count=35;break;</p><p> case 4:P2=0x99;count=30;break;</p><p> case 5:P2=0x92;count=28;break;</p><p> case 6:P2=0x82;count=25;break;</p><p> case 7:P2=0x
66、f8;count=21;break;</p><p> default :break;</p><p><b> }</b></p><p><b> if(t==0)</b></p><p><b> t=count;</b></p><p>
67、<b> if(t>0)</b></p><p><b> t=t-1;</b></p><p><b> if(k2==0)</b></p><p><b> {</b></p><p><b> if(t==0)</b&
68、gt;</p><p><b> {</b></p><p><b> switch(k)</b></p><p><b> {</b></p><p> case 0:P1=0x01;break;</p><p> case 1:P1=0x0
69、2;break;</p><p> case 2:P1=0x04;break;</p><p> case 3:P1=0x08;break;</p><p> default :break;</p><p><b> }</b></p><p><b> k=k+1;</
70、b></p><p><b> if(k==4)</b></p><p><b> k=0;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> e
71、lse </b></p><p><b> {</b></p><p><b> if(t==0)</b></p><p><b> {</b></p><p><b> switch(k)</b></p><p&g
72、t;<b> {</b></p><p> case 0:P1=0x08;break;</p><p> case 1:P1=0x04;break;</p><p> case 2:P1=0x02;break;</p><p> case 3:P1=0x01;break;</p><p>
73、; default :break;</p><p><b> }</b></p><p><b> k=k+1;</b></p><p><b> if(k==4)</b></p><p><b> k=0;</b></p><
74、;p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 第五章 仿真與調(diào)試</p><p><b> 5.1軟件介紹</b></p><p>
75、Proteus軟件介紹</p><p> Proteus(海神)的ISIS是一款Labcenter出品的電路分析實物仿真系統(tǒng),可仿真各種電路和IC,并支持單片機(jī),元件庫齊全,使用方便,是不可多得的專業(yè)的單片機(jī)軟件仿真系統(tǒng)。 </p><p> ?、?全部滿足我們提出的單片機(jī)軟件仿真系統(tǒng)的標(biāo)準(zhǔn),并在同類產(chǎn)品中具有明顯的優(yōu)勢。 </p><p> ?、诰哂心M電路仿真
76、、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS一232動態(tài)仿真、1 C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。③ 目前支持的單片機(jī)類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。④ 支持大量的存儲器和外圍芯片??傊撥浖且豢罴瘑纹瑱C(jī)和SPICE分析于一身的仿真軟件,功能極其
77、強(qiáng)大 ,可仿真51、AVR、PIC。 </p><p> Proteus與其它單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī)CPU的工作情況,也能仿真單片機(jī)外圍電路或沒有單片機(jī)參與的其它電路的工作情況。因此在仿真和程序調(diào)試時,關(guān)心的不再是某些語句執(zhí)行時單片機(jī)寄存器和存儲器內(nèi)容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結(jié)果。對于這樣的仿真實驗,從某種意義上講,是彌補(bǔ)了實驗和工程應(yīng)用間脫節(jié)的矛盾和現(xiàn)象。
78、</p><p> 5.2 keil軟件介紹</p><p> Keil 軟件是目前最流行開發(fā) MCS-51 系列單片 機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持 Keil 即可看出。Keil 提供了包括 C 編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通 過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。</p><
79、p><b> 5.3仿真過程</b></p><p><b> 操作如下:</b></p><p> 在Protues中畫出系統(tǒng)電路圖 </p><p> 將程序在keil中編譯并生成hex文件。
80、3)把在keil中編譯生成的HEX文件載入AT89C51芯片中;</p><p><b> 運行仿真。 </b></p><p><b> 心得體會</b></p><p> 經(jīng)過這么長時間的努力終于將課程設(shè)計完成了,在這次設(shè)計中,我們的電路知識得到了很好的補(bǔ)充和鞏固,還使我提高了將理論知識運用到實際中的能力。&l
81、t;/p><p> 通過這次課程設(shè)計,更深一步掌握了51單片機(jī)的原理,了解了簡單步進(jìn)電機(jī)控制系統(tǒng)的組成原理,并初步掌握了步進(jìn)電機(jī)設(shè)計及測試方法。提高了動手能力和排除故障的能力。同時通過本次設(shè)計與調(diào)試,鞏固了已學(xué)的理論知識,將單片機(jī)的理論和實踐相結(jié)合,了解到步進(jìn)電機(jī)各單元電路之間的關(guān)系及影響,從而能正確設(shè)計、計算定時計數(shù)的各個單元電路。初步掌握步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計及測試方法,提高了動手能力和排除故障的能力。<
82、/p><p> 通過本次課程設(shè)計我們不僅對前面所學(xué)知識作出了檢驗,也讓自己能力得到了很大的提高。在這次課程設(shè)計中,我們發(fā)現(xiàn)了自己原來的知識還比較欠缺,要學(xué)習(xí)的東西還太多,深切的感受到學(xué)習(xí)是一個長期積累的過程,在以后的工作、生活中都應(yīng)該不斷的學(xué)習(xí),努力提高自己的知識和綜合素質(zhì)。</p><p> 這次設(shè)計使我們學(xué)到了以前書本知識中所不曾了解的知識,更加明白了在如今的信息時代下電子技能知識的重
83、要性,豐富了我們對實際工藝技術(shù)、電子技術(shù)和設(shè)備技術(shù)等方面的認(rèn)識,掌握了分析問題、處理問題的方法以及調(diào)試、計算等基本技能,使實際工作能力得到了有效提高。</p><p> 在這次的課程設(shè)計中非常感謝老師的指導(dǎo)與幫助,使我們的課程設(shè)計能更好的完成,這對于我們今后的學(xué)習(xí)、工作和生活都有很大幫助。同時,我們也充分認(rèn)識到團(tuán)隊合作的重要性,這次經(jīng)歷對于我們以后的發(fā)展無疑是相當(dāng)有幫助的。相信有了這次累積,畢業(yè)后的工作學(xué)習(xí)將會
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于51單片機(jī)的步進(jìn)電機(jī)的課程設(shè)計
- 基于51單片機(jī)的步進(jìn)電機(jī)控制課程設(shè)計
- 單片機(jī)步進(jìn)電機(jī)課程設(shè)計--單片機(jī)控制步進(jìn)電機(jī)的設(shè)計
- 單片機(jī)課程設(shè)計--基于單片機(jī)的步進(jìn)電機(jī)控制
- 課程設(shè)計--基于at89c51單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計--步進(jìn)電機(jī)
- 基于單片機(jī)的步進(jìn)電機(jī)控制單片機(jī)課程設(shè)計
- 單片機(jī)課程設(shè)計---步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計--單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計-單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計-步進(jìn)電機(jī)
- 基于單片機(jī)的步進(jìn)電機(jī)控制課程設(shè)計
- 基于單片機(jī)的步進(jìn)電機(jī)控制課程設(shè)計
- 單片機(jī)課程設(shè)計--基于單片機(jī)的四相步進(jìn)電機(jī)控制
- 單片機(jī)課程設(shè)計-步進(jìn)電機(jī)的控制
- 單片機(jī)課程設(shè)計——基于單片機(jī)的步進(jìn)電機(jī)控制器設(shè)計
- 基于51單片機(jī)的步進(jìn)電機(jī)控制-
- 單片機(jī)課程設(shè)計報告——單片機(jī)控制步進(jìn)電機(jī)
- 基于51單片機(jī)的步進(jìn)電機(jī)的控制設(shè)計
- 單片機(jī)-控制步進(jìn)電機(jī)課程設(shè)計
評論
0/150
提交評論