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

下載本文檔

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

文檔簡介

1、步進(jìn)電機(jī)的單片機(jī)控制系統(tǒng)軟件設(shè)計(jì)4.1 控制程序總體設(shè)計(jì)系統(tǒng)軟件采用模塊化程序設(shè)計(jì),使程序流程清晰明了。系統(tǒng)主程序主 要完成的內(nèi)容:系統(tǒng)參數(shù)初始化、判斷保護(hù)信號(hào)、打開中斷啟動(dòng)電機(jī)。系 統(tǒng)主程序流程圖如下圖4-1所示1??梢钥闯?,主程序是一個(gè)死循環(huán),在 系統(tǒng)上電初始化完畢后,系統(tǒng)一直在不斷的執(zhí)行這個(gè)循環(huán)程序o在循環(huán)過程中,若產(chǎn)生中斷,則程序就轉(zhuǎn)去執(zhí)行相應(yīng)的中斷服務(wù)程序。在后面將逐 一介紹中斷服務(wù)程序,功能子程序等的設(shè)計(jì)。圖4-1主程序流程圖步進(jìn)電動(dòng)機(jī)的速度控制通過控制單片機(jī)發(fā)出的步進(jìn)脈沖頻率來實(shí)現(xiàn)。 對(duì)于用軟件實(shí)現(xiàn)脈沖分配,可以采用調(diào)整兩個(gè)控制字之間的時(shí)間問隔來實(shí) 現(xiàn)調(diào)速。根據(jù)調(diào)速原理,控制步進(jìn)

2、電動(dòng)機(jī)速度的方法可有兩種:一、通過 軟件延時(shí)的方法。改變延時(shí)的時(shí)間長度就可以改變輸出脈沖的頻率,但這種方法使CPU長時(shí)間等待,占用大量機(jī)時(shí),因此沒有實(shí)用價(jià)值。二、通 過定時(shí)器中斷的方法。在中斷服務(wù)子呈現(xiàn)中進(jìn)行脈沖輸出操作, 調(diào)整定時(shí)器的定時(shí)常數(shù)就可以實(shí)現(xiàn)調(diào)速。本系統(tǒng)軟件延時(shí)的方法實(shí)現(xiàn)調(diào)速,從HSO.0通道輸出連續(xù)脈沖信號(hào)。在50H單元存放脈沖處于“1”電平時(shí)間值(單位為2 ) , 52H 單元存放脈沖處于“0”電平時(shí)間值(單位為 2 ) 。改變 50H 和 52H 單元的內(nèi)容,就可以改變脈沖輸出的頻率及占空比。程序如下:主程序ORG2080HOUPSS:LDSP, #00C0H;設(shè)棧指針DI;

3、關(guān)中斷ORBINT-MASK , #8H;允許HSO 中斷LDTEMP, #HSO-INT;送HSO中斷服務(wù)程序入口地址STTEMP, 2006H0ADD54H, T1 , 52H;計(jì)算上跳變時(shí)刻SCALLLDCAM;調(diào) CAM 裝載子程序EI;開中斷HERE:SJMPHERE;等待中斷中斷服務(wù)程序HSO-INT:PUSHF;保護(hù)PSW,同時(shí)清PSWSCALLLDCAM;調(diào) CAM 裝載子程序POPF;恢復(fù)PSWRET;返回主程序CAM 裝載子程序LDCAM :LDBHSO-COMMAND,#20H ; HSO.0LDHSO-TIME , 54HADD54H, 50H;計(jì)算下跳變時(shí)刻N(yùn)OPNO

