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

下載本文檔

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

文檔簡(jiǎn)介

1、武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書目錄摘要11 設(shè)計(jì)任務(wù)及要求的分析22 方案比較及認(rèn)證32.1 驅(qū)動(dòng)模塊選擇32.2 單片機(jī)選型33 系統(tǒng)實(shí)現(xiàn)的原理說明44 硬件設(shè)計(jì)說明64.1 單片機(jī)系統(tǒng)原理分析64.2 二相步進(jìn)電機(jī)工作原理分析84.3 步進(jìn)電機(jī)的一些基本參數(shù)104.4 L298驅(qū)動(dòng)電路設(shè)計(jì)104.5 四位LED數(shù)碼管顯示設(shè)計(jì)115 軟件設(shè)計(jì)說明135.1總體流程分析與設(shè)計(jì)135.2 設(shè)置電機(jī)轉(zhuǎn)動(dòng)模式流程分析與設(shè)計(jì)145.3 步進(jìn)電機(jī)四相單四拍,四相雙四拍,四相八拍流程分析與設(shè)計(jì)155.4 顯示模塊流程分析與設(shè)計(jì)165.5 步進(jìn)電機(jī)速度控制分析與設(shè)計(jì)176 調(diào)試記錄及結(jié)果分析186

2、.1 總體硬件仿真設(shè)計(jì)186.2調(diào)試與仿真結(jié)果分析18小結(jié)與心得體會(huì)21參考文獻(xiàn)22附錄1:23附錄2:24武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書摘要 隨著微電子和計(jì)算機(jī)技術(shù)的發(fā)展,步進(jìn)電機(jī)的需求量與日俱增,它廣泛用于打印機(jī)、電動(dòng)玩具等消費(fèi)類產(chǎn)品以及數(shù)控機(jī)床、工業(yè)機(jī)器人、醫(yī)療器械等機(jī)電產(chǎn)品中,其在各個(gè)國(guó)民經(jīng)濟(jì)領(lǐng)域都有應(yīng)用。研究步進(jìn)電機(jī)的控制系統(tǒng),對(duì)提高控制精度和響應(yīng)速度、節(jié)約能源等都具有重要意義。  本控制系統(tǒng)的設(shè)計(jì),由硬件設(shè)計(jì)和軟件設(shè)計(jì)兩部分組成,完成二相步進(jìn)電機(jī)的控制。其中,硬件設(shè)計(jì)主要包括單片機(jī)系統(tǒng)、按鍵控制模塊、步進(jìn)電機(jī)驅(qū)動(dòng)模塊、數(shù)碼顯示模塊等功能模塊的設(shè)計(jì),以及硬件電路在

3、Proteus上的仿真。軟件設(shè)計(jì)包括主程序以及各個(gè)模塊的控制程序,最終實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)轉(zhuǎn)動(dòng)方向及轉(zhuǎn)動(dòng)模式(四拍,八拍)的控制,并且將步進(jìn)電機(jī)的步進(jìn)數(shù)動(dòng)態(tài)顯示在LED數(shù)碼管上。本系統(tǒng)具有智能性、實(shí)用性及可靠性的特點(diǎn)。關(guān)鍵詞:二相步進(jìn)電機(jī) 單片機(jī) Proteus二相步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)1 設(shè)計(jì)任務(wù)及要求的分析設(shè)計(jì)的步進(jìn)電機(jī)控制系統(tǒng)要求有以下功能:1. 二相步進(jìn)電機(jī)采用單極性控制2用K0-K2作為通電方式選擇鍵,K0為四相單四拍,K1為四相雙四拍,K2為四相八拍3. 用K3作為啟動(dòng)/停止控制鍵4. 用K4作為方向控制5. 用K5作為加速減速控制6. 用4位LED數(shù)碼管顯示工作步數(shù)7. 用3個(gè)發(fā)光二極

