二相步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計單極性控制_第1頁
二相步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計單極性控制_第2頁
二相步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計單極性控制_第3頁
二相步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計單極性控制_第4頁
二相步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計單極性控制_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學(xué) 號: 課 程 設(shè) 計題 目二相步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(采用單極性控制)學(xué) 院自動化學(xué)院專 業(yè)自動化專業(yè)班 級自動化1002班姓 名李志強(qiáng)指導(dǎo)教師石云2013年7月6日課程設(shè)計任務(wù)書學(xué)生姓名: 李志強(qiáng) 專業(yè)班級: 自動化1002班 指導(dǎo)教師: 石云 工作單位: 自動化學(xué)院 題 目: 二相步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(采用單極性控制)初始條件:設(shè)計一個二相步進(jìn)電機(jī)控制系統(tǒng),電機(jī)有兩組帶中心抽頭的線圈,要求系統(tǒng)具有如下功能:采用單極性控制,用K0-K2做為通電方式選擇鍵,K0為四相單四拍,K1為四相雙四拍,K2為四相八拍;K3為啟動/停止控制、K4方向控制、K5加速、K6減速;用4位LED數(shù)碼管顯示工

2、作步數(shù)。用3個發(fā)光二極管顯示狀態(tài):正轉(zhuǎn)時紅燈亮,反轉(zhuǎn)時黃燈亮,不轉(zhuǎn)時綠燈亮;要求完成的主要任務(wù): 1 硬件設(shè)計:系統(tǒng)總原理圖及各部分詳細(xì)原理圖2 軟件設(shè)計:系統(tǒng)總體流程圖、步進(jìn)電機(jī)四相單四拍,四相雙四拍,四相八拍各模塊流程圖、顯示模塊流程圖等3 編寫程序:能夠完成上述任務(wù)并用仿真軟件演示4 完成符合要求的設(shè)計說明書時間安排:2013年6月24日2013年7月4日指導(dǎo)教師簽名: 年 月 日系主任(或責(zé)任教師)簽名: 年 月 日目錄摘要11 設(shè)計任務(wù)及要求的分析22 方案比較及認(rèn)證22.1 驅(qū)動模塊選擇22.2 單片機(jī)選型33 系統(tǒng)實現(xiàn)的原理說明34 硬件設(shè)計說明54.1 單片機(jī)系統(tǒng)原理分析54.

3、2 二相步進(jìn)電機(jī)工作原理分析84.3 L298驅(qū)動電路設(shè)計104.4 四位LED數(shù)碼管顯示設(shè)計115 軟件設(shè)計說明125.1總體流程分析與設(shè)計125.2 設(shè)置電機(jī)轉(zhuǎn)動模式流程分析與設(shè)計135.3 步進(jìn)電機(jī)四相單四拍,四相雙四拍,四相八拍流程分析與設(shè)計145.4 顯示模塊流程分析與設(shè)計155.5 步進(jìn)電機(jī)速度控制分析與設(shè)計166 調(diào)試記錄及結(jié)果分析176.1 總體硬件仿真設(shè)計176.2調(diào)試與仿真結(jié)果分析17小結(jié)與心得體會20參考文獻(xiàn)21附錄1:22附錄2:23摘要本控制系統(tǒng)的設(shè)計方案,以單片機(jī)為核心,輔以驅(qū)動電路,完成二相步進(jìn)電機(jī)的控制。本次設(shè)計的硬件部分主要包括單片機(jī)系統(tǒng)、按鍵控制模塊、步進(jìn)電

4、機(jī)驅(qū)動模塊、數(shù)碼顯示模塊等功能模塊的設(shè)計,軟件部分由幾個模塊控制子程序分別控制硬件模塊的運行,最終實現(xiàn)對步進(jìn)電機(jī)轉(zhuǎn)動方向及轉(zhuǎn)動模式(單四拍,雙四拍,八拍)的控制,并且將步進(jìn)電機(jī)的步進(jìn)數(shù)動態(tài)顯示在LED數(shù)碼管上。本文首先分析了單片機(jī)的各型號的優(yōu)缺點,簡單介紹了系統(tǒng)的設(shè)計方案和工作原理,之后在論文的4、5章中,我分別對系統(tǒng)的硬件電路、軟件程序進(jìn)行了詳細(xì)的原理介紹,并對各模塊進(jìn)行了設(shè)計。相結(jié)合后在Proteus上進(jìn)行仿真,實現(xiàn)對步進(jìn)電機(jī)轉(zhuǎn)動控制。在論文的第6章中,詳細(xì)記錄了調(diào)試中遇到的問題與自己的調(diào)試體會,并給出了實物調(diào)試結(jié)果。關(guān)鍵詞:二相步進(jìn)電機(jī) 單片機(jī) Proteus二相步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計1

