課程設計(論文)基于單片機的步進控制系統_第1頁
課程設計(論文)基于單片機的步進控制系統_第2頁
課程設計(論文)基于單片機的步進控制系統_第3頁
課程設計(論文)基于單片機的步進控制系統_第4頁
課程設計(論文)基于單片機的步進控制系統_第5頁
已閱讀5頁,還剩22頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、目 錄1.步進電機原理及硬件和軟件設計- 4 -1.1步進電機原理及控制技術- 4 -1.2總體設計方框圖- 7 -1.3設計原理分析- 8 -1.3.1元器件介紹- 8 -1.3.2方案論證- 10 -1.3.3硬件設計- 11 -1.3.4軟件設計- 16 -1.3.5源程序- 21 -2.總結- 26 -3.結束語- 27 -4.參考文獻- 28 - 基于單片機的步進電機控制系統設計 摘要:步進電機是一種進行精確步進運動的機電執行元件,它廣泛應用于工業機械的數字控制,為使系統的可靠性、通用性、可維護性以及性價比最優,根據控制系統功能要求及步進電機應用環境,確定了設計系統硬件和軟件的功能劃

2、分,從而實現了基于8051單片機的四相步進電機的開環控制系統。控制系統通過單片機存儲器、i/o接口、中斷、鍵盤、led顯示器的擴展、步進電機的環形分頻器、驅動及保護電路、人機接口電路、中斷系統及復位電路、單電壓驅動電路等的設計,實現了四相步進電機的正反轉,急停等功能。為實現單片機控制步進電機系統在數控機床上的應用,系統設計了兩個外部中斷,以實現步進電機在某段時間內的反復正反轉功能,也即數控機床的刀架自動進給運動。此外作為執行元件,步進電機是機電一體化的關鍵產品之一,被廣泛應用在各種自動化控制系統中,隨著微電子和計算機技術的發展,它的需要量與日俱增,在各個國民經濟領域都有應用。步進電機是機電數字

3、控制系統中常用的執行元件,由于其精度高、體積小、控制方便靈活,因此在智能儀表和位置控制中得到了廣泛的應用,大規模集成電路的發展以及單片機技術的迅速普及,為設計功能強,價格低的步進電機控制驅動器提供了先進的技術和充足的資源。1.步進電機原理及硬件和軟件設計1.1步進電機原理及控制技術 由于步進電機是一種將電脈沖信號轉換成直線或角位移的執行元件,它不能直接接到交直流電源上,而必須使用專業設備-步進電機控制驅動器,典型步進電機控制系統如圖1所示:控制器可以發出脈沖頻率從幾赫茲到幾千赫茲可以連續變化的脈沖信號,它為環形分配器提供脈沖序列,環形分配器的主要功能是把來自控制環節的脈沖序列按一定的規律分配后

4、,經過功率放大器的放大加到步進電機驅動電源的各項輸入端,以驅動步進電機的轉動,環形分配器主要有兩大類:一類是用計算機軟件設計的方法實現環形分配器要求的功能,通常稱軟環形分配器。另一類是用硬件構成的環形分配器,通常稱硬環形分配器。功率放大器主要對環形分配器的較小輸出信號進行放大,以達到驅動步進電機的目的,步進電機的基本控制包括轉向控制和速度控制兩個方面。從結構上看,步進電機分為三相單三拍、三相雙三拍和三相六拍3種,其基本原理如下: (1) 換相順序的控制通電換相這一過程稱為脈沖分配。例如,三相步進電機在單三拍的工作方式下,其各相通電順序為abca,通電控制脈沖必須嚴格按照這一順序分別控制a、b、

5、c相的通斷。三相雙三拍的通電順序為abbccaab,三相六拍的通電順序為aabbbcccaa。 (2) 步進電機的換向控制如果給定工作方式正序換相通電,步進電機正轉。若步進電機的勵磁方式為三相六拍,即aabbbcccaa。如果按反序通電換相,即aacccbbbaa,則電機就反轉。其他方式情況類似。(3) 步進電機的速度控制如果給步進電機發一個控制脈沖,它就轉一步,再發一個脈沖,它會再轉一步。兩個脈沖的間隔越短,步進電機就轉得越快。調整送給步進電機的脈沖頻率,就可以對步進電機進行調試。 (4) 步進電機的起停控制步進電機由于其電氣特性,運轉時會有步進感。為了使電機轉動平滑,減小振動,可在步進電機

