畢業(yè)設計基于單片機的步進電機控制系統(tǒng)設計(000002)_第1頁
畢業(yè)設計基于單片機的步進電機控制系統(tǒng)設計(000002)_第2頁
畢業(yè)設計基于單片機的步進電機控制系統(tǒng)設計(000002)_第3頁
畢業(yè)設計基于單片機的步進電機控制系統(tǒng)設計(000002)_第4頁
畢業(yè)設計基于單片機的步進電機控制系統(tǒng)設計(000002)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于單片機的步進電機控制系統(tǒng)設計前言步進電機是一種進行精確步進運動的機電執(zhí)行元件,它廣泛應用于工業(yè)機械的數(shù)字控制,為使系統(tǒng)的可靠性、通用性、可維護性以及性價比最優(yōu),根據(jù)控制系統(tǒng)功能要求及步進電機應用環(huán)境,確定了設計系統(tǒng)硬件和軟件的功能劃分,從而實現(xiàn)了基于 8051單片機的四相步進電機的開環(huán)控制系統(tǒng)??刂葡到y(tǒng)通過單片機存儲器、I/O接口、中斷、鍵盤、LED顯示器的擴展、步進電機的環(huán)形分頻器、驅動及保護電路、人機接口電路、中斷系統(tǒng)及復位電路、單電壓驅動電路等的設計,實現(xiàn)了四相步進電機的正反轉,急停等功能。為實現(xiàn)單片機控制步進電機系統(tǒng)在數(shù)控機床上的應用,系統(tǒng)設計了兩個外部中斷,以實現(xiàn)步進電機在某段時

2、間內(nèi)的反復正反轉功能,也即數(shù)控機床的刀架自動進給運動,隨著單片機技術的不斷發(fā)展,單片機在日用電子產(chǎn)品中的應用越來越廣泛,自六十年代初期以來,步進電機的應用得到很大的提高。人們用它來驅動時鐘和其他采用指針的儀器,打印機、繪圖儀,磁盤光盤驅動器、各種自動控制閥、各種工具,還有機器人等機械裝置。此外作為執(zhí)行元件,步進電機是機電一體化的關鍵產(chǎn)品之一,被廣泛應用在各種自動化控制系統(tǒng)中,隨著微電子和計算機技術的發(fā)展,它的需要量與日俱增,在各個國民經(jīng)濟領域都有應用。步進電機是機電數(shù)字控制系統(tǒng)中常用的執(zhí)行元件,由于其精度高、體積小、控制方便靈活,因此在智能儀表和位置控制中得到了廣泛的應用,大規(guī)模集成電路的發(fā)展

3、以及單片機技術的迅速普及,為設計功能強,價格低的步進電機控制驅動器提供了先進的技術和充足的資源。1.步進電機原理及硬件和軟件設計1.1步進電機原理及控制技術由于步進電機是一種將電脈沖信號轉換成直線或角位移的執(zhí)行元件,它不能直接接到交直流電源上,而必須使用專業(yè)設備-步進電機控制驅動器,典型步進leizi888 2010電機控制系統(tǒng)如圖 1所示:控制器可以發(fā)出脈沖頻率從幾赫茲到幾千赫茲可以連續(xù)變化的脈沖信號,它為環(huán)形分配器提供脈沖序列,環(huán)形分配器的主要功能是把來自控制環(huán)節(jié)的脈沖序列按一定的規(guī)律分配后,經(jīng)過功率放大器的放大加到步進電機驅動電源的各項輸入端,以驅動步進電機的轉動,環(huán)形分配器主要有兩大類

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

5、(2)步進電機的換向控制如果給定工作方式正序換相通電,步進電機正轉。若步進電機的勵磁方式為三相六拍,即 AABBBCCCAA。如果按反序通電換相,即AACCCBBBAA,則電機就反轉。其他方式情況類似。(3)步進電機的速度控制如果給步進電機發(fā)一個控制脈沖,它就轉一步,再發(fā)一個脈沖,它會再轉一步。兩個脈沖的間隔越短,步進電機就轉得越快。調(diào)整送給步進電機的脈沖頻率,就可以對步進電機進行調(diào)試。(4)步進電機的起停控制步進電機由于其電氣特性,運轉時會有步進感。為了使電機轉動平滑,減小振動,可在步進電機控制脈沖的上升沿和下降沿采用細分的梯形波,可以減小步進電機的步進角,跳過電機運行的平穩(wěn)性。在步進電機停