4、管顯示狀態(tài):正轉(zhuǎn)時(shí)紅燈亮,反轉(zhuǎn)時(shí)黃燈亮,不轉(zhuǎn)時(shí)綠燈亮本次設(shè)計(jì)需要對(duì)二相步進(jìn)電機(jī)進(jìn)行單極性控制,使其能在控制下進(jìn)行正轉(zhuǎn)、反轉(zhuǎn)、停止和四相單四拍、四相雙四拍、四相八拍運(yùn)行,可以通過輸出不同的脈沖序列;同時(shí)利用數(shù)碼管和二極管分別顯示其工作步數(shù)和工作狀態(tài)。由于控制功能較為復(fù)雜,所以本系統(tǒng)需要采用單片機(jī)以及驅(qū)動(dòng)模塊進(jìn)行設(shè)計(jì)。2 方案比較及認(rèn)證2.1 驅(qū)動(dòng)模塊選擇由于單片機(jī)輸出電流很小,不能驅(qū)動(dòng)電機(jī)的運(yùn)行,所以需要添加驅(qū)動(dòng)電路。電機(jī)的驅(qū)動(dòng)模塊使用芯片L298實(shí)現(xiàn),控制更直接,接線簡(jiǎn)潔,采用脈沖數(shù)據(jù)控制邏輯簡(jiǎn)單,穩(wěn)定性好。2.2 單片機(jī)選型單片機(jī)以其體積小、功能齊全、價(jià)格低廉、可靠性高等優(yōu)點(diǎn),在各個(gè)領(lǐng)域都獲

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

6、驅(qū)動(dòng)模塊控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng),并使數(shù)碼管和二極管分別顯示步進(jìn)電機(jī)的工作步數(shù)和狀態(tài)。系統(tǒng)的總體原理框圖如下所示:按鍵設(shè)置80C51單片機(jī)系統(tǒng)L298驅(qū)動(dòng)模塊發(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ī)四相單四拍運(yùn)轉(zhuǎn);P1.1接K1四相雙四拍通電方式,低電平使電機(jī)四相雙四拍運(yùn)轉(zhuǎn);P1.2接K2四相八拍通電方式,低電平使電機(jī)四相八拍運(yùn)轉(zhuǎn);P1.3接K3啟動(dòng)/停止開關(guān),高電平為停止,低電平為啟動(dòng);P1.4接K4正/反轉(zhuǎn)開關(guān),高電平為反轉(zhuǎn),低電平為正轉(zhuǎn);P1.5接K

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

8、,使其在電機(jī)反轉(zhuǎn)時(shí)亮。具體工作過程需通過對(duì)單片機(jī)編程來實(shí)現(xiàn)。電路圖為附錄1.4 硬件設(shè)計(jì)說明4.1 單片機(jī)系統(tǒng)原理分析80C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓、高性能CMOS8位微處理器,俗稱單片機(jī) .該系列單片機(jī)由先進(jìn)CMOS 工藝制造,并帶有非易失性Flash 程序存儲(chǔ)器 ,全部支持12 時(shí)鐘和6 時(shí)鐘操作,P89C51X2 和P89C52X2/54X2/58X2 分別包含128 字節(jié)和256 字節(jié)RAM、32 條I/O 口線、3 個(gè)16 位定時(shí)/計(jì)數(shù)器、6 輸入4 優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)、1 個(gè)串行I/O 口、可用于多機(jī)通信 I/O 擴(kuò)展或全雙工UART以及片內(nèi)振蕩器和時(shí)

9、鐘電路。 其結(jié)構(gòu)特點(diǎn)如下:18位CPU2片內(nèi)振蕩器和時(shí)鐘電路;)332根I/O線)4外部存貯器尋址范圍ROM、RAM64K52個(gè)16位的定時(shí)器/計(jì)數(shù)器65個(gè)中斷源,兩個(gè)中斷優(yōu)先級(jí)7全雙工串行口8布爾處理器圖4-1 80C51單片機(jī)管腳圖單片機(jī)管腳如圖4-1所示,下面對(duì)其各個(gè)管腳進(jìn)行必要的說明。P0、P1、P2、P3口的電平與CMOS和TTL電平兼容。 P0口的每一位口線可以驅(qū)動(dòng)8個(gè)LSTTL負(fù)載。在作為通用I/O口時(shí),由于輸出驅(qū)動(dòng)電路是開漏方式,由集電極開路(OC門)電路或漏極開路電路驅(qū)動(dòng)時(shí)需外接上拉電阻;當(dāng)作為地址/數(shù)據(jù)總線使用時(shí),口線輸出不是開漏的,無(wú)須外接上拉電阻。 P1、P2、P3口的

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