6、控制脈沖的上升沿和下降沿采用細分的梯形波,可以減小步進電機的步進角,跳過電機運行的平穩性。在步進電機停轉時,為了防止因慣性而使電機軸產生順滑,則需采用合適的鎖定波形,產生鎖定磁力矩,鎖定步進電機的轉軸,使步進電機轉軸不能自由轉動。(5) 步進電機的加減速控制 在步進電機控制系統中,通過實驗發現,如果信號變化太快,步進電機由于慣性跟不上電信號的變化,這時就會產生堵轉和失步現象。所有步進電機在啟動時,必須有加速過程,在停止時波形有減速過程。理想的加速曲線一般為指數曲線,步進電機整個降速過程頻率變化規律是整個加速過程頻率變化規律的逆過程。選定的曲線比較符合步進電機升降過程的運行規律,能充分利用步進電

7、機的有效轉矩,快速響應性好,縮短了升降速的時間,并可防止失步和過沖現象。在一個實際的控制系統中,要根據負載的情況來選擇步進電機。步進電機能響應而不失步的最高步進頻率稱為“啟動頻率”,于此類似“停止頻率”是指系統控制信號突然關斷,步進電機不沖過目標位置的最高步進頻率。電機的啟動頻率、停止頻率和輸出轉矩都要和負載的轉動慣量相適應,有了這些數據,才能有效地對電機進行加減速控制。加速過程有突然施加的脈沖啟動頻率f0。步進電機的最高啟動頻率(突跳頻率)一般為0.1khz到34khz,而最高運行頻率則可以達到n*102khz,以超過最高啟動頻率的頻率直接啟動,會產生堵轉和失步的現象。 (6) 步進電機的換

8、向控制 步進電機換向時,一定要在電機降速停止或降到突跳頻率范圍之內在換向,以免產生較大的沖擊而損壞電機。換向信號一定要在前一個方向的最后一個脈沖結束后以及下一個方向的第一個脈沖前發出。對于脈沖的設計主要要求其有一定的脈沖寬度、脈沖序列的均勻度及高低電平方式。在某一高速下的正、反向切換實質包含了降速換向加速3個過程。 步進電機有如下特點: 步進電機的角位移與輸入脈沖數嚴格成正比,因此當它轉一轉后,沒有累計誤差,具有良好的跟隨性。 由步進電機與驅動電路組成的開環數控系統,既非常方便、廉價,也非常可靠。同時,它也可以有角度反饋環節組成高性能的閉環數控系統。 步進電機的動態響應快,易于啟停、正反轉及變

9、速。 速度可在相當寬的范圍內平滑調節,低速下仍能保證獲得很大的轉矩,因此一般可以不用減速器而直接驅動負載。1.2總體設計方框圖總體設計方框圖如圖2所示。1.3設計原理分析1.3.1元器件介紹(1)步進電機 步進電機是數字控制電機,它將脈沖信號轉變成角位移,即給一個脈沖信號,步進電機就轉動一個角度,因此非常適合于單片機控制。步進電機區別于其他控制電機的最大特點是:它是通過輸入脈沖信號來進行控制的,即電機的總轉動角度由輸入脈沖數決定,而電機的轉速由脈沖信號頻率決定。 步進電機分三種:永磁式(pm),反應式(vr)和混合式(hb),步進電機又稱為脈沖電機,是工業過程控制和儀表中一種能夠快速啟動,反轉

10、和制動的執行元件,其功用是將電脈沖轉換為相應的角位移或直線位移,由于開環下就能實現精確定位的特點,使其在工業控制領域獲得了廣泛應用。步進電機的運轉是由電脈沖信號控制的,其角位移量或線位移量與脈沖數成正比,每個一個脈沖,步進電機就轉動一個角度(不距角)或前進、倒退一步。步進電機旋轉的角度由輸入的電脈沖數確定,所以,也有人稱步進電機為數字/角度轉換器。 四相步進電機的工作原理 該設計采用了20by-0型步進電機,該電機為四相步進電機,采用單極性直流電源供電。只要對步進電機的各相繞組按合適的時序通電,就能使步進電機轉動。當某一相繞組通電時,對應的磁極產生磁場,并與轉子形成磁路,這時,如果定子和轉子的

11、小齒沒有對齊,在磁場的作用下,由于磁通具有力圖走磁阻最小路徑的特點,則轉子將轉動一定的角度,使轉子與定子的齒相互對齊,由此可見,錯齒是促使電機旋轉的原因。 步進電機的靜態指標及術語 相數:產生不同隊n、s磁場的激磁線圈對數,常用m表示。 拍數:完成一個磁場周期性變化所需脈沖用n表示,或指電機轉過一個齒距角所需脈沖數,以四相電機為例,有四相四拍運行方式即abbccddaab,四相八拍運行方式即aabbbcccdddaa。 步距角:對應一個脈沖信號,電機轉子轉過的角位移用表示。=360度(轉子齒角運行拍數),以常規二、四相,轉子齒角為50齒角電機為例。四相運行時步距角為=360度/(50*4)=1