6、轉時,為了防止因慣性而使電機軸產(chǎn)生順滑,則需采用合適的鎖定波形,產(chǎn)生鎖定磁力矩,鎖定步進電機的轉軸,使步進電機轉軸不能自由轉動。(5)步進電機的加減速控制在步進電機控制系統(tǒng)中,通過實驗發(fā)現(xiàn),如果信號變化太快,步進電機由于leizi888 2010慣性跟不上電信號的變化,這時就會產(chǎn)生堵轉和失步現(xiàn)象。所有步進電機在啟動時,必須有加速過程,在停止時波形有減速過程。理想的加速曲線一般為指數(shù)曲線,步進電機整個降速過程頻率變化規(guī)律是整個加速過程頻率變化規(guī)律的逆過程。選定的曲線比較符合步進電機升降過程的運行規(guī)律,能充分利用步進電機的有效轉矩,快速響應性好,縮短了升降速的時間,并可防止失步和過沖現(xiàn)象。在一個實

7、際的控制系統(tǒng)中,要根據(jù)負載的情況來選擇步進電機。步進電機能響應而不失步的最高步進頻率稱為“啟動頻率”,于此類似“停止頻率”是指系統(tǒng)控制信號突然關斷,步進電機不沖過目標位置的最高步進頻率。電機的啟動頻率、停止頻率和輸出轉矩都要和負載的轉動慣量相適應,有了這些數(shù)據(jù),才能有效地對電機進行加減速控制。加速過程有突然施加的脈沖啟動頻率 f0。步進電機的最高啟動頻率(突跳頻率)一般為 0.1KHz到 34KHz,而最高運行頻率則可以達到 N*102KHz,以超過最高啟動頻率的頻率直接啟動,會產(chǎn)生堵轉和失步的現(xiàn)象。f/Hzfafb0圖 1步進電機運行過程中頻率變化曲線t/s在一般的應用中,經(jīng)過大量實踐和反復

8、驗證,頻率如按直線上升或下降,控制效果就可以滿足常規(guī)的應用要求。用 PLC實現(xiàn)步進電機的加 P減速控制,實踐上就是控制發(fā)脈沖的頻率。加速時,使脈沖頻率增高,減速則相反。如果使用定時器來控制電機的速度,加減速控制就是不斷改變定時中斷的設定值。速度從v1v2變化,如果是線性增加,則按給定的斜率加 P減速;如果是突變,則按階梯加速處理。在此過程中要處理好兩個問題:速度轉換時間應盡量短。為了縮短速度轉換的時間,可以采用建立數(shù)據(jù)表的方法。結合各曲線段的頻率和各段間的階梯頻率,就可以建立一個連續(xù)的數(shù)據(jù)leizi888 2010表,并通過轉換程序將其轉換為定時初始表。通過在不同的階段調(diào)用相應的定時初值,就可

9、控制電機的運行。定時初值的計算是在定時中斷外實現(xiàn)的,并不占用中斷時間,保證電機的高速運行。保證控制速度的精確性。要從一個速度準確達到另一個速度,就要建立一個校驗機制,以防超過或未達到所需速度。(6)步進電機的換向控制步進電機換向時,一定要在電機降速停止或降到突跳頻率范圍之內(nèi)在換向,以免產(chǎn)生較大的沖擊而損壞電機。換向信號一定要在前一個方向的最后一個脈沖結束后以及下一個方向的第一個脈沖前發(fā)出。對于脈沖的設計主要要求其有一定的脈沖寬度、脈沖序列的均勻度及高低電平方式。在某一高速下的正、反向切換實質包含了降速換向加速 3個過程。步進電機有如下特點:步進電機的角位移與輸入脈沖數(shù)嚴格成正比,因此當它轉一轉

