基于單片機的步進電動機控制系統設計說明_第1頁
基于單片機的步進電動機控制系統設計說明_第2頁
基于單片機的步進電動機控制系統設計說明_第3頁
基于單片機的步進電動機控制系統設計說明_第4頁
基于單片機的步進電動機控制系統設計說明_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 PAGE24 / NUMPAGES24 學院畢業論文(設計)題目:基于單片機的步進電動機 控制系統設計專業:電氣工程與其自動化吉湖指導教師(職稱): 生建 (講師) 二00 九年三月 日學院畢業論文(設計)開題報告 2009 年3 月日論文(設計)題目:基于單片機的步進電動機控制系統的設計 吉湖年級 2006級所在院系物理與機電工程學院專業 電氣工程與其自動化指導教師 生建開展本課題的意義與工作容:數字化電動機控制技術的發展使電機這個古老的機電能量轉換裝置得到新的發展和廣泛運用,極大的改善了工農業的生產效率,改善了人民的生活水平。步進電動機是純粹的數字控制電動機,它將電脈沖信號轉變成角位移,

2、即給一個脈沖信號,步進電動機就轉一個角度,因此非常適合于單片機控制。總體安排與進度:第1周:到圖書管或上網查找資料 第2周:整理所找來的資料 第3周:初步完成本系統的設計給指導老師批改 第4周:根據老師的點評完善本系統的設計課題預期達到的效果:本文以單片機為控制核心,達到理想的步進電動機位置控制和加減速控制。指導教師意見:簽名:基于單片機的步進電動機控制系統設計 學院:物理與機電工程學院 專業:電氣工程與其自動化 學號:2006040632 :吉湖 指導老師:生建 摘要數字化電機控制技術的發展使得電機這一古老的機電能量轉換裝置得到新的發展和廣泛的應用,并極提高了工農業生產效率,改善了人民的生活

3、水平。步進電動機是純粹的數字控制電動機,它將電脈沖信號轉變成角位移,即給一個脈沖信號,步進電動機就轉一個角度,因此非常適合于單片機控制。為了提高步進電機控制系統的動態性能和控制精度提出基于單片機的步進電機控制系統設計方法,包括系統硬件、軟件與加減速控制算法的設計。 關鍵詞 單片機 步進電機控制系統 位置控制 加減速控制目錄摘要、關鍵詞3第一章 三相反應式步進電動機原理與控制5一 三相反應式步進電機的工作原理5 二 步進電動機控制6第二章 系統硬件設計6 一 脈沖分配電路6 二 功率放大電路設計8第三章 系統軟件設計8 一 位置控制8(一)位置控制設計8 (二)位置控制設計程序實現8 二 加減速

4、控制9(一)加減速控制設計9 (二)加減數控制程序實現11致詞12參考文獻12附錄1系統程序13附錄2 位置控制單片機程序19附錄3 加減速控制單片機程序21引言: 隨著微電子技術的發展,數字信號處理器以其強大的運算處理能力,較高的控制精度而在自動控制系統中普遍使用。為了提高步進電機的控制性能和精度,本文以單片機AT89C51為控制核心,實現了三相反應式步進電機控制系統的設計。第一章 三相反應式步進電動機概述與控制 一、三相反應式步進電機的工作原理 三相反應式步進電動機由轉子和定子兩大部分組成如圖1-1所示。在定子繞組上有三對磁極,磁極上裝有勵磁繞組。勵磁繞組分為三相,分別為A、B、C三相繞組

5、。步進電機的轉子是由軟磁材料制成,在轉子上均勻分布四個凸極,極上不裝繞組,轉子的凸極也稱為轉子的齒1。 圖1-1 三相反應式步進電動機原理圖 當步進電動機的A相通電,B相和C相不通電時,由于A相繞組產生的磁通要經過磁阻最小的路徑形成閉合磁路,這樣將使轉子齒13和定子A相對齊,如圖中A相通電情況所示。當A相斷電,改為B相通電時,同A相通電情況一樣,磁通也要經過磁阻最小的路徑形成閉合回路,這樣轉子順時針轉過一定角度,使轉子齒2、4與B相對齊,轉子在空間轉過的角度為,如圖B相通電所示。當B相改為C相時,同時可使轉子順時針轉過的角度為空間角度,如圖C相通電所示。若按照A-B-C-A的通電順序往復下去,

