版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 摘要</b></p><p> 步進電機是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的執(zhí)行機構(gòu)。步進電機是一種功能特殊的電動機,它可以通過控制脈沖頻率來控制電機轉(zhuǎn)動的速度和加速度,而達到調(diào)速的目的,并且可以進行精準(zhǔn)的定位,因此它能夠在實際的應(yīng)用中得到廣泛的使用。</p><p> 本文介紹了以AT89C52為控制元件的步進電機控制系統(tǒng),實現(xiàn)了用
2、按鍵對步進電機的開啟、停止、加速、減速、反轉(zhuǎn)等操作,該控制系統(tǒng)包含硬件電路部分和軟件設(shè)計部分,硬件部分包括晶振模塊、復(fù)位模塊、按鍵模塊、驅(qū)動模塊、顯示模塊。軟件編寫使用了Keil uvision4軟件編程工具、protell 99se軟件畫圖工具、protues軟件仿真工具。整個系統(tǒng)采用模塊化設(shè)計,結(jié)構(gòu)簡單、可靠,通過按鍵控制,LCD1602液晶顯示步進電機運行狀態(tài),ULN2003驅(qū)動步進電機運行,本設(shè)計操作方便,節(jié)省成本,安全性高。&
3、lt;/p><p> 關(guān)鍵詞:步進電機 單片機 調(diào)速控制</p><p><b> Abstrcat</b></p><p> Stepper motor is the electrical pulse signal into angular displacement or linear displacement actuator.Ste
4、pper is a special kind motor,We can control the number of pulses to control the amount of angular displacement, so as to achieve accurate positioning purposes; at the same time by controlling the pulse frequency to contr
5、ol the motor rotation speed and acceleration, and speed control purposes.So it is widely uesd in the industry.This article describes the design of the stepper motor control s</p><p> Key words:Microcomputer
6、 Stepping motor Speed control system</p><p><b> 目 錄</b></p><p><b> 摘要Ι</b></p><p> AbstrcatII</p><p><b> 1緒論1</b></p&
7、gt;<p> 2設(shè)計方案及系統(tǒng)功能2</p><p> 3 步進電機硬件介紹3</p><p> 3.1步進電機的概述3</p><p> 3.1.1步進電機的原理3</p><p> 3.1.2步進電機的參數(shù)5</p><p> 3.1.3步進電機的分類6</p>
8、<p> 3.2 驅(qū)動電機芯片 LUN2003A6</p><p> 3.3單片機概述7</p><p> 3.4 LCD1602液晶介紹11</p><p> 4步進電機軟件編寫13</p><p> 4.1 Keil uvision4簡介13</p><p> 4.2 C語言知識簡
9、介18</p><p> 4.3 步進電機程序編寫19</p><p> 4.3.1程序編寫的方案確定19</p><p> 4.3.2 步進電機正轉(zhuǎn)程序設(shè)計22</p><p> 4.3.4 步進電機加速、減速程序設(shè)計23</p><p> 4.3.5 控制系統(tǒng)按鍵程序設(shè)計24</p>
10、;<p><b> 結(jié)論25</b></p><p><b> 參考文獻27</b></p><p><b> 附錄28</b></p><p><b> 1緒論</b></p><p> 步進電機的發(fā)明使得我們的生活更加便捷
11、,更加靈活。在發(fā)明步進電機以后人們從未放棄過對它的改進,使得現(xiàn)如今步進電機的應(yīng)用非常廣泛包括生活、可以設(shè)計等等,在最近的四十年以來,數(shù)字控制技術(shù)、計算機應(yīng)用技術(shù)和永磁材料應(yīng)用技術(shù)的迅猛發(fā)展,所以步進電機能夠廣泛地應(yīng)用于手工業(yè)自動控制系統(tǒng)、數(shù)控機床應(yīng)用、組合機床應(yīng)用、機器人研發(fā)以及升級改造、計算機外圍設(shè)備應(yīng)用、照相機鏡頭的馬達應(yīng)用,投影儀器件應(yīng)用、數(shù)碼攝像機、大型望遠鏡、衛(wèi)星天線定位系統(tǒng)、醫(yī)療器件應(yīng)用以及各種可控機械工具等等。這些廣泛的應(yīng)
12、用極大地推動了步進電機的發(fā)展。研究步進電機為了更好地服務(wù)未來社會的需要,也有利于鞏固所學(xué)知識,了解科技前沿的動態(tài)。使用單片機作為核心控制元件的步進電機控制系統(tǒng),能夠更有效率的、更加精確的對步進電機進行啟動、停止、加速、減速、反轉(zhuǎn)等一系列的相關(guān)操作。步進電機的發(fā)展前景也是很不錯,近幾年步進電機改進以及升級也很迅速。</p><p> 本次畢業(yè)設(shè)計采用AT89C52型號的單片機作為核心控制元件對步進電機進行相應(yīng)的運
13、行控制,通過操作單片機的I/O口,讓其輸出具有時序的方波作為步進電機的控制信號,然后輸出的方波信號通過ULN2003A驅(qū)動芯片去驅(qū)動步進電機,同時我們設(shè)計使用按鍵對步進電機的運行狀態(tài)進行控制,并且應(yīng)用LCD1602液晶顯示器去顯示步進電機的運行狀態(tài)以及一些簡單的運行狀態(tài)。這次畢業(yè)設(shè)計將很有利于我們對于所學(xué)知識的進一步的鞏固,對于本學(xué)科前沿發(fā)展的更加深入的了解。并且對于編程的使用更加熟練,有利于提高我們的邏輯思維能力。</p>
14、<p> 2設(shè)計方案及系統(tǒng)功能</p><p> 我們這次畢業(yè)設(shè)計的任務(wù)是以單片機為控制核心設(shè)計出一個步進電動機的控制系統(tǒng)。本次畢業(yè)設(shè)計選擇采用16位單片機AT89C52作為控制核心對步進電機的運行進行相應(yīng)的控制,經(jīng)過單片機I/O口通過編程設(shè)計讓其輸出的具有時序的方波作為步進電動機的控制信號,去控制信號讓其經(jīng)過驅(qū)動芯片驅(qū)動步進電機;與此同時,再用按鍵來對步進電動機的運行狀態(tài)進行控制,并用LCD1
15、602液晶顯示器顯示步進電動機的運行速度及正反轉(zhuǎn)狀態(tài)。</p><p> 本次系統(tǒng)設(shè)計的方案是參考我們的專業(yè)課本以及其他的一些相關(guān)資料,首先是深入的學(xué)習(xí)了本次畢業(yè)設(shè)計所使用的各類硬件,包括AT89C52單片機、ULN2003A驅(qū)動芯片,以及LCD1602液晶顯示器等等。通過使用模塊化的設(shè)計方案,我們一步一步的設(shè)計出系統(tǒng)的各個關(guān)鍵的部分,然后再把這些模塊整理成一個完整的系統(tǒng)。</p><p&g
16、t; 本次設(shè)計的步進電機控制系統(tǒng)有以下功能:</p><p> 步進電機的正反轉(zhuǎn)控制</p><p><b> 步進電機的速度控制</b></p><p><b> 步進電機的啟??刂?lt;/b></p><p> 液晶顯示步進電機的運行狀態(tài)</p><p><b
17、> 按鍵的正常使用</b></p><p> 各個電路模塊正常工作</p><p> 本系統(tǒng)的主要技術(shù)參數(shù):</p><p> 系統(tǒng)供電電源:電壓:5V</p><p> 本次畢業(yè)設(shè)計采用的步進電機為四相八拍的。</p><p> 3 步進電機硬件介紹</p><p&g
18、t; 3.1步進電機的概述</p><p> 步進電機是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件。在實際的運行情況下,步進電機的轉(zhuǎn)速取決于輸入的脈沖信號的頻率,而脈沖個數(shù)的控制可以去控制角位移量,從而達到準(zhǔn)確定位的目的;而步進電機的速度和加速度可以通過控制脈沖頻率來控制,從而達到調(diào)速的目的。步進電機一般采用金屬材質(zhì)的外殼,比較耐用,種類也是很多的,但是他們的原理差不多都是類似的。圖3-1為步進電機內(nèi)部的
19、原理圖。</p><p> 圖3-1 步進電機原理圖</p><p> 3.1.1步進電機的原理</p><p> 步進電機是可以將電脈沖信號轉(zhuǎn)換成直線或角位移的執(zhí)行器件,所以它在實際的使用時不能直接接到交直流電源上,而必須使用專業(yè)的驅(qū)動器件----步進電機控制驅(qū)動器,這個驅(qū)動器發(fā)出的脈沖頻率可以從幾Hz到幾千Hz在這個范圍可以連續(xù)變化的脈沖信號,然后給環(huán)形分
20、配器一些列的脈沖,而環(huán)形分配器的主要功能是把來自外部控制環(huán)節(jié)的脈沖序列按照一定的規(guī)律分配以后,功率放大器的放大作用,然后加到步進電機驅(qū)動電源的內(nèi)部的各個輸入端,只有經(jīng)過以上的正確的各個相關(guān)的步驟,步進電機才能正常的運轉(zhuǎn)。轉(zhuǎn)向的控制和速度的控制這兩個方面是步進電機控制的核心部分。而步進電機的外接線路是很簡單的,易于進行控制調(diào)節(jié)。從結(jié)構(gòu)上看,步進電機可以分為三相單</p><p> 三拍、三相雙三拍和三相六拍3種,
21、它們基本原理如下:</p><p> ?。?)換相順序的控制</p><p> 脈沖分配其實就是步進電機通電換相的這一過程,這一過程對于步進電機來說是非常重要的。四相八拍運行方式為A-AB-B-BC-C-CD-D-DA,其他運行方式的原理與這些也是很相似的,我們同樣必須嚴格按照所要求的順序去進行通電控制脈沖的輸入,可以參考各類文獻,我們在這里不再贅述了。</p><p
22、> (2)步進電機的換向控制</p><p> 步進電機的正轉(zhuǎn)的運行狀態(tài)是通過給定的工作方式為正序換相通電來實現(xiàn)的只有按照這種方式才能實現(xiàn)正轉(zhuǎn)運行。假如說步進電機的勵磁方式為三相六拍,即A→AB→B→BC→C→CA→A。如果我們按照反序通電換相的話,即A→AC→C→CB→B→BA→A,那么我們的步進電機就會進行反轉(zhuǎn)運行,通過這種方式我們就可以掌控步進電機的轉(zhuǎn)向了。其他運行的方式情況與此類似,我們參照舉例
23、的原理就可以理解其他方式了,我們必須嚴格按照反序通電換相去進行控制,可以參考各類文獻,我們在這里也不再贅述。</p><p> ?。?)步進電機的速度控制</p><p> 在實際步進電機的運行中,如果步進電機接收到外界系統(tǒng)發(fā)給它的一個控制脈沖,那么步進電機就會隨之轉(zhuǎn)動一步,然后如果步進電機再一次接收到外界系統(tǒng)發(fā)給它的一個控制脈沖,那么步進電機就會再一次轉(zhuǎn)動一步。步進電機運行時的轉(zhuǎn)動速度
24、和接受外接輸入的脈沖信號的時間間隔有關(guān),輸入給步進電機的兩個控制脈沖的時間間隔越短,則步進電機的運行速度就會越快,相反,輸入控制脈沖的時間間隔越長,則步進電機的運行速度就會越慢。我們可以去調(diào)整輸送給步進電機的脈沖信號的時間間隔,用這種方法就可以對步進電機進行速度的調(diào)試,調(diào)節(jié)出我們想要的速度的大小。在編程的時候要銘記這一點,利用程序?qū)斎朊}沖的時間進行相應(yīng)的調(diào)節(jié),使用延遲函數(shù)就可以寫出控制步進電機速度的程序段了。我們必須控制好步進電機的速
25、度。</p><p> ?。?)步進電機的起??刂?lt;/p><p> 我們都知道步進電機具有電氣的特性,所以在它實際運轉(zhuǎn)的時候會讓人感覺有一步一步運行的感覺。如果在步進電機控制脈沖時序的信號的上升沿和信號的下降沿采用細分的類似于梯形波,這樣就可以減小步進電機的運行的步進角度,進而可以提高步進電機運行時候的穩(wěn)定、平緩的特性,使得其轉(zhuǎn)動的時候更加平滑,振動更加微弱。這樣就可以鎖定步進電機的轉(zhuǎn)
26、軸,使得步進電機轉(zhuǎn)軸不能自由轉(zhuǎn)動,繼而能夠更加有效的保護步進電機,這種措施的優(yōu)點就是能夠延長其使用壽命,保護機器。</p><p> ?。?)步進電機的加減速控制</p><p> 在步進電機控制系統(tǒng)中,在實驗的時候發(fā)現(xiàn),如果對步進電機輸入的控制信號變化速率太快,則步進電機會由于慣性跟不上控制信號的變化,無法實現(xiàn)實時同步,這時就會產(chǎn)生堵轉(zhuǎn)和失步的現(xiàn)象,嚴重的影響了步進電機的工作,甚至可能
27、會損壞步進電機,</p><p> 所以在實際應(yīng)用的時候我們應(yīng)該必須禁止這種情況的發(fā)生。我們必須采取相應(yīng)的措施解決這種問題。在步進電機啟動的時候,規(guī)定必須有加速的過程,在停止的時候輸入波形有減速的過程。在實際應(yīng)用的控制系統(tǒng)中,我們要根據(jù)負載的使用情況去選擇合適的步進電機。我們在實際應(yīng)用中必須嚴格的按照其要求啟動電機,從而能夠更好地保護它。</p><p> 步進電機有如下特點:<
28、/p><p> 步進電機的動態(tài)響應(yīng)速度快,便于控制它的啟動、停止、正轉(zhuǎn)、反轉(zhuǎn)以及變速調(diào)節(jié)。</p><p> 步進電機的速度調(diào)節(jié)的控制范圍非常廣,所以我們可以進行較為平滑的速度控制,并且在低速運轉(zhuǎn)狀態(tài)下仍能保證獲得很大的轉(zhuǎn)矩,因為步進電機具有這個特點所以一般可以不用減速器而直接驅(qū)動外接負載工作。</p><p> 只能使用脈沖電源對步進電機進行供電,它不能直接用交
29、流電源或直流電源去供電。所以我們在設(shè)計的時候要記得步進電機的這一特性,設(shè)計出合適的電源供電系統(tǒng)。</p><p> 3.1.2步進電機的參數(shù)</p><p> ?。ㄒ唬┎竭M電機的靜態(tài)指標(biāo)參數(shù)</p><p> 1、相數(shù):步進電機內(nèi)部產(chǎn)生不同對N極、S極磁場的激磁線圈的對數(shù)。常用英文字母m表示。 </p><p> 2、拍數(shù):步進電機完成
30、一個磁場周期性變化所需要的脈沖數(shù)或者導(dǎo)電狀態(tài),用英文字母n表示,或者也可以指步進電機轉(zhuǎn)過一個齒距角所需要的脈沖的數(shù)量,</p><p> 3、步距角:步進電機接收到一個脈沖信號,電機轉(zhuǎn)子隨之轉(zhuǎn)過的角位移,用θ表示。θ=360度(轉(zhuǎn)子齒數(shù)*運行拍數(shù))。</p><p> 4、定位轉(zhuǎn)矩:步進電機在不通電的狀態(tài)下,電機轉(zhuǎn)子它本身的鎖定力矩(由磁場齒形的諧波以及機械誤差所造成的)。</p
31、><p> ?。ǘ┎竭M電機動態(tài)指標(biāo)及術(shù)語:</p><p><b> 1、步距角精度:</b></p><p> 步進電機每轉(zhuǎn)過一個步距角的實際值與理論值的誤差。不同運行拍數(shù)的步進電機這個誤差也是不同的。</p><p><b> 2、失步:</b></p><p>
32、當(dāng)步進電機運轉(zhuǎn)的時候它運轉(zhuǎn)的步數(shù),這個步數(shù)并不等于理論上步進電機運行的步數(shù)。這種現(xiàn)象稱之為失步。在實際的使用過程中應(yīng)該盡量避免這種情況。</p><p><b> 3、失調(diào)角:</b></p><p> 轉(zhuǎn)子的軸偏移定子的軸的角度即為失調(diào)角,失調(diào)角這個參數(shù)我們應(yīng)該極力地避免它</p><p> 的出現(xiàn),可以必須采用更加高級的辦法去解決這個
33、問題,避免在實際的使用中發(fā)生這種情況。</p><p> 4、最大空載的運行頻率:</p><p> 步進電機在某種驅(qū)動形式,額定的電壓及額定的電流作用下,步進電機不帶任何負載的情況下,能夠運行的最高轉(zhuǎn)速頻率。</p><p><b> 最大空載的啟動頻率</b></p><p> 步進電機在額定的電壓和電流作用
34、下,它不附帶任何的外接負載,這時能夠使它直接啟動的頻率即為最大空載啟動頻率。</p><p> 3.1.3步進電機的分類</p><p> 1、 反應(yīng)式步進電機(VAriABle ReluCtAnCe,簡稱 VR)反應(yīng)式步進電機的轉(zhuǎn)子是由軟磁材料制成的,轉(zhuǎn)子中沒有繞組。這種步進電機的結(jié)構(gòu)非常簡單,成本距角可以做得很小,但它不擁有較好的動態(tài)性能。</p><p>
35、; 2、 永磁式步進電機(PermAnent MAgnet,簡稱 PM)永磁式步進電機內(nèi)部構(gòu)造里的轉(zhuǎn)子是用永磁體材料制造而成的,所以這種步進電機的內(nèi)部轉(zhuǎn)子本身就是一個可以向外發(fā)射磁場的源。因為這種步進電機的轉(zhuǎn)子的極數(shù)和定子的極數(shù)相同,所以這種步進電機的步進角比較大,并且它的輸出轉(zhuǎn)矩比較大,動態(tài)運行的性能較好,運行的時候消耗的功率比較小(相比反應(yīng)式),但這種步進電機的缺點是啟動運行的時候輸入的信號頻率要求較低,有時候我們還可能需要使用
36、正極或是負極的脈沖去進行供電。</p><p> 3、 混合式步進電機(HyBrid,簡稱 HB) 混合式步進電機的制造技術(shù)綜合利用了反應(yīng)式和永磁式兩者的優(yōu)點。由于這種電機能夠開環(huán)運行并且由它組成的控制系統(tǒng)也比較簡單,因此這種步進電機在工業(yè)科技中的應(yīng)用也是十分廣泛的,我們應(yīng)該好好學(xué)習(xí)這種步進電機的工作原理。</p><p> 3.2 驅(qū)動電機芯片 LUN2003A</p>
37、<p> ULN2003A采用雙列16腳封裝的形式,NPN晶體管矩陣,它適合用于TTL COMS,使用達林頓管組成驅(qū)動電路。這實際應(yīng)用中用戶輸出口的外接負載可根據(jù)以上的參數(shù)估算,去完成相應(yīng)的任務(wù)。ULN2003A采用集電極開路輸出,輸出的電流比較大,因此它可以直接地驅(qū)動繼電器或者固體繼電器,當(dāng)然我們也可以利用它直接驅(qū)動低壓燈泡。通常單片機驅(qū)動ULN2003A時,使用上拉2K的電阻比較適合實際情況,同時,COM引腳應(yīng)該采取
38、懸空方法或接電源的措施。ULN2003A的作用是:ULN2003A是采用大電流驅(qū)動德陣列,ULN2003A多數(shù)情況下應(yīng)用于單片機系統(tǒng)控制、智能儀器儀表的設(shè)計以及應(yīng)用、PLC編程控制系統(tǒng)、數(shù)字量輸出卡等實際的各種方案設(shè)計中。它可以直接地去驅(qū)動繼電器等</p><p> 一系列應(yīng)用負載。 ULN2003A輸入5V 的TTL電平,輸出可以達到500mA/50V。ULN2003A可以承受較高的電壓、同時也可以通過較大電
39、流,它由七個硅作為材料的NPN達林頓管組合而成,它的內(nèi)部構(gòu)造其實并不是非常復(fù)雜,我們應(yīng)該好好學(xué)習(xí)它的工作原理。 </p><p> ULN2003A 是高壓大電流達林頓晶體管陣列系列產(chǎn)品,它的特點是通過的電流增益高、工作的時候承受的電壓高、應(yīng)用的溫度范圍寬、外接負載能力強等等特點,因此它適應(yīng)于各類型要求高速大功率驅(qū)動的實際系統(tǒng),在工業(yè)生產(chǎn)中的應(yīng)用也是非常廣泛的。</p><
40、p> ULN2003A經(jīng)常被我們應(yīng)用在以下的各種電路中,比如說作為顯示驅(qū)動、繼電器驅(qū)動、照明燈驅(qū)動、電磁閥驅(qū)動、伺服電機、步進電機驅(qū)動等等各類型的電路中。ULN2003A是高壓大電流達林頓晶體管陣列電路,它具有7個獨立的反相驅(qū)動器,而它內(nèi)部的每個驅(qū)動器的輸出灌電流可以達到500 mA,當(dāng)它導(dǎo)通時輸出的電壓約為1 V,截止時輸出電壓可以達到50V。當(dāng)外部提供給ULN2003A的驅(qū)動電源電壓為+12 V左右時,若我們要求每段數(shù)碼管導(dǎo)
41、通的時候流過的電流為40mA左右,則我們可以根據(jù)歐姆定律計算出每段的限流電阻約為50Ω。則我們可以使用一塊ULN2003A恰好地驅(qū)動一個LED數(shù)碼管的全部7段正常顯示。大數(shù)碼管采用共陽極接法,輸入低電平的時候才會有效。鎖存器輸出的電平經(jīng)過NPN三極管9014反相以后,再經(jīng)由ULN2003A放大后才能去驅(qū)動大數(shù)碼管顯示我們想要的內(nèi)容,去達到我們想要的目的.</p><p><b> 3.3單片機概述&l
42、t;/b></p><p> 單片機(英文名single-chip microcomputer)是包含了微型計算機主要功能模塊且都集成在一塊芯片上的單芯片的微型計算機。圖3-2中給我們展示了單片機的典型結(jié)構(gòu)圖,由此圖我們可以大致的了解單片機的組成模塊。由于單片機內(nèi)部各個模塊的集成度很高,所以單片機能夠縮短系統(tǒng)內(nèi)部的信號傳送的距離,縮短了處理的時間,更好地優(yōu)化了內(nèi)部結(jié)構(gòu)配置,系統(tǒng)的可靠性得到較大程度的提高并
43、且運行處理的速度也大大加快,同時單片機的指令系統(tǒng)又非常適合于工業(yè)控制的要求,所以單片機在工業(yè)過程控制系統(tǒng)及設(shè)備管理控制系統(tǒng)中得到了非常廣泛的應(yīng)用,我們學(xué)好單片機工作原理以及使用方法對以后的工作非常有幫助。</p><p> 圖3-2 單片機結(jié)構(gòu)圖</p><p> 當(dāng)我們在進行實時的控制和實時的數(shù)據(jù)處理時,單片機需要與外界時時交換各種信息。人們需要通過人機對話的方式,去了解由單片機組成
44、的控制系統(tǒng)的工作情況和進行相應(yīng)操作的時時控制。單片機芯片與其它的CPU芯片相比較,它的功能雖然足夠完善全面,但由于其內(nèi)部芯片結(jié)構(gòu)配置、外圍引腳數(shù)目的限制,以及單片機片內(nèi)ROM容量、RAM大小、I/O口數(shù)量等的限制,在構(gòu)成實際的應(yīng)用控制系統(tǒng)時需要加以擴展,去彌補本身的不足,以適應(yīng)不同的、要求更加多樣的控制系統(tǒng)或電子器件的設(shè)計。圖3-3向我們展示了單片機的應(yīng)用系統(tǒng)的組成。</p><p> 圖3-3單片機的應(yīng)用系統(tǒng)
45、</p><p> 本次畢業(yè)設(shè)計是設(shè)計一款最小應(yīng)用的控制系統(tǒng),最小應(yīng)用的控制系統(tǒng)是指能維持單片機運行的最簡單配置的系統(tǒng),利用單片機I/O口的控制作用去實現(xiàn)我們想要的簡單的</p><p> 操作。我們采用的這種系統(tǒng)成本比較低廉、內(nèi)部結(jié)構(gòu)配置比較簡單明了,他人很容易深入了解,所以常用這種形式來構(gòu)成比較簡單的控制操作系統(tǒng),比如說開關(guān)量的輸入/輸出控制、時序操作的控制、模擬/數(shù)字量的輸入輸出
46、的控制等等。對于片內(nèi)有較大容量ROM/EPROM的單片機來說,最小應(yīng)用系統(tǒng)應(yīng)包括配有晶振模塊、復(fù)位電路模塊和供電電源模塊的單個芯片;而對于單片機內(nèi)部沒有較大容量ROM/EPROM的芯片來說,它們的最小應(yīng)用控制系統(tǒng)除了應(yīng)配置上述的晶振模塊、復(fù)位電路模塊和供電電源模塊之外,還應(yīng)該配備外接的EPROM或EEPROM作為程序存儲器來擴展使用。</p><p> 現(xiàn)在介紹下本次我們要使用的AT89C52型號的單片機,AT
47、89C52是一款使用電壓較低,性能較高的CMOS組成的8位微型單片機,單片機的內(nèi)部包含有8k字節(jié)的可反復(fù)擦寫重復(fù)使用的的Flash只讀程序存儲器和256 字節(jié)的隨機存取數(shù)據(jù)存儲器(RAM),這種器件采用ATMEL公司的密度較高、不容易失去活性的存儲技術(shù)生產(chǎn),并且它的一大特點就是可以兼容國際上標(biāo)準(zhǔn)的MCS-51指令系統(tǒng),單片機內(nèi)部擁有通用的8位中央處理器和Flash存儲程序的單元,AT89C52單片機在電子行業(yè)以及控制領(lǐng)域有著非常廣闊的實
48、際應(yīng)用。</p><p> AT89C52擁有40個外部引腳,32個外部雙向輸入/輸出(I/O)端口,同時單片機內(nèi)部包含有2個外部處理的中斷口,3個16位的可以編寫程序用于定時的計數(shù)器,2個全雙工串行通信口,2 個可以進行讀寫的口線。AT89C52可以按照常規(guī)方法進行編程,可以使用C語言對它進行編程也可以使用匯編語言對它進行編程,另外我們也可以通過網(wǎng)絡(luò)在線進行程序的編寫。</p><p>
49、; 圖3-4 AT89C52單片機實物</p><p> 單片機各引腳簡單介紹</p><p> 接下來我們著重的介紹下單片機各個引腳的功能和相應(yīng)的使用方法。AT89C52型號的單片機擁有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時AT89C52單片機內(nèi)部包含有2個處理外部信息的中斷端口,3個16位的可以編寫程序用于定時的計數(shù)器,2個工作模式為全雙工的串行通信口,2 個
50、可以進行讀寫的端口線。</p><p> 圖2-5 AT89C52引腳圖</p><p><b> P0口引腳介紹</b></p><p> 我們可以從圖中看出P0口包含8個I/O口,并且它可以驅(qū)動8個TTL邏輯門電路。當(dāng)P0輸入為高電平“1”時,它的作用是高阻抗作用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8 位)和
51、數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在Flash編程時,P0 口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。</p><p><b> P1口引腳介紹</b></p><p> 我們可以從圖中看到P1口擁有8 位雙向I/O口,它們都是帶有上拉電阻的,P1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。</p>
52、<p> ?。?)P2口引腳介紹</p><p> P2口也是擁有8位雙向傳輸信號的I/O口,并且它們也都含有上拉電阻的,我們可以使用它可以驅(qū)動4個TTL邏輯門電路。</p><p> (4)P3口引腳介紹</p><p> P3口的功能以及內(nèi)部構(gòu)造和P2口是類似的。P3口的引腳也是帶有上拉電阻的8位雙向傳輸信號的I/O口。同時它也可以驅(qū)動4個TT
53、L邏輯門電路。</p><p> 3.4 LCD1602液晶介紹</p><p> LCD1602液晶顯示器能夠顯示16列2行的內(nèi)容,即總共可以顯示32個字符,LCD1602液晶顯示器也叫作LCD1602字符型液晶顯示器,它可以用來顯示字母、數(shù)字、符號,功能非常強大,易用性強。LCD1602液晶模塊內(nèi)部已經(jīng)存儲了160個不同的點陣字符圖形,它內(nèi)部包含的這些字符有:阿拉伯?dāng)?shù)字、英文字母的
54、大小寫、常用的符號、和日文假名等,而每一個字符都有一個固定的編程代碼,比如說大寫的英文字母“X”的代碼是01011000B(58H),LCD1602顯示時模塊把地址58H中的點陣字符圖形調(diào)用出來并顯示出來,從而我們就能在顯示屏上看到大寫字母“X”。</p><p> 圖3-6 LCD1602液晶引腳圖</p><p> 由LCD1602液晶引腳圖我么可以知道,其擁有16個引腳。其中:&
55、lt;/p><p> 第1引腳:電源地GND。</p><p> 第2引腳: 5V電源的正極VCC。</p><p> 第3引腳:VL引腳為LCD1602對比度調(diào)節(jié)的引腳,接電源正極時LCD1602顯示器的</p><p> 亮度最低,接電源地時顯示亮度最高。在后期制作的時候可以根據(jù)需要去連線進而調(diào)節(jié)。</p><p&
56、gt; 第4引腳:RS引腳的功能是寄存器的選擇,當(dāng)輸入為高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。</p><p> 第5引腳:RW引腳為讀寫信號線,當(dāng)輸入為高電平時,1602進行讀操作;當(dāng)輸入為低電平時,1602進行寫操作。</p><p> 第6引腳:EN引腳為使能端。當(dāng)輸入為高電平時,1602進行讀取信息,遇到負跳變時就執(zhí)行相應(yīng)的指令。</p><
57、p> 第7~14引腳:D0~D7為8位雙向數(shù)據(jù)端。</p><p> 第15~16引腳:15引腳為背光的正極。16引腳為背光的負極。</p><p> 圖3-7 LCD1602液晶實物圖</p><p><b> 4步進電機軟件編寫</b></p><p> 4.1 Keil uvision4簡介<
58、/p><p> Keil uvision4是由ARM公司開發(fā)研究成的,與2009年2月份正式發(fā)布,Keil uVision4設(shè)計語言引入了比較靈活多用的窗口管理系統(tǒng),這樣就使得開發(fā)工作人員能夠同時使用多臺監(jiān)視器,極大地提高了監(jiān)視效率,并提供了視覺上的表面對窗口位置的完全控制的任何地方。Keil uvision4設(shè)計的新型的用戶交流界面可以更好地利用電腦屏幕的空間和窗口的利用率也得到大大的提高,為用戶創(chuàng)造了一個簡單明
59、了的,極高效率的工作編程環(huán)境來開發(fā)相應(yīng)的C程序?,F(xiàn)在所授的課程也是以keil uVision4這個版本為工具去教學(xué)的,軟件界面也比較容易為我們學(xué)生所接受,各類操作也都比較符合windows7操作系統(tǒng)的操作習(xí)慣,并且這個軟件的各種庫文件、各類型號的單片機參數(shù)也是非常齊全的,有利月我們的學(xué)習(xí)使用。</p><p> 由于我們是自動化的學(xué)生,所以對于編程能力的要求也是很高的,以便于應(yīng)對以后的工作要求,大二我們就開設(shè)了
60、C語言這門課程,并且我們一般還在校外報了輔導(dǎo)班來進行C語言更加深入的學(xué)習(xí),而Keil uVision4軟件就可以用C語言進行編程,我們所學(xué)的知識就得到了應(yīng)用,并且也學(xué)習(xí)到了其他更加深奧的,高端的知識和方法,所以本次畢業(yè)設(shè)計也是對我們所學(xué)知識的鞏固與提高,這樣的鍛煉對于以后得工作學(xué)習(xí)也有巨大的幫助,尤其是對C語言編程方面的工作,以及各種軟件的使用方法。</p><p> (1)使用keil軟件前先正確安裝該軟件,
61、安裝的過程十分簡單,網(wǎng)上都有教程,按照教程一步一步的安裝就可以了,這里不再贅述。安裝完成后我們就能打開keil軟件。下面就是打開該軟件的截圖。</p><p> 圖4-1 keil軟件打開界面</p><p> 我們想編寫一個程序的話必須得新建一個新的工程文件,點擊“工程->New Project…”菜單,如下面的截圖:</p><p> 圖4
62、-2 新建工程截圖</p><p> 然后我們選擇工程文件要存放的路徑 ,輸入工程文件名bujindianji, 最后單擊保存.這個就是我們這次想要設(shè)計的步進電機控制系統(tǒng)的程序的工程文件。里面包含一些工程文件和相應(yīng)的C語言代碼文件。</p><p> 圖4-3 工程保存截圖</p><p> ?。?)選擇我們需要使用的單片機廠商的型號,這里我們選擇Atmel公司
63、的AT89C52單片機。當(dāng)然也可以選擇其他類型的單片機,這里因為AT89C52的使用非常方便,編程也比較靈活,所以我們選擇使用它作為這次畢業(yè)設(shè)計的控制核心部件。因為AT89C52比AT89C51多4K字節(jié)的存儲空間,所以我們選擇使用它,程序存儲空間越大對以后編程的限制就會減小很多。</p><p> 圖4-4 單片機型號選擇</p><p> 新建一個C文件,并保存到工程里。注意:C文
64、件的后綴一定要是.c形式,并且保存完畢以后必須得保存到我們的工程里,否則無法進行正常的編譯。然后我們就可以在這個C文件里進行程序的編寫了。另外提醒大家最好把這些文件放到一個文件夾里(可以自己新建一個文件夾),以后查找起來是非常方便的。我就是單獨弄了一個文件夾存放這些重要的文件。</p><p> 圖4-5 C文件保存界面</p><p> 圖4-6 C文件添加到源組截圖</p&g
65、t;<p> 接下來我們就可以去進行程序的編寫啦。按照C語言的相關(guān)要求,并且要注意編程時候應(yīng)該注意的一些事項。最后編寫完成我們的步進電機控制系統(tǒng)的代碼以后不要忘記保存下來。以后的系統(tǒng)仿真工作還要用到,仿真的時候有什么BUG可以回到keil軟件中隨時修改我們的代碼。如果我們的仿真工作時令我們滿意的,則在編寫完成后以及仿真完畢后我們可以使用keil軟件生成HEX文件,然后可以把這個HEX文件通過USB接口下載到我們的單片機里
66、,然后通過案件的控制去看我們編寫的程序是否合格,如果有的地方不和我們的要求,我們可以回到keil軟件里繼續(xù)改寫程序,做到最優(yōu)控制,最</p><p> 終達到我們的目的。下面為編程界面截圖和燒寫軟件的截圖。</p><p><b> 圖4-7編程界面</b></p><p> 圖4-8 程序編寫完成編譯無錯誤截圖</p>&
67、lt;p> 圖4-9 STC_ISP燒寫程序軟件截圖</p><p> 4.2 C語言知識簡介</p><p> C語言是運用較為廣泛的編程語言,學(xué)習(xí)起來也很簡單,易懂,適合初學(xué)者學(xué)習(xí)。C語言有著較強的邏輯性,要求程序員有著較強的羅輯思維能力。例外,C語言編寫起來特別簡潔直觀,它所包含的運算符特別豐富,數(shù)據(jù)的類型也很豐富,可以直接尋址,類似于點對點的操作,代碼的質(zhì)量也是非常好的
68、,執(zhí)行起來的效率也特別高,C語言另外的一大優(yōu)勢就是可移植性好,新編寫的程序可以移植前人優(yōu)秀的代碼,大大節(jié)省了資源,減輕了編程人員的負擔(dān)。但每一個實物都有它的兩面性,當(dāng)然C語言也有很多的不足,舉例來說的話,C語言對它的數(shù)據(jù)封裝的保護就是很差的,我們也可以說這是C語言和C++語言的最大的區(qū)別,并且我們在本科的學(xué)習(xí)過程中也認識到C語言的編程語法的限制也是不太嚴格的,隨意性比較大,并且在編程的時候,對于數(shù)據(jù)變量的類型要求也不太嚴格,有時候甚至對
69、一些變量的定義比較模糊,沒有具體明確的規(guī)定,這就容易在實際應(yīng)用的時候?qū)τ诔绦虻陌踩浴⒁子眯詷?gòu)成威脅。所以我們得懷著錙銖必較的心態(tài)去學(xué)習(xí)編程語言,不能模棱兩可,糊弄自己。</p><p> 4.3 步進電機程序編寫</p><p> 4.3.1程序編寫的方案確定</p><p> 本次畢業(yè)設(shè)計要求實現(xiàn)對步進電機的啟動、停止、加速、減速、反轉(zhuǎn)等一系列操作,利用單
70、片機I/O口控制各個功能模塊的正常工作,各個功能模塊分別為LCD1602液晶顯示模塊,按鍵控制模塊,步進電機驅(qū)動模塊。這次我使用了if、switch、for等語句進行編寫程序,巧妙的利用了它們的語法規(guī)則、功能作用。在編寫完各種頭文件后,然后我再考慮各個模塊的編寫方式,包括LCD1602液晶顯示的指令的輸入、數(shù)據(jù)的輸入、數(shù)據(jù)的顯示、以及初始化等模塊,按鍵的I/O口選擇,控制編碼的編寫,步進電機運行代碼的編寫。等這些基本的模塊考慮好了以后,
71、再綜合起來考慮整體的設(shè)計思路,各個模塊的編寫順序,初始化參數(shù)的設(shè)定,以及運行參數(shù)的調(diào)整,在設(shè)計的過程中不斷地發(fā)現(xiàn)自己的錯誤和不足,不斷的提高自己的能力。對步進電機控制使用總線式的控制方式,即對它輸入16進制的編碼進行直接的控制,這種控制方式比較簡單明了重復(fù)使用率高,因此我們編寫的代碼量也大大減少了。對于LCD1602的程序編寫,參照其各個引腳的功能和作用進行控制顯示。按鍵占用幾個I/O口,選擇單片機相應(yīng)的一個口就可以了。本次畢業(yè)設(shè)計占用
72、的單片機的I/O口并不是很多的,所以在設(shè)</p><p> 首先,在編寫主體程序段之前,讓我們做一些準(zhǔn)備工作,正所謂磨刀不誤砍柴工嘛,讓我們先聲明好編程所要使用的各個位,即位聲明。比如說:按鍵的位聲明,LCD1602功能引腳的位聲明。</p><p> sbit RS=P1^0; </p><p> sbit RW=P1^1; </p>&l
73、t;p> sbit EN=P1^2; </p><p> sbit KEY1=P1^3;</p><p> sbit KEY2=P1^4;</p><p> sbit KEY3=P1^5等。以后編程時軟件就知道你定義的位對應(yīng)單片機哪個I/O口了,以后就可以直接使用這些定義的位了,不需要再重復(fù)定義了,大大節(jié)省了的那片機的存儲空間,另外還有一種辦法也可以
74、進行位聲明,那就是把這些定義直接編寫到<reg52.h>這個頭文件中,這個頭文件里面就都是對各個I/O口的定義以及一些常用的算法,如果你選擇用這個方法進行位聲明的話,就能比第一種方法更加縮減了代碼的量。此外,我還聲明了兩個全局變量形式,即</p><p> #define uchar unsigned char </p><p> #define uint unsign
75、ed int以后再編程的時候遇到就可以直接使用uchar和uint了,它們兩個的意思分別是無符號的字符型數(shù)據(jù)和無符號的整形數(shù)據(jù)。這樣編程起來就很方便了,不用重復(fù)的去定義我們想要使用的變量名稱。這種編程方法是C語言中比較人性化的設(shè)計語言,另外,對于延遲函數(shù)可以移植別人的程序段,當(dāng)然也可以自己編寫,我是自己編寫的,我是用了兩個for循環(huán),兩個for循環(huán)去消耗掉一些時間,當(dāng)然具體的延遲時間要以后具體的去調(diào)整,從而去實現(xiàn)延遲一段精確時間的功能。
76、</p><p> 而步進電機運行的代碼是事先編寫好的,即:</p><p> uchar code tab[8]={0x02,0x06,0x04,0x0c,0x08,0x09,0x01,0x03},而把這些十六進制的代碼翻譯成二進制代碼的時候我們就可以知道單片機如何驅(qū)動步進電機運行了,0x01即0000 0001步進電機A相得電,0x03即0000 0011步進電機AB相同時得電,0
77、x02即00000010此時B相得電,0x06即00000110此時BC相得電,以此類推以后得電的順序為C-CD-D-DA,即四相八拍的通電順序。</p><p> 當(dāng)程序運行時就可以直接調(diào)用里面的代碼了。用這些控制代碼去控制步進電機的啟動、加速、減速、反轉(zhuǎn)等操作。使用switch/case語句就可以循環(huán)往復(fù)的調(diào)用這些控制代碼,而且非常易于分層次的編寫,編寫起來也是規(guī)律性很強,寫出一句來,接下來的控制代碼就和前
78、面的差不多。如果使用if語句的話就會很麻煩,因為要不停的去進行判斷,這樣會大大降低程序的效率。所以綜上所述,還是使用switch/case語句進行速度以及顯示的代碼編程比較合適,其他部分可以參考使用。</p><p> 在主程序的前面,必須得加入一段初始化的程序段,這段初始化的程序的作用就是把LCD1602顯示清零,光標(biāo)位置的確定,功能模式的確定,以及寫命令、寫數(shù)據(jù)的定義。</p><p&g
79、t; 對于步進電機的運行狀態(tài)的控制代碼,我是用了幾段重復(fù)相似的if語句,通過對輸入信號的判斷去進行相應(yīng)的操作。按鍵的按下,就可以去控制步進電機的運行了。而對于LCD1602液晶顯示器的編程,我是用了switch選擇語句,通過程序的判斷選擇,去讓LCD1602去顯示步進電機的運行狀態(tài),例如:正轉(zhuǎn)還是反轉(zhuǎn),正傳的話顯示“z”反轉(zhuǎn)的話顯示“f”,加速還是減速。這次畢業(yè)設(shè)計程序代碼的編寫,關(guān)鍵一步就是LCD1602液晶顯示器程序的編寫,它的寫
80、命令、寫數(shù)據(jù)、檢測顯示都要單獨寫出一段函數(shù)的,以便以后能直接調(diào)用,而對于這方面的知識,我是跟著郭天祥老師的教學(xué)視頻學(xué)習(xí)研究的,包括程序的編寫和keil軟件的使用。這次畢業(yè)設(shè)計的步進電機主程序流程框圖如下,通過對按鍵的判斷,去進行相應(yīng)的操作。</p><p> 4.3.2 步進電機正轉(zhuǎn)程序設(shè)計</p><p> 啟動系統(tǒng)并且進行初始化以后,若KEY2==1,則把0x02,0x06,0x0
81、4,0x0c,0x08,0x09,0x01,0x03,通過編程把這些控制代碼正序傳給P1口,并且讓它們根據(jù)程序的設(shè)定開始循環(huán)的進行使用,通過這樣的方法我們就實現(xiàn)了步進電機的正轉(zhuǎn)操作。并且通過LCD1602來顯示當(dāng)前的正轉(zhuǎn)的運行狀態(tài)。步進電機正轉(zhuǎn)部分程序流程框架如下:</p><p> 圖4-9 步進電機正轉(zhuǎn)部分程序流程框架</p><p> 4.3.3 步進電機反轉(zhuǎn)程序設(shè)計</p
82、><p> 控制步進電機反轉(zhuǎn)的方法和控制步進電機正傳的方法類似,若KEY2==0,則把0x02,0x06,0x04,0x0c,0x08,0x09,0x01,0x03,這些控制代碼以倒序的形式傳給P1口,并且讓它們根據(jù)程序的設(shè)定循環(huán)往復(fù)的使用,通過這樣的方法我們就實現(xiàn)了步進電機的反轉(zhuǎn)操作。并且通過LCD1602液晶顯示器來顯示當(dāng)前的反轉(zhuǎn)的運行狀態(tài),非常直觀易懂,很容易的就能夠控制步進電機的反轉(zhuǎn)。步進電機反轉(zhuǎn)部分程序流
83、程框架如下:</p><p> 圖4-10 步進電機反轉(zhuǎn)部分程序流程框架</p><p> 4.3.4 步進電機加速、減速程序設(shè)計</p><p> 當(dāng)步進電機正向轉(zhuǎn)動或者反向轉(zhuǎn)動的時候,如果檢測到KEY3按鍵被人為按下,通過改變步進電機轉(zhuǎn)動每一步的延時時間,進而去實現(xiàn)步進電機的轉(zhuǎn)動速度的改變,速度的分級分為三個等級,依次為等級1、等級2、等級3。這部分對于程
84、序的精確性要求比較高,我選擇使用了switch/case語句,能夠較好的控制并把速度等級分類,并且我們通過編寫LCD1602液晶顯示器的代碼來顯示當(dāng)前的速度狀態(tài),速度的等級,當(dāng)然這也是switch/case語句里面的內(nèi)容。步進電機加速、減速部分程序流程框架如下:</p><p> 圖4-11 步進電機加速、減速部分程序流程框架</p><p> 4.3.5 控制系統(tǒng)按鍵程序設(shè)計<
85、/p><p> 這次的畢業(yè)設(shè)計使用到三個按鍵,這三個按鍵是采用獨立按鍵進行設(shè)計的,按鍵部分的程序設(shè)計其實并不是很難,學(xué)習(xí)完案件的編寫方法后,可以很簡單的編寫出來。它</p><p> 用到了單片機P2的三個I/O口進行編程控制,去實現(xiàn)步進電機控制系統(tǒng)的啟動、加速、減速、反轉(zhuǎn)等操作。因為本次畢業(yè)設(shè)計對于案件數(shù)量的要求并不是很多,所以就不適用矩陣鍵盤,而矩陣鍵盤適用于操作要求較多的設(shè)計系統(tǒng)。&
86、lt;/p><p> 圖4-12 步進電機按鍵部分程序流程框架</p><p><b> 結(jié)論</b></p><p> 我們的這次畢業(yè)設(shè)計成功的實現(xiàn)了使用單片機作為控制核心去控制步進電機的正轉(zhuǎn)、反轉(zhuǎn)、加速、減速、停止等操作,以及按鍵使用,LCD1602顯示的應(yīng)用,通過這次的畢業(yè)設(shè)計讓我更加熟練地掌握了編程的能力,羅輯思維的能力以及對于各種硬
87、件的了解,豐富了自己的知識儲備庫,以及解決問題分析問題的能力,并且也讓我了解到步進電機應(yīng)用十分廣泛,有著非常廣闊的市場和發(fā)展前景和單片機在電子工業(yè)和控制領(lǐng)域的廣泛應(yīng)用。因為我以后要繼續(xù)攻讀研究生學(xué)位,對于我的學(xué)術(shù)研究能有很大的提升。</p><p><b> 致謝</b></p><p> 經(jīng)過兩個月左右的畢業(yè)設(shè)計,我從中學(xué)到了很多,對自己大學(xué)四年的學(xué)習(xí)有了一個更
88、加深入的了解,知道了自己所學(xué)專業(yè)的精華部分,自己的不足以及所需努力補強的地方,這些日子過得很充實,向老師請教問題,討論研究畢設(shè)方案,并且和同學(xué)互幫互助,共同完成任務(wù),不僅學(xué)習(xí)能力能到提升,而且和他人溝通交流的能力也大大提高。</p><p> 這次的畢業(yè)設(shè)計的題目是步進電機控制系統(tǒng)的設(shè)計,起初拿到這個題目的時候,我的心里還是很高興的,以為這個題目應(yīng)該不會太難,以前的學(xué)習(xí)也涉及到過,在大三的時候開過控制電機這門課
89、程,不過在后來的設(shè)計方案過程中,我卻發(fā)現(xiàn)這個題目比自己想象中要難得多,因為步進電機的設(shè)計包括硬件部分的設(shè)計和軟件部分的設(shè)計,而我負責(zé)軟件部分,也就是編寫程序去控制步進電機的操作,但光編程是遠遠不夠的,因為你必須熟悉各個硬件的使用方法,以及對應(yīng)的編程時應(yīng)該注意的事項,所以我做畢業(yè)設(shè)計之前,先著重學(xué)習(xí)了各個硬件方面的知識,像單片機AT89C52,它的各個I/O口什么功能,編程時怎么使用這些I/O口,除了這些其他知識也較為全面的學(xué)習(xí)了一下;L
90、CD1602作為這次畢業(yè)設(shè)計控制顯示模塊,也是相當(dāng)重要的模塊,包括它的使用方法,接線方法,編程注意事項,以及得考慮怎么顯示才能讓別人較為容易的理解你所做的操作;ULN2003作為驅(qū)動步進電機運轉(zhuǎn)的驅(qū)動芯片,也非常關(guān)鍵,我也學(xué)習(xí)了它的工作原理,內(nèi)部結(jié)構(gòu),以及接線使用方法等等。在了解完這些關(guān)鍵的硬件知識后,我才能更好地去編寫程序,其實編寫程序也是很考驗人的一項工作,你得有深厚的C語言編程能力</p><p> 步進
91、電機在工業(yè)中的應(yīng)用是非常廣泛的,這次畢業(yè)設(shè)計也讓我更加了解步進電機的前景,它適用于很多的控制現(xiàn)場,并且它的成本低,穩(wěn)定性較好,可靠性高。這次畢業(yè)設(shè)計鞏固的這些知識對于我們讀研或者工作都有很大的幫助。雖然這次畢業(yè)設(shè)計的過程很艱難,很不容易,但人生就是這樣,不經(jīng)歷風(fēng)雨怎么見彩虹,人生需要奮斗,勇敢地區(qū)戰(zhàn)勝任何困難!“路漫漫其修遠兮,我將上下而求索”。</p><p> 在這里我要感謝我們可愛的*老師,沒有您的諄諄教
92、誨,我們可能很難完成這次的畢業(yè)設(shè)計,您從開始選擇參考資料,到后來的編程都給予了我巨大的幫助。</p><p><b> 參考文獻</b></p><p> [1] 吳金戌,沈慶陽,郭廷吉.8051單片機實踐與應(yīng)[M] 清華大學(xué)出版社 2004.3</p><p> [2] 詹躍東,電機及拖動基礎(chǔ)[M].重慶:重慶大學(xué)出版社,2002,
93、12. </p><p> [3] 譚浩強.C程序設(shè)計(第三版)[M]北京:清華大學(xué)出版社,2005:104-106.</p><p> [4] 王曉明,電動機的單片機控制[M]北京:北京航空航天大學(xué)出版社,</p><p> [5] 丁煒,魏孔平.可編程控制器在工業(yè)控制中的應(yīng)用[M].北京:化學(xué)工業(yè)出版社,2004</p><p&g
94、t; [6] 胡漢才.單片機原理及其接口技術(shù)[M]北京:清華大學(xué)出版社,199.6 </p><p> [7] 黃濤,李晶,李志剛.電動車直流無刷電動機的調(diào)速控制[J].微計算機信息,2006,4</p><p> [8] 王衛(wèi)星.單片機原理與應(yīng)用開發(fā)技術(shù)[M].北京:中國水利水電出版社,2009:92-116.</p><p> [9] 李忠杰,寧守
95、信.步進電動機應(yīng)用技術(shù)[M].北京:機械工業(yè)出版社,1998.</p><p> [10] 吳紅星.電機驅(qū)動與控制專用集成電路及應(yīng)用[M].北京:中國電力出版社,2006.</p><p> [11] 史敬灼.步進電機伺服控制技術(shù)[M].北京:科學(xué)出版社,2006.</p><p> [12] 夏明娜,高玉芝.單片機系統(tǒng)設(shè)計及應(yīng)用[M].北京:北京理工大學(xué)出版
96、社,2011.</p><p> [13] 王自強.步進電機應(yīng)用技術(shù)[M].北京:科學(xué)出版社,2010.</p><p> [14] 譚建成.新編電機控制專用集成電路與應(yīng)用[M].北京:機械工業(yè)出版社,2005-7.</p><p> [15] 王曉明.電動機的單片機控制[M].北京:北京航空航天大學(xué)出版社,2011.</p><p>
97、 [16] 王志新,羅廣文.電機控制技術(shù)[M].北京:機械工業(yè)出版社,2011.</p><p> [17] 王成元,夏加寬,孫宜標(biāo).現(xiàn)代電機控制技術(shù)[M].北京:機械工業(yè)出版社,2009.</p><p><b> 附錄</b></p><p> #include<reg52.h> </p><p&g
98、t; #include<intrins.h> </p><p> #include<absacc.h></p><p> #define busy 0x80 </p><p> #define uchar unsigned char </p><p> #define uint unsigned in
99、t</p><p> sbit RS=P1^0; </p><p> sbit RW=P1^1; </p><p> sbit EN=P1^2; </p><p> sbit KEY1=P1^3;</p><p> sbit KEY2=P1^4;</p><p> sbit K
100、EY3=P1^5;</p><p> uchar code tab[8]={0x02,0x06,0x04,0x0c,0x08,0x09,0x01,0x03};//步進電機控制代碼</p><p> uchar temp;</p><p> void delay(uchar k)//延時函數(shù) </p><p><b> {
101、 </b></p><p><b> uint i,j;</b></p><p> for(i=k;i>0;i--)</p><p> for(j=100;j>0;j--);</p><p><b> } </b></p><p>
102、void test_1602busy()//檢測LCD是否忙碌函數(shù) </p><p><b> { </b></p><p> P0=0xff; </p><p><b> EN=1;</b></p><p><b> RS=0;</b></p>
103、<p><b> RW=1; </b></p><p><b> _nop_();</b></p><p> _nop_(); </p><p> while(P0&busy)//檢測LCD DB7 是否為1</p><p><b> { EN=0;
104、</b></p><p><b> _nop_();</b></p><p><b> EN=1;</b></p><p><b> _nop_();</b></p><p><b> }</b></p><p>
105、;<b> EN=0; </b></p><p><b> } </b></p><p> void write_1602Command(uchar co) //寫命令函數(shù) </p><p><b> { </b></p><p> test_1602bus
106、y(); //檢測LCD是否忙</p><p><b> RS=0;</b></p><p><b> RW=0;</b></p><p><b> EN=0; </b></p><p><b> _nop_(); </b></p&
107、gt;<p> P0=co; </p><p> _nop_(); </p><p> EN=1; //LCD的使能端 高電平有效</p><p> _nop_(); </p><p><b> EN=0; </b></p><p><
108、;b> } </b></p><p> void write_1602Data(uchar Data)//寫數(shù)據(jù)函數(shù) </p><p><b> {</b></p><p> test_1602busy(); </p><p><b> P0=Data; </b>
109、</p><p><b> RS=1;</b></p><p><b> RW=0;</b></p><p><b> EN=1; </b></p><p><b> _nop_();</b></p><p><b
110、> EN=0; </b></p><p><b> } </b></p><p> void init_1602(void)//初始化函數(shù) </p><p><b> { </b></p><p> write_1602Command(0x38); //L
111、CD功能設(shè)定,DL=1(8位),N=1(2行顯示)</p><p> delay(5); </p><p> write_1602Command(0x01); //清除LCD的屏幕</p><p> delay(5); </p><p> write_1602Command(0x06); //LCD模式設(shè)定,I/D=1(計數(shù)地
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 步進電機控制系統(tǒng)設(shè)計畢業(yè)設(shè)計
- 畢業(yè)設(shè)計--步進電機控制系統(tǒng)設(shè)計與實現(xiàn)
- 步進電機的驅(qū)動控制系統(tǒng)畢業(yè)設(shè)計
- 步進電機畢業(yè)設(shè)計---基于單片機的步進電機控制系統(tǒng)畢業(yè)設(shè)計論文
- 步進電機控制系統(tǒng)設(shè)計
- 步進電機課程設(shè)計--- 步進電機控制系統(tǒng)
- 步進電機課程設(shè)計--步進電機控制系統(tǒng)
- 畢業(yè)設(shè)計_基于s7200plc步進電機調(diào)速控制步進驅(qū)動控制系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計_基于s7200plc步進電機調(diào)速控制步進驅(qū)動控制系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計---基于單片機的步進電機控制系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計----基于單片機的步進電機控制系統(tǒng)設(shè)計
- 步進電機課程設(shè)計---步進電機控制系統(tǒng)的設(shè)計
- 基于單片機的步進電機控制系統(tǒng)設(shè)計--畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---基于單片機的步進電機控制系統(tǒng)設(shè)計
- 步進電機課程設(shè)計報告--步進電機控制系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計----基于單片機的步進電機控制系統(tǒng)
- 步進電機速度控制系統(tǒng)設(shè)計
- 步進電機課程設(shè)計報告---步進電機控制系統(tǒng)
- 步進電機控制系統(tǒng)的設(shè)計畢業(yè)論文
- 步進電機控制系統(tǒng)的設(shè)計【畢業(yè)論文】
評論
0/150
提交評論