5、 設(shè)計任務(wù)及要求的分析設(shè)計的步進(jìn)電機(jī)控制系統(tǒng)要求有以下功能:1. 二相步進(jìn)電機(jī)采用單極性控制2用K0-K2作為通電方式選擇鍵,K0為四相單四拍,K1為四相雙四拍,K2為四相八拍3. 用K3作為啟動/停止控制鍵4. 用K4作為方向控制5. 用K5作為加速控制6. 用K6作為減速控制7. 用4位LED數(shù)碼管顯示工作步數(shù)8. 用3個發(fā)光二極管顯示狀態(tài):正轉(zhuǎn)時紅燈亮,反轉(zhuǎn)時黃燈亮,不轉(zhuǎn)時綠燈亮本次設(shè)計需要對二相步進(jìn)電機(jī)進(jìn)行單極性控制,使其能在控制下進(jìn)行正轉(zhuǎn)、反轉(zhuǎn)、停止和四相單四拍、四相雙四拍、四相八拍運行,可以通過輸出不同的脈沖序列;同時利用數(shù)碼管和二極管分別顯示其工作步數(shù)和工作狀態(tài)。由于控制功能較為

6、復(fù)雜,所以本系統(tǒng)需要采用單片機(jī)以及驅(qū)動模塊進(jìn)行設(shè)計。2 方案比較及認(rèn)證2.1 驅(qū)動模塊選擇由于單片機(jī)輸出電流很小,不能驅(qū)動電機(jī)的運行,所以需要添加驅(qū)動電路。驅(qū)動模塊常用有uln2003a和l298,考慮到二相步進(jìn)電機(jī)需采用單極性控制,uln2003a相當(dāng)于反相器電路,故電機(jī)的驅(qū)動模塊使用芯片L298實現(xiàn),控制更直接,接線簡潔,采用脈沖數(shù)據(jù)控制邏輯簡單,穩(wěn)定性好。2.2 單片機(jī)選型單片機(jī)以其體積小、功能齊全、價格低廉、可靠性高等優(yōu)點,在各個領(lǐng)域都獲得了廣泛的應(yīng)用,在我國,近幾年單片機(jī)也得到了廣泛的應(yīng)用特別是在工業(yè)控制、智能儀表等方面。目前市場上常用的單片機(jī)有INTEL、ATMEL等公司的mcs-

7、51系列,INTEL公司的251系列、96系列,ATMEL公司的AVR系列等。MCS-51系列運算與尋址能力強(qiáng)、存儲空間大、片內(nèi)集成外設(shè)豐富、功耗低等。其中大部分兼容芯片有Flash,價格便宜,常用于儀器儀表、測控系統(tǒng)、嵌入式系統(tǒng)開發(fā)。251系列和96系列具有比c51更強(qiáng)的尋址能力,沒有累加器的瓶頸限制,有32位元的加減法指令,并且有更大的存儲空間,應(yīng)用于復(fù)雜的控制系統(tǒng)、嵌入式系統(tǒng)。AVR系統(tǒng)是基于RISC結(jié)構(gòu)的Flash單片機(jī),其最大的特點是能夠在線編程。比較這三種類型的單片機(jī),首先AVR主要應(yīng)用于家電視訊設(shè)備,側(cè)重于在線編程,與設(shè)計需要相差稍遠(yuǎn)。251系列、96系列存儲空間大,尋址能力也更

8、強(qiáng),適用于較為復(fù)雜的系統(tǒng),但成本也相對較高,本系統(tǒng)較為簡單,使用此系列有些大材小用。MCS-51系列單片機(jī)以抗干擾能力強(qiáng)、對環(huán)境要求不高、靈活性強(qiáng)等別的系統(tǒng)所不具備的優(yōu)點被廣泛使用。即使非電子計算機(jī)專業(yè)人員,通過學(xué)習(xí)一些專業(yè)基礎(chǔ)知識以后也能依靠自己的技術(shù)力量,來開發(fā)所希望的單片機(jī)應(yīng)用系統(tǒng)。由于本次設(shè)計的所要實現(xiàn)的功能并不復(fù)雜,鑒于成本考慮,選用便宜而常用的MCS-51系列較為合適。本次設(shè)計采用其中低功耗型80C51單片機(jī)。3 系統(tǒng)實現(xiàn)的原理說明本次課程設(shè)計系統(tǒng)以單片機(jī)80c51為核心進(jìn)行設(shè)計,單片機(jī)與按鍵、數(shù)碼管、發(fā)光二極管、L298驅(qū)動模塊相連接,人為操作按鍵,在程序控制下,單片機(jī)將通過驅(qū)動

9、模塊控制步進(jìn)電機(jī)轉(zhuǎn)動,并使數(shù)碼管和二極管分別顯示步進(jìn)電機(jī)的工作步數(shù)和狀態(tài)。系統(tǒng)的總體原理框圖如下所示:按鍵設(shè)置80C51單片機(jī)系統(tǒng)L298驅(qū)動模塊發(fā)光二極管顯示狀態(tài)二相步進(jìn)電機(jī)四位數(shù)碼管圖3-1系統(tǒng)總體原理框圖本系統(tǒng)以單片機(jī)80c51為核心的控制系統(tǒng),由P1口進(jìn)行開關(guān)按鍵的設(shè)置,具體為:P1.0接K0四相單四拍通電方式,低電平使電機(jī)四相單四拍運轉(zhuǎn);P1.1接K1四相雙四拍通電方式,低電平使電機(jī)四相雙四拍運轉(zhuǎn);P1.2接K2四相八拍通電方式,低電平使電機(jī)四相八拍運轉(zhuǎn);P1.3接K3啟動/停止開關(guān),高電平為停止,低電平為啟動;P1.4接K4正/反轉(zhuǎn)開關(guān),高電平為反轉(zhuǎn),低電平為正轉(zhuǎn);P1.5接K5加