6、則步進電機的轉子將按一定速度沿逆時針方向旋轉,步進電機轉速取決于三相控制繞組的通、斷電源的頻率。當按A-C-B-A順時針通電時,步進電機的轉動方向將改為順時針。在步進電機控制過程中,定子繞組每改變一次通電方式,稱為一拍。上述的通電控制方式,由于每次只有一相控制繞組通電,稱為三相當三拍控制方式,除此控制方式外,還有三相單、雙六拍工作方式和三相雙三拍控制方式,在三相單、雙六拍工作方式中,控制繞組通電順序為A-AB-B-BC-C-CA-A或A-AC-C-CB-B-BA-A。在三相雙三拍控制方式中,控制繞組通電順序為AB-BC-CA-AB或AC-CB-BA-AC。步進電機每改變一次通電狀態(一拍)轉子

7、轉過的角度稱為步進點饑的步距角,從圖中可以看出三相單三拍的步距角為,而三相單、雙六拍步距角為,三相雙三拍的步距角為。步進電機的步距角可通過下式計算 (1-1) 式中的m為步進電機的相數,對于三相步進電機;C為通電狀態系數,對于單拍或雙拍方式工作時;單雙拍混合方式時;為步進電機轉子的齒數。步進電機的轉速n可通過下式計算 (1-2)式中,f為步進電機每秒的拍數,成為步進電機的通電脈沖頻率。二 、步進電動機控制步進電動機是數字控制系統中一種十分重要的自動化執行元件,在工業自動化裝備,辦公自動化設備中有著廣泛的運用,近年來,控制技術、計算機技術以與微電子技術的迅速發展,有力地推動了步進電動機控制技術的

8、進步,提高了步進電動機運動控制裝置的應用水平。過去電動機的控制多用模擬法,隨著計算機應用技術的迅速發展,電動機的控制也發生了深刻的變化,步進電機常常和計算機一起組成高精度的數字控制系統。模擬控制已經逐漸被使用單片機為主的混合控制和全數字控制所取代。第二章 系統硬件設計步進電機是一種將電脈沖信號轉換成角位移的執行機構,其轉子角位移與輸入脈沖的頻率成正比,通過改變脈沖頻率可以實現大圍的調速;同時,步進電機易于與計算機和其他數字元件接口,因此被應用于各種數字控制系統中2,本設計的步進電動機控制系統由單片機(控制電路),脈沖分配電路、功率放大電路(驅動電路)、步進電動機與電源系統組成組成。系統結構框圖

9、如圖2-1所示。圖2-1 系統結構框圖一、脈沖分配電路由步進電動機的工作原理知道,要使電動機正常的一步一步地運行,控制脈沖必須按一定的順序分別供給電動機各相。給三相繞組輪流供電被稱為脈沖分配,實現脈沖分配的方法有硬件法和軟件法兩種。硬件分配法由環行分配器來實現,軟件分配法由程序從計算機接口直接控制輸出脈沖的速度和順序3。 由于軟件法在電動機運行過程中,要不停產生控制脈沖,占用大量CPU時間,可能使單片機無法同時進行其他工作(如監測等),所以本系統采用硬件法。使用一種8713集成電路芯片。8713屬于單極性控制,用于控制三相和四相步進電機,可以選擇以下不同的工作方式:三相步進電動機,單三拍,雙三

