兩相步進電機轉速控制課程設計_第1頁
兩相步進電機轉速控制課程設計_第2頁
兩相步進電機轉速控制課程設計_第3頁
兩相步進電機轉速控制課程設計_第4頁
兩相步進電機轉速控制課程設計_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機設計實驗題目:兩相步進電機轉速控制班級:10自動化2班設計者:姚樹杰、盧曉玲、姜鵬、孫慧、何瑤、姜龍、楊揆指導教師:文遠熔摘 要近年來隨著科技的飛速發(fā)展,單片機的應用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月益更新。本次課程設計是用單片機來控制步進電機的定位和正反旋轉。步進電機是將電脈沖信號轉變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件。整個系統(tǒng)有89C51單片機控制系統(tǒng),L298驅動電路,鍵盤控制電路,LCD顯示電路。用89C51單片機控制兩相四線步進電機,在非超載的情況下,電機的轉速、停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負載變化的影響,即給電機加一個脈沖信號,電機則轉過一個步距角

2、。通過控制脈沖個數(shù)即可以控制角位移量,從而達到準確定位的目的;同時通過控制脈沖的相序來改變步進電機的轉動方向,從而達到的控制正反轉的目的。本系統(tǒng)采用單片機AT89C51為中心器件來控制步進電機,系統(tǒng)實用性強。關鍵字:單片機 ;步進電機;脈沖; 步距角目錄1設計內容31.1 設計目的31.2 設計任務42 步進電機工作原理42.1兩相步進電機結構42.2兩相步進電機的原理52.3 兩相步進電機的供電方式53 硬件電路設計53.1 系統(tǒng)總體設計框圖53.2 單片機系統(tǒng)63.3 時鐘信號控制電路73.4 電源電路73.5 驅動電路83.6 顯示電路93.7鍵盤電路104 軟件系統(tǒng)設計104.1 主程

3、序流程圖104.2 鍵盤處理114.3 LCD顯示115開發(fā)系統(tǒng)簡介125.1 keilc_51編譯器的簡介125.2 Protues仿真平臺簡介126 仿真結果及分析137 課程設計總結14附錄程序表161設計內容1.1 設計目的單片機應用基礎課程設計是學好本門課程設計的又一重要環(huán)節(jié),課程設計的目的就是配合笨課程設計的教學和平時的實驗,以達到鞏固消化課程的內容,進一步加強綜合應用能力及單片機應用系統(tǒng)開發(fā)和設計能力的訓練,是以培養(yǎng)學生綜合運用所學知識的過程,培養(yǎng)學生查閱相關資料撰寫文檔的能力和自學,科研的能力,是知識轉化為能力和能力轉化為工程素質的重要階段。1.2 設計任務根據(jù)給定的任務要求選

4、擇合適的單片機和其他電子元件,進行系統(tǒng)硬件電路設計和軟件編程,根據(jù)系統(tǒng)制作并調試電路板,使之實現(xiàn)任務要求。兩相步進電機,步距角為3度,編程實現(xiàn)下列功能:(1) 按鍵,步進電機按一定速度正轉。(2) 按鍵,步進電機按一定速度反轉。(3) 任何時候按一下“STOP”鍵,步進電機停止轉動。(4) 點動:按鍵,步進電機轉過3度步距角;再按,再轉過3度步距角(5) 用1602顯示屏顯示轉過的角度。(6) 用L298芯片驅動。2 步進電機工作原理2.1兩相步進電機結構 圖2.1 兩相步進電機結構圖電動機軸向結構如圖2.1所示。轉子被分為完全對稱的兩段,一段轉子的磁力線沿轉子表面呈放射形進入定子鐵心,稱為N