10、速控制,低電平使電機(jī)運轉(zhuǎn)速度加快;P1.6接K6減速控制,低電平使電機(jī)運轉(zhuǎn)速度減慢。 P2口與P0口外接4位LED數(shù)碼管,顯示步進(jìn)步數(shù),具體接線方式已在前面敘述,通過控制P2口的電平信號,達(dá)到片選的目的,進(jìn)而實現(xiàn)4位數(shù)值的顯示。P0口作為輸出口外接負(fù)載。P3外接驅(qū)動電路L298的4個輸入端,具體為P3.0接IN1,P3.1接IN2,P3.2接IN3,P3.3接IN4。這樣即可通過控制單片機(jī)的P2口輸出電平來實現(xiàn)二相步進(jìn)電機(jī)的啟動,停止,正反轉(zhuǎn)以及單四拍,雙四拍,八拍運轉(zhuǎn)。另外P3.4接綠色發(fā)光二極管,使其在電機(jī)停轉(zhuǎn)時亮;P3.5接紅色放光二極管,使其在電機(jī)正轉(zhuǎn)時亮;P3.6接黃色發(fā)光二極管,使

11、其在電機(jī)反轉(zhuǎn)時亮。具體工作過程需通過對單片機(jī)編程來實現(xiàn)。電路圖如下所示:圖 3-2 系統(tǒng)電路原理圖4 硬件設(shè)計說明4.1 單片機(jī)系統(tǒng)原理分析80C51是MCS-51系列單片機(jī)中CHMOS工藝的一個典型品種。其它廠商以8051為基核開發(fā)出的CMOS工藝單片機(jī)產(chǎn)品統(tǒng)稱為80C51系列。 該系列單片機(jī)是采用高性能的靜態(tài)80C51設(shè)計,由先進(jìn)CMOS 工藝制造,并帶有非易失性Flash 程序存儲器 ,全部支持12 時鐘和6 時鐘操作,P89C51X2 和P89C52X2/54X2/58X2 分別包含128 字節(jié)和256 字節(jié)RAM、32 條I/O 口線、3 個16 位定時/計數(shù)器、6 輸入4 優(yōu)先級嵌

12、套中斷結(jié)構(gòu)、1 個串行I/O 口、可用于多機(jī)通信 I/O 擴(kuò)展或全雙工UART以及片內(nèi)振蕩器和時鐘電路。 其主要結(jié)構(gòu)組成如下:1中央處理器(CPU)2內(nèi)部數(shù)據(jù)存儲器(內(nèi)部RAM)3內(nèi)部程序存儲器(內(nèi)部ROM)4定時器/計數(shù)器5并行I/O口6串行口7時鐘電路8中斷系統(tǒng)9外接晶體引腳圖4-1 80C51單片機(jī)管腳圖單片機(jī)管腳如圖4-1所示,下面對其各個管腳進(jìn)行必要的說明。P0、P1、P2、P3口的電平與CMOS和TTL電平兼容。 P0口的每一位口線可以驅(qū)動8個LSTTL負(fù)載。在作為通用I/O口時,由于輸出驅(qū)動電路是開漏方式,由集電極開路(OC門)電路或漏極開路電路驅(qū)動時需外接上拉電阻;當(dāng)作為地址/

13、數(shù)據(jù)總線使用時,口線輸出不是開漏的,無須外接上拉電阻。 P1、P2、P3口的每一位能驅(qū)動4個LSTTL負(fù)載。它們的輸出驅(qū)動電路設(shè)有內(nèi)部上拉電阻,所以可以方便地由集電極開路(OC門)電路或漏極開路電路所驅(qū)動,而無須外接上拉電阻。 當(dāng)CPU不對P3口進(jìn)行字節(jié)或位尋址時,內(nèi)部硬件自動將口鎖存器的Q端置1。這時,P3口作為第二功能使用。 P3.0 :RXD(串行口輸入); P3.1 :TXD(串行口輸出); P3.2 :外部中斷0輸入; P3.3 :外部中斷1輸入; P3.4 :T0(定時器0的外部輸入); P3.5 :T1(定時器1的外部輸出); P3.6 :(片外數(shù)據(jù)存儲器“寫”選通控制輸出);