10、拍,六拍四相步進電動機,單四拍,雙四拍,八拍8713可以選擇單時鐘輸入或雙時鐘輸入;具有正反轉控制、初始化復位、工作方式、和輸入脈沖狀態監視等功能;所有輸入端部都設有斯密特整形電路,提高抗干擾能力;使用418V直流電源,輸出電流為20mA。8713有16個引腳,各引角功能如表2-1所列4 表2-1 8713引腳功能 引腳功能說明1正轉脈沖輸入端1.,2腳為雙時鐘輸入端2反轉脈沖輸入端3脈沖輸入端3,4腳為單時鐘輸入端4轉向控制端:0-反轉;1-正轉5,6工作方式選擇:00為三(四)拍;01,10為單三(四)拍;11為六(八)拍7三/四相選擇:0-三相;1-四相8地9復位端。低電平有效10,11

11、12,13輸出端。四相用13、12、11、10腳,分別代表A、B、C、D;三相用13、12、11腳,分別代表A、B、C14工作方式監視。0為單三(四)拍;1為雙三(四)拍;脈沖為六(八)拍15輸出脈沖狀態監視,與時鐘同步16電源8713脈沖分配器與單片機接口如圖2-2 圖2-2 8713脈沖分配器與單片機接口圖 本系統選用單時鐘輸入方式,8713的3引腳為步進脈沖端,4引腳為轉向控制端,這兩個引腳的輸入均由單片機提供和控制,所以5、6、7腳均接高電平。由于采用了脈沖分配器,單片機只需提供步進脈沖,進行速度控制和轉向控制,脈沖分配的工作交給脈沖分配器來自動完成。因此CPU的負擔減少很多。二、功率

12、放大電路 脈沖分配器8713的A、B、C三端輸出電流很小,而所用的三相反應式步進電機驅動電流較大,每相靜態電流為3A。為滿足驅動要求,系統設計了步進電機功率驅動電路,如圖2-3所示(以A相為例)圖23 步進電機功率驅動電路 電路采用三級晶體管放大,第一級用3DG6小功率管,第二級用3DK4中功率管,第三級用3DD15大功率管。LA為步進電機A相繞組。R15為限流電阻,保證電流穩態值;D2為續流二極管,防止3DD15關斷時繞組反電勢擊穿管子。C9為加速電容,動態工作時,利用其旁路作用,使電機繞組電流上升加快,來改善電流波形的前沿,提高電機高頻性能5。第二章 系統軟件設計步進電機存在啟動時失步,停

13、止時振蕩現象,這是影響步進電機控制精度的主要原因。因此,軟件設計主要介紹步進電動機位置控制和加、減速控制與程序實現。位置控制(一)位置控制設計步進電動機每走一步,步數減1,如果沒有失步的存在,當執行機構到達目標位置時,步數正好為0。因此,用步數等于0來判斷是否移動到目標位置,作為步進電動機停止運行信號。絕對位置參數可作為人機對話的顯示參數,或作為其他控制目的的重要參數,它與步進電動機的轉向有關,當步進電動機正轉時,步進電動機每走一步,絕對位置加1,當步進電動機反轉,絕對位置隨每次步進減1。硬件連接如圖2-2所示。(二)位置控制設計程序實現中斷服務子程序框圖,如圖3-1所示,每次中斷仍然改變一次

14、P1.0的狀態,每兩次中斷步進電動機才走一步。 圖3-1 中斷服務子程序框圖 本程序使用資源:30H、31H存放定時常數,低位在前; 32H34H存放絕對位置參數(假設用3字節),低位在前;35H、36H存放步數(假設最大值占2字節),低位在前。 步進電動機的正反轉控制在主程序中實現,如果正轉,使P1.1=1;如果反轉,使P1.1=0。二、加減速控制(一)加減速控制設計為滿足加減速控制要求,本系統步進電機按照指數加減速曲線進行控制,如圖3-2所示。 圖3-2 指數加減速曲線圖 系統按指數曲線加減速時,驅動脈沖頻率f與升數時間t的關系為: (3-1)式中fm為步進電機最高運行頻率;是決定時間快慢