11、: 訪問程序存儲(chǔ)器控制信號(hào),當(dāng)其為低電平時(shí),對(duì)ROM的讀操作限定在外部的程序存儲(chǔ)器,當(dāng)其為高電平時(shí),對(duì)ROM的讀操作是從內(nèi)部存儲(chǔ)器開始的,并可延至外部程序存儲(chǔ)器。 ALE/PROG : 編程脈沖 PSEN : 外部程序存儲(chǔ)器讀選通信號(hào),在讀外部ROM時(shí)PSEN是低電平有效,以實(shí)現(xiàn)對(duì)ROM 的讀操作。 RST/VPD : 復(fù)位信號(hào),當(dāng)輸入信號(hào)延續(xù)2個(gè)周期以上的高電平有效,用以完成單片機(jī)復(fù)位初始化操作。 XTAL : 時(shí)鐘晶振輸入端。 4.2 二相步進(jìn)電機(jī)工作原理分析二相步進(jìn)機(jī)是本次設(shè)計(jì)中試關(guān)鍵的一部分。二相步進(jìn)機(jī)的型號(hào)有很多,按接線來分,大體上,有五線和六

12、線的。設(shè)計(jì)用的是六線的。步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度(稱為“步距角”),它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的??梢酝ㄟ^控制脈沖個(gè)數(shù)來控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)可以通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的。本次課設(shè)所使用的二相步進(jìn)電機(jī)需要采用單極性的接法。單極性則是指步進(jìn)電機(jī)線圈中電流的流動(dòng)方向是單向的。單極性驅(qū)動(dòng)電路可以六線式的二相步進(jìn)電機(jī)。對(duì)于二相六線式步進(jìn)電機(jī)而言, 2個(gè)繞組的中間抽頭Vdd1和Vdd2都接高電平。根據(jù)步進(jìn)電機(jī)的工作原理,當(dāng)控制器給驅(qū)動(dòng)器發(fā)

13、出脈沖信號(hào)時(shí),驅(qū)動(dòng)器經(jīng)過功率放大后,電機(jī)繞組通電的順序?yàn)?其4個(gè)狀態(tài)按順序周而復(fù)始進(jìn)行變化,電機(jī)轉(zhuǎn)動(dòng); 若通電時(shí)序就變?yōu)闀r(shí),電機(jī)就逆向轉(zhuǎn)動(dòng)。圖4-2 二相步進(jìn)電機(jī)原理圖 任務(wù)要求需要對(duì)二相步進(jìn)電機(jī)進(jìn)行四相單四拍,四相雙四拍和四相八拍的控制。其三者的區(qū)別在于通電時(shí)序的不一樣,四相單四拍的通電方式為:,而四相雙四拍的通電方式為:,四相八拍需要在此基礎(chǔ)上進(jìn)行細(xì)分,在中間插入,其通電方式為:。由對(duì)應(yīng)的通電方式,在結(jié)合圖3-2,便可以得到對(duì)應(yīng)的單片機(jī)管腳P3.0,P3.1,P3.2,P3.3的電平變化情況,繪制出步進(jìn)電機(jī)的四相單四拍,四相雙四拍,四相八拍控制方式表格。如下所示:表4-1 步進(jìn)電機(jī)四相單四

14、拍控制通電方式時(shí)序單片機(jī)管腳位通電的線圈對(duì)應(yīng)二進(jìn)制數(shù)轉(zhuǎn)換16進(jìn)制數(shù)P1.3P1.2P1.1P1.010001000101H20100010004H30010001002H41000100008H表4-2 步進(jìn)電機(jī)四相雙四拍控制通電方式時(shí)序單片機(jī)管腳位通電的線圈對(duì)應(yīng)二進(jìn)制數(shù)轉(zhuǎn)換16進(jìn)制數(shù)P1.3P1.2P1.1P1.010101010105H20110011006H3101010100AH41001100109H表4-3 步進(jìn)電機(jī)四相八拍控制通電方式時(shí)序單片機(jī)管腳位通電的線圈對(duì)應(yīng)二進(jìn)制數(shù)轉(zhuǎn)換16進(jìn)制數(shù)P1.3P1.2P1.1P1.010001000101H20101101005H30100100