4、P;空操作LDBHSO-COMMAND,#10H ; 0-HSO.0,并產(chǎn)生HSO 中斷LDHSO-TIME , 54HADD54H, 52H;計(jì)算上跳變時(shí)刻RET其它高速輸出口(HSO)的連續(xù)脈沖信號(hào)的產(chǎn)生程序可依據(jù)如上程序?qū)懭?。這樣可通過改變輸出脈沖的頻率達(dá)到控制步進(jìn)電動(dòng)機(jī)速度和方向。4.2 鍵盤/顯示器的自動(dòng)掃描8279是Intel公司生產(chǎn)的通用可編程鍵盤和顯示器I/O接口芯片。利用8279,可實(shí)現(xiàn)對(duì)鍵盤/顯示器的自動(dòng)掃描,并識(shí)別鍵盤上閉合鍵的鍵號(hào), 這樣可以大大節(jié)省CPU對(duì)鍵盤/顯示器的操作時(shí)間,從而減輕 CPU的負(fù) 擔(dān),而且顯示穩(wěn)定,程序簡單,不會(huì)出現(xiàn)誤動(dòng)作。主程序框圖如下圖4-2所

5、示用戶程序圖4-2主程序框圖送DH單元I K1鍵狀態(tài)字置“ 1取DH單元內(nèi)容高 4位右移四次到低4位送顯示緩沖區(qū)I置緩沖區(qū)I滿標(biāo)志調(diào)顯示子程序DH內(nèi)浮住四位送顯示緩沖區(qū)II置緩沖區(qū)II滿標(biāo)志調(diào)顯示子程序開中斷返回A圖4-3中斷服務(wù)子程序框圖;主程序STATUSEQU7FFFHDATAEQU7FFEHAXEQU20HALEQU20HAHEQU21HBXEQU22HBLEQU22HBHEQU23HCXEQU24HCLEQU24HCHEQU25HDXEQU 26HDLEQU 26HDHEQ 27HEXEQ 28HELEQU 28HEHEQU 29HFXEQU 2AHFLEQU 2AHFHEQU 2B

6、HLDAX, #200EHLDBX, #3000HSTBX, AXLDBBL, #0DEHSTBBL, STATUSR0LDBL, #00HSTBBL, STATUSR0LDBBL, #34HSTBBL, STATUSR0LDBAH , #00HLDBAL , #00HLDBAH , #00HEI中斷服務(wù)程序LDBBL, #40HSTBBL, STATUSR0LDBBL, DATAR0STBBL, ELCLRCSUBBBL, #38HJCL1LDBBL, AHSHRBBL, #01HJNCL2INCBALLDBBL, ALSHRBBL, #01HJCL3LDBBL, ELSTBINCBL8LJ

7、MP L4EIRETL3LDBSTBLDBLJMPL1CLRCSUBB JNZ INCB LDBSHRB ANLB STB LDBLJMP LDB ANLB STBINCBLJMPL9EIRETL5LDBCLRCSUBB JNZ SHRB JCLDBBL, EH FLBL, ELBL, DLFL, #80HL8BL, #38HL5AHBL, DHBL, #04HBL, #0FHBL, DL FL, #80HL4BL, DHBL, #0FHAL , EH FLL4BL, ELBL, #39HL2AL , #02HL2AH , #00HLDBAL ,#00HLDBBL,DLSHLBBL,#04HA

8、NLBBL,#0F0HORBBL,EHSTBBL,DHLJMPL94.3 軟件脈沖分配器軟件脈沖分配器是指實(shí)現(xiàn)脈沖分配控制的計(jì)算機(jī)程序,其控制的基本原理是:根據(jù)步進(jìn)電機(jī)與計(jì)算機(jī)的接線情況及通電方式列出脈沖分配控制數(shù)據(jù)表;運(yùn)行時(shí)按節(jié)拍序號(hào)查表獲得相應(yīng)的控制數(shù)據(jù);在規(guī)定時(shí)刻通過輸出口將數(shù)據(jù)輸出到步進(jìn) 電機(jī)驅(qū)動(dòng)電路。下面通過單片機(jī)8031對(duì)X-Y工作臺(tái)的兩臺(tái)四相步進(jìn)電機(jī)進(jìn)行控 制的接口電路原理圖。圖中采用了負(fù)邏輯控制,即當(dāng)8031的P1 口某一口線輸出 低電平“ 0”時(shí),對(duì)應(yīng)的步進(jìn)電機(jī)繞組被接通。下圖 4-4是單片機(jī)與步進(jìn)電機(jī)的 接口電路圖:P1.0P1.1P1.2P1.3P1.4P1.58031P