15、的時間常數,實際工作中可由實驗來確定。實際運行中,若步進電機運行頻率為fg,由式(公式3-1)可算出升速時間為: (3-2) 由于DSP是用定時器比較中斷方式來控制步進電機速度的,電機的加減速控制實際上是不斷改變定時器周期寄存器的裝載值。為了編程的方便,可由階梯曲線來擬合加速曲線,將升速段按照速度等間距均勻的離散為n檔,如圖3-3所示 。 圖3-3 加速曲線離散化圖 若步進電機啟動脈沖頻率為fg,穩定運行最高頻率為fc,則相鄰速度級的頻率變化為: (3-3)則每一檔頻率fk為: (3-4)每一檔運行時間Tk為: (3-5)式中tr(fk)、tr(fk+1)分別為運行頻率fk與fk+1時的升速時

16、間。各分檔速度的運行速度Nk為: (3-6)則加速過程總步數Nr為: (3-7)執行加速控制時,對每檔的速度讀要計算在此臺階上應走步數,然后以遞減方式查詢。當減至0時,表明該速度檔步數已走完,進入下一檔速度。同時,遞減加速過程總步數,直到加速過程走完。以上是對步進電機加速過程的處理方法,減速過程的處理方法同加速過程6。(二)加減數控制程序實現本程序的資源分配如下: R0中間寄存器; R1存儲速度級數;R2存儲級步數; R3加減速狀態指針,加速時指向35H,恒速時指向37H,減速時指向3AH; 32H34H存放絕對位置參數(假設用3字節),低位在前; 35H36H存放加速總步數(假設用2字節),

17、低位在前; 37H39H存放恒速總步數(假設用3字節),低位在前; 3AH3BH存放減速總步數(假設用2字節),低位在前定時常數系列存放在以ABC為起始地址的ROM中。初始R3=35H,R1,R2都有初使值。加減速程序框圖如圖3-4所示 圖3-4 加減速程序框圖 致詞:在本設計完成之際,我要向所有給予我指導、關心、支持和幫助的人表示最衷心的感!在設計本系統的過程中,我的指導老師生建老師給了我悉心的指導和幫助,他為本設計的研究和撰寫提供了各種技術資料和技術咨詢,特別是老師在許多關鍵問題上的正確指導才能使得我的設計得以順利完成。本人在設計之前也閱讀了大量的相關的文獻資料,從中汲取了豐富的知識,借此

18、機會向我的導師和這些作者表示衷心的感!參考文獻1許曉蜂。電機與拖動。M。高等教育,20072亞東,從心,王小新。步進電機速度的精確控制。J。交通大學,2001,35,(10):1517-15203周慶貴,黃章。電氣控制技術。M。化學工業,20074王曉明。電動機的單片機控制。M。航天航天大學,20075孟武勝,亮。基于AT89C52單片機的步進電機控制系統的設計。J。測控技術,2006,25(11):45-47。6王瑾,基于DSP和CAN總線的步進電機控制系統。J。電子測量技術,2009,31(1):112-115附錄1 系統程序;相關參數定義MAICHONGBITP1.0FANGXIANGB

19、ITP1.1FINISHBITP1.7JUEDUIMAICHONG_LEQUR5JUEDUIMAICHONG_MEQUR6JUEDUIMAICHONG_HEQUR7DANGQIANWEIZHI_LEQU30HDANGQIANWEIZHI_MEQU31HDANGQIANWEIZHI_HEQU32HSHEDINGWEIZHI_LEQU33HSHEDINGWEIZHI_MEQU34HSHEDINGWEIZHI_HEQU35HJIASU_STEP_LEQU36HJIASU_STEP_HEQU37HHENGSU_STEP_LEQU38HHENGSU_STEP_MEQU39HHENGSU_STEP_HEQ