15、004H40110100106H50010000102H6101001010AH71000010008H81001011009H由上述所得表格,便可以通過控制單片機(jī)I/O口輸出高低電平變化來實(shí)現(xiàn)步進(jìn)電機(jī)的四拍,八拍運(yùn)轉(zhuǎn)。在編寫程序時(shí),設(shè)置好控制字,在I/O口做循環(huán)輸出,便實(shí)現(xiàn)了單片機(jī)對(duì)步進(jìn)電機(jī)的控制。由于單片機(jī)單獨(dú)代負(fù)載能力較差,步進(jìn)電機(jī)與單片機(jī)之間需要接入步進(jìn)電機(jī)的驅(qū)動(dòng)電路。4.3 步進(jìn)電機(jī)的一些基本參數(shù) 電機(jī)固有步距角: 它表示控制系統(tǒng)每發(fā)一個(gè)步進(jìn)脈沖信號(hào),電機(jī)所轉(zhuǎn)動(dòng)的角度。電機(jī)出廠時(shí)給出了一個(gè)步距角的值,如86BYG250A型電機(jī)給出的值為0.9°/1.8°(表示半步

16、工作時(shí)為0.9°、整步工作時(shí)為1.8°),這個(gè)步距角可以稱之為“電機(jī)固有步距角”,它不一定是電機(jī)實(shí)際工作時(shí)的真正步距角,真正的步距角和驅(qū)動(dòng)器有關(guān)。 步進(jìn)電機(jī)的相數(shù): 是指電機(jī)內(nèi)部的線圈組數(shù),目前常用的有二相、三相、四相、五相步進(jìn)電機(jī)。電機(jī)相數(shù)不同,其步距角也不同,一般二相電機(jī)的步距角為0.9°/1.8°、三相的為0.75°/1.5°、五相的為0.36°/0.72° 。在沒有細(xì)分驅(qū)動(dòng)器時(shí),用戶主要靠選擇不同相數(shù)的步進(jìn)電機(jī)來滿足自己步距角的要求。如果使用細(xì)分驅(qū)動(dòng)器,則相數(shù)將變得沒有意義,用戶只需在驅(qū)動(dòng)器上改變細(xì)分?jǐn)?shù),就

17、可以改變步距角。 保持轉(zhuǎn)矩(HOLDING TORQUE): 是指步進(jìn)電機(jī)通電但沒有轉(zhuǎn)動(dòng)時(shí),定子鎖住轉(zhuǎn)子的力矩。它是步進(jìn)電機(jī)最重要的參數(shù)之一,通常步進(jìn)電機(jī)在低速時(shí)的力矩接近保持轉(zhuǎn)矩。由于步進(jìn)電機(jī)的輸出力矩隨速度的增大而不斷衰減,輸出功率也隨速度的增大而變化,所以保持轉(zhuǎn)矩就成為了衡量步進(jìn)電機(jī)最重要的參數(shù)之一。比如,當(dāng)人們說2N.m的步進(jìn)電機(jī),在沒有特殊說明的情況下是指保持轉(zhuǎn)矩為2N.m的步進(jìn)電機(jī)。 DETENT TORQUE: 是指步進(jìn)電機(jī)沒有通電的情況下,定子鎖住轉(zhuǎn)子的力矩。DETENT TORQUE 在國(guó)內(nèi)沒有統(tǒng)一的翻譯方式,容易使大家產(chǎn)生誤解;由于反應(yīng)式步進(jìn)電機(jī)的轉(zhuǎn)子不是永磁材料,所以它沒

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

19、圖4-5為準(zhǔn),input1input4接單片機(jī)的I/O口,用來控制單片機(jī)的正反轉(zhuǎn)以及四相單四拍,四相雙四拍,四相八拍通電方式。4.5 四位LED數(shù)碼管顯示設(shè)計(jì) 任務(wù)要求需采用4位LED數(shù)碼管顯示工作步數(shù),通過查閱相關(guān)資料,在仿真時(shí)采用型號(hào)7SEG-MPX4-CA共陽(yáng)極數(shù)碼管顯示。其PROTUS仿真圖如圖4-6所示:圖4-3 數(shù)碼管顯示仿真圖單片機(jī)的P0口接數(shù)碼管輸入管腳ABCDEFG以及DP(可以不用,直接拉高),P2口接4位數(shù)碼管的片選端口1234,7段數(shù)碼管對(duì)應(yīng)的顯示數(shù)值與輸入信號(hào)的關(guān)系可以由下表得到。表4-4 七段數(shù)碼管顯示功能表單片機(jī)管腳輸入顯示十六進(jìn)制P0.0P0.1P0.2P0.3