10、后,沒有累計誤差,具有良好的跟隨性。由步進電機與驅動電路組成的開環(huán)數(shù)控系統(tǒng),既非常方便、廉價,也非常可靠。同時,它也可以有角度反饋環(huán)節(jié)組成高性能的閉環(huán)數(shù)控系統(tǒng)。步進電機的動態(tài)響應快,易于啟停、正反轉及變速。速度可在相當寬的范圍內(nèi)平滑調(diào)節(jié),低速下仍能保證獲得很大的轉矩,因此一般可以不用減速器而直接驅動負載。步進電機只能通過脈沖電源供電才能運行,它不能直接用交流電源或直流電源。步進電機自身的噪聲和振動比較大,帶慣性負載的能力強。1.2總體設計方框圖總體設計方框圖如圖 2所示。1.3設計原理分析元器件介紹(1)步進電機步進電機是數(shù)字控制電機,它將脈沖信號轉變成角位移,即給一個脈沖信號,步進電機就轉動

11、一個角度,因此非常適合于單片機控制。步進電機區(qū)別于其他控制電機的最大特點是:它是通過輸入脈沖信號來進行控制的,即電機的總轉leizi888 2010動角度由輸入脈沖數(shù)決定,而電機的轉速由脈沖信號頻率決定。步進電機分三種:永磁式(PM),反應式(VR)和混合式(HB),步進電機又稱為脈沖電機,是工業(yè)過程控制和儀表中一種能夠快速啟動,反轉和制動的執(zhí)行狀態(tài)顯示電路89C51單片機復位電路鍵盤控制電路ULN2803步進電源及時鐘電路圖 2總體設計方框圖啟動電路電機元件,其功用是將電脈沖轉換為相應的角位移或直線位移,由于開環(huán)下就能實現(xiàn)精確定位的特點,使其在工業(yè)控制領域獲得了廣泛應用。步進電機的運轉是由電

12、脈沖信號控制的,其角位移量或線位移量與脈沖數(shù)成正比,每個一個脈沖,步進電機就轉動一個角度(不距角)或前進、倒退一步。步進電機旋轉的角度由輸入的電脈沖數(shù)確定,所以,也有人稱步進電機為數(shù)字/角度轉換器。四相步進電機的工作原理該設計采用了 20BY-0型步進電機,該電機為四相步進電機,采用單極性直流電源供電。只要對步進電機的各相繞組按合適的時序通電,就能使步進電機轉動。當某一相繞組通電時,對應的磁極產(chǎn)生磁場,并與轉子形成磁路,這時,如果定子和轉子的小齒沒有對齊,在磁場的作用下,由于磁通具有力圖走磁阻最小路徑的特點,則轉子將轉動一定的角度,使轉子與定子的齒相互對齊,由此可見,錯齒是促使電機旋轉的原因。

13、步進電機的靜態(tài)指標及術語相數(shù):產(chǎn)生不同隊 N、S磁場的激磁線圈對數(shù),常用 m表示。拍數(shù):完成一個磁場周期性變化所需脈沖用 n表示,或指電機轉過一個齒距角所需脈沖數(shù),以四相電機為例,有四相四拍運行方式即 ABBCCDDAAB,四相八拍運行方式即 AABBBCCCDDDAA。leizi888 2010步距角:對應一個脈沖信號,電機轉子轉過的角位移用 表示。=360度(轉子齒角運行拍數(shù)),以常規(guī)二、四相,轉子齒角為 50齒角電機為例。四相運行時步距角為 =360度 /( 50*4) =1.8度,八拍運行時步距角為 =360度 /( 50*8) =0.9度。定位轉矩:電機在不通電的狀態(tài)下,電機轉子自身

14、的鎖定力矩(由磁場齒形的諧波以及機械誤差造成的)。靜轉矩:電機在額定靜態(tài)作業(yè)下,電機不做旋轉運動時,電機轉軸的鎖定力矩。此力矩是衡量電機體積的標準,與驅動電壓及驅動電源等無關。雖然靜態(tài)轉矩與電磁激磁匝數(shù)成正比,與定子和轉子間的氣隙有關。但過分采用減小氣隙,增加勵磁匝數(shù)來提高靜轉矩是不可取的,這樣會造成電機的發(fā)熱及機械噪音。四相步進電機的脈沖分配規(guī)律目前,對步進電機的控制主要有分散器件組成的環(huán)形脈沖分配器、軟件環(huán)形脈沖分配器、專用集成芯片環(huán)形脈沖分配器等。本設計利用單片機進行控制,主要是利用軟件進行環(huán)形脈沖分配。四相步進電機的工作方式為四相單四拍,雙四拍和四相八拍工作的方式。各種工作方式在電源通