20、U3AHJIANSU_STEP_LEQU3BHJIANSU_STEP_HEQU3CHDANGQIANSUDUEQU3DHORG0000HAJMPMAIN ORG000BH ;定時器0中斷入口 LJMPTIME0_INT ;調用定時器0中斷子程序ORG0040HMAIN:MOVR0,#00H DJNZR0,$;等待系統電源穩定 MOVSP,40H;指定堆棧指針 CLRFINISH;清除完成標記 MOVDANGQIANSUDU,#0H;標示當前轉速;初始化定時器 MOVTMOD,#01H;定時器0設定在工作方式1,最大定時周期65536uSMOVTH0,#3CH MOVTL0,#0B0H;設定定時

21、器0最大工作周期50mS MOVIE,#82H;開定時器0中斷INIT_WEIZHI:;手動設定當前位置和預定位置,模擬實際工作情況CLRFINISHMOVDANGQIANWEIZHI_L,#80HMOVDANGQIANWEIZHI_M,#60HMOVDANGQIANWEIZHI_H,#98HMOVSHEDINGWEIZHI_L,#80HMOVSHEDINGWEIZHI_M,#96HMOVSHEDINGWEIZHI_H,#98HLCALLINIT_JUEDUIMAICHONG;計算絕對偏差脈沖數LCALLINIT_JIAJIANSU;計算加,恒,減速脈沖數SETBTR0JNBFINISH,$J

22、MPINIT_WEIZHI;返回初始化絕對位置脈沖數;ORGINIT_JUEDUIMAICHONG:;計算絕對偏差脈沖數CLRCMOVA,SHEDINGWEIZHI_LSUBBA,DANGQIANWEIZHI_LMOVJUEDUIMAICHONG_L,A;計算絕對偏差脈沖數最低字節MOVA,SHEDINGWEIZHI_MSUBBA,DANGQIANWEIZHI_MMOVJUEDUIMAICHONG_M,A;計算絕對偏差脈沖數中間字節MOVA,SHEDINGWEIZHI_HSUBBA,DANGQIANWEIZHI_HMOVJUEDUIMAICHONG_H,A;計算絕對偏差脈沖數最高字節JCQUF

23、ANSETBFANGXIANGRETQUFAN:CLRCMOVA,JUEDUIMAICHONG_LCPLA;取反MOVJUEDUIMAICHONG_L,A;計算絕對偏差脈沖數最低字節MOVA,JUEDUIMAICHONG_MCPLA;取反MOVJUEDUIMAICHONG_M,A;計算絕對偏差脈沖數最低字節MOVA,JUEDUIMAICHONG_HCPLA;取反MOVJUEDUIMAICHONG_H,A;計算絕對偏差脈沖數最低字節CLRFANGXIANGRET;ORGINIT_JIAJIANSU:;加減速脈沖數計算CLRCCJNEJUEDUIMAICHONG_H,#01H,H_BUDENG;判

24、斷絕對位置脈沖數最高字節CJNEJUEDUIMAICHONG_M,#86H,M_BUDENG;判斷絕對位置脈沖數中間字節CJNEJUEDUIMAICHONG_L,#0A0H,L_BUDENG;判斷絕對位置脈沖數最低字節MOVJIASU_STEP_H,#0C3HMOVJIASU_STEP_L,#50H;設定加速脈沖數50000MOVHENGSU_STEP_H,#0MOVHENGSU_STEP_M,#0MOVHENGSU_STEP_L,#0;設定恒速脈沖數0MOVJIANSU_STEP_H,#0C3HMOVJIANSU_STEP_L,#50H;設定減速脈沖數50000H_BUDENG:JNCDAY

25、UAJMPXIAOYUCLRCM_BUDENG:JNCDAYUAJMPXIAOYUL_BUDENG:JNCDAYUAJMPXIAOYUXIAOYU:MOVA,JUEDUIMAICHONG_MRRCAMOVJIASU_STEP_H,A;設定加速脈沖數為絕對脈沖數的一半MOVJIANSU_STEP_H,A;設定減速脈沖數為絕對脈沖數的一半MOVA,JUEDUIMAICHONG_LRRCAMOVJIASU_STEP_L,AMOVJIANSU_STEP_L,AMOVA,#0ADDCA,#0MOVHENGSU_STEP_H,#0MOVHENGSU_STEP_M,#0MOVHENGSU_STEP_L,A;