14、P3.7 :(片外數(shù)據(jù)存儲器“讀”選通控制輸出)。 EA/VPP : 訪問程序存儲器控制信號,當(dāng)其為低電平時,對ROM的讀操作限定在外部的程序存儲器,當(dāng)其為高電平時,對ROM的讀操作是從內(nèi)部存儲器開始的,并可延至外部程序存儲器。 ALE/PROG : 編程脈沖 PSEN : 外部程序存儲器讀選通信號,在讀外部ROM時PSEN是低電平有效,以實現(xiàn)對ROM 的讀操作。 RST/VPD : 復(fù)位信號,當(dāng)輸入信號延續(xù)2個周期以上的高電平有效,用以完成單片機(jī)復(fù)位初始化操作。 XTAL : 時鐘晶振輸入端。 4.2 二相步進(jìn)電機(jī)工作原理分析步進(jìn)電機(jī)一般分為

15、永磁式(PM)、反應(yīng)式(VR)和混合式(HB)3種類型。目前,二相混合式步進(jìn)電機(jī)的應(yīng)用最為廣泛。圖4-3為二相六線式步進(jìn)電機(jī)的工作原示意圖。由圖可知,它有2個繞組,且每個繞組都有一個中間抽頭。因此,二相步進(jìn)電機(jī)也就有了6根引線。當(dāng)電機(jī)中的繞組通電后,其定子磁極產(chǎn)生磁場,將轉(zhuǎn)子吸合到相應(yīng)的磁極處。若繞組在控制脈沖的作用下,通電方向使定子在順時針方向輪流產(chǎn)生磁場,則電機(jī)可順時針轉(zhuǎn)動;通電方向使定子在逆時針方向輪流產(chǎn)生磁場,則電機(jī)可逆時針轉(zhuǎn)動??刂泼}沖每作用一次,通電方向就變化一次,使電機(jī)轉(zhuǎn)動一步,即一個步距角。脈沖頻率越高,電機(jī)轉(zhuǎn)動也就越快。本次課設(shè)所使用的二相步進(jìn)電機(jī)需要采用單極性的接法。單極性

16、則是指步進(jìn)電機(jī)線圈中電流的流動方向是單向的。單極性驅(qū)動電路可以六線式的二相步進(jìn)電機(jī)。對于二相六線式步進(jìn)電機(jī)而言, 2個繞組的中間抽頭Vdd1和Vdd2都接高電平。根據(jù)步進(jìn)電機(jī)的工作原理,當(dāng)控制器給驅(qū)動器發(fā)出脈沖信號時,驅(qū)動器經(jīng)過功率放大后,電機(jī)繞組通電的順序為,其4個狀態(tài)按順序周而復(fù)始進(jìn)行變化,電機(jī)轉(zhuǎn)動; 若通電時序就變?yōu)闀r,電機(jī)就逆向轉(zhuǎn)動。圖4-3 二相步進(jìn)電機(jī)原理圖 任務(wù)要求需要對二相步進(jìn)電機(jī)進(jìn)行四相單四拍,四相雙四拍和四相八拍的控制。其三者的區(qū)別在于通電時序的不一樣,四相單四拍的通電方式為:,而四相雙四拍的通電方式為:,四相八拍需要在此基礎(chǔ)上進(jìn)行細(xì)分,在中間插入,其通電方式為:。由對應(yīng)的

17、通電方式,在結(jié)合圖3-2,便可以得到對應(yīng)的單片機(jī)管腳P3.0,P3.1,P3.2,P3.3的電平變化情況,繪制出步進(jìn)電機(jī)的四相單四拍,四相雙四拍,四相八拍控制方式表格。如下所示:表4-1 步進(jìn)電機(jī)四相單四拍控制通電方式時序單片機(jī)管腳位通電的線圈對應(yīng)二進(jìn)制數(shù)轉(zhuǎn)換16進(jìn)制數(shù)P1.3P1.2P1.1P1.010001000101H20100010004H30010001002H41000100008H表4-2 步進(jìn)電機(jī)四相雙四拍控制通電方式時序單片機(jī)管腳位通電的線圈對應(yīng)二進(jìn)制數(shù)轉(zhuǎn)換16進(jìn)制數(shù)P1.3P1.2P1.1P1.010101010105H20110011006H3101010100AH410

18、01100109H表4-3 步進(jìn)電機(jī)四相八拍控制通電方式時序單片機(jī)管腳位通電的線圈對應(yīng)二進(jìn)制數(shù)轉(zhuǎn)換16進(jìn)制數(shù)P1.3P1.2P1.1P1.010001000101H20101101005H30100100004H40110100106H50010000102H6101001010AH71000010008H81001011009H由上述所得表格,便可以通過控制單片機(jī)I/O口輸出高低電平變化來實現(xiàn)步進(jìn)電機(jī)的四拍,八拍運轉(zhuǎn)。在編寫程序時,設(shè)置好控制字,在I/O口做循環(huán)輸出,便實現(xiàn)了單片機(jī)對步進(jìn)電機(jī)的控制。由于單片機(jī)單獨代負(fù)載能力較差,步進(jìn)電機(jī)與單片機(jī)之間需要接入步進(jìn)電機(jī)的驅(qū)動電路。4.3 L298