9、1.6P1.7GND光電隔離接口GNDABCDABC *D 平00X向電動(dòng)機(jī)Y向電動(dòng)機(jī)卜表4-1是按上圖列出的四相八拍脈沖分配控制數(shù)據(jù)表:表4-1四相八拍脈沖分配控制數(shù)據(jù)表節(jié) 拍 序 號(hào)Y向電動(dòng)機(jī)X向電動(dòng)機(jī)通電相控制數(shù)據(jù)旋轉(zhuǎn)方向P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0DCBADCBA111101110AEEH向 下 正 轉(zhuǎn)向 上 反 轉(zhuǎn)211001100ABCCH311011101BDDH410011001BC99H510111011CBBH600110011CD33H701110111D77H801100110DA66H下圖4-5為脈沖分配控制程序框圖:X分配Y分配圖

10、4-5脈沖分配控制程序框圖對(duì)應(yīng)的子程序清單如下:XPD:CLR01HMOVR1, #52HMOVC , 02HAJMPPPDYPD:SETB01HMOV R1 ,#53HMOV C ,03HPPD:JCPPD2INCR1CJNER1,#09H,PPD3MOVR1,#01HAJMPPPD3PPD2:DECR1CJNER1,#00H,PPD3MOVR1,#08HPPD3:MOV A,R1ADDA,#01HMOVCA+PCAJMPPPD5TABLE :DB: 0EEH, 0CCH, 0DDH, 99HDB: 0BBH, 33H,77H, 66HPPD5:JB 01H,PPD6ANLA, #0FHAN

11、L55H, #0F0HORL55H, #0F0HORL55H, ARETPPD6:ANLA,#0F0HANL55H, #0FHORL55H, ARET關(guān)于子程序的若干問題說明:1) 標(biāo)號(hào) XPD 和 YPD 分別為向X 向及 Y 向步進(jìn)電機(jī)分配脈沖時(shí)的子程序入口。2)位02H、 03H 分別為 X 向、 Y 向步進(jìn)電機(jī)正反轉(zhuǎn)標(biāo)志位,其值來自主程序。3) 55H 為脈沖分配控制數(shù)據(jù)緩沖單元,其中的數(shù)據(jù)將從P1 口輸出給步進(jìn)電機(jī)。由于子程序每次運(yùn)行只能對(duì)一個(gè)步進(jìn)電機(jī)進(jìn)行脈沖分配控制,故55H 中的數(shù)據(jù)每次只有半個(gè)字節(jié)被修改,而另一半則保留。4.4 速度控制程序與方向控制程序4.4.1 速度控制程序

12、通過控制脈沖分配頻率可實(shí)現(xiàn)步進(jìn)電機(jī)的速度控制。速度控制也有硬、軟件兩種方法。硬件方法是在硬件脈沖分配器的時(shí)鐘脈沖輸入端(CP 端)接一可變頻率脈沖發(fā)生器,改變其振蕩頻率,即可改變步進(jìn)電機(jī)速度。下面主要介紹軟件方法。軟件方法常采用定時(shí)器來確定每相鄰兩次脈沖分配的時(shí)間問隔,即脈沖分配周期,并通過中斷服務(wù)器程序向輸出分配控制數(shù)據(jù)12 0下面的程序即可實(shí)現(xiàn)這一功能,其中采用了單片機(jī)8031的CTC0 (零號(hào)定時(shí)/計(jì)數(shù)器)。FC:MOVTL0,5BHMOVTH0,5AHSETBTR0;5AH、5BH中存放著與速度相關(guān)數(shù)據(jù);相應(yīng)的定時(shí)常數(shù);啟動(dòng)定時(shí)器;其他程序INTR0:;重裝定時(shí)常數(shù);輸出脈沖分配控制數(shù)