26、設定恒速脈沖數RETDAYU:MOVJIASU_STEP_H,#0C3HMOVJIASU_STEP_L,#50H;設定加速脈沖數50000MOVJIANSU_STEP_H,#0C3HMOVJIANSU_STEP_L,#50H;設定減速脈沖數50000CLRCMOVA,JUEDUIMAICHONG_LSUBBA,#0A0HMOVHENGSU_STEP_L,AMOVA,JUEDUIMAICHONG_MSUBBA,#086HMOVHENGSU_STEP_M,AMOVA,JUEDUIMAICHONG_HSUBBA,#01HMOVHENGSU_STEP_H,A;設定恒速脈沖數RETTIME0_INT:;

27、定時器0中斷子程序CLRTR0CPLMAICHONG;脈沖電平取反MAICHONG,HALF;判斷是否為上升沿,以實現一個周期一個上升沿LCALLREINIT_TIME0;下降沿則直接裝入原時間常數完成一個周期RETIHALF:MOVA,JIASU_STEP_L;判斷加速低脈沖數是否為0CJNEA,#0,JIASU1;為0則轉向加速高脈沖數判斷MOVA,JIASU_STEP_H;判斷加速低脈沖數是否為0CJNEA,#0,JIASU2;為0則加速結束轉向恒速脈沖數判斷MOVA,HENGSU_STEP_L;判斷恒速低脈沖數是否為0CJNEA,#0,HENGSU1;為0則轉向恒速中間脈沖數判斷MOV

28、A,HENGSU_STEP_M;判斷恒速中間脈沖數是否為0CJNEA,#0,HENGSU2;為0則轉向恒速高脈沖數判斷MOVA,HENGSU_STEP_H;判斷恒速高字節脈沖數是否為0CJNEA,#0,HENGSU3;為0則恒速區結束轉向減速高脈沖數判斷MOVA,JIANSU_STEP_L;判斷減速低脈沖數是否為0CJNEA,#0,JIANSU1;為0則轉向減速高脈沖數判斷MOVA,JIANSU_STEP_H;判斷減速高脈沖數是否為0CJNEA,#0,JIANSU2;為0則電機停止轉動SETBFINISH;P1.7做為完成指示燈RETIJIASU1:;判斷加速低脈沖數不為0則減1DECJIAS

29、U_STEP_LACALLREINIT_TIME0;重新裝入定時常數RETIJIASU2:DECJIASU_STEP_H;判斷加速高脈沖數不為0則減1DECJIASU_STEP_L;判斷加速低脈沖數減1INC DANGQIANSUDU;改變當前速度指針ACALLREINIT_TIME0;重新裝入定時常數RETIHENGSU1:DECHENGSU_STEP_L;判斷恒速低脈沖數不為0則減1ACALLREINIT_TIME0;重新裝入定時常數RETIHENGSU2:DECHENGSU_STEP_M;判斷恒速低脈沖數不為0則減1DECHENGSU_STEP_L;判斷恒速低脈沖數減1ACALLREIN

30、IT_TIME0;重新裝入定時常數RETIHENGSU3:DECHENGSU_STEP_H;判斷恒速低脈沖數不為0則減1DECHENGSU_STEP_M;判斷恒速低脈沖數減1DECHENGSU_STEP_L;判斷恒速低脈沖數減1ACALLREINIT_TIME0;重新裝入定時常數RETIJIANSU1:DECJIANSU_STEP_L;判斷減速低脈沖數不為0則減1ACALLREINIT_TIME0;重新裝入定時常數RETIJIANSU2:DECJIANSU_STEP_L;判斷減速低脈沖數不為0則減1DECJIANSU_STEP_H;判斷減速低脈沖數減1DECDANGQIANSUDU;改變當前速