20、P0.4P0.5P0.6ABCDEFG0000001OC0H10011111F9H00100102A4H00001103B0H1001100499H0100100592H1100000682H00011117F8H0000000880H0000100990H由上表可以得到顯示數(shù)字與單片機(jī)管腳輸入信號(hào)的對(duì)應(yīng)關(guān)系。只需要控制單片機(jī)的P0口輸出信號(hào)即可顯示數(shù)字,在程序設(shè)計(jì)中,定義7段顯示數(shù)組為Seg=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90即可使數(shù)碼管顯示數(shù)字。5 軟件設(shè)計(jì)說明5.1總體流程分析與設(shè)計(jì) 本設(shè)計(jì)包括硬件和軟件兩部分,設(shè)計(jì)思想是化

21、整為零和化零為整,即電路模塊化,然后再整合模塊功能作用,達(dá)到要求的目的。把原來復(fù)雜的電路分成一個(gè)個(gè)簡(jiǎn)單的模塊,這樣化繁為簡(jiǎn),可以逐個(gè)擊破,便于設(shè)計(jì)編程;當(dāng)把分開的每一個(gè)模塊都搞定,設(shè)計(jì)出來時(shí),再通過單片機(jī)這個(gè)核心部分,將每個(gè)模塊糅合在一起。例如本設(shè)計(jì)中,可以把步進(jìn)機(jī)的控制化成功能鍵輸入部分,顯示部分和二相步進(jìn)機(jī)驅(qū)動(dòng)電路部分。軟件模塊的分析需要根據(jù)硬件電路的設(shè)計(jì)來進(jìn)行,基于上述硬件電路的分析設(shè)計(jì),對(duì)整個(gè)程序流程需要有個(gè)整體的思考與判斷。由硬件電路的設(shè)計(jì)可以看出,程序需要實(shí)現(xiàn)以下幾個(gè)功能:通過開關(guān)按鍵實(shí)現(xiàn)電機(jī)的啟用與停止,正轉(zhuǎn)與反轉(zhuǎn),以及四拍,八拍的運(yùn)行方式;由4位LED數(shù)碼管實(shí)現(xiàn)步進(jìn)步數(shù)的顯示;

22、3個(gè)發(fā)光二極管顯示電機(jī)的狀態(tài)。程序設(shè)計(jì)的總體思想是單片機(jī)通過判斷按鍵輸入電平變化從而選擇正反轉(zhuǎn)以及四八拍的工作方式。主程序流程圖如圖5-1所示。開始K3按下?掃描鍵盤,設(shè)置轉(zhuǎn)動(dòng)模式設(shè)備初始化啟動(dòng)電機(jī)顯示步數(shù)K3彈起?YYNN圖 5-1 主程序流程圖5.2 設(shè)置電機(jī)轉(zhuǎn)動(dòng)模式流程分析與設(shè)計(jì) 由硬件電路可知,電機(jī)的轉(zhuǎn)動(dòng)由開關(guān)K0、K1、K2、K3、K4、K5、K6來控制,我們通過80K51分別讀入這六位控制數(shù)據(jù),存放在變量Temp中。K0按下為四相單四拍,K1按下為四相雙四拍,K2按下為四相八拍,K3按下為啟動(dòng),K4按下為正轉(zhuǎn)抬起為反轉(zhuǎn)。設(shè)置轉(zhuǎn)動(dòng)模式流程圖如圖5-2所示。圖5-2 設(shè)置電機(jī)轉(zhuǎn)動(dòng)模式流

