二相步進電機控制系統(tǒng)的設計_第1頁
二相步進電機控制系統(tǒng)的設計_第2頁
二相步進電機控制系統(tǒng)的設計_第3頁
二相步進電機控制系統(tǒng)的設計_第4頁
二相步進電機控制系統(tǒng)的設計_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

學號:0121011360219就侈1X7人多

課程設計題目二相步進電機控制系統(tǒng)的設計(采用單極性控制)學院自動化學院專業(yè)自動化專業(yè)班級自動化1002班姓名李志強指導教師石云2013年7月6日課程設計任務書學生姓名: 李志強 專業(yè)班級: 自動化1002班指導教師: 石云 工作單位: 自動化學院題目:二相步進電機控制系統(tǒng)的設計(采用單極性控制)初始條件:設計一個二相步進電機控制系統(tǒng),電機有兩組帶中心抽頭的線圈,要求系統(tǒng)具有如下功能:采用單極性控制,用K0-K2做為通電方式選擇鍵,K0為四相單四拍,K1為四相雙四拍,K2為四相八拍;K3為啟動/停止控制、K4方向控制、K5加速、K6減速;用4位LED數(shù)碼管顯示工作步數(shù)。用3個發(fā)光二極管顯示狀態(tài):正轉(zhuǎn)時紅燈亮,反轉(zhuǎn)時黃燈亮,不轉(zhuǎn)時綠燈亮;要求完成的主要任務:硬件設計:系統(tǒng)總原理圖及各部分詳細原理圖軟件設計:系統(tǒng)總體流程圖、步進電機四相單四拍,四相雙四拍,四相八拍各模塊流程圖、顯示模塊流程圖等編寫程序:能夠完成上述任務并用仿真軟件演示完成符合要求的設計說明書時間安排:2013年6月24日~2013年7月4日指導教師簽名: 年月日系主任(或責任教師)簽名: 年月日目錄TOC\o"1-5"\h\z摘要 1\o"CurrentDocument"1設計任務及要求的分析 2\o"CurrentDocument"2方案比較及認證 2\o"CurrentDocument"2.1驅(qū)動模塊選擇 2\o"CurrentDocument"2.2單片機選型 3\o"CurrentDocument"3系統(tǒng)實現(xiàn)的原理說明 3\o"CurrentDocument"4硬件設計說明 5\o"CurrentDocument"4.1單片機系統(tǒng)原理分析 5\o"CurrentDocument"4.2二相步進電機工作原理分析 8\o"CurrentDocument"4.3L298驅(qū)動電路設計 10\o"CurrentDocument"4.4四位LED數(shù)碼管顯示設計 11\o"CurrentDocument"5軟件設計說明 12\o"CurrentDocument"5.1總體流程分析與設計 12\o"CurrentDocument"5.2設置電機轉(zhuǎn)動模式流程分析與設計 13\o"CurrentDocument"5.3步進電機四相單四拍,四相雙四拍,四相八拍流程分析與設計 14\o"CurrentDocument"5.4顯示模塊流程分析與設計 15\o"CurrentDocument"5.5步進電機速度控制分析與設計 16\o"CurrentDocument"6調(diào)試記錄及結(jié)果分析 17\o"CurrentDocument"6.1總體硬件仿真設計 17\o"CurrentDocument"6.2調(diào)試與仿真結(jié)果分析 17\o"CurrentDocument"小結(jié)與心得體會 20\o"CurrentDocument"參考文獻 21附錄1: 22\o"CurrentDocument"附錄2: 23摘要本控制系統(tǒng)的設計方案,以單片機為核心,輔以驅(qū)動電路,完成二相步進電機的控制。本次設計的硬件部分主要包括單片機系統(tǒng)、按鍵控制模塊、步進電機驅(qū)動模塊、數(shù)碼顯示模塊等功能模塊的設計,軟件部分由幾個模塊控制子程序分別控制硬件模塊的運行,最終實現(xiàn)對步進電機轉(zhuǎn)動方向及轉(zhuǎn)動模式(單四拍,雙四拍,八拍)的控制,并且將步進電機的步進數(shù)動態(tài)顯示在LED數(shù)碼管上。本文首先分析了單片機的各型號的優(yōu)缺點,簡單介紹了系統(tǒng)的設計方案和工作原理,之后在論文的4、5章中,我分別對系統(tǒng)的硬件電路、軟件程序進行了詳細的原理介紹,并對各模塊進行了設計。相結(jié)合后在Proteus上進行仿真,實現(xiàn)對步進電機轉(zhuǎn)動控制。在論文的第6章中,詳細記錄了調(diào)試中遇到的問題與自己的調(diào)試體會,并給出了實物調(diào)試結(jié)果。關(guān)鍵詞:二相步進電機單片機Proteus二相步進電機控制系統(tǒng)的設計1設計任務及要求的分析設計的步進電機控制系統(tǒng)要求有以下功能:二相步進電機采用單極性控制用K0-K2作為通電方式選擇鍵,K0為四相單四拍,K1為四相雙四拍,K2為四相八拍用K3作為啟動/停止控制鍵用K4作為方向控制用K5作為加速控制用K6作為減速控制用4位LED數(shù)碼管顯示工作步數(shù)用3個發(fā)光二極管顯示狀態(tài):正轉(zhuǎn)時紅燈亮,反轉(zhuǎn)時黃燈亮,不轉(zhuǎn)時綠燈亮本次設計需要對二相步進電機進行單極性控制,使其能在控制下進行正轉(zhuǎn)、反轉(zhuǎn)、停止和四相單四拍、四相雙四拍、四相八拍運行,可以通過輸出不同的脈沖序列;同時利用數(shù)碼管和二極管分別顯示其工作步數(shù)和工作狀態(tài)。由于控制功能較為復雜,所以本系統(tǒng)需要采用單片機以及驅(qū)動模塊進行設計。2方案比較及認證2.1驅(qū)動模塊選擇由于單片機輸出電流很小,不能驅(qū)動電機的運行,所以需要添加驅(qū)動電路。驅(qū)動模塊常用有uln2003a和1298,考慮到二相步進電機需采用單極性控制,uln2003a相當于反相器電路,故電機的驅(qū)動模塊使用芯片L298實現(xiàn),控制更直接,接線簡潔,采用脈沖數(shù)據(jù)控制邏輯簡單,穩(wěn)定性好。2.2單片機選型單片機以其體積小、功能齊全、價格低廉、可靠性高等優(yōu)點,在各個領域都獲得了廣泛的應用,在我國,近幾年單片機也得到了廣泛的應用特別是在工業(yè)控制、智能儀表等方面。目前市場上常用的單片機有INTEL、ATMEL等公司的mcs-51系列,INTEL公司的251系列、96系列,ATMEL公司的AVR系列等。MCS-51系列運算與尋址能力強、存儲空間大、片內(nèi)集成外設豐富、功耗低等。其中大部分兼容芯片有Flash,價格便宜,常用于儀器儀表、測控系統(tǒng)、嵌入式系統(tǒng)開發(fā)。251系列和96系列具有比c51更強的尋址能力,沒有累加器的瓶頸限制,有32位元的加減法指令,并且有更大的存儲空間,應用于復雜的控制系統(tǒng)、嵌入式系統(tǒng)。AVR系統(tǒng)是基于RISC結(jié)構(gòu)的Flash單片機,其最大的特點是能夠在線編程。比較這三種類型的單片機,首先AVR主要應用于家電視訊設備,側(cè)重于在線編程,與設計需要相差稍遠。251系列、96系列存儲空間大,尋址能力也更強,適用于較為復雜的系統(tǒng),但成本也相對較高,本系統(tǒng)較為簡單,使用此系列有些大材小用。MCS-51系列單片機以抗干擾能力強、對環(huán)境要求不高、靈活性強等別的系統(tǒng)所不具備的優(yōu)點被廣泛使用。即使非電子計算機專業(yè)人員,通過學習一些專業(yè)基礎知識以后也能依靠自己的技術(shù)力量,來開發(fā)所希望的單片機應用系統(tǒng)。由于本次設計的所要實現(xiàn)的功能并不復雜,鑒于成本考慮,選用便宜而常用的MCS-51系列較為合適。本次設計采用其中低功耗型80C51單片機。3系統(tǒng)實現(xiàn)的原理說明本次課程設計系統(tǒng)以單片機80c51為核心進行設計,單片機與按鍵、數(shù)碼管、發(fā)光二極管、L298驅(qū)動模塊相連接,人為操作按鍵,在程序控制下,單片機將通過驅(qū)動模塊控制步進電機轉(zhuǎn)動,并使數(shù)碼管和二極管分別顯示步進電機的工作步數(shù)和狀態(tài)。系統(tǒng)的總體原理框圖如下所示:圖3-1系統(tǒng)總體原理框圖本系統(tǒng)以單片機80c51為核心的控制系統(tǒng),由P1口進行開關(guān)按鍵的設置,具體為:P1.0接K0四相單四拍通電方式,低電平使電機四相單四拍運轉(zhuǎn);P1.1接K1四相雙四拍通電方式,低電平使電機四相雙四拍運轉(zhuǎn);P1.2接K2四相八拍通電方式,低電平使電機四相八拍運轉(zhuǎn);P1.3接K3啟動/停止開關(guān),高電平為停止,低電平為啟動;P1.4接K4正/反轉(zhuǎn)開關(guān),高電平為反轉(zhuǎn),低電平為正轉(zhuǎn);P1.5接K5加速控制,低電平使電機運轉(zhuǎn)速度加快;P1.6接K6減速控制,低電平使電機運轉(zhuǎn)速度減慢。P2口與P0口外接4位LED數(shù)碼管,顯示步進步數(shù),具體接線方式已在前面敘述,通過控制P2口的電平信號,達到片選的目的,進而實現(xiàn)4位數(shù)值的顯示。P0口作為輸出口外接負載。P3外接驅(qū)動電路L298的4個輸入端,具體為P3.0接IN1,P3.1接IN2,P3.2接IN3,P3.3接IN4。這樣即可通過控制單片機的P2口輸出電平來實現(xiàn)二相步進電機的啟動,停止,正反轉(zhuǎn)以及單四拍,雙四拍,八拍運轉(zhuǎn)。另外P3.4接綠色發(fā)光二極管,使其在電機停轉(zhuǎn)時亮;P3.5接紅色放光二極管,使其在電機正轉(zhuǎn)時亮;P3.6接黃色發(fā)光二極管,使其在電機反轉(zhuǎn)時亮。具體工作過程需通過對單片機編程來實現(xiàn)。電路圖如下所示:

圖3-2系統(tǒng)電路原理圖圖3-2系統(tǒng)電路原理圖IN1VCCVSIN2OUT1IN3IN4OUT2ENAENBOUT3SENSAOUT44硬件設計說明4.1單片機系統(tǒng)原理分析80C51是MCS-51系列單片機中CHMOS工藝的一個典型品種。其它廠商以8051為基核開發(fā)出的CMOS工藝單片機產(chǎn)品統(tǒng)稱為80C51系列。該系列單片機是采用高性能的靜態(tài)80C51設計,由先進CMOS工藝制造,并帶有非易失性Flash程序存儲器,全部支持12時鐘和6時鐘操作,P89C51X2和P89C52X2/54X2/58X2分別包含128字節(jié)和256字節(jié)RAM、32條I/O口線、3個16位定時/計數(shù)器、6輸入4優(yōu)先級嵌套中斷結(jié)構(gòu)、1個串行I/O口、可用于多機通信I/O擴展或全雙工UART以及片內(nèi)振蕩器和時鐘電路。

其主要結(jié)構(gòu)組成如下:中央處理器(CPU)內(nèi)部數(shù)據(jù)存儲器(內(nèi)部RAM)內(nèi)部程序存儲器(內(nèi)部ROM)定時器/計數(shù)器5.并行I/O口串行口時鐘電路中斷系統(tǒng)外接品體引腳191829303112345678>XTAL1P0.0/AD0P0.1/AD1191829303112345678>XTAL1P0.0/AD0P0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11ALEEAP2.4/A12P2.5/A13P2.6/A14P2.7/A15P1.0/T2P3.0/RXDP1.1/T2EXP3.1/TXDP1.2P3.2/INT0P1.3P3.3/INT1P1.4P3.4/T0P1.5P1.6P1.7P3.5/T1P3.6/WRP3.7/RDU3AT89C51圖4-180C51單片機管腳圖393837363534333221222324252627281011121314151617單片機管腳如圖4-1所示,下面對其各個管腳進行必要的說明。P0、P1、P2、P3口的電平與CMOS和TTL電平兼容。P0口的每一位口線可以驅(qū)動8個LSTTL負載。在作為通用I/O口時,由于輸出驅(qū)動電路是開漏方式,由集電極開路(OC門)電路或漏極開路電路驅(qū)動時需外接上拉電阻;當作為地址/數(shù)據(jù)總線使用時,口線輸出不是開漏的,無須外接上拉電阻。P1、P2、P3口的每一位能驅(qū)動4個LSTTL負載。它們的輸出驅(qū)動電路設有內(nèi)部上拉電阻,所以可以方便地由集電極開路(OC門)電路或漏極開路電路所驅(qū)動,而無須外接上拉電阻。當CPU不對P3口進行字節(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ù)存儲器“寫”選通控制輸出);P3.7:(片外數(shù)據(jù)存儲器“讀”選通控制輸出)。EA/VPP:訪問程序存儲器控制信號,當其為低電平時,對ROM的讀操作限定在外部的程序存儲器,當其為高電平時,對ROM的讀操作是從內(nèi)部存儲器開始的,并可延至外部程序存儲器。ALE/PROG:編程脈沖PSEN:外部程序存儲器讀選通信號,在讀外部ROM時PSEN是低電平有效,以實現(xiàn)對ROM的讀操作。RST/VPD:復位信號,當輸入信號延續(xù)2個周期以上的高電平有效,用以完成單片機復位初始化操作。XTAL:時鐘晶振輸入端。4.2二相步進電機工作原理分析步進電機一般分為永磁式(PM)、反應式(VR)和混合式(HB)3種類型。目前,二相混合式步進電機的應用最為廣泛。圖4-3為二相六線式步進電機的工作原示意圖。由圖可知,它有2個繞組,且每個繞組都有一個中間抽頭。因此,二相步進電機也就有了6根引線。當電機中的繞組通電后,其定子磁極產(chǎn)生磁場,將轉(zhuǎn)子吸合到相應的磁極處。若繞組在控制脈沖的作用下,通電方向使定子在順時針方向輪流產(chǎn)生磁場,則電機可順時針轉(zhuǎn)動;通電方向使定子在逆時針方向輪流產(chǎn)生磁場,則電機可逆時針轉(zhuǎn)動??刂泼}沖每作用一次,通電方向就變化一次,使電機轉(zhuǎn)動一步,即一個步距角。脈沖頻率越高,電機轉(zhuǎn)動也就越快。本次課設所使用的二相步進電機需要采用單極性的接法。單極性則是指步進電機線圈中電流的流動方向是單向的。單極性驅(qū)動電路可以六線式的二相步進電機。對于二相六線式步進電機而言,2個繞組的中間抽頭Vdd1和Vdd2都接高電平。根據(jù)步進電機的工作原理,當控制器給驅(qū)動器發(fā)出脈沖信號時,驅(qū)動器經(jīng)過功率放大后,電機繞組通電的順序為ArBrAT萬,其4個狀態(tài)按順序周而復始進行變化,電機轉(zhuǎn)動;若通電時序就變?yōu)锽rArBrA時,電機就逆向轉(zhuǎn)動。圖4-3二相步進電機原理圖任務要求需要對二相步進電機進行四相單四拍,四相雙四拍和四相八拍的控制。其三者的區(qū)別在于通電時序的不一樣,四相單四拍的通電方式為:ArBrArB,而四相雙四拍的通電方式為:ABrBArABrBA,四相八拍需要在此基礎上進行細分,在中間插入,其通電方式為:ArABrBrBArArABrBrBa。由對應的通電方式,在結(jié)合圖3-2,便可以得到對應的單片機管腳P3.0,P3.1,P3.2,P3.3的電平變化情況,繪制出步進電機的四相單四拍,四相雙四拍,四相八拍控制方式表格。如下所示:

表4-1步進電機四相單四拍控制通電方式時序單片機管腳位通電的線圈對應二進制數(shù)轉(zhuǎn)換16進制數(shù)P1.3P1.2P1.1P1.010001A000101H20100B010004H30010A001002H41000B100008H表4-2步進電機四相雙四拍控制通電方式時序單片機管腳位通電的線圈對應二進制數(shù)轉(zhuǎn)換16進制數(shù)P1.3P1.2P1.1P1.010101AB010105H20110BA011006H31010AB10100AH41001BA100109H表4-3步進電機四相八拍控制通電方式時序單片機管腳位通電的線圈對應二進制數(shù)轉(zhuǎn)換16進制數(shù)P1.3P1.2P1.1P1.010001A000101H20101AB101005H30100B100004H40110BA100106H50010A000102H61010AB01010AH71000B010008H81001BA011009H由上述所得表格,便可以通過控制單片機I/O口輸出高低電平變化來實現(xiàn)步進電機的四拍,八拍運轉(zhuǎn)。在編寫程序時,設置好控制字,在I/O口做循環(huán)輸出,便實現(xiàn)了單片機

對步進電機的控制。由于單片機單獨代負載能力較差,步進電機與單片機之間需要接入步進電機的驅(qū)動電路。4.3L298驅(qū)動電路設計由課題任務要求可知,二相步進電機需采用單極性控制,故考慮使用芯片L298來驅(qū)動步進電機。L298N為雙全橋步進電機專用驅(qū)動芯片,內(nèi)部包含4信道邏輯驅(qū)動電路,是種二相和四相步進電機的專用驅(qū)動器,可同時驅(qū)動2個二相或1個四相步進電機,內(nèi)含二個H-Bridge的高電壓、大電流雙全橋式驅(qū)動器,接收標準TTL邏輯準位信號,可驅(qū)動46V、2A以下的步進電機,且可以直接透過電源來調(diào)節(jié)輸出電壓;此芯片可直接由單片機的IO端口來提供模擬時序信號。在接入步進電機時,OUTl,OUT2,OUT3,OUT4接二相步進電機的A,A,B,B,二相步進電機的對應管腳以圖4-5為準,input1~input4接單片機的I/O口,用來控制單片機的正反轉(zhuǎn)以及四相單四拍,四相雙四拍,四相八拍通電方式。由圖4-5可以看出,L298內(nèi)部集成有2個H橋路,對應的輸入接口為:IN1位P3.0,IN2為P3.1,IN3為P3.2,IN4為P3.3。對應的輸出接口為:OUT1接A,OUT4接A,OUT3接B,OUT2接B。PROTUS仿真圖為圖4-5所示:+12VA+12V+12VA+12VAU2+5V_5_71012_611_±15IN1VCC VSIN2OUT1IN3U2+5V_5_71012_611_±15IN1VCC VSIN2OUT1IN3IN4OUT2ENAENBOUT3SENSAOUT4SENSBGND942313148,L298圖4-5驅(qū)動電路PROTUS仿真圖4.4四位LED數(shù)碼管顯示設計任務要求需采用4位LED數(shù)碼管顯示工作步數(shù),通過查閱相關(guān)資料,在仿真時采用型號7SEG-MPX4-CA共陽極數(shù)碼管顯示。其PROTUS仿真圖如圖4-6所示:圖4-6數(shù)碼管顯示仿真圖單片機的P0口接數(shù)碼管輸入管腳ABCDEFG以及DP(可以不用,直接拉高),P2口接4位數(shù)碼管的片選端口1234,7段數(shù)碼管對應的顯示數(shù)值與輸入信號的關(guān)系可以由下表得到。表4-4七段數(shù)碼管顯示功能表單片機管腳輸入顯示十六進制P0.0P0.1P0.2P0.3P0.4P0.5P0.6ABCDEFG0000001OC0H10011111F9H00100102A4H00001103B0H1001100499H0100100592H1100000682H00011117F8H0000000880H0000100990H由上表可以得到顯示數(shù)字與單片機管腳輸入信號的對應關(guān)系。只需要控制單片機的P0口輸出信號即可顯示數(shù)字,在程序設計中,定義7段顯示數(shù)組為Seg□={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}即可使數(shù)碼管顯示數(shù)字。5軟件設計說明5.1總體流程分析與設計軟件模塊的分析需要根據(jù)硬件電路的設計來進行,基于上述硬件電路的分析設計,對整個程序流程需要有個整體的思考與判斷。由硬件電路的設計可以看出,程序需要實現(xiàn)以下幾個功能:通過開關(guān)按鍵實現(xiàn)電機的啟用與停止,正轉(zhuǎn)與反轉(zhuǎn),以及四拍,八拍的運行方式;由4位LED數(shù)碼管實現(xiàn)步進步數(shù)的顯示;3個發(fā)光二極管顯示電機的狀態(tài)。程序設計的總體思想是單片機通過判斷按鍵輸入電平變化從而選擇正反轉(zhuǎn)以及四八拍的工作方式。主程序流程圖如圖5-1所示。