31、度指針ACALLREINIT_TIME0;重新裝入定時常數RETIREINIT_TIME0:;定時器0時間常數重裝子程序MOVA,DANGQIANSUDU;取得當前速度指針位置MOVDPL,AMOVDPH,#02HCLRAMOVCA,A+DPTR;查表取出指針所對應的周期時間常數低字節MOVTL0,AMOVDPH,#03HCLRAMOVCA,A+DPTR;查表取出指針所對應的周期時間常數低字節MOVTH0,ASETBTR0;重新啟動定時器0;如果是對步進電機的轉速,即周期有嚴格要求的情況下,應對時間常數進行校正RET;步進電機加減速時間常數表;當前數據表示電機運行頻率10Hz2500Hz,可自

32、行更改;0 1 2 3 4 5 6 7 8 9ORG0200HSUDU_L:DB0B0H,039H,00BH,092H,006H,08EH,074H,05AH,096H,05EHDB0D1H,005H,009H,0E8H,0A8H,050H,0E3H,067H,0DCH,045HDB0A4H,0FBH,04AH,092H,0D5H,012H,04BH,07FH,0B0H,0DEHDB008H,031H,056H,079H,09BH,0BAH,0D8H,0F4H,00FH,028HDB040H,057H,06DH,082H,096H,0A9H,0BCH,0CDH,0DEH,0EEHDB0FDH,

33、00CH,01BH,028H,036H,043H,04FH,05BH,066H,072HDB07CH,087H,091H,09BH,0A4H,0ADH,0B6H,0BFH,0C7H,0CFHDB0D7H,0DFH,0E7H,0EEH,0F5H,0FCH,003H,009H,00FH,016HDB01CH,022H,027H,02DH,033H,038H,03DH,042H,047H,04CHDB051H,056H,05AH,05FH,063H,068H,06CH,070H,074H,078HDB07CH,080H,084H,087H,08BH,08EH,092H,095H,099H,09CHD

34、B09FH,0A2H,0A5H,0A8H,0ABH,0AEH,0B1H,0B4H,0B7H,0BAHDB0BCH,0BFH,0C2H,0C4H,0C7H,0C9H,0CCH,0CEH,0D0H,0D3HDB0D5H,0D7H,0DAH,0DCH,0DEH,0E0H,0E2H,0E4H,0E6H,0E8HDB0EAH,0ECH,0EEH,0F0H,0F2H,0F4H,0F6H,0F8H,0F9H,0FBHDB0FDH,0FFH,000H,002H,004H,005H,007H,008H,00AH,00BHDB00DH,00EH,010H,011H,013H,014H,016H,017H,019H

35、,01AHDB01BH,01DH,01EH,01FH,020H,022H,023H,024H,025H,027HDB028H,029H,02AH,02BH,02DH,02EH,02FH,030H,031H,032HDB033H,034H,035H,036H,037H,038H;0 1 2 3 4 5 6 7 8 9ORG0300HSUDU_H:DB03CH,0AAH,0C9H,0D7H,0E0H,0E5H,0E9H,0ECH,0EEH,0F0HDB0F1H,0F3H,0F4H,0F4H,0F5H,0F6H,0F6H,0F7H,0F7H,0F8HDB0F8H,0F8H,0F9H,0F9H,0F9

36、H,0FAH,0FAH,0FAH,0FAH,0FAHDB0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FCH,0FCHDB0FCH,0FCH,0FCH,0FCH,0FCH,0FCH,0FCH,0FCH,0FCH,0FCHDB0FCH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDHDB0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FDHDB0FDH,0FDH,0FDH,0FDH,0FDH,0FDH,0FEH,0FEH,0FEH,0FEHDB0FEH,0FEH,0FEH,0F

37、EH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEHDB0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEHDB0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEHDB0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEHDB0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEHDB0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEHDB0FEH,0FEH,0