23、程圖5.3 步進(jìn)電機(jī)四相單四拍,四相雙四拍,四相八拍流程分析與設(shè)計(jì)步進(jìn)電機(jī)通電方式的控制字被放置在幾個(gè)變量數(shù)組中,通關(guān)過轉(zhuǎn)動(dòng)方式選擇部分程序決定轉(zhuǎn)動(dòng)方式后,把相應(yīng)轉(zhuǎn)動(dòng)方式所對(duì)應(yīng)的數(shù)組中相應(yīng)步數(shù)對(duì)應(yīng)的值賦給變量P3。變量Flag控制拍數(shù)循環(huán),當(dāng)Flag為4(四拍)或8(八拍)時(shí),F(xiàn)lag值清零,重新從對(duì)應(yīng)數(shù)組開頭選擇通電方式賦值。變量Step用來記錄步數(shù),電機(jī)每轉(zhuǎn)一下,Step值加一。電機(jī)轉(zhuǎn)動(dòng)部分流程圖如圖5-3所示。圖5-3 電機(jī)單四拍雙四拍八拍正反轉(zhuǎn)流程圖5.4 顯示模塊流程分析與設(shè)計(jì)有硬件部分分析可知,Led數(shù)碼管有4個(gè)管腳讀入片選信號(hào),8個(gè)管腳讀入控制信號(hào)。本部分程序首先要對(duì)當(dāng)前的步數(shù)值

24、進(jìn)行位數(shù)分離,將個(gè)、十、百、千位分別提取出來,然后通過片選信號(hào)選擇位數(shù)讀入控制字,依次進(jìn)行顯示。由于單片機(jī)的計(jì)算過程非???,我們還設(shè)置了延時(shí)程序,所以看起來各位是同時(shí)顯示的。數(shù)碼管顯示步數(shù)流程圖圖5-4所示。Num值分離出每一位讀取千位數(shù)據(jù)選擇數(shù)碼管千位進(jìn)行顯示延時(shí)2ms取消選擇數(shù)碼管讀取十位數(shù)據(jù)選擇數(shù)碼管十位進(jìn)行顯示延時(shí)2ms取消選擇顯示管讀取百位數(shù)據(jù)百位進(jìn)行顯示延時(shí)2ms取消選擇顯示管讀取十位數(shù)據(jù)選擇數(shù)碼管十位進(jìn)行顯示延時(shí)2ms取消選擇顯示管開始結(jié)束圖5-4 數(shù)碼管顯示步數(shù)流程圖5.5 步進(jìn)電機(jī)速度控制分析與設(shè)計(jì)通過速度控制按鍵改變速度控制變量Speed,通過定時(shí)器0對(duì)電機(jī)步進(jìn)控制脈沖之間

25、進(jìn)行延時(shí),延時(shí)到Speed時(shí),Delay=1表示延時(shí)時(shí)間到。6 調(diào)試記錄及結(jié)果分析6.1 總體硬件仿真設(shè)計(jì) 硬件的仿真需要將軟件與硬件結(jié)合起來才能真正完成整個(gè)設(shè)計(jì)工作。我們采用的是PROTUS仿真軟件得到了系統(tǒng)的硬件圖,參見附錄1;使用keiluVision4軟件的集成環(huán)境調(diào)試程序,程序代碼請(qǐng)參見附錄,在該集成環(huán)境下,創(chuàng)建一工程,將程序裝入該工程下,調(diào)試運(yùn)行無(wú)誤后,該工程會(huì)自動(dòng)生成.hex文件,在PROTUS仿真環(huán)境里,在單片機(jī)中載入該文件,這樣便實(shí)現(xiàn)了單片機(jī)程序的載入。在系統(tǒng)完成后測(cè)試系統(tǒng),檢查硬件和軟件是否能夠協(xié)調(diào)運(yùn)行,并對(duì)系統(tǒng)出現(xiàn)的情況進(jìn)行分析,看是否能夠達(dá)到系統(tǒng)創(chuàng)作之初所設(shè)想的效果,如