12、.8度,八拍運行時步距角為=360度/(50*8)=0.9度。 定位轉矩:電機在不通電的狀態下,電機轉子自身的鎖定力矩(由磁場齒形的諧波以及機械誤差造成的)。 靜轉矩:電機在額定靜態作業下,電機不做旋轉運動時,電機轉軸的鎖定力矩。此力矩是衡量電機體積的標準,與驅動電壓及驅動電源等無關。雖然靜態轉矩與電磁激磁匝數成正比,與定子和轉子間的氣隙有關。但過分采用減小氣隙,增加勵磁匝數來提高靜轉矩是不可取的,這樣會造成電機的發熱及機械噪音。 四相步進電機的脈沖分配規律 目前,對步進電機的控制主要有分散器件組成的環形脈沖分配器、軟件環形脈沖分配器、專用集成芯片環形脈沖分配器等。本設計利用單片機進行控制,主

13、要是利用軟件進行環形脈沖分配。四相步進電機的工作方式為四相單四拍,雙四拍和四相八拍工作的方式。各種工作方式在電源通電時的時序 與波形分別如圖1 a、b、c所示。本設計的電機工作方式為四相單四拍,根據步進電機的工作的時序和波形圖,總結出其工作方式為四相單四拍時的脈沖分配規律,四相雙四拍的脈沖分配規律,在每一種工作方式中,脈沖的頻率越高,其轉速就越快,但脈沖頻率高到一定程度,步進電機跟不上頻率的變化后電機會出現失步現象,所以脈沖頻率一定要控制在步進電機允許的范圍內。 (2)89c51單片機 atmel公司生產的89c51單片機是一種低功耗/低電壓高性能的8位單片機,它采用cmos和高密度非易失性存

14、儲技術,而且其輸出引腳和指令系統都與mcs-51兼容;片內的flash rom允許在系統內改編程序或用常規的非易失性編程器來編程,內部除cpu外,還包括256字節ram,4個8位并行i/o口,5個中斷源,2個中斷優先級,2個16位可編程定時計數器,89c51單片機是一種功能強、靈活性高且價格合理的單片機,完全滿足本系統設計需要。 1.3.2方案論證從該系統的設計 要求可知,該系統的輸入量為速度和方向,速度應該有增減變化,通常用加減按鈕控制速度,這樣只要2根口線,再加上一根方向線盒一根啟動信號線共需要4根輸入線。系統的輸出線與步進電機的繞組數有關。這里選進電機,該電機共有四相繞組,工作電壓為+5

15、v,可以個單片機共用一個電源。步進電機的四相繞組用p1口的p1.0p1.3控制,由于p1口驅動能力不夠,因而用一片2803增加驅動能力。用p0口控制第一數碼管用于顯示正反轉,用p2口控制第二個數碼管用于顯示轉速等級。數碼管采用共陽的。 1.3.3硬件設計本設計的硬件電路只要包括控制電路、最小系統、驅動電路、顯示電路四大部分。最小系統只要是為了使單片機正常工作。控制電路只要由開關和按鍵組成,由操作者根據相應的工作需要進行操作。顯示電路主要是為了顯示電機的工作狀態和轉速。驅動電路主要是對單片機輸出的脈沖進行功率放大,從而驅動電機轉動。 (1)控制電路 根據系統的控制要求,控制輸入部分設置了啟動控制

16、,換向控制,加速控制和減速控制按鈕,分別是k1、k2、s2、s3,控制電路如圖4所示。通過k1、k2狀態變化來實現電機的啟動和換向功能。當k1、k2的狀態變化時,內部程序檢測p1.0和p1.1的狀態來調用相應的啟動和換向程序,發現系統的電機的啟動和正反轉控制。 根據步進電機的工作原理可以知道,步進電機轉速的控制主要是通過控制通入電機的脈沖頻率,從而控制電機的轉速。對于單片機而言,主要的方法有:軟件延時和定時中斷在此電路中電機的轉速控制主要是通過定時器的中斷來實現的,該電路控制電機加速度主要是通過s2、s3的斷開和閉合,從而控制外部中斷根據按鍵次數,改變速度值存儲區中的數據(該數據為定時器的中斷

17、次數),這樣就改變了步進電機的輸出脈沖頻率,從而改變了電機的轉速。 圖4 控制電路原理圖(2)最小系統單片機最小系統或者稱為最小應用系統,素質用最少的元件組成的單片機可以工作的系統,對51系列單片機來說,最小系統一般應該包括:單片機、復位電路、晶振電路。 復位電路:使用了獨立式鍵盤,單片機的p1口鍵盤的接口。該設計要求只需4個鍵對步進電機的狀態進行控制,但考慮到對控制功能的擴展,使用了6路獨立式鍵盤。復位電路采用手動復位,所謂手動復位,是指通過接通一按鈕開關,使單片機進入復位狀態,晶振電路用30pf的電容和一12m晶體振蕩器組成為整個電路提供時鐘頻率。如圖5示。 晶振電路:8051單片機的時鐘