圖5-1主程序流程圖5.2設置電機轉(zhuǎn)動模式流程分析與設計有硬件電路可知,電機的轉(zhuǎn)動由開關(guān)K0、K1、K2、K3、K4、K5、K6來控制,我們通過80K51分別讀入這六位控制數(shù)據(jù),存放在變量Temp中。K0按下為四相單四拍,K1按下為四相雙四拍,K2按下為四相八拍,K3按下為啟動,K4按下為正轉(zhuǎn)抬起為反轉(zhuǎn)。設置轉(zhuǎn)動模式流程圖如圖5-2所示。

.開始T?通電方式鍵是否按下?-加減速鍵是?.否按下?.開始T?通電方式鍵是否按下?-加減速鍵是?.否按下?圖5-2設置電機轉(zhuǎn)動模式流程圖5.3步進電機四相單四拍,四相雙四拍,四相八拍流程分析與設計步進電機通電方式的控制字被放置在幾個變量數(shù)組中,通關(guān)過轉(zhuǎn)動方式選擇部分程序決定轉(zhuǎn)動方式后,把相應轉(zhuǎn)動方式所對應的數(shù)組中相應步數(shù)對應的值賦給變量P3。變量Flag控制拍數(shù)循環(huán),當Flag為4(四拍)或8(八拍)時,F(xiàn)lag值清零,重新從對應數(shù)組開頭選擇通電方式賦值。變量Step用來記錄步數(shù),電機每轉(zhuǎn)一下,Step值加一。電機轉(zhuǎn)動部分流程圖如圖5-3所示。Move=1?《啟動?)’T、 電機停止Y 綠燈亮L”kDelay=1??'?.. '、'延時到?.》””Y 結(jié)束Way=0? TOC\o"1-5"\h\z、(正轉(zhuǎn)?口/ NY* ▼Mode| Mode<、Flag>=4,〕:iStep++Flag=0Step++Step++Step++Step++Step++<、Flag>=4,〕:iStep++Flag=0Step++Step++Step++Step++Step++圖5-3電機單四拍雙四拍八拍正反轉(zhuǎn)流程圖5.4顯示模塊流程分析與設計有硬件部分分析可知,Led數(shù)碼管有4個管腳讀入片選信號,8個管腳讀入控制信號。本部分程序首先要對當前的步數(shù)值進行位數(shù)分離,將個、十、百、千位分別提取出來,然后通過片選信號選擇位數(shù)讀入控制字,依次進行顯示。由于單片機的計算過程非常快,我們還設置了延時程序,所以看起來各位是同時顯示的。