26、達(dá)不到則重新修改系統(tǒng)的硬件結(jié)構(gòu)或者修改軟件的程序部分,直到達(dá)到設(shè)計(jì)需要為止。本系統(tǒng)的設(shè)計(jì)思路為:首先從整體上劃分出各功能模塊,然后硬件和軟件同時(shí)進(jìn)行依次完成各個(gè)功能模塊,最后將各個(gè)模塊聯(lián)系起來完成整個(gè)系統(tǒng)。具體工作過程需通過對(duì)單片機(jī)編程來實(shí)現(xiàn)。6.2調(diào)試與仿真結(jié)果分析在硬件調(diào)試的過程中,遇到了很多問題。主要有:k5處的開關(guān)需要一個(gè)單刀三擲開關(guān),可是軟件中找不到合適的,就先用了個(gè)稍微麻煩的開關(guān)代替:在步進(jìn)電機(jī)與驅(qū)動(dòng)電路的連接中,需要準(zhǔn)確的接好各個(gè)管腳,因?yàn)槌绦蚶锏目刂谱謱?duì)應(yīng)著這些管腳電平的變化,不能隨便接,單片機(jī)的輸出口與驅(qū)動(dòng)電路的輸出口也需要一一對(duì)應(yīng),否則電機(jī)無(wú)法按正常的設(shè)計(jì)運(yùn)轉(zhuǎn)。經(jīng)過調(diào)試以及

27、對(duì)仿真電路圖及程序的改正,系統(tǒng)得以實(shí)現(xiàn)任務(wù)的要求,對(duì)步進(jìn)電機(jī)進(jìn)行控制,仿真成功。圖6-1為電機(jī)正轉(zhuǎn)時(shí)的仿真圖,電機(jī)順時(shí)針旋轉(zhuǎn),紅燈亮。圖6-2為電機(jī)反轉(zhuǎn)時(shí)的仿真圖,電機(jī)逆時(shí)針旋轉(zhuǎn),黃燈亮。圖6-3為電機(jī)停止時(shí)仿真圖,綠燈亮。圖6-1 步進(jìn)電機(jī)正傳仿真圖圖6-2 步進(jìn)電機(jī)反轉(zhuǎn)仿真圖由仿真圖可見,此系統(tǒng)實(shí)現(xiàn)了對(duì)步進(jìn)電機(jī)的正反轉(zhuǎn)以及停止的控制,能夠利用數(shù)碼管顯示步數(shù),通過發(fā)光二級(jí)管顯示步進(jìn)電機(jī)運(yùn)行狀態(tài),此系統(tǒng)設(shè)計(jì)合理,滿足設(shè)計(jì)要求。小結(jié)與心得體會(huì)本次設(shè)計(jì),設(shè)計(jì)涉及的內(nèi)容比較廣,如數(shù)字電路技術(shù)部分,微形計(jì)算機(jī)控制技術(shù)尤其得數(shù)字控制技術(shù)部分和步進(jìn)機(jī)結(jié)構(gòu)原理工作方式以及數(shù)控中等部分,也有學(xué)過的80c51單

28、片機(jī)。這些內(nèi)容,不是單一存在,而是互相滲透牽連萬(wàn)千的。在了解每部分內(nèi)容的同時(shí),還要思考它們的聯(lián)系。這樣才能收到效果。如步進(jìn)機(jī),我們了解它的工作原理,知道它是是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度(稱為“步距角”),它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的,而它需要的脈沖從哪來呢,這就涉及單片機(jī)了,可以通過單片機(jī)設(shè)定脈沖輸給,單片機(jī)還可以通過脈沖頻率設(shè)定來控制步進(jìn)機(jī)的轉(zhuǎn)動(dòng)頻率即可以控制轉(zhuǎn)速。還有LED的工作,我們可以再數(shù)字電路技術(shù)里學(xué)習(xí)到它顯示的原理等等,這些知識(shí)單一存在時(shí)沒意義的,所以 我們學(xué)習(xí)應(yīng)該會(huì)聯(lián)系。通過本次設(shè)計(jì)令