5、極轉子;另一段轉子的磁力線經(jīng)過定子鐵心沿定子表面穿過氣隙回歸到轉子中去,稱為S極轉子。圖中虛線閉和回路為磁力線的行走路線。相應地定子也被分為兩段,其上裝有A、B兩相對稱繞組.同時,沿轉子軸在兩段轉子中間安裝一塊永磁鐵,形成轉子的N、S極性。從軸向看過去,兩段轉子齒中心線彼此錯開半個轉子齒距。2.2兩相步進電機的原理通常電機的轉子為永磁體,當電流流過定子繞組時,定子繞組產(chǎn)生一矢量磁場。該磁場會帶動轉子旋轉一角度,使得轉子的一對磁場方向與定子的磁場方向一致。每輸入一個電脈沖,電動機轉動一個角度前進一步。它輸出的角位移與輸入的脈沖數(shù)成正比、轉速與脈沖頻率成正比。改變繞組通電的順序,電機就會反轉。所以

6、可用控制脈沖數(shù)量、電動機各相繞組的通電順序來控制步進電機的轉動。2.3 兩相步進電機的供電方式兩相四線的步進電機,有兩個繞組:A,B。在半步供電方式時,電機的通電方式采用順序八拍一個循環(huán)給兩相繞組供電為: 八拍,半步:(+A)(+B)-(+B)-(-A)(+B)-(-A)-(-A)(-B)-(-B)-(+A)(-B)-(+A)-。兩相混合式步進電動機還有一種供電方式為雙4拍整步方式,即采用通電次序兩相,四拍:(+A)(+B)-(-A)(+B)-(-A)(-B)-(+A)(-B)。3 硬件電路設計3.1 系統(tǒng)總體設計框圖根據(jù)設計要求設計了如圖3.1圖所示系統(tǒng)總體設計框圖,步進電機是較早實用的典型

7、的機電一體化組件。步進電機本體、步進電機驅動器和控制器構成步進電機系統(tǒng)不可分割的三大部分其設計框圖。單片機L298顯示屏鍵盤步進電機圖3.1總體設計框圖3.2 單片機系統(tǒng)如圖3.2電路中采用的是Atmel公司的AT89C51型號的單片機,其內部結構結構如圖3.2所示。64KB總線擴展控制器可編程I/O可編程全雙工串行口振蕩器和時序OSC程序存儲器4KB Flash ROM256字節(jié) RAM/SFR2×16位定時器/計數(shù)器80C51CPU 圖 3.2 89C51內部結構圖按照圖3.2它具有如下一些特點:(1)集成度高。AT89C51為40腳封裝,內部有4K字節(jié)的ROM,128字節(jié)的RA

8、M,四個8位并行口,一個全雙工的串行口,二個16位定時器計數(shù)器,一個功能很強的中央處理器以及內部晶體振蕩電路。(2)系統(tǒng)結構簡單。一片Ar89C51即可構成一個小型的控制系統(tǒng)。該芯片擴充能力強,具有對64K外部程序存儲器和64K外部數(shù)據(jù)存儲器的尋址能力。兩個單片機間還可進行通訊,可以構成雙CPU系統(tǒng)。可靠性高。AT89C51能在常溫下工作,大部分總線在芯片內部不易受干擾,系統(tǒng)簡單,體積小,容易采取屏蔽措施,因此有較高的可靠性。(3)處理功能強,速度快。AT89C51具有豐富的指令系統(tǒng),除加減指令外,還有字節(jié)的乘除運算指令,具有對128個控制位的位操作指令,因此特別適用于控制要求。CPU時鐘高達

9、12MHz,機器周期只有1微秒,多數(shù)指令為一個機器周期或兩個機器周期,所以運算速度快,可使系統(tǒng)有較強的功能和較高的響應。3.3 時鐘信號控制電路如圖3.3所示,89C51芯片內部有一個高增益反相放大器,用于構成振蕩器。反相放大器的輸入端為XTAL1,輸出端為XTAL2,兩端跨接石英晶體及兩個電容就可以構成穩(wěn)定的自激振蕩器。電容C1和C2可以穩(wěn)定頻率并對振蕩頻率有微調作用。振蕩脈沖頻率為0到24。振蕩信號從XTAL2端輸入到片內的時鐘發(fā)生器上。 圖 3.3 時鐘信號控制電路3.4 電源電路 如圖3.4所示為電源電路,在電子電路中,通常都需要電壓穩(wěn)定的直流穩(wěn)壓電源供電,小功率的穩(wěn)壓電源是由電源變壓