13、據(jù);中斷返回MOVTL0, 5BHMOVTH0, 5AHMOVP1, 55HRETI程序中前三條指令的作用是預(yù)置定時(shí)常數(shù)及啟動(dòng)定時(shí)器,可放在主程序中執(zhí) 行,也可作為子程序調(diào)用。定時(shí)器啟動(dòng)后,計(jì)算機(jī)可進(jìn)行其他工作。當(dāng)有定時(shí)中 斷申請(qǐng)時(shí),CPU向應(yīng)中斷,從標(biāo)號(hào)為INTR0的中斷服務(wù)器程序入口開始進(jìn)行中斷 服務(wù)。首先重裝定時(shí)器常數(shù),為下個(gè)節(jié)拍做好準(zhǔn)備,然后從 P1 口輸出55H中寄 存的脈沖分配控制數(shù)據(jù)。速度控制的關(guān)鍵是定時(shí)常數(shù)的確定。設(shè)數(shù)控X-Y工作臺(tái)的脈沖當(dāng)量為H(mm), 要求的運(yùn)動(dòng)速度為v(mm/min), 8031的晶振頻率為fose(HZ),采用CTC0的工作 模式1 (即16位定時(shí)器模

14、式),則定時(shí)常數(shù)Tx(s)可按下式確定。丁 c165 fosc* hTx 2v4.4.2 方向控制程序在程序的編制中,要特別注意步進(jìn)電機(jī)在換向時(shí)的處理。為使步進(jìn)電機(jī)在換向時(shí)能平滑過渡,不至于產(chǎn)生錯(cuò)步,應(yīng)在每一步中設(shè)置標(biāo)志位。其中20H單元的 各位為步進(jìn)電機(jī)正轉(zhuǎn)標(biāo)志位;21H單元各位為反轉(zhuǎn)標(biāo)志位。在正轉(zhuǎn)時(shí),不僅給正 轉(zhuǎn)標(biāo)志位賦值,也同時(shí)給反轉(zhuǎn)標(biāo)志位賦值;在反轉(zhuǎn)時(shí)也如此。這樣,當(dāng)步進(jìn)電機(jī) 換向時(shí),就可以上一次的位置作為起點(diǎn)反向運(yùn)動(dòng),避免了電機(jī)換向時(shí)產(chǎn)生錯(cuò)步130 下圖4-6是方式1程序框圖:圖4-6正反轉(zhuǎn)程序框圖方式1源程序:MOV20H, #00H;20H單兀置初值,電機(jī)止轉(zhuǎn)位置指針MOV21H

15、, #00H;21H單元置初值,電機(jī)反轉(zhuǎn)位置指針MOVP1, #0C0H;P1 口置初值,防止電機(jī)上電短路MOVTMOD , #60H;T1計(jì)數(shù)器置初值,開中斷MOVTL1 , #0FFHMOVTH1 , #0FFHSETBET1SETBEASETBTR1SJMP$*計(jì)數(shù)器1 中斷程序*IT1P:JB P3.7, FAN ;電機(jī)正、反轉(zhuǎn)指針*電機(jī)正轉(zhuǎn)*JB00H, LOOP0JB01H, LOOP1JB02H, LOOP2JB03H, LOOP3JB04H, LOOP4JB05H, LOOP5JB06H, LOOP6JB07H, LOOP7LOOP0:MOVP1, #0D0HMOV20H, #

16、02HMOV21H, #40HAJMPQUITLOOP1:MOVP1, #090HMOV20H, #04HMOV21H, #20HAJMPQUITLOOP2:MOVP1, #0B0HMOV20H, #08HMOV21H, #10HAJMPQUITLOOP3:MOVP1, #030HMOV20H, #10HMOV21H, #08HAJMPQUITLOOP4:MOVP1, #070HMOV20H, #20HMOV21H, #04HAJMPQUITLOOP5:MOVP1, #060HMOV20H, #40HMOV21H, #02HAJMPQUITLOOP6:MOVP1, #0E0HMOV20H, #