29、我在回憶復(fù)習(xí)老師課堂講的理論知識(shí)的同時(shí),也進(jìn)一步達(dá)到了學(xué)以致用的目的,將課本所學(xué)的知識(shí)用到了實(shí)踐上,結(jié)合軟件和硬件進(jìn)行,充分鍛煉了自己的理論能力和動(dòng)手能力。總的來說,設(shè)計(jì)過程也遇到了種種困難,但在對(duì)硬件原理結(jié)構(gòu)的學(xué)習(xí)中,通過找資料,思考鍛煉了自學(xué)的能力;在編程時(shí)遇到困難以也學(xué)會(huì)了如何利用編譯軟件進(jìn)行調(diào)試,達(dá)到最終期望的結(jié)果,得到編程訓(xùn)練;不懂時(shí),通過同學(xué)間的討論交流,學(xué)習(xí)借鑒也達(dá)到了相互合作的目的,完成任務(wù),增進(jìn)了同學(xué)間的合作友誼。有遇到了種種困難的苦悶,也有遇難而上,解決困難時(shí)的喜悅,也鍛煉了我的耐心與堅(jiān)持,令我受益匪淺. 參考文獻(xiàn)1 于海生.計(jì)算機(jī)控制技術(shù).北京:機(jī)械工業(yè)出版社.2007年

30、2 陳冬云.ATmega128 單片機(jī)原理與開發(fā)指導(dǎo).北京:機(jī)械工業(yè)出版社.2005年3 王彥平.RPOTEL 99 電路設(shè)計(jì)指南.北京:清華大學(xué)出版社.2000年4 沈精虎.Protel99 入門與提高. 北京:人民郵電出版社.2007年5 吳金戌.8051 單片機(jī)時(shí)間與應(yīng)用. 北京:清華大學(xué)出版社,2003年6 胡輝.單片機(jī)原理及應(yīng)用設(shè)計(jì). 北京:中國(guó)水利水電出版社.2007年附錄1:附錄2:/*/* 步進(jìn)電機(jī)程序 */*P10為四相單四拍,P11為四相雙四拍,P12為四相八拍 */*P13為啟動(dòng)/停止控制、P14方向控制、P15加速、P16減速 */*用4位LED數(shù)碼管顯示工作步數(shù)。 *

31、/*用3個(gè)發(fā)光二極管顯示狀態(tài) */*正轉(zhuǎn)時(shí)紅燈亮,反轉(zhuǎn)時(shí)黃燈亮,不轉(zhuǎn)時(shí)綠燈亮 */*編寫人:曹媛媛 */*時(shí)間:2014-07-03 */*/#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 /電機(jī)控制數(shù)據(jù)口sbit Wela1=P20; /數(shù)碼管位選1sbit Wela2=P21; /數(shù)碼管位選2sbit Wela3=P22; /數(shù)碼管位選3sbi

32、t 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,0xd9;/步進(jìn)電機(jī)正相八拍數(shù)表;uchar NegitiveSingleFour=0xb1,0xb8,0xb2,0xb4; /步進(jìn)電機(jī)反相單四拍數(shù)表;uchar

33、 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;/共陽(yáng)極數(shù)碼管顯示數(shù)碼;uchar Flag=0; /用來控制拍數(shù)循環(huán); uchar Mode=0; /用來標(biāo)志工作模式;uchar Way=0; /用來標(biāo)志運(yùn)轉(zhuǎn)方向uchar Num=0; /用來定時(shí)計(jì)數(shù)uchar Dela

34、y=0; /用來標(biāo)志延時(shí)時(shí)間到uchar Move=0; /用來標(biāo)志啟動(dòng)或停止uint Step=0; /用來計(jì)算步數(shù)的;char Speed=12; /用來表示速度char SpeedMax=2; /最大速度-參數(shù)為時(shí)間char SpeedMin=22; /最小速度char SpeedChang=10; /速度每次改變量/*函數(shù)聲明部分*/void Init();void Display(uint);void DelayMs(uint);void KeyScan();void Motor();/*主函數(shù)*/void main()Init();while(1)KeyScan();Motor()

35、;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;SegData=SegShi;Wela3=1;DelayMs(2);Wela3=0;SegData=SegGe;Wela4=1;DelayMs(2);Wela4

36、=0;/*電機(jī)運(yùn)轉(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=PositiveDoubleFourFlag+;if(Flag>=4) Flag=0;Step+;break;case 3:MotorData=PositiveEightFlag+;if

37、(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:MotorData=NegitiveEightFlag+;if(Flag>=8) Flag=0;Step+;break;default:;elseMotorData=0xef;LedGreen=0;/*初始化函數(shù)*/void Init()Move=0;LedGreen=0;Step=0;

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論