18、信號通常用兩種電路形式電路得到:內部震蕩方式和外部中斷方式。在引腳xtal1和xtal2外部接晶振電路器(簡稱晶振)或陶瓷晶振器,就構成了內部晶振方式。由于單片機內部有一個高增益反相放大器,當外接晶振后,就構成了自激振蕩器并產生振蕩時鐘脈沖。內部振蕩方式的外部電路如圖5示。其電容值一般在530pf,晶振頻率的典型值為12mhz,采用6mhz的情況也比較多。內部振蕩方式所得的時鐘信號比較穩定,實用電路實用較多。(3)驅動電路 通過uln2803構成比較多的驅動電路,電路圖如圖6所示。通過單片機的p1.0p1.3輸出脈沖到uln2803的1b4b口,經信號放大后從1c4c口分別輸出到電機的a、b、

19、c、d相。圖5 復位及時鐘振蕩電路 圖6 步進電機驅動電路(4)顯示電路 在該步進電機的控制器中,電機可以正反轉,可以加速、減速,其中電機轉速的等級分為七級,為了方便知道電機的運行狀態和電機的轉速的等級,這里設計了電機轉速和電機的工作狀態的顯示電路。在顯示電路中,主要是利用了單片機的p0口和p2口。采用兩個共陽數碼管作顯示。第一個數碼管接的a、b、c、d、e、f、g、h分別接p0.0p0.7口,用于顯示電機正反轉狀態,正轉時顯示“1”,反轉時顯示“一”,不轉時顯示“0”。第二個數碼管的a、b、c、d、e、f、g、h分別接p2.0p2.7口,用于顯示電機的轉速級別,共七級,即從17轉速依次遞增,

20、“0”表示轉速為零。電路如圖7所示。 圖7 顯示電路(5)總體電路圖 把各個部分的電路圖組合成總電路圖,如圖8所示。圖8 總體電路圖1.3.4軟件設計通過分析可以看出,實現系統功能可以采用多種方法,由于隨時有可能輸入加速、加速信號和方向信號,因而采用中斷方式效率最高,這樣總共要完成4個部分的工作才能滿足課題要求,即主程序部分、定時器中斷部分、外部中斷0和外部中斷1部分,其中主程序的主要功能是系統初始參數的設置及啟動開關的檢測,若啟動開關合上則系統開始工作,反之系統停止工作;定時器部分控制脈沖頻率,它決定了步進電機轉速的快慢;兩個外部中斷程序要做的工作都是為了完成改變速度這一功能。 (1)主程序

21、設計 主程序中要完成的工作主要有系統初始值的設置、系統狀態的顯示以及各種開關狀態的檢測判斷等。其中系統初始狀態的設置內容較多,該系統中,需要初始化定時器、外部中斷;對p1口送初值以決定脈沖分配方式,速度值存儲區送初值決定步進電機的啟動速度,對方向值存儲區送初值決定步進電機旋轉方向等內容。若初始化p1=11h、速度和方向初始值均設為0,就意味著步進電機按四相單四拍運行,系統上電后在沒有操作的情況下,步進電機不旋轉,方向值顯示“0”,速度值顯示“0”,主程序流程圖如圖9所示。(2)定時中斷設計 步進電機的轉動主要是給電機各繞組按一定的時間間隔連續不斷地按規律通入電流,步進電機才會旋轉,時間間隔越短

22、,速度就越快。在這個系統中,這個時間間隔是用定時器重復中斷一定次數產生的,即調節時間間隔就是調節定時器的中斷次數,因而在定時器中斷程序中,要做的工作主要是判斷電機的運行方向、發下一個脈沖,以及保存當前的各種狀態。程序流程圖如圖10所示。(3)外部中斷設計 外部中斷所要完成的工作是根據按鍵次數,改變速度值存儲區中的數據(該數據為定時器的中斷次數),這樣就改變了步進電機的輸出脈沖頻率,也就是改變了電機的轉速。速度增加按鈕s2為int0中斷,其程序流程為原數據,當值等于7時,不改變原數值返回,小于7時,數據加1后返回;速度減少按鈕s3,當原數據不為0,減1保存數據,原數據為0則保持不變。程序流程圖如