15、電時的時序與波形分別如圖 1a、b、c所示。本設計的電機工作方式為四相單四拍,根據(jù)步進電機的工作的時序和波形圖,總結出其工作方式為四相單四拍時的脈沖分配規(guī)律,四相雙四拍的脈沖分配規(guī)律,在每一種工作方式中,脈沖的頻率越高,其轉速就越快,但脈沖頻率高到一定程度,步進電機跟不上頻率的變化后電機會出現(xiàn)失步現(xiàn)象,所以脈沖頻率一定要控制在步進電機允許的范圍內(nèi)。(2)89C51單片機Atmel公司生產(chǎn)的 89C51單片機是一種低功耗/低電壓高性能的 8位單片機,它采用 CMOS和高密度非易失性存儲技術,而且其輸出引腳和指令系統(tǒng)都與MCS-51兼容;片內(nèi)的 Flash ROM允許在系統(tǒng)內(nèi)改編程序或用常規(guī)的非易

16、失性編程器來編程,內(nèi)部除 CPU外,還包括 256字節(jié) RAM,4個 8位并行 I/O口,5個中斷源,2個中斷優(yōu)先級,2個 16位可編程定時計數(shù)器,89C51單片機是一種功能強、靈活性高且價格合理的單片機,完全滿足本系統(tǒng)設計需要。方案論證從該系統(tǒng)的設計要求可知,該系統(tǒng)的輸入量為速度和方向,速度應該有增減leizi888 2010變化,通常用加減按鈕控制速度,這樣只要 2根口線,再加上一根方向線盒一根啟動信號線共需要 4根輸入線。系統(tǒng)的輸出線與步進電機的繞組數(shù)有關。這里選進電機,該電機共有四相繞組,工作電壓為+5V,可以個單片機共用一個電源。步進電機的四相繞組用 P1口的 P1.0P1.3控制,

17、由于 P1口驅動能力不夠,因而用一片 2803增加驅動能力。用 P0口控制第一數(shù)碼管用于顯示正反轉,用 P2口控制第二個數(shù)碼管用于顯示轉速等級。數(shù)碼管采用共陽的。硬件設計本設計的硬件電路只要包括控制電路、最小系統(tǒng)、驅動電路、顯示電路四大部分。最小系統(tǒng)只要是為了使單片機正常工作??刂齐娐分灰砷_關和按鍵組成,由操作者根據(jù)相應的工作需要進行操作。顯示電路主要是為了顯示電機的工作狀態(tài)和轉速。驅動電路主要是對單片機輸出的脈沖進行功率放大,從而驅動電機轉動。(1)控制電路根據(jù)系統(tǒng)的控制要求,控制輸入部分設置了啟動控制,換向控制,加速控制和減速控制按鈕,分別是 K1、K2、S2、S3,控制電路如圖 4所示

18、。通過 K1、K2狀態(tài)變化來實現(xiàn)電機的啟動和換向功能。當 K1、K2的狀態(tài)變化時,內(nèi)部程序檢測P1.0和 P1.1的狀態(tài)來調(diào)用相應的啟動和換向程序,發(fā)現(xiàn)系統(tǒng)的電機的啟動和正反leizi888 2010轉控制。根據(jù)步進電機的工作原理可以知道,步進電機轉速的控制主要是通過控制通入電機的脈沖頻率,從而控制電機的轉速。對于單片機而言,主要的方法有:軟件延時和定時中斷.在此電路中電機的轉速控制主要是通過定時器的中斷來實現(xiàn)的,該電路控制電機加速度主要是通過 S2、S3的斷開和閉合,從而控制外部中斷根據(jù)按鍵次數(shù),改變速度值存儲區(qū)中的數(shù)據(jù)(該數(shù)據(jù)為定時器的中斷次數(shù)),這樣就改變了步進電機的輸出脈沖頻率,從而改

19、變了電機的轉速。圖 4 控制電路原理圖(2)最小系統(tǒng)單片機最小系統(tǒng)或者稱為最小應用系統(tǒng),素質用最少的元件組成的單片機可以工作的系統(tǒng),對 51系列單片機來說,最小系統(tǒng)一般應該包括:單片機、復位電路、晶振電路。復位電路:使用了獨立式鍵盤,單片機的 P1口鍵盤的接口。該設計要求只需4個鍵對步進電機的狀態(tài)進行控制,但考慮到對控制功能的擴展,使用了 6路獨立式鍵盤。復位電路采用手動復位,所謂手動復位,是指通過接通一按鈕開關,使單片機進入復位狀態(tài),晶振電路用 30PF的電容和一 12M晶體振蕩器組成為整個電路提供時鐘頻率。如圖 5示。晶振電路:8051單片機的時鐘信號通常用兩種電路形式電路得到:內(nèi)部震蕩l