10、器、整流電路、濾波電路和穩(wěn)壓電路等四部分組成。它的指標是輸入電壓為220V/50HZ交流電;輸出電壓分別為+12V/1A,-12V/1A,+5V/1A,-5V/1A,+5V/3A及一組可調正電壓,本次電路系統(tǒng)多用到+5V/1A的電源,通過具體的調節(jié)可以得到穩(wěn)定的需求電壓。3.5 驅動電路如圖3.5所示,驅動電路用L298來驅動步進電機,L298 所出產(chǎn)的雙全橋步進電機專用驅動芯片,內部包含4信道邏輯驅動電路,是一種二相 和四相步進電機的專用驅動器,可同時驅動2個二相或1個四相步進電機,內含二個H-Bridge 的高電壓、大電流雙全橋式驅動器,接收標準TTL邏輯準位信號,可驅動46V、2A以下的

11、步進電機,且可以直接透過電源來調節(jié)輸出電壓;此芯片可直接由單片機的IO端口來提供模擬時序信號。圖 3.5 驅動電路引腳功能說明:引腳NameFunction 功能說明1;15Sense A; Sense B電流監(jiān)測端,1、15和PowerSO的2、19用法一樣,SEN1、SEN2分別為兩個H橋的電流反饋腳,不用時可以直接接地2;3Out 1; Out 21Y1、1Y2輸出端4VS功率電源電壓,此引腳與地必須連接100nF電容器5;7Input 1; Input 21A1、1A2輸入端,TTL電平兼容6;11Enable A; Enable BTTL電平兼容輸入 1EN、2EN使能端,低電平禁止

12、輸出8GNDGND地9VSS邏輯電源電壓。 此引腳與地必須連接100nF電容器10; 12Input 3; Input 42A1、2A2 輸入端,TTL電平兼容13; 14Out 3; Out 42Y1、2Y2 輸出端 監(jiān)測引腳15N.C.Not Connected 空3.6 顯示電路 如圖3.6所示,步進電機的轉速顯示是通過1602來實現(xiàn)的。1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如

13、此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。 1602LCD是指顯示的內容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。 ( LCD1602引腳圖)1602采用標準的16腳接口,其中: 第1腳:VSS為電源地第2腳:VCC接5V電源正極 第3腳:V0為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會 產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調整對比度)。 第4腳:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。 第5腳:RW為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作

14、。 第6腳:E(或EN)端為使能(enable)端。 第714腳:D0D7為8位雙向數(shù)據(jù)端。 第1516腳:空腳或背燈電源。15腳背光正極,16腳背光負極。圖3.6 LCD顯示電路3.7鍵盤電路本次設計要對步進電機實現(xiàn)正轉、反轉和點動等功能,所以設計了鍵盤按鍵分別進行步進電機的“正轉”、“反轉”、“點動”和“停止”。圖3.7鍵盤電路4 軟件系統(tǒng)設計4.1 主程序流程圖 如圖4.1是主程序流程圖,初始化程序后,有鍵按下該按鍵對應值為0,其他按鍵則為1來進行按鍵的處理,并且進行控制步進電機的正反轉及點動以及停轉。在處理案件的過程中,如有其他鍵按下,則退出該鍵的循環(huán)改為進入更改過后的按鍵的處理程序然

15、后調用顯示程序顯示轉過的角度數(shù)。如此進行旋轉和顯示。開始初始化K1=0正轉K2=0反轉K3=0點動K4=0停轉液晶顯示圖4.1主程序流程圖4.2 鍵盤處理共設置4個鍵盤,分別為K1、K2、K3、K4,分別代表:sbit K1 = P24 ;/順轉sbit K2 = P25 ;/反轉sbit K3 = P26 ;/點動sbit K4 = P27 ;/停止4.3 LCD顯示如圖4.3所示為LCD顯示程序流程圖,開始判斷LCD是否忙碌。Result=1則為忙碌狀態(tài),需要等待。Result=0則為不忙,可以對液晶模塊進行讀和寫。RS為低電平,RW為高電平時,可以讀狀態(tài)。E=1,才允許讀寫。RS和R/W