數(shù)碼管顯示步數(shù)流程圖圖5-4所示。圖5-4數(shù)碼管顯示步數(shù)流程圖5.5步進電機速度控制分析與設計通過速度控制按鍵改變速度控制變量Speed,通過定時器0對電機步進控制脈沖之間進行延時,延時到Speed時,Delay=1表示延時時間到。6調(diào)試記錄及結(jié)果分析6.1總體硬件仿真設計硬件設計模塊完成了對系統(tǒng)電路圖的設計,軟件模塊由程序?qū)崿F(xiàn)了各項功能;接下來需要將軟件與硬件結(jié)合起來才能真正完成整個設計工作。我們采用的是PROTUS仿真軟件得到了系統(tǒng)的硬件圖,參見附錄1;使用KeilC51軟件的集成環(huán)境調(diào)試程序,程序代碼請參見附錄,在該集成環(huán)境下,創(chuàng)建一工程,將程序裝入該工程下,調(diào)試運行無誤后,該工程會自動生成.hex文件,在PROTUS仿真環(huán)境里,在單片機中載入該文件,這樣便實現(xiàn)了單片機程序的載入。在系統(tǒng)完成后測試系統(tǒng),檢查硬件和軟件是否能夠協(xié)調(diào)運行,并對系統(tǒng)出現(xiàn)的情況進行分析,看是否能夠達到系統(tǒng)創(chuàng)作之初所設想的效果,如達不到則重新修改系統(tǒng)的硬件結(jié)構(gòu)或者修改軟件的程序部分,直到達到設計需要為止。本系統(tǒng)的設計思路為:首先從整體上劃分出各功能模塊,然后硬件和軟件同時進行依次完成各個功能模塊,最后將各個模塊聯(lián)系起來完成整個系統(tǒng)。6.2調(diào)試與仿真結(jié)果分析在硬件調(diào)試的過程中,遇到了很多問題。主要有:按鍵設計完成后,在多次運行過程中發(fā)現(xiàn)按鍵是否按下難以直觀準確判斷,在此處進行改進設計,為每一個按鍵接上一個發(fā)光二極管,當有鍵按下時,相對應的發(fā)光二極管變亮,使得按鍵動作形象直觀。在步進電機與驅(qū)動電路的連接中,需要準確的接好各個管腳,因為程序里的控制字對應著這些管腳電平的變化,不能隨便接,單片機的輸出口與驅(qū)動電路的輸出口也需要一一對應,否則電機無法按正常的設計運轉(zhuǎn)。經(jīng)過調(diào)試以及對仿真電路圖及程序的改正,系統(tǒng)得以實現(xiàn)任務的要求,對步進電機進行控制,仿真成功。圖6-1為電機正轉(zhuǎn)時的仿真圖,電機順時針旋轉(zhuǎn),紅燈亮。圖6-2為電機反轉(zhuǎn)時的仿真圖,電機逆時針旋轉(zhuǎn),黃燈亮。圖6-3為電機停止時仿真圖,綠燈亮。RP11匚SPACK8CRYSTAL12MHzt~K0~t.1(1 2.:K33,M46lP1.0/T2P11/T2EX■ iff^n——10KK0 CKR51K110KK■ R6 —P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXSP3.1/TXSP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39P0.038P0.137P0.236P0.335P0.434P0.533P0.632P0.7IN1VCCVSIN2OUT1IN3IN4OUT2ENAENBOUT3SENSAOUT4SENSB圖6-1步進電機正轉(zhuǎn)仿真圖RP1CRYSTAL12MHzJ1XTAL1P0.0/AD0P0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11ALEP2.4/A12EAP2.5/A13P2.6/A14P2.7/A15P1.0/T2P3.0/-RXDP1.1/T2EXP3.1/TXDP1.2P3.2/INT0P1.3P3.3/INT1P1.4P3.4ff0P1.5P3.5/T1P1.6P36/WRP3.7/RD■^3?P0.0■^38P0.137P0.236P0.3■35P0.4—34P0.5—33P0.632P0.7IN1VCCVSIN2OUT1IN3IN4OUT2ENAENBOUT3SENSAOUT4SENSBl3tLED-YELLOWLED-RED?D3LED-GREEN+5R1R2R3l[3郵 .3.3K ?J3.3K圖6-2步進電機反轉(zhuǎn)仿真圖SENSBCRYSTAL12MHzP1.0/T2P1.1/T2EXP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD.39P0.038P0.1*P0.236P0.335P0.4—34P0.5—33P0.632P0.7■■l0—h ■R1R2T3.3K3.3KIN1VCCVSIN2OUT1IN3IN4OUT2ENAENBOUT3SENSAOUT4圖6-3步進電機停止仿真圖由仿真圖可見,此系統(tǒng)實現(xiàn)了對步進電機的正反轉(zhuǎn)以及停止的控制,能夠利用數(shù)碼管顯示步數(shù),通過發(fā)光二級管顯示步進電機運行狀態(tài),此系統(tǒng)設計合理,滿足設計要求。小結(jié)與心得體會本次課程設計綜合了很多學過的知識,同時也要自學新的知識。將理論運用于實踐上,結(jié)合軟件和硬件,提高了理論知識和實踐能力。由于時間有限,遇到了很多困難,在同學的幫助和討論下,自己查閱很多書籍和網(wǎng)絡資料。首先,拿到題目之后我很快就確定了利用單片機來進行設計,考慮了atmegal128和80c51等單片機,由于此系統(tǒng)需要實現(xiàn)的功能簡單,不需要過大的內(nèi)存,所以由于成本原因選擇了80c51進行設計。但是在protus仿真調(diào)試時還是出現(xiàn)了許多問題,程序調(diào)試時,速度的控制比較麻煩,通過查閱資料最后決定在每兩次電機步進之間加入延時,通過按鍵改變延時參數(shù)即可改變電機轉(zhuǎn)動速度。運行仿真卻出現(xiàn)了步進電機轉(zhuǎn)動正常但顯示管記錄步數(shù)不正常的情況。經(jīng)仔細檢查,發(fā)現(xiàn)是延時的時候數(shù)碼管不能進行掃描,后來決定直接用定時器來做電機步進的延時,設置Delay參數(shù),延時時間到就置1。本次課設經(jīng)過多次調(diào)試改正錯誤,才得以仿真成功。單片機是此次設計中非常重要的元器件,在做完成課程設計的過程中,我查閱了一些資料對其進行學習,了解了其內(nèi)部結(jié)構(gòu)、存儲容量以及管腳功能等知識,感到受益匪淺。調(diào)試程序是一個復雜而精細的過程,很多錯誤都十分細小,在意想不到的地方,我和同學互相檢查對方的程序,才發(fā)現(xiàn)了彼此的問題。通過本次課程設計,我不僅加深了對課堂知識的理解,拓展了單片機方面的知識,掌握了protus軟件的應用,更培養(yǎng)了科學的思維方式和動手能力,與同學的交流也多出了一份學術(shù)探討的氛圍,也鍛煉了我的耐心和堅持,令我受益匪淺。參考文獻于海生.《計算機控制技術(shù)》[M].北京:機械工業(yè)出版社.2007年張毅剛.《新編MCS-51單片機應用設計》[M].哈爾濱:哈爾濱工業(yè)大學出版社.2006年陳冬云.《ATmega128單片機原理與開發(fā)指導》[M].北京:機械工業(yè)出版社.2005年王彥平.《RPOTEL99電路設計指南》[M].北京:清華大學出版社.2000年沈美明.《IBM-PC匯編語言程序設計》[M].北京:清華大學出版社.2001年沈精虎.《Protel99入門與提高》[M].北京:人民郵電出版社.2007年吳金戌.《8051單片機時間與應用》[M].北京:清華大學出版社,2003年胡輝.《單片機原理及應用設計》[M].北京:中國水利水電出版社.2007年附錄1:RP1+5VRESPACK-8U118XTAL2ALAT89C51R310KR910KR1010KCRYST12MHz8^2° 1 233pFC13-K0-K1-K2-K3-K4■K5■K610KRSTPSENALEEAP1.0/T2P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.7P0.0/A[礴枷P0.1/AD138p0'1P0.2/AD篇看:P0.3/A[尊*P0.4/AD4;哀0.二P0.5/AD考章P0.6/AD63%0?廠P0.7/AD732"0P2.0/AP2.1/AP2.2/AP2.3/AP2.4/AP2.5/AP2.6/AP2.7/A3^^t2102m2024P2.3P3.0/RXP3.1T>P3.2/tNTQP3.3/IN』P3.4/TP3.5/TL.P3.6/W71P37/R〕R1]R2I3.3K13.3K3.3KIN1VCCOUT1OUT2ENAENBOUT3SENSASENSBGND-^■4outF14D3LED-GREEN+5V附錄2:/"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""http://個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個/TOC\o"1-5"\h\z/* 步進電機程序 *//*P「0為四相單四拍,P「1為四相雙四拍,P「2為四相八拍 *//*P「3為啟動/停止控制、P「4方向控制、P「5加速、P「6減速 *//*用4位LED數(shù)碼管顯示工作步數(shù)。 *//*用3個發(fā)光二極管顯示狀態(tài) *//*正轉(zhuǎn)時紅燈亮,反轉(zhuǎn)時黃燈亮,不轉(zhuǎn)時綠燈亮 *//*編寫人:李志強 *//*時間:2013-06-26 *//"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""http://個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個/#include<reg51.h>#defineucharunsignedchar#defineuintunsignedint#defineSegDataP0//數(shù)碼管數(shù)據(jù)口#defineKeyDataP1〃按鍵控制數(shù)據(jù)口#defineMotorDataP3〃電機控制數(shù)據(jù)口sbit Wela1=P2"0; //數(shù)碼管位選1sbit Wela2=P2"1; //數(shù)碼管位選2sbit Wela3=P2"2; //數(shù)碼管位選3sbit Wela4=P2"3; //數(shù)碼管位選4sbitLedGreen=P3"4;//控制綠燈-停止ucharPositiveSingleFour[]={0xd1,0xd4,0xd2,0xd8}; //步進電機正相單四拍數(shù)表;ucharPositiveDoubleFour[]={0xd5,0xd6,0xda,0xd9}; //步進電機正相雙四拍數(shù)表;ucharPositiveEight[]={0xd1,0xd5,0xd4,0xd6,0xd2,0xda,0xd8,0xd9};//步進電機正相八拍數(shù)表;ucharNegitiveSingleFour[]={0xb1,0xb8,0xb2,0xb4}; //步進電機反相單四拍數(shù)表;ucharNegitiveDoubleFour[]={0xb9,0xba,0xb6,0xb5}; //步進電機反相雙四拍數(shù)表;ucharNegitiveEight[]={0xb1,0xb9,0xb8,0xba,0xb2,0xb6,0xb4,0xb5};//步進電機反相八拍數(shù)表;ucharSeg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽極數(shù)碼管顯示數(shù)碼;ucharFlag=0; //用來控制拍數(shù)循環(huán);ucharMode=0; //用來標志工作模式;ucharWay=0; //用來標志運轉(zhuǎn)方向ucharNum=0; //用來定時計數(shù)ucharDelay=0; //用來標志延時時間到ucharMove=0; //用來標志啟動或停止uintStep=0; //用來計算步數(shù)的;charSpeed=12; //用來表示速度charSpeedMax=2; //最大速度-參數(shù)為時間charSpeedMin=22;//最小速度charSpeedChang=10;//速度每次改變量/******************函數(shù)聲明部分**********************/voidInit();voidDisplay(uint);voidDelayMs(uint);voidKeyScan();voidMotor();****************** **********************voidmain(){Init();while(1){KeyScan();Motor();Display(Step);}}/******************數(shù)碼管顯示函數(shù)**********************/voidDisplay(uintNum){ucharQian,Bai,Shi,Ge;Qian=Num/1000;Bai=(Num/100)%10;Shi=(Num/10)%10;Ge=Num%10; //分離出每一位;SegData=Seg[Qian];Wela1=1;DelayMs(2);Wela1=0;SegData=Seg[Bai];Wela2=1;DelayMs(2);Wela2=0;SegData=Seg[Shi];Wela3=1;DelayMs(2);Wela3=0;SegData=Seg[Ge];Wela4=1;DelayMs(2);Wela4=0;}/******************電機運轉(zhuǎn)函數(shù)**********************/voidMotor(){if(Move==1){if(Delay==1){Delay=0;if(Way==0){switch(Mode){/*電機步進拍數(shù)表數(shù)據(jù)送到電機控制口;判斷一周拍數(shù)是否完成;步數(shù)加1*/case 1:MotorData=PositiveSingleFour[Flag++];if(Flag>=4)Flag=0;Step++;break;case 2:MotorData=PositiveDoubleFour[Flag++];if(Flag>=4)Flag=0;Step++;break;case 3:MotorData=PositiveEight[Flag++];if(Flag>=8)Flag=0;Step++;break;default: ;}}else{switch(Mode){case 1:MotorData=NegitiveSingleFour[Flag++];if(Flag>=4)Flag=0;Step++;break;case 2:MotorData=NegitiveDoubleFour[Flag++];if(Flag>=4)Flag=0;Step++;break;case 3:MotorData=NegitiveEight[Flag++];if(Flag>=8)Flag=0;Step++;break;default: ;}}}}else{MotorData=0xef;LedGreen=0;}}/*********

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論