20、eizi888 2010方式和外部中斷方式。在引腳 XTAL1和 XTAL2外部接晶振電路器(簡稱晶振)或陶瓷晶振器,就構成了內(nèi)部晶振方式。由于單片機內(nèi)部有一個高增益反相放大器,當外接晶振后,就構成了自激振蕩器并產(chǎn)生振蕩時鐘脈沖。內(nèi)部振蕩方式的外部電路如圖 5示。其電容值一般在 530pf,晶振頻率的典型值為 12MHz,采用6MHz的情況也比較多。內(nèi)部振蕩方式所得的時鐘信號比較穩(wěn)定,實用電路實用較多。圖 5 復位及時鐘振蕩電路(3)驅動電路通過 ULN2803構成比較多的驅動電路,電路圖如圖 6所示。通過單片機的P1.0P1.3輸出脈沖到 ULN2803的 1B4B口,經(jīng)信號放大后從 1C4

21、C口分別輸出到電機的 A、B、C、D相。leizi888 2010圖 6 步進電機驅動電路(4)顯示電路在該步進電機的控制器中,電機可以正反轉,可以加速、減速,其中電機轉速的等級分為七級,為了方便知道電機的運行狀態(tài)和電機的轉速的等級,這里設計了電機轉速和電機的工作狀態(tài)的顯示電路。在顯示電路中,主要是利用了單片機的 P0口和 P2口。采用兩個共陽數(shù)碼管作顯示。第一個數(shù)碼管接的 a、b、c、d、e、f、g、h分別接 P0.0P0.7口,用于顯示電機正反轉狀態(tài),正轉時顯示“1”,反轉時顯示“一”,不轉時顯示“0”。第二個數(shù)碼管的 a、b、c、d、e、f、g、h分別接 P2.0P2.7口,用于顯示電機

22、的轉速級別,共七級,即從 17轉速依次遞增, 0”表示轉速為零。電路如圖 7所示。“l(fā)eizi888 2010圖 7 顯示電路(5)總體電路圖把各個部分的電路圖組合成總電路圖,如圖 8 所示。圖 8 總體電路圖軟件設計通過分析可以看出,實現(xiàn)系統(tǒng)功能可以采用多種方法,由于隨時有可能輸入加leizi888 2010速、加速信號和方向信號,因而采用中斷方式效率最高,這樣總共要完成 4個部分的工作才能滿足課題要求,即主程序部分、定時器中斷部分、外部中斷 0和外部中斷 1部分,其中主程序的主要功能是系統(tǒng)初始參數(shù)的設置及啟動開關的檢測,若啟動開關合上則系統(tǒng)開始工作,反之系統(tǒng)停止工作;定時器部分控制脈沖頻率

23、,它決定了步進電機轉速的快慢;兩個外部中斷程序要做的工作都是為了完成改變速度這一功能。下面分析主程序與定時器中斷程序及外部中斷程序。(1)主程序設計主程序中要完成的工作主要有系統(tǒng)初始值的設置、系統(tǒng)狀態(tài)的顯示以及各種開關狀態(tài)的檢測判斷等。其中系統(tǒng)初始狀態(tài)的設置內(nèi)容較多,該系統(tǒng)中,需要初始化定時器、外部中斷;對 P1口送初值以決定脈沖分配方式,速度值存儲區(qū)送初值決定步進電機的啟動速度,對方向值存儲區(qū)送初值決定步進電機旋轉方向等內(nèi)容。若初始化 P1=11H、速度和方向初始值均設為 0,就意味著步進電機按四相單四拍運行,系統(tǒng)上電后在沒有操作的情況下,步進電機不旋轉,方向值顯示“0”,速度值顯示“0”,