19、驅(qū)動電路設(shè)計由課題任務(wù)要求可知,二相步進(jìn)電機(jī)需采用單極性控制,故考慮使用芯片L298來驅(qū)動步進(jìn)電機(jī)。L298N 為雙全橋步進(jìn)電機(jī)專用驅(qū)動芯片,內(nèi)部包含4信道邏輯驅(qū)動電路,是一種二相和四相步進(jìn)電機(jī)的專用驅(qū)動器,可同時驅(qū)動2個二相或1個四相步進(jìn)電機(jī),內(nèi)含二個H-Bridge 的高電壓、大電流雙全橋式驅(qū)動器,接收標(biāo)準(zhǔn)TTL邏輯準(zhǔn)位信號,可驅(qū)動46V、2A以下的步進(jìn)電機(jī),且可以直接透過電源來調(diào)節(jié)輸出電壓;此芯片可直接由單片機(jī)的IO端口來提供模擬時序信號。在接入步進(jìn)電機(jī)時,OUTl,OUT2 ,OUT3,OUT4接二相步進(jìn)電機(jī)的,,二相步進(jìn)電機(jī)的對應(yīng)管腳以圖4-5為準(zhǔn),input1input4接單片機(jī)的

20、I/O口,用來控制單片機(jī)的正反轉(zhuǎn)以及四相單四拍,四相雙四拍,四相八拍通電方式。由圖4-5可以看出,L298內(nèi)部集成有2個H橋路,對應(yīng)的輸入接口為:IN1位P3.0,IN2為P3.1,IN3為P3.2,IN4為P3.3。對應(yīng)的輸出接口為:OUT1接,OUT4接,OUT3接,OUT2接。PROTUS仿真圖為圖4-5所示:圖4-5 驅(qū)動電路PROTUS仿真圖4.4 四位LED數(shù)碼管顯示設(shè)計 任務(wù)要求需采用4位LED數(shù)碼管顯示工作步數(shù),通過查閱相關(guān)資料,在仿真時采用型號7SEG-MPX4-CA共陽極數(shù)碼管顯示。其PROTUS仿真圖如圖4-6所示:圖4-6 數(shù)碼管顯示仿真圖單片機(jī)的P0口接數(shù)碼管輸入管腳

21、ABCDEFG以及DP(可以不用,直接拉高),P2口接4位數(shù)碼管的片選端口1234,7段數(shù)碼管對應(yīng)的顯示數(shù)值與輸入信號的關(guān)系可以由下表得到。表4-4 七段數(shù)碼管顯示功能表單片機(jī)管腳輸入顯示十六進(jìn)制P0.0P0.1P0.2P0.3P0.4P0.5P0.6ABCDEFG0000001OC0H10011111F9H00100102A4H00001103B0H1001100499H0100100592H1100000682H00011117F8H0000000880H0000100990H由上表可以得到顯示數(shù)字與單片機(jī)管腳輸入信號的對應(yīng)關(guān)系。只需要控制單片機(jī)的P0口輸出信號即可顯示數(shù)字,在程序設(shè)計中,

22、定義7段顯示數(shù)組為Seg=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90即可使數(shù)碼管顯示數(shù)字。5 軟件設(shè)計說明5.1總體流程分析與設(shè)計軟件模塊的分析需要根據(jù)硬件電路的設(shè)計來進(jìn)行,基于上述硬件電路的分析設(shè)計,對整個程序流程需要有個整體的思考與判斷。由硬件電路的設(shè)計可以看出,程序需要實現(xiàn)以下幾個功能:通過開關(guān)按鍵實現(xiàn)電機(jī)的啟用與停止,正轉(zhuǎn)與反轉(zhuǎn),以及四拍,八拍的運行方式;由4位LED數(shù)碼管實現(xiàn)步進(jìn)步數(shù)的顯示;3個發(fā)光二極管顯示電機(jī)的狀態(tài)。程序設(shè)計的總體思想是單片機(jī)通過判斷按鍵輸入電平變化從而選擇正反轉(zhuǎn)以及四八拍的工作方式。主程序流程圖如圖5-1所

23、示。開始K3按下?掃描鍵盤,設(shè)置轉(zhuǎn)動模式設(shè)備初始化啟動電機(jī)顯示步數(shù)K3彈起?YYNN圖 5-1 主程序流程圖5.2 設(shè)置電機(jī)轉(zhuǎn)動模式流程分析與設(shè)計有硬件電路可知,電機(jī)的轉(zhuǎn)動由開關(guān)K0、K1、K2、K3、K4、K5、K6來控制,我們通過80K51分別讀入這六位控制數(shù)據(jù),存放在變量Temp中。K0按下為四相單四拍,K1按下為四相雙四拍,K2按下為四相八拍,K3按下為啟動,K4按下為正轉(zhuǎn)抬起為反轉(zhuǎn)。設(shè)置轉(zhuǎn)動模式流程圖如圖5-2所示。圖5-2 設(shè)置電機(jī)轉(zhuǎn)動模式流程圖5.3 步進(jìn)電機(jī)四相單四拍,四相雙四拍,四相八拍流程分析與設(shè)計步進(jìn)電機(jī)通電方式的控制字被放置在幾個變量數(shù)組中,通關(guān)過轉(zhuǎn)動方式選擇部分程序決