17、80HMOV21H, #01HAJMPQUITLOOP7:MOVP1, #0C0HMOV20H, #01HMOV21H, #80HAJMPQUIT*電機(jī)反轉(zhuǎn)*FAN:JB08H, LOOQ0JB09H, LOOQ1JB0AH , LOOQ2JB0BH, LOOQ3JB0CH, LOOQ4JB0DH, LOOQ5JB0EH, LOOQ6JB0FH, LOOQ7LOOQ0:MOVP1, #0A0HMOV21H, #02HMOV20H, #40HAJMPQUITLOOQ1 :MOVP1, #0E0HMOV21H, #04HMOV20H, #20HAJMPQUITLOOQ2:MOVP1, #0C0HM

18、OVMOVAJMPLOOQ3:MOVMOVMOVAJMPLOOQ4:MOVMOVMOVAJMPLOOQ5:MOVMOVMOVAJMPLOOQ6:MOVMOVMOVAJMPLOOQ7:MOVMOVMOVQUIT:END21H, #08H20H, #10H QUITP1, #0D0H21H, #10H20H, #08HQUITP1, #050H21H, #20H20H, #04H QUITP1, #070H21H, #40H20H, #02H QUITP1, #030H21H, #80H20H, #01H QUITP1, #0B0H21H, #01H20H, #80HRETI該驅(qū)動(dòng)器經(jīng)實(shí)當(dāng)驗(yàn)證能驅(qū)

19、動(dòng)0.5Nm的步進(jìn)電機(jī)。將驅(qū)動(dòng)部分的電阻、電容 及續(xù)流二極管的有關(guān)參數(shù)加以調(diào)整,可驅(qū)動(dòng) 1.2N m的步進(jìn)電機(jī)。該驅(qū)動(dòng)器電 路簡單可靠,結(jié)構(gòu)緊湊,對(duì)于I/O 口線與單片機(jī)資源緊張的系統(tǒng)來說特別適用。4.5 自動(dòng)升降速程序步進(jìn)電機(jī)允許的啟動(dòng)頻率一般較低,當(dāng)要求高速運(yùn)行時(shí),必須用較低的頻率啟動(dòng), 然后逐漸加速,否則不能正常啟動(dòng)。制動(dòng)時(shí)也應(yīng)該逐步降到較低的頻率后再制動(dòng), 否則定位不準(zhǔn)。步進(jìn)電機(jī)自動(dòng)升降速也可以通過硬、軟件兩種方法實(shí)現(xiàn)。這里只介紹軟件自動(dòng)升降速控制。軟件自動(dòng)升降速控制的基本原理是:根據(jù)允許的啟動(dòng)頻率確定定時(shí)器的初始定時(shí)常數(shù),在升速過程中,按一定規(guī)律不斷增加定時(shí)常數(shù)(對(duì)加法計(jì)數(shù)的定時(shí)器 來講),減小中間時(shí)間問隔,加快脈沖分配頻率;在恒速過程中,保持定時(shí)常數(shù) 不變;在降速過程中,按規(guī)律不斷減小定時(shí)常數(shù),降低脈沖分配頻率,直到定時(shí) 常數(shù)等于希望的制動(dòng)頻率所對(duì)應(yīng)的值時(shí),停止脈沖分配,使步進(jìn)電機(jī)制動(dòng)14 0升降速過程可按指數(shù)或直線(勻加速)規(guī)律控制,前者的特點(diǎn)是升降速過程 短,與步進(jìn)電機(jī)的階躍響應(yīng)規(guī)律吻合,但程序設(shè)計(jì)復(fù)雜;后者的特點(diǎn)是程序簡單, 但升降速過程較長。下圖4-7是采用分段直線規(guī)律進(jìn)行的自動(dòng)升降速控制的程序框圖:圖4-7自動(dòng)升降速控制的程序框圖 對(duì)應(yīng)的單片機(jī)程序清單如下:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論