16、同時為低電平時,可以寫入指令,將數(shù)據(jù)送入P0口,即寫入指令或地址。RS為高電平,RW為低電平時,可以寫入數(shù)據(jù),將數(shù)據(jù)送入P0口,即將數(shù)據(jù)寫入液晶模塊。當E由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令。Result是否為1NY數(shù)據(jù)入P1口稍作延時液晶開始執(zhí)行 4.3液晶顯示流程圖5開發(fā)系統(tǒng)簡介5.1 keilc_51編譯器的簡介Keilc_51是一款功能強大的優(yōu)秀的單片機程序編輯、調試軟件。程序采匯編、C語言語言,利用該軟件進行程序的編輯與調試。實驗程序采用多種語言適應不同的語言適應不同層次的學生需要。高級語言編寫應用程序,是一種時代的需要,通過應用高級語言的匯編和實驗們可以更好的掌握。它可以對

17、C語言和匯編語言進行編譯檢查,利用它可以很好的進行編程設計,通過運行生成的文件,被89c51用于仿真。5.2 Protues仿真平臺簡介Protues軟件是英國Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發(fā)應用的科技工作者的青睞,Protues是一個能仿真模擬和數(shù)字電路,特別是能夠仿真單片機、ARM、DSP、FPGA等的軟件,它還能和KEIL軟件在同一臺機子實現(xiàn)聯(lián)調Protues可提

18、供的仿真儀表資源 :示波器、邏輯分析儀、虛擬終端、SPI調試器、I2C調試器、信號發(fā)生器、模式發(fā)生器、交直流電壓表、交直流電流表。理論上同一種儀器可以在一個電路中隨意的調用PROTUES不僅可將許多單片機實例功能形象化,也可將許多單片機實例運行過程形象化。前者可在相當程度上得到實物演示實驗的效果,后者則是實物演示實驗難以達到的效果。 它的元器件、連接線路等卻和傳統(tǒng)的單片機實驗硬件高度對應。這在相當程度上替代了傳統(tǒng)的單片機實驗教學的功能,例:元器件選擇、電路連接、電路檢測、電路修改、軟件調試、運行結果等。 課程設計、畢業(yè)設計是學生走向就業(yè)的重要實踐環(huán)節(jié)。由于PROTUES提供了實驗室無法相比的大

19、量的元器件庫,提供了修改電路設計的靈活性、提供了實驗室在數(shù)量、質量上難以相比的虛擬儀器、儀表,因而也提供了培養(yǎng)學生實踐精神、創(chuàng)造精神的平臺。因此在不具備實驗前可以利用protues進行仿真的檢查。其仿真的界面如圖5.2所示。 圖5.2 protues仿真平臺6 仿真結果及分析1、打開文件,進行編譯,無誤后,點擊工具欄中的運行工具,就得到了圖中的正確運行。2、準備調試3、調入文件后,開始調試硬件電路,點擊運行,電路接通,電路正常顯示。圖6 protues調試硬件電路4、從鍵盤輸入,按正轉,電機正轉運行。5、從鍵盤輸入,按反轉,電機反轉運行。6、從鍵盤輸入,按點動,點一下電機轉過一個步距角。7、從

20、鍵盤輸入暫停,電機停轉。調試完畢,通過鍵盤輸入數(shù)電機按照給定的要求進行正確運轉,數(shù)碼管正確顯示角度。所得的結論與理論的相符合,調試成功。7 課程設計總結本次課程設計采用AT89C51單片機對兩相四線步進電機進行控制,通過改變相序可以改變電機的轉向,通過鍵盤的按鍵控制步進電機的正轉、反轉、點動和停止,所運行的角度由LCD進行顯示。通過調試和運行,得到了正確的結果。開始接到任務時候感覺不知道從哪兒開始,后面通過從網(wǎng)上找了相關的資料后開始對我們的課程設計有所了解,然后慢慢的進行,從發(fā)現(xiàn)問題到慢慢的去解決問題,慢慢的感覺自己好像懂得的多了一些,感覺問題一步步的得到了解決。但是我在學習的過程中也發(fā)現(xiàn)了不