24、主程序流程圖如圖 9所示。leizi888 2010開始初始化顯示N啟動開關為 0?Y停止計時器N速度值為 0?Y停止計時器啟動計時器延時圖 9主程序流程圖(2)定時中斷設計步進電機的轉動主要是給電機各繞組按一定的時間間隔連續(xù)不斷地按規(guī)律通入電流,步進電機才會旋轉,時間間隔越短,速度就越快。在這個系統(tǒng)中,這個時間間隔是用定時器重復中斷一定次數(shù)產(chǎn)生的,即調(diào)節(jié)時間間隔就是調(diào)節(jié)定時器leizi888 2010的中斷次數(shù),因而在定時器中斷程序中,要做的工作主要是判斷電機的運行方向、發(fā)下一個脈沖,以及保存當前的各種狀態(tài)。程序流程圖如圖 10所示。T0中斷入口保護現(xiàn)場N中斷次數(shù)-1=0?Y讀方向指示發(fā)速度

25、脈沖重送相關狀態(tài)恢復現(xiàn)場中斷返回圖 10定時中斷程序流程(3)外部中斷設計外部中斷所要完成的工作是根據(jù)按鍵次數(shù),改變速度值存儲區(qū)中的數(shù)據(jù)(該數(shù)據(jù)為定時器的中斷次數(shù)),這樣就改變了步進電機的輸出脈沖頻率,也就是改變了電機的轉速。速度增加按鈕 S2為 INT0中斷,其程序流程為原數(shù)據(jù),當值等于7時,不改變原數(shù)值返回,小于 7時,數(shù)據(jù)加 1后返回;速度減少按鈕 S3,當原數(shù)據(jù)不為 0,減 1保存數(shù)據(jù),原數(shù)據(jù)為 0則保持不變。程序流程圖如圖 11所示。leizi888 2010外部中斷入口保護現(xiàn)場延時去抖速度=上或限值?YNN速度值±1按鈕是否彈起?NY恢復現(xiàn)場中斷返回圖 11外部中斷程序流

26、程圖leizi888 2010源程序(匯編、C語言程序各一個)匯編程序如下:SPEED EQU 10H ;SPEED為轉速等級標志,共 7級,即 17FX EQU 11H ;FX為方向標志COUNT EQU 12H ;COUNT中斷次數(shù)標志ORG 0000HAJMP MAINORG 0003H ;外部中斷 0入口地址,加速子程序AJMP UPORG 0013H ;外部中斷 1入口地址,減速子程序AJMP DOWNORG 000BH ;定時器 0中斷入口地址,控制中斷次數(shù)來達到控制轉速AJMP ZDT0ORG 0030HMAIN: MOV SP,#60HMOV TMOD,#01H ;工作于定時、

27、軟件置位啟動!模式 1(16位計時器)MOV TH0,#0CFHMOV TL0,#2CHMOV COUNT,#01HSETB ET0 ;定時/計數(shù)器允許中斷CLR IT0 ;外部中斷為電平觸發(fā)方式,低電平有效CLR IT1SETB EX0 ;外部允許中斷SETB EX1SETB EA ;開總中斷MOV R1,#11H ;四相單四拍運行,共陽數(shù)碼管方向顯示 8,速度值顯示 0MOV SPEED,#00HMOV FX,#00HXIANS: MOV A,SPEEDMOV DPTR,#LEDMOVC A,A+DPTR ;查表獲取等級對應數(shù)碼管代碼MOV P2,A ;第二個數(shù)碼管顯示轉速等級MOV A,

28、FX ;準備判斷轉向CJNE A,#11H,ELSMOV P0, #0F9H ;第一個數(shù)碼管顯示 1,表示正轉AJMP QDELS: CJNE A,#00H,ZHENGMOV P0,#0C0H ;第一個數(shù)碼管顯示 0,表示不轉AJMP QDZHENG: MOV P0,#0BFH ;第一個數(shù)碼管顯示-,表示反轉QD: JB P3.4,DD ;P3.4接啟動開關 K1,P3.4=1時啟動CLR TR0 ;停止定時/計數(shù)器MOV P0,#0C0H ;第一個數(shù)碼管顯示 0,表示不轉leizi888 2010MOV P2,#0C0H ;第二個數(shù)碼管顯示 0,表示轉速為 0MOV SPEED,#00H ;