24、定轉(zhuǎn)動方式后,把相應(yīng)轉(zhuǎn)動方式所對應(yīng)的數(shù)組中相應(yīng)步數(shù)對應(yīng)的值賦給變量P3。變量Flag控制拍數(shù)循環(huán),當(dāng)Flag為4(四拍)或8(八拍)時,F(xiàn)lag值清零,重新從對應(yīng)數(shù)組開頭選擇通電方式賦值。變量Step用來記錄步數(shù),電機(jī)每轉(zhuǎn)一下,Step值加一。電機(jī)轉(zhuǎn)動部分流程圖如圖5-3所示。圖5-3 電機(jī)單四拍雙四拍八拍正反轉(zhuǎn)流程圖5.4 顯示模塊流程分析與設(shè)計有硬件部分分析可知,Led數(shù)碼管有4個管腳讀入片選信號,8個管腳讀入控制信號。本部分程序首先要對當(dāng)前的步數(shù)值進(jìn)行位數(shù)分離,將個、十、百、千位分別提取出來,然后通過片選信號選擇位數(shù)讀入控制字,依次進(jìn)行顯示。由于單片機(jī)的計算過程非常快,我們還設(shè)置了延時程

25、序,所以看起來各位是同時顯示的。數(shù)碼管顯示步數(shù)流程圖圖5-4所示。Num值分離出每一位讀取千位數(shù)據(jù)選擇數(shù)碼管千位進(jìn)行顯示延時2ms取消選擇數(shù)碼管讀取十位數(shù)據(jù)選擇數(shù)碼管十位進(jìn)行顯示延時2ms取消選擇顯示管讀取百位數(shù)據(jù)百位進(jìn)行顯示延時2ms取消選擇顯示管讀取十位數(shù)據(jù)選擇數(shù)碼管十位進(jìn)行顯示延時2ms取消選擇顯示管開始結(jié)束圖5-4 數(shù)碼管顯示步數(shù)流程圖5.5 步進(jìn)電機(jī)速度控制分析與設(shè)計通過速度控制按鍵改變速度控制變量Speed,通過定時器0對電機(jī)步進(jìn)控制脈沖之間進(jìn)行延時,延時到Speed時,Delay=1表示延時時間到。6 調(diào)試記錄及結(jié)果分析6.1 總體硬件仿真設(shè)計硬件設(shè)計模塊完成了對系統(tǒng)電路圖的設(shè)計

26、,軟件模塊由程序?qū)崿F(xiàn)了各項功能;接下來需要將軟件與硬件結(jié)合起來才能真正完成整個設(shè)計工作。我們采用的是PROTUS仿真軟件得到了系統(tǒng)的硬件圖,參見附錄1;使用KeilC51軟件的集成環(huán)境調(diào)試程序,程序代碼請參見附錄,在該集成環(huán)境下,創(chuàng)建一工程,將程序裝入該工程下,調(diào)試運行無誤后,該工程會自動生成.hex文件,在PROTUS仿真環(huán)境里,在單片機(jī)中載入該文件,這樣便實現(xiàn)了單片機(jī)程序的載入。在系統(tǒng)完成后測試系統(tǒng),檢查硬件和軟件是否能夠協(xié)調(diào)運行,并對系統(tǒng)出現(xiàn)的情況進(jìn)行分析,看是否能夠達(dá)到系統(tǒng)創(chuàng)作之初所設(shè)想的效果,如達(dá)不到則重新修改系統(tǒng)的硬件結(jié)構(gòu)或者修改軟件的程序部分,直到達(dá)到設(shè)計需要為止。本系統(tǒng)的設(shè)計思

27、路為:首先從整體上劃分出各功能模塊,然后硬件和軟件同時進(jìn)行依次完成各個功能模塊,最后將各個模塊聯(lián)系起來完成整個系統(tǒng)。6.2調(diào)試與仿真結(jié)果分析在硬件調(diào)試的過程中,遇到了很多問題。主要有: 按鍵設(shè)計完成后,在多次運行過程中發(fā)現(xiàn)按鍵是否按下難以直觀準(zhǔn)確判斷,在此處進(jìn)行改進(jìn)設(shè)計,為每一個按鍵接上一個發(fā)光二極管,當(dāng)有鍵按下時,相對應(yīng)的發(fā)光二極管變亮,使得按鍵動作形象直觀。在步進(jìn)電機(jī)與驅(qū)動電路的連接中,需要準(zhǔn)確的接好各個管腳,因為程序里的控制字對應(yīng)著這些管腳電平的變化,不能隨便接,單片機(jī)的輸出口與驅(qū)動電路的輸出口也需要一一對應(yīng),否則電機(jī)無法按正常的設(shè)計運轉(zhuǎn)。經(jīng)過調(diào)試以及對仿真電路圖及程序的改正,系統(tǒng)得以實