21、少的問題,也花了不少的時間。有時候遇到的困難一下子很難發(fā)現(xiàn)和解決,那時候真想放棄,但最后還是堅持了下來,不動就去問,到處問到處找,感覺這也很有趣,一種學習的樂趣。雖然這次課程設計做的不是很好。但是還是通過了自己的努力。通過對本次的課程設計,不但了解了怎樣設計課程設計的方法更重要的是將書本上的知識用到了現(xiàn)實中,更加深刻的了解了89C51單片機的用法,以及端口的相應的功能和接線。附錄 程序表#include<reg51.h>#include<intrins.h>sbit RS = P20 ;sbit RW = P21 ;sbit E = P22 ;sbit BF = P07

22、 ;sbit K1 = P24 ;/順轉sbit K2 = P25 ;/反轉sbit K3 = P26 ;/點動sbit K4 = P27 ;/停止/步進電機八拍編碼向量;unsigned char code bianma8=0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09;/09字符編碼向量;unsigned char code word=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39;/延時1毫秒void delay(unsigned int t)unsigned int k;while(t-)for(k=0

23、; k<125; k+)/*函數(shù)功能:判斷液晶模塊的忙碌狀態(tài)返回值:result。result=1,忙碌;result=0,不忙*/ bit BusyTest(void) bit result;RS=0; /根據(jù)規(guī)定,RS為低電平,RW為高電平時,可以讀狀態(tài) RW=1; E=1; /E=1,才允許讀寫 _nop_(); /空操作 _nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應時間 result=BF; /將忙碌標志電平賦給resultE=0; return result; /*函數(shù)功能:將模式設置指令或顯示地址寫入液晶模塊入口參數(shù):dictate*

24、/void Write_com (unsigned char dictate) while(BusyTest()=1); /如果忙就等待 RS=0; /根據(jù)規(guī)定,RS和R/W同時為低電平時,可以寫入指令 RW=0; E=0; /E置低電平(寫指令時, / 就是讓E從0到1發(fā)生正跳變,所以應先置"0" _nop_(); _nop_(); /空操作兩個機器周期,給硬件反應時間 P0=dictate; /將數(shù)據(jù)送入P0口,即寫入指令或地址 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應時間 E=1; /E置高電平 _nop

25、_(); _nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應時間 E=0; /當E由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令 /*函數(shù)功能:指定字符顯示的實際地址入口參數(shù):x*/ void WriteAddress(unsigned char x) Write_com(x|0x80); /顯示位置的確定方法規(guī)定為"80H+地址碼x" /*函數(shù)功能:將數(shù)據(jù)(字符的標準ASCII碼)寫入液晶模塊入口參數(shù):y(為字符常量)*/ void WriteData(unsigned char y) while(BusyTest()=1); RS=1;

26、 /RS為高電平,RW為低電平時,可以寫入數(shù)據(jù) RW=0; E=0; /E置低電平(寫指令時, / 就是讓E從0到1發(fā)生正跳變,所以應先置"0" P0=y; /將數(shù)據(jù)送入P0口,即將數(shù)據(jù)寫入液晶模塊 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應時間 E=1; /E置高電平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應時間 E=0; /當E由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令 /屏幕初始化void LcdInt(void) delay(15); /延

27、時15ms,首次寫指令時應給LCD一段較長的反應時間 Write_com(0x38); /顯示模式設置:16×2顯示,5×7點陣,8位數(shù)據(jù)接口delay(5); /延時5msWrite_com(0x38);delay(5);Write_com(0x38); /3次寫 設置模式delay(5);Write_com(0x0F); /顯示模式設置:顯示開,有光標,光標閃爍delay(5);Write_com(0x06); /顯示模式設置:光標右移,字符不移delay(5); Write_com(0x01); /清屏幕指令,將以前的顯示內容清除delay(5); /主程序 main()unsigned int p=0;long int r=0;int D1,D2,D3,flag;LcdInt(); /LC

溫馨提示

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

最新文檔

評論

0/150

提交評論