29、重新賦初值MOV FX,#00HAJMP QDDD: MOV A,SPEEDJNZ GO ;A不等于 0,即初始速度不為零,則轉移到 GOCLR TR0 ;停止定時/計數(shù)器AJMP QDGO: SETB TR0 ;開啟定時/計數(shù)器ACALL DELAYAJMP XIANSDELAY: MOV R6,#10 ;延時子程序DEL1: MOV R7,#250HERE1: DJNZ R7, HERE1DJNZ R6,DEL1RET;以下 ZDT0為定時器中斷程序ZDT0: PUSH ACCPUSH DPHPUSH DPLMOV TH0,#0D8HMOV TL0,#0F0HDJNZ COUNT,EXIT

30、JB P3.5,NIZHUAN ;查詢方向標志,P3.5接換向開關 K2MOV FX,#11HNIZHUAN:MOV A,FXCJNE A,#11H,FZ ;若 A不等于 11,即正轉,則轉移到 FZMOV A,R1 ;R1記錄上一次電機脈沖狀態(tài)MOV P1,ARR A ;循環(huán)右一位MOV R1,AMOV P1,AAJMP REFZ: MOV A,R1MOV P1,ARL A ;循環(huán)左移一位MOV P1,AMOV R1,ARE: MOV A,SPEEDMOV DPTR,#TABMOVC A,A+DPTRMOV COUNT,A ;把轉速級別賦給 COUNTJB P3.5 ,FFX ; P3.5接

31、換向開關 K2,即換向位,若 P3.5=1,則跳到 FFXleizi888 2010MOV FX,#11HAJMP EXITFFX: MOV FX,#0FEH;只要 FX不等于 11H,就可以通過循環(huán)左移或右移進行換向EXIT: POP DPLPOP DPHPOP ACCRETI;以下 UP為加速中斷程序UP: PUSH ACCACALL DELAY ;延時防抖動JB P3.2,UPEX ;P3.2為外部中斷 0位,接增速開關 S2,低電平有效,若 P3.2=1,則退出MOV A,SPEEDCJNE A,#7,SZ ;最大等級為 7,若 A不等于 7,則轉移到 SZAJMP UPEX ;若 A

32、=7,則退出SZ: INC SPEED ;SPEED= SPEED+1UPEX: POP ACCHERE2: JNB P3.2,HERE2 ;本條指令為防止開關 S2按下去后彈不起,導致一直產(chǎn)生中斷RETI;以下 DOWN為減速中斷程序DOWN: PUSH ACCACALL DELAYJB P3.3,DEX ; P3.3為外部中斷 1位,接減速開關 S3,低電平有效,若 P3.3=1,則退出MOV A,SPEEDCJNE A,#0,SJAJMP DEXSJ: DEC SPEED ;SPEED= SPEED-1DEX: POP ACCHERE3: JNB P3.3,HERE3RETITAB: D

33、B 0,60,40,35,30,28,25,21 ;經(jīng)仿真,小于 21時,由于脈沖太快,會出現(xiàn)失步; 0 1 2 3 4 5 6 7 8 9LED: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98HENDC語言程序如下:#include <reg51.h>#define uint unsigned intsbit k1=P34; /啟動開關sbit k2=P35; /換向開關sbit s2=P32; /加速按鈕sbit s3=P33; /減速按鈕void isr_int0(void);/外部中斷 0中斷服務函數(shù)聲明void isr_in

34、t1(void);void zd_t0ist(void);uint speed,count,r1,i,t,k;main()k=0;t=0;r1=0x11 ;speed=0;count=1;TMOD=0x01;ET0=1;EA=1;EX0=1;EX1=1;TH0=0xcf;TL0=0x2c;for(;)if(k1=0)P0=0xff;P2=0xff;speed=0;TR0=0;elseif(k2=0)P0=0xbf;else P0=0xf9;if(speed=0)P2=0xc0;TR0=0;else TR0=1;void isr_int0(void) interrupt 0if(speed<

35、;7)speed=speed+1;while(s2=0)for(i=0;i<10;i+);void isr_int1(void) interrupt 2if(speed>0)speed=speed-1;while(s3=0)for(i=0;i<10;i+);void zd_t0ist(void) interrupt 1TH0=0xd8;TL0=0xf0;switch(speed)case 0:P2=0xc0;count=0;break;case 1:P2=0xf9;count=60;break;case 2:P2=0xa4;count=40;break;case 3:P2=0xb0;count=35;break;case 4:P2=0x99;count=30;break;cas

溫馨提示

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

評論

0/150

提交評論