38、FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEH,0FEHDB0FEH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFHEND附錄2 位置控制單片機程序如下:POS: CPL

39、 P1.0 ;改變P1.0 電平狀態 PUSH ACC ;累加器A進棧 PUSH PSW PUSH R0 ;R0進棧 JNB P1.0,POS4 ; P1.0=0時,半個脈沖,轉到POS4 CLR EA ;關中斷 JNB P1.1,POS1 ;反轉,轉到POS1 MOV R0,#32H ;正轉。指向絕對位置低位32H INC R0 ;絕對位置加1 CJNE R0,#00H,POS2 ;無進位則轉向 POS2 INC R0 ;指向33H INC R0 ;(33H)+1 CJNE R0,#00H,POS2 ;無進位則轉向 POS2 INC R0 ;指向34H INC R0 ;(34H)+1 CJN

40、E R0,#00H,POS2 ;無越界,則轉POS2 CLR TR0 ;發生越界,停定時器(停電動機) LCALL BAOJING ;調報警子程序POS1: MOV R0,#32H ;反轉。指向絕對位置低位32H DEC R0 ;絕對位置減1 CJNE R0,#FFH,POS2 ;無借位則轉向 POS2 INC R0 ;指向33H DEC R0 ;(33H)-1 CJNE R0,#FFH,POS2 ;無借位則轉向 POS2 INC R0 ;指向34H DEC R0 ;(34H)-1 CJNE R0,#FFH,POS2 ;無越界,則轉POS2 CLR TR0 ;發生越界,停定時器(停電動機) L

41、CALL BAOJING ;調報警子程序POS2:MOV R0,#35H ;指向步數低位35H DEC R0 ;步數減1 CJNE R0,#FFH,POS3 ;無借位則轉向 POS3 INC R0 ;指向36H DEC R0 ;(36H)-1POS3:SETB EA ;開中斷 MOV A,35H ;檢查步數=0 ORL A,36H JNZ POS4 ;不等于0轉向POS4 CLR TR0 ;等于0。停定時器 SJMP POS5 ;退出POS4:CLR C CLR TRO ;停定時器 MOV A,TL0 ;取TL0當前值 ADD A,#08H ;加8個機械周期 ADD A,30H ;加定時常數(

42、低8位) MOV TL0,A ;重裝定時常數(低8位) MOV A,TH0 ;取TH0當前值 ADDC A,31H ;加定時常數(高8位) MOV TH0,A ;重裝定時常數(高8位) SETB TR0 ;開定時器POS5:POP R0 POP PSW POP ACC RET1 ;返回附錄3 加減速控制單片機程序如下:JAJ:CPL P1.0 ;改變P1.0電平狀態 PUSH ACC ;保存現場 PUSH PSW PUSH B PUSH DPTL PUSH DPTH SETB RS0 ;選用工作寄存器1 JNB P1.0,JAJ10 ;P1.0=0時,半個脈沖,轉到JAJ10 CLR EA ;

43、關中斷 JNB P1.0,JAJ1 ;反轉,轉到JAJ1 MOV R0,#32H ;正轉,指向絕對位置低位32H INC R0 ;絕對位置加1 CJNE R0,#00H,JAJ2 ;無進位則轉向JAJ2 INC R0 ;指向33H INC R0 ;(33H)+1 CJNE R0,#00H,JAJ2 ;無進位則轉向JAJ2 INC R0 ;指向34H INC R0 ;(34H)+1 CJNE R0,#00H,JAJ2 ;無進位則轉向JAJ2 CLR TR0 ;發生越界,停定時器(停電動機) LCALL BAOJING ;調報警子程序JAJ1:MOV R0,#32H ;正轉,指向絕對位置低位32H DEC R0 ;絕對位置減1 CJNE R0,#0FFH,JAJ2 ;無借位則轉向

溫馨提示

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

最新文檔

評論

0/150

提交評論