28、現(xiàn)任務(wù)的要求,對步進(jìn)電機(jī)進(jìn)行控制,仿真成功。圖6-1為電機(jī)正轉(zhuǎn)時的仿真圖,電機(jī)順時針旋轉(zhuǎn),紅燈亮。圖6-2為電機(jī)反轉(zhuǎn)時的仿真圖,電機(jī)逆時針旋轉(zhuǎn),黃燈亮。圖6-3為電機(jī)停止時仿真圖,綠燈亮。圖6-1 步進(jìn)電機(jī)正轉(zhuǎn)仿真圖圖6-2 步進(jìn)電機(jī)反轉(zhuǎn)仿真圖圖6-3 步進(jìn)電機(jī)停止仿真圖由仿真圖可見,此系統(tǒng)實現(xiàn)了對步進(jìn)電機(jī)的正反轉(zhuǎn)以及停止的控制,能夠利用數(shù)碼管顯示步數(shù),通過發(fā)光二級管顯示步進(jìn)電機(jī)運行狀態(tài),此系統(tǒng)設(shè)計合理,滿足設(shè)計要求。小結(jié)與心得體會本次課程設(shè)計綜合了很多學(xué)過的知識,同時也要自學(xué)新的知識。將理論運用于實踐上,結(jié)合軟件和硬件,提高了理論知識和實踐能力。由于時間有限,遇到了很多困難,在同學(xué)的幫助和討

29、論下,自己查閱很多書籍和網(wǎng)絡(luò)資料。首先,拿到題目之后我很快就確定了利用單片機(jī)來進(jìn)行設(shè)計,考慮了atmegal128和80c51等單片機(jī),由于此系統(tǒng)需要實現(xiàn)的功能簡單,不需要過大的內(nèi)存,所以由于成本原因選擇了80c51進(jìn)行設(shè)計。但是在protus仿真調(diào)試時還是出現(xiàn)了許多問題,程序調(diào)試時,速度的控制比較麻煩,通過查閱資料最后決定在每兩次電機(jī)步進(jìn)之間加入延時,通過按鍵改變延時參數(shù)即可改變電機(jī)轉(zhuǎn)動速度。運行仿真卻出現(xiàn)了步進(jìn)電機(jī)轉(zhuǎn)動正常但顯示管記錄步數(shù)不正常的情況。經(jīng)仔細(xì)檢查,發(fā)現(xiàn)是延時的時候數(shù)碼管不能進(jìn)行掃描,后來決定直接用定時器來做電機(jī)步進(jìn)的延時,設(shè)置Delay參數(shù),延時時間到就置1。本次課設(shè)經(jīng)過多

30、次調(diào)試改正錯誤,才得以仿真成功。單片機(jī)是此次設(shè)計中非常重要的元器件,在做完成課程設(shè)計的過程中,我查閱了一些資料對其進(jìn)行學(xué)習(xí),了解了其內(nèi)部結(jié)構(gòu)、存儲容量以及管腳功能等知識,感到受益匪淺。調(diào)試程序是一個復(fù)雜而精細(xì)的過程,很多錯誤都十分細(xì)小,在意想不到的地方,我和同學(xué)互相檢查對方的程序,才發(fā)現(xiàn)了彼此的問題。通過本次課程設(shè)計,我不僅加深了對課堂知識的理解,拓展了單片機(jī)方面的知識,掌握了protus軟件的應(yīng)用,更培養(yǎng)了科學(xué)的思維方式和動手能力,與同學(xué)的交流也多出了一份學(xué)術(shù)探討的氛圍,也鍛煉了我的耐心和堅持,令我受益匪淺。參考文獻(xiàn)1 于海生.計算機(jī)控制技術(shù)M.北京:機(jī)械工業(yè)出版社.2007年2 張毅剛.新

31、編MCS-51單片機(jī)應(yīng)用設(shè)計M.哈爾濱:哈爾濱工業(yè)大學(xué)出版社.2006年3 陳冬云.ATmega128 單片機(jī)原理與開發(fā)指導(dǎo)M.北京:機(jī)械工業(yè)出版社.2005年4 王彥平.RPOTEL 99 電路設(shè)計指南M.北京:清華大學(xué)出版社.2000年5 沈美明.IBM-PC匯編語言程序設(shè)計M. 北京:清華大學(xué)出版社.2001年6 沈精虎.Protel99 入門與提高M(jìn). 北京:人民郵電出版社.2007年7 吳金戌.8051 單片機(jī)時間與應(yīng)用M. 北京:清華大學(xué)出版社,2003年8 胡輝.單片機(jī)原理及應(yīng)用設(shè)計M. 北京:中國水利水電出版社.2007年附錄1:附錄2:/*/* 步進(jìn)電機(jī)程序 */*P10為四