23、圖11所示。圖10 定時中斷程序流程1.3.5源程序 匯編程序如下: speed equ 10h ;speed為轉速等級標志,共7級,即17 fx equ 11h ;fx為方向標志 count equ 12h ;count中斷次數標志 org 0000h ajmp main org 0003h ;外部中斷0入口地址,加速子程序 ajmp up org 0013h ;外部中斷1入口地址,減速子程序 ajmp down org 000bh ;定時器0中斷入口地址,控制中斷次數來達到控制轉速 ajmp zdt0 org 0030h main: mov sp,#60h mov tmod,#01h ;工

24、作于定時、軟件置位啟動!模式1(16位計時器) mov th0,#0cfh mov tl0,#2ch mov count,#01h setb et0 ;定時/計數器允許中斷 clr it0 ;外部中斷為電平觸發方式,低電平有效 clr it1 setb ex0 ;外部允許中斷 setb ex1 setb ea ;開總中斷 mov r1,#11h ; 四相單四拍運行,共陽數碼管方向顯示8,速度值顯示0 mov speed,#00h mov fx,#00h xians: mov a,speed mov dptr,#led movc a,a+dptr ;查表獲取等級對應數碼管代碼 mov p2,a

25、;第二個數碼管顯示轉速等級 mov a,fx ;準備判斷轉向 cjne a,#11h,els mov p0, #0f9h ;第一個數碼管顯示1,表示正轉 ajmp qd els: cjne a,#00h,zheng mov p0,#0c0h ;第一個數碼管顯示0,表示不轉 ajmp qd zheng: mov p0,#0bfh ;第一個數碼管顯示-,表示反轉 qd: jb p3.4,dd ;p3.4接啟動開關k1,p3.4=1時啟動 clr tr0 ;停止定時/計數器 mov p0,#0c0h ;第一個數碼管顯示0,表示不轉mov p2,#0c0h ;第二個數碼管顯示0,表示轉速為0 mov

26、speed,#00h ;重新賦初值 mov fx,#00h ajmp qd dd: mov a,speed jnz go ;a不等于0,即初始速度不為零,則轉移到go clr tr0 ;停止定時/計數器 ajmp qd go: setb tr0 ;開啟定時/計數器 acall delay ajmp xians delay: mov r6,#10 ;延時子程序 del1: mov r7,#250 here1: djnz r7, here1 djnz r6,del1 ret ;以下zdt0為定時器中斷程序 zdt0: push acc push dph push dpl mov th0,#0d8h

27、 mov tl0,#0f0h djnz count,exit jb p3.5,nizhuan ;查詢方向標志,p3.5接換向開關k2 mov fx,#11h nizhuan:mov a,fx cjne a,#11h,fz ;若a不等于11,即正轉,則轉移到fz mov a,r1 ;r1記錄上一次電機脈沖狀態 mov p1,a rr a ;循環右一位 mov r1,a mov p1,a ajmp re fz: mov a,r1 mov p1,a rl a ;循環左移一位 mov p1,a mov r1,a re: mov a,speed mov dptr,#tab movc a,a+dptr m

28、ov count,a ;把轉速級別賦給count jb p3.5 ,ffx ; p3.5接換向開關k2, 即換向位,若p3.5=1,則跳到ffxmov fx,#11h ajmp exit ffx: mov fx,#0feh ;只要fx不等于11h,就可以通過循環左移或右移進行換向 exit: pop dpl pop dph pop acc reti ;以下up為加速中斷程序 up: push acc acall delay ;延時防抖動 jb p3.2,upex ;p3.2為外部中斷0位,接增速開關s2,低電平有效,若p3.2=1,則退出 mov a,speed cjne a,#7,sz ;最

29、大等級為7,若a不等于7,則轉移到sz ajmp upex ;若a=7,則退出 sz: inc speed ;speed= speed+1 upex: pop acc here2: jnb p3.2,here2 ;本條指令為防止開關s2按下去后彈不起,導致一直產生中斷 reti ;以下down為減速中斷程序 down: push acc acall delay jb p3.3,dex ; p3.3為外部中斷1位,接減速開關s3,低電平有效,若p3.3=1,則退出 mov a,speed cjne a,#0,sj ajmp dex sj: dec speed ;speed= speed-1 dex: pop acc here3: jnb p3.3,here3 reti tab: db 0,60,40,

溫馨提示

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

評論

0/150

提交評論