32、相單四拍,P11為四相雙四拍,P12為四相八拍 */*P13為啟動/停止控制、P14方向控制、P15加速、P16減速 */*用4位LED數(shù)碼管顯示工作步數(shù)。 */*用3個發(fā)光二極管顯示狀態(tài) */*正轉(zhuǎn)時紅燈亮,反轉(zhuǎn)時黃燈亮,不轉(zhuǎn)時綠燈亮 */*編寫人:李志強(qiáng) */*時間:2013-06-26 */*/#include<reg51.h>#define uchar unsigned char#define uint unsigned int#define SegData P0 /數(shù)碼管數(shù)據(jù)口#define KeyData P1 /按鍵控制數(shù)據(jù)口#define MotorData P3

33、/電機(jī)控制數(shù)據(jù)口sbit Wela1=P20; /數(shù)碼管位選1sbit Wela2=P21; /數(shù)碼管位選2sbit Wela3=P22; /數(shù)碼管位選3sbit Wela4=P23; /數(shù)碼管位選4sbit LedGreen=P34;/控制綠燈-停止uchar PositiveSingleFour=0xd1,0xd4,0xd2,0xd8; /步進(jìn)電機(jī)正相單四拍數(shù)表;uchar PositiveDoubleFour=0xd5,0xd6,0xda,0xd9; /步進(jìn)電機(jī)正相雙四拍數(shù)表;uchar PositiveEight=0xd1,0xd5,0xd4,0xd6,0xd2,0xda,0xd8,0

34、xd9;/步進(jìn)電機(jī)正相八拍數(shù)表;uchar NegitiveSingleFour=0xb1,0xb8,0xb2,0xb4; /步進(jìn)電機(jī)反相單四拍數(shù)表;uchar NegitiveDoubleFour=0xb9,0xba,0xb6,0xb5; /步進(jìn)電機(jī)反相雙四拍數(shù)表;uchar NegitiveEight=0xb1,0xb9,0xb8,0xba,0xb2,0xb6,0xb4,0xb5;/步進(jìn)電機(jī)反相八拍數(shù)表;uchar Seg=0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90;/共陽極數(shù)碼管顯示數(shù)碼;uchar Flag=0; /用來控制拍數(shù)

35、循環(huán); uchar Mode=0; /用來標(biāo)志工作模式;uchar Way=0; /用來標(biāo)志運轉(zhuǎn)方向uchar Num=0; /用來定時計數(shù)uchar Delay=0; /用來標(biāo)志延時時間到uchar Move=0; /用來標(biāo)志啟動或停止uint Step=0; /用來計算步數(shù)的;char Speed=12; /用來表示速度char SpeedMax=2; /最大速度-參數(shù)為時間char SpeedMin=22; /最小速度char SpeedChang=10; /速度每次改變量/*函數(shù)聲明部分*/void Init();void Display(uint);void DelayMs(uint

36、);void KeyScan();void Motor();/*主函數(shù)*/void main()Init();while(1)KeyScan();Motor();Display(Step);/*數(shù)碼管顯示函數(shù)*/void Display(uint Num)uchar Qian,Bai,Shi,Ge;Qian=Num/1000;Bai=(Num/100)%10;Shi=(Num/10)%10;Ge=Num%10;/分離出每一位;SegData=SegQian;Wela1=1;DelayMs(2);Wela1=0;SegData=SegBai;Wela2=1;DelayMs(2);Wela2=0;

37、SegData=SegShi;Wela3=1;DelayMs(2);Wela3=0;SegData=SegGe;Wela4=1;DelayMs(2);Wela4=0;/*電機(jī)運轉(zhuǎn)函數(shù)*/void Motor()if(Move=1)if(Delay=1)Delay=0;if(Way=0)switch(Mode) /*電機(jī)步進(jìn)拍數(shù)表數(shù)據(jù)送到電機(jī)控制口;判斷一周拍數(shù)是否完成;步數(shù)加1*/case 1:MotorData=PositiveSingleFourFlag+;if(Flag>=4) Flag=0;Step+;break;case 2:MotorData=PositiveDoubleFo

38、urFlag+;if(Flag>=4) Flag=0;Step+;break;case 3:MotorData=PositiveEightFlag+;if(Flag>=8) Flag=0;Step+;break;default:;elseswitch(Mode)case 1:MotorData=NegitiveSingleFourFlag+;if(Flag>=4) Flag=0;Step+;break;case 2:MotorData=NegitiveDoubleFourFlag+;if(Flag>=4) Flag=0;Step+;break;case 3:MotorD

39、ata=NegitiveEightFlag+;if(Flag>=8) Flag=0;Step+;break;default:;elseMotorData=0xef;LedGreen=0;/*初始化函數(shù)*/void Init()Move=0;LedGreen=0;Step=0;MotorData=0xef;TMOD=0x11; /定時器0初始化TH0=(65536-45872)/256;TL0=(65536-45872)%256;EA=1; /開總中斷ET0=1; /開定時器0中斷TR0=1; /開始計時/*按鍵檢測函數(shù)*/void KeyScan()uchar Temp,Over=0;Temp=KeyData;Temp=Temp&a

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論