大學畢業(yè)設計 C51程序控制步進電機

上傳人:j** 文檔編號:45715956 上傳時間:2021-12-08 格式:DOC 頁數(shù):24 大?。?71.50KB
收藏 版權申訴 舉報 下載
大學畢業(yè)設計 C51程序控制步進電機_第1頁
第1頁 / 共24頁
大學畢業(yè)設計 C51程序控制步進電機_第2頁
第2頁 / 共24頁
大學畢業(yè)設計 C51程序控制步進電機_第3頁
第3頁 / 共24頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《大學畢業(yè)設計 C51程序控制步進電機》由會員分享,可在線閱讀,更多相關《大學畢業(yè)設計 C51程序控制步進電機(24頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 題 目: 簡易步進電機控制 步進電機控制 摘要:本設計采用ATMEL公司DIP—40封裝的AT89S52單片機實現(xiàn)對四相步進電機的手動和按鍵控制。由單片機產生的脈沖信號經過分配后分解出對應的四相脈沖,分解出的四相脈沖經驅動電路功率放大后驅動步進電機的轉動.轉速的調節(jié)和狀態(tài)的改變由按鍵進行選擇,此過程由程序直接進行控制.通過鍵盤掃描把選擇的信息反饋給單片機,單片機根據(jù)反饋信息做出相應的判斷并改變輸出脈沖的頻率或轉動狀態(tài)信號。電機轉動的不同狀

2、態(tài)由液晶LCD1602顯示出來。而設計的擴展部分可以通過紅外信號的發(fā)射由另一塊單片機和紅外線LED完成,用紅外萬能接收頭接收紅外信號,可以實現(xiàn)對電機的控制進行紅外遙控.  關鍵字:四相步進電機 單片機 功率放大 LCD1602 目錄 步進電機控制…………………………………………………………………1 摘要……………………………………………………………………………1 關鍵字…………………………………………………………………………1 前言………………………………………………………………………………3 1系統(tǒng)總體方案設計及硬件設計…

3、…………………………………………4 1。1步進電機……………………………………………………………………4 1.1。1 步進電機的種類………………………………………………………4 1。1.2步進電機的特點………………………………………………………4 1.1。3 步進電機的原理………………………………………………………5 1。2控制系統(tǒng)電路設計…………………………………………………………7 1.3 液晶顯示LCD1602…………………………………………………………7 1。4 AT89S52核心部件及系統(tǒng)SCH原理圖……………………………………9 1。5LN2003A驅動………………

4、………………………………………………10 2軟件設計及調試………………………………………………………………13 2。1程序流程…………………………………………………………………13 2.2軟件設計及調試 …………………………………………………………14 3 擴展功能說明…………………………………………………………………15 4設計總結………………………………………………………………………16 5 設計源程序……………………………………………………………………16 6 附錄……………………………………………………………………………21 參考文獻………………………………………………

5、…………………………22 附2:系統(tǒng)原理圖及實物圖…………………………………………………23 前言 步進電機廣泛應用于對精度要求比較高的運動控制系統(tǒng)中,如機器人、打印機、軟盤驅動器、繪圖儀、機械閥門控制器等。目前,對步進電機的控制主要有由分散器件組成的環(huán)形脈沖分配器、軟件環(huán)形脈沖分配器、專用集成芯片環(huán)形脈沖分配器等。分散器件組成的環(huán)形脈沖分配器體積比較大,同時由于分散器件的延時,其可靠性大大降低;軟件環(huán)形分配器要占用主機的運行時間,降低了速度;專用集成芯片環(huán)形脈沖分配器集成度高、可靠性好,但其適應性受到限制,同時開發(fā)周期長、需求費用較高。步進電機是微特電機的一種,其作為執(zhí)行元件,

6、是機電一體化的關鍵產品之一,廣泛應用在各種自動化控制系統(tǒng)中.隨著微電子和計算機技術的發(fā)展,步進電機的需求量與日俱增,在各個國民經濟領域都有應用.同時步進電動機是一種將脈沖信號變換成相應的角位移(或線位移)的電磁裝置,是一種特殊的電動機。一般電動機都是連續(xù)轉動的,而步進電動機則有定位和運轉兩種基本狀態(tài),當有脈沖輸入肘步進電動機一步一步地轉動,每給它一個脈沖信號,它就轉過一定的角度.步進電動機的角位移量和輸入脈沖的個數(shù)嚴格成正比,在時間上與輸入脈沖同步,因此只要控制輸入脈沖的數(shù)量、頻率及電動機繞組通電的相序,便可獲得所需的轉角、轉速及轉動方向。在沒有脈沖輸入時,在繞組電源的激勵下氣隙磁場能使轉子保

7、持原有位置于定位狀態(tài)。步進電機以廣泛應用在生產實踐的各個領域。它最大的應用是在數(shù)控機床的制造中,因為步進電機不需要A/D轉換,能夠直接將數(shù)字脈沖信號轉化成為角位移,所以被認為是理想的數(shù)控機床的執(zhí)行元件。早期的步進電機輸出轉矩比較小,無法滿足需要,在使用中和液壓扭矩放大器一同組成液壓脈沖馬達.隨著步進電動機技術的發(fā)展,步進電動機已經能夠單獨在系統(tǒng)上進行使用,成為了不可替代的執(zhí)行元件。除了在數(shù)控機床上的應用,步進電機也可以并用在其他的機械上,比如作為自動送料機中的馬達,作為通用的軟盤驅動器的馬達,也可以應用在打印機和繪圖儀中。伴隨著不同的數(shù)字化技術的發(fā)展以及步進電機本身技術的提高,步進電機將會在更

8、多的領域得到應用。 1系統(tǒng)總體方案設計及硬件設計 本設計系統(tǒng)中主要圍繞AT89S52以實現(xiàn)四相步進電機的轉動控制(步進電機正轉、反轉以及轉動速度)以及液晶LCD1602的顯示為目的: 1.1步進電機 步進電機是數(shù)字控制電機,它將脈沖信號轉變成角位移,即給一個脈沖信號,步進電機就轉動一個角度,因此非常適合于單片機控制。步進電機可分為反應式步進電機(VR)、永磁式步進電機(PM)和混合式步進電機(HB)。 步進電機區(qū)別于其他控制電機的最大特點是,它是通過輸入脈沖信號來進行控制的,即電機的總轉動角度由輸入脈沖數(shù)決定,而電機的轉速由脈沖信號頻率決定。 步進電機的驅動電路

9、根據(jù)控制信號工作,控制信號由單片機產生.其基本原理作用如下: (1)控制換相順序 通電換相這一過程稱為脈沖分配。例如:混合式步進電機的工作方式,其各相通電順序為A-B—C—D,通電控制脈沖必須嚴格按照這一順序分別控制A,B,C,D相的通斷,這就是所謂脈沖環(huán)形分配器.(2)控制步進電機的轉向 如果給定工作方式正序換相通電,步進電機正轉,如果按反序通電換相,則電機就反轉.(3)控制步進電機的速度 如果給步進電機發(fā)一個控制脈沖,它就轉一步,再發(fā)一個脈沖,它會再轉一步。兩個脈沖的間隔越短,步進電機就轉得越快。 1。1。1 步進電機的種類 步進電機分永磁式(PM)、反應式(VR)、和混合式(HB)

10、三種.永磁式步進一般為兩相,轉矩和體積較小,步進角一般為7.5度 或15度;反應式步進一般為三相,可實現(xiàn)大轉矩輸出,步進角一般為1。5度,但噪聲和振動都很大。在歐美等發(fā)達國家80年代已被淘汰;混合式步進是指混合了永磁式和反應式的優(yōu)點。它又分為兩相和五相:兩相步進角一般為1。8度而五相步進角一般為 0.72度。這種步進電機的應用最為廣泛。 1.1。2 步進電機的特點 1.精度高 一般的步進電機的精度為步進角的3-5%,且不累積??稍趯拸V的頻率范圍內通過改變脈沖頻率來實現(xiàn)調速,快速起停、正反 轉控制及制動等,這是步進電動機最突出的優(yōu)點 2.過載性好其轉速不受負載大小的影響,不像普通電機,當

11、負載加大時就會出現(xiàn)速度下降的情況,所以步進電機使用在對速度和位置都有嚴格要求的場合; 3.控制方便步進電機是以“步”為單位旋轉的,數(shù)字特征比較明顯,這樣就給計算機控制帶來了很大的方便,反過來,計算機的出現(xiàn)也為步進電機開辟了更為廣闊的使用市場; 4.整機結構簡單傳統(tǒng)的機械速度和位置控制結構比較復雜,調整困難,使用步進電機后,使得整機的結構變得簡單和緊湊. 1.1.3 步進電機的原理 圖1是一種四相可變磁阻型的步進電機結構示意圖。這種電機定子上有八個凸齒,每一個齒上有一個線圈。線圈繞組的連接方式,是對稱齒上的兩個線圈進行反相連接,如圖中所示.八個齒構成四對,所以稱為四相步進電機。

12、 圖1 它的工作過程是這樣的:當有一相繞組被激勵時,磁通從正相齒,經過軟鐵芯的轉子,并以最短的路徑流向負相齒,而其他六個凸齒并無磁通。為使磁通路徑最短,在磁場力的作用下,轉子被強迫移動,使最近的一對齒與被激勵的一相對準。在圖1(a)中A相是被激勵,轉子上大箭頭所指向的那個齒,與正向的A齒對準.從這個位置再對B相進行激勵,如圖1中的(b),轉子向反時針轉過15°。若是D相被激勵,如圖1中的(c),則轉子為順時針轉過15°。下一步是C相被激勵。因為C相有兩種可能性:A—B-C—D或A—D-C—B.一種為反時針轉動;另一種為順時針轉動。但每步都使轉子轉動15°

13、.電機步長(步距角)是步進電機的主要性能指標之一,不同的應用場合,對步長大小的要求不同。改變控制繞組數(shù)(相數(shù))或極數(shù)(轉子齒數(shù)),可以改變步長的大小。它們之間的相互關系,可由下式計算: Lθ=360 P×N 式中:Lθ為步長;P為相數(shù);N為轉子齒數(shù)。在圖1中,步長為15°,表示電機轉一圈需要24步. 四相步進電機,采用單極性直流電源供電。只要對步進電機的各相繞組按合適的時序通電,就能使步進電機步進轉動。圖1是該四相反應式步進電機工作原理示意圖?! ? 圖2 四相步進電機步進示意圖   開始時,開關SB接通電源,SA、SC、SD斷開,B相磁極和轉子0、3號

14、齒對齊,同時,轉子的1、4號齒就和C、D相繞組磁極產生錯齒,2、5號齒就和D、A相繞組磁極產生錯齒。  當開關SC接通電源,SB、SA、SD斷開時,由于C相繞組的磁力線和1、4號齒之間磁力線的作用,使轉子轉動,1、4號齒和C相繞組的磁極對齊。而0、3號齒和A、B相繞組產生錯齒,2、5號齒就和A、D相繞組磁極產生錯齒。依次類推,A、B、C、D四相繞組輪流供電,則轉子會沿著A、B、C、D方向轉動?! ∷南嗖竭M電機按照通電順序的不同,可分為單四拍、雙四拍、八拍三種工作方式。單四拍與雙四拍的步距角相等,但單四拍的轉動力矩小。八拍工作方式的步距角是單四拍與雙四拍的一半,因此,八拍工作方式既可以保持較高的

15、轉動力矩又可以提高控制精度。  單四拍、雙四拍與八拍工作方式的電源通電時序與波形分別如圖3。a、b、c所示:     a. 單四拍 b。 雙四拍 c八拍  圖3。步進電機工作時序波形圖 對步進電機四個繞組依次實現(xiàn)如下方式的循環(huán)通電控制:   單四拍運行:正轉A-B—C—D;反轉D-C-B—A 雙四拍運行:正轉AB—BC-CD-DA;反轉DC—CB—BA—AD 單雙八拍運行:正轉A-AB-B—BC—C-CD—D—DA 1.2 控制系統(tǒng)電路設計 步進電機控制設計采用AT89S52單片機作為控制機構的核心(如圖4)。通過對鍵盤的輸入與操作實現(xiàn)對步進電機的控制。當電源開通

16、的時候,步進電機就會按照默認設置的轉速方式轉動。步進電機的正反轉及轉速由按鍵控制選擇,當按鍵按下,步進電機實現(xiàn)正轉或反轉及加速或減速狀態(tài)。 AT89S52 單片機 獨立按鍵鍵盤 步進電機驅動 LCD1602顯示 揚聲器(擴展) 紅外發(fā)射電路(擴展) 時鐘和復位電路 圖7 控制系統(tǒng) 1。3液晶顯示LCD1602 液晶LCD-1602說明: 1。簡介 工業(yè)字符型液晶,能夠同時顯示16x02即32個字符.(16列2行) 注:為了表示的方便 ,后文皆以1表示高電平,0表示低電平。 2.管腳功能 1602采用標準的16腳接口

17、,其中: 第1腳:VSS為電源地 第2腳:VDD接5V電源正極 第3腳:V0為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產生“鬼影”,使用時可以通過一個10K的電位器調整對比度)。 第4腳:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。 第5腳:RW為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作. 第6腳:E(或EN)端為使能(enable)端. 第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。 第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負極。 3.操作

18、控制 操作控制表 3。1操作 讀狀態(tài) 寫指令 讀數(shù)據(jù) 寫數(shù)據(jù) 3。2輸入 RS=0,RW=1,E=1 RS=0,RW=0, D0-7=指令碼,E=H脈沖 RS=1,RW=1,E=1 RS=1,RW=0, D0-7=數(shù)據(jù),E=H脈沖 注:關于E=H脈沖—-開始時初始化E為0,然后置E為1,脈沖大于0.5us,下降沿有效. 4.字符集 1602液晶模塊內部的字符發(fā)生存儲器(CGROM)已經存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每

19、一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”. 因為1602識別的是ASCII碼,試驗可以用ASCII碼直接賦值,在單片機編程中還可以用字符型常量或變量賦值,如’A’。 以下是1602的16進制ASCII碼表地址: 讀的時候,先讀左邊那列,再讀上面那行,如:感嘆號!的ASCII為0x21,字母B的ASCII為0x42(前面加0x表示十六進制)。 [編輯本段]指令集 1602通過D0-D7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。 顯示模式設置: (初始化) 0011 0000

20、 [0x38] 設置16×2顯示,5×7點陣,8位數(shù)據(jù)接口; 顯示開關及光標設置: (初始化) 0000 1DCB D顯示(1有效)、C光標顯示(1有效)、B光標閃爍(1有效) 0000 01NS N=1(讀或寫一個字符后地址指針加1 &光標加1), N=0(讀或寫一個字符后地址指針減1 &光標減1), S=1 且 N=1 (當寫一個字符后,整屏顯示左移) s=0 當寫一個字符后,整屏顯示不移動 數(shù)據(jù)指針設置: 數(shù)據(jù)首地址為80H,所以數(shù)據(jù)地址為80H+地址碼(0—27H,40—67H) 其他設置: (01H(顯示清屏,數(shù)據(jù)指針=0,所有

21、顯示=0);02H(顯示回車,數(shù)據(jù)指針=0)。 圖8 液晶LCD1602 1。4 AT89S52核心部件及系統(tǒng)SCH原理圖AT89S52單片機功能特性描述:AT89S52 是美國 ATMEL 公司生產的低功耗、高性能 CMOS8 位單片機,片內含 8k bytes 的可系統(tǒng)編程的 Flash 只讀程序 存儲器,器件采用 ATMEL 公司的高密度、非易失性存儲技術生產,兼容標準 8051 指令系統(tǒng)及引腳。它集 Flash 程序存儲器 既可在線編程(ISP)也可用傳統(tǒng)方法進行編程及通用 8 位微處理器于單片芯片中,ATMEL 公司的功能強大,低價位 AT89S51 單片機可以提供許多高

22、性價比的應用場合,可靈活應用于各種控制領域。AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程 Flash 存儲器。使用 Atmel 公司高密度非易失性存儲器技術制造,與工業(yè) 80C51 產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器.在單芯片上,擁有靈巧的 8 位 CPU 和在系統(tǒng)可編程Flash,使得 AT89S52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標準功能: 8k字節(jié)Flash,256字節(jié)RAM32 位 I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個 16 位定時器/計數(shù)器,一個6

23、向量 2級中斷結構,全雙工串行口片內晶振及時鐘電路。另外,AT89S52 可降至 0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式.空閑模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作.掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。 圖9SCH原理框圖 1。5LN2003A驅動 ULN2003的內部結構和功能ULN是集成達林頓管IC,內部還集成了一個消線圈反電動勢的二極管,可用來驅動繼電器。它是雙列16腳封裝,NPN晶體管矩陣,最大驅動電壓=50V,電流=500mA,輸入電壓=5V,適用于TTL COMS,由達

24、林頓管組成驅動電路. ULN是集成達林頓管IC,內部還集成了一個消線圈反電動勢的二極管,它的輸出端允許通過電流為200mA,飽和壓降VCE 約1V左右,耐壓BVCEO 約為36V。用戶輸出口的外接負載可根據(jù)以上參數(shù)估算。采用集電極開路輸出,輸出電流大,故可直接驅動繼電器或固體繼電器,也可直接驅動低壓燈泡。通常單片機驅動ULN2003時,上拉2K的電阻較為合適,同時,COM引腳應該懸空或接電源。ULN2003是一個非門電路,包含7個單元,但獨每個單元驅動電流最大可達350mA。資料的最后有引用電路,9腳可以懸空。 比如1腳輸入,16腳輸出,你的負載接在VCC與16腳之間,不用9腳。uln2003

25、的作用:ULN2003是大電流驅動陣列,多用于單片機、智能儀表、PLC、數(shù)字量輸出卡等控制電路中??芍苯域寗永^電器等負載。輸入5VTTL電平,輸出可達500mA/50V。ULN2003是高耐壓、大電流達林頓陳列,由七個硅NPN達林頓管組成。 該電路的特點如下: ULN2003的每一對達林頓都串聯(lián)一個2。7K的基極電阻,在5V的工作電壓下它能與TTL和CMOS電路 直接相連,可以直接處理原先需要標準邏輯緩沖器。 ULN2003 是高壓大電流達林頓晶體管陣列系列產品,具有電流增益高、工作電壓高、溫度范圍寬、帶負載能力強等特點,適應于各類要求高速大功率驅動的系統(tǒng)。

26、 圖10 ULN2003A引腳圖及功能 ULN2003 是高耐壓、大電流、內部由七個硅NPN 達林頓管組成的驅動芯片。 經常在以下電路中使用,作為: 1、顯示驅動 2、繼電器驅動 3、照明燈驅動 4、電磁閥驅動 5、伺服電機、步進電機驅動等電路中。 ULN2003 的每一對達林頓都串聯(lián)一個2.7K 的基極電阻,在5V 的工作電壓下它 能與TTL 和CMOS 電路直接相連,可以直接處理原先需要標準邏輯緩沖器來處理的數(shù)據(jù)。 ULN2003 工作電壓高,工作電流大,灌電流可達500mA,并且能夠在關態(tài)時承受 50V 的電壓,輸出還可以在高負載電流并行運行。 ULN2003

27、 的封裝采用DIP-16 或SOP—16 ULN2003A在各種控制電路中常用它作為驅動繼電器的芯片,其芯片內部做了一個消線圈反電動勢的二極管.ULN2003的輸出端允許通過IC 電流200mA,飽和壓降VCE 約1V左右,耐壓BVCEO 約為36V。輸出電流大,故可以直接驅動繼電器或固體繼電器(SSR)等外接控制器件,也可直接驅動低壓燈泡. ULN2003可以驅動7個繼電器,具有高電壓輸出特性,并帶有共陰極的續(xù)流二極管使器件可用于開關型感性負載。每對達林頓管的額定集電極電流是500mA,達林頓對管還可并聯(lián)使用以達到更高的輸出電流能力. ULN2003A中每對達林頓管的基極都串聯(lián)有一個

28、2.7kΩ的電阻,可直接與TTL或5V CMOS器件連接. ULN2003可以并聯(lián)使用,在相應的OC輸出管腳上串聯(lián)幾個歐姆的均流電阻后再并聯(lián)使用,防止陣列電流不平衡。 2. 在輸入口輸入高電平時﹐輸出口為低電平﹐但是在輸入端輸入低電平時﹐輸出端怎么還是低電平? ULN2003A的輸出結構是集電極開路的,所以要在輸出端接一個上拉電阻,在輸入低電平的時候輸出才是高電平。在驅動負載的時候,電流是由電源通過負載灌入ULN2003A的. 圖11 ULN2003A驅動電路圖 ULN2003一般用來驅動大電流的裝置,如繼電器,LED燈等,在驅

29、動繼電器這種裝置時,COM端最好接上電源,以用來泄放繼電器線圈的反向電動勢.顯示電路主要包括大型LED數(shù)碼管BSI20—1(共陽極,數(shù)字凈高12 cm)和高電壓大電流驅動器ULN2003,大型LED數(shù)碼管的每段是由多個LED發(fā)光二極管串并聯(lián)而成的,因此導通電流大、導通壓降高。ULN2003是高壓大電流達林頓晶體管陣列電路,他具有7個獨立的反相驅動器,每個驅動器的輸出灌電流可達500 mA,導通時輸出電壓約1 V,截止時輸出電壓可達50 V。ULN2003的1~7腳為信號輸入腳,依次對應的輸出端為16~10腳,8腳為接地端。當驅動電源電壓為+12 V時,若要求數(shù)碼管每段導通電流為40 mA,則每

30、段的限流電阻為50Ω。則一塊ULN2003恰好驅動一個LED數(shù)碼管的7段。大數(shù)碼管采用共陽極接法,低電平有效。鎖存器輸出的電平經NPN三極管9014反相后,再由ULN2003放大后推動大數(shù)碼管顯示。 2 軟件設計及調試 2。1 程序流程 LCD初始 工作方式設置 顯示狀態(tài)設置 清屏 輸入方式設置 返回 LCD初始化 光標定位 顯示字符 結束 開始 圖12 LCD初始化流程圖 圖13 液晶顯示控制程序流程圖 開始 LCD初始化 LCD1602顯示字設定 定時器初值設定(設定按鍵

31、) 判斷LCD是否可寫入 LCD液晶顯示 單片機P0.1-P0.3延時脈沖斬波輸出 返回 定時器T0定時中斷按鍵 定時器T1定時中斷按鍵 外部T0計數(shù)中斷按鍵 外部T1計數(shù)中斷按鍵 P2.3=1 P1=0x01清屏 P2.3=0 P1=0x01清屏 RunSpeed-2 RunSpeed+2 DoSpeed液晶顯示的速度計算后清屏 返回 C51庫調用 C語言各函數(shù)設置及定義 圖14 程序總流程 2.2 軟件設計及調試 軟件設計:根據(jù)要求,可以將程序分為以下幾個部份: (1) 鍵盤輸入程序設計 本系統(tǒng)使用的鍵盤較少且比較特殊,因此采用獨立

32、式鍵盤(定時器定時內部T0、T1中斷及外部計數(shù)T0、T1中斷)接口設計。獨立式鍵盤適用于按鍵數(shù)量較少的場合。獨立鍵盤工作原理:通過上拉電阻接到+5V上。無按鍵,處于高電平狀態(tài),有鍵按下電平為低。在消除抖動影響上是可以采用了軟件消抖方法:在第一次檢測到有鍵按下時,執(zhí)行一段延時子程序后(約10ms),再確認電平是否仍保持閉合狀態(tài)電平,如果保持閉合狀態(tài)電平,則確認真正有鍵按下,進行相應處理工作,消除了抖動的影響。 (2) 步進電機運行步數(shù)控制程序 此方案采用單相和雙相交差通電處理方式。此方法具有運行速度穩(wěn)定,運行步數(shù)準確無誤等優(yōu)點. 調試:本電路經調試符合題目要求,各項技術指標均達到設計的

33、目的.具體操作控制方法如下: (1)步進電機正轉既此時液晶顯示CW:RUN STATE:CW 。 (2)步進電機反轉即液晶顯示:RUN STATE:CCW 。 (3)步進電機加速按鍵:步進電機轉速加快且顯示的轉速加大 (4)步進電機減速按鍵:液晶顯示速度變小 電機轉速減慢。 3 擴展功能說明 通過紅外信號的發(fā)射由另一塊單片機和紅外線LED完成,用紅外萬能接收頭接收紅外信號,可以實現(xiàn)對電機的控制進行紅外遙控。 本電路設計包括max232接口通信電路,可以通過串口線直接與電腦相連接??衫肞C機強大功能編寫PC軟件來控制、驗證、改善控制系統(tǒng)性能.利用以有的單片機系統(tǒng),作為下位機,選

34、用一臺微機作為上位機,可以用VB 語言編寫一個系統(tǒng)軟件,這樣可以基于PC的控制系統(tǒng)提高電機的控制功能。由于聯(lián)動插補算法較復雜,有大量浮點運算,對實時性要求又較高,選用PC來完成插補運算和數(shù)值運算.同時可利用豐富的PC軟件來改善控制系統(tǒng)的圖形顯示、動態(tài)仿真、編程和診斷功能。這樣更有利于操作,大大提高步進電機運行的可靠性.另外電路中還增加了與電機同步的脈沖輸出和方向控制電路(OC輸出),可以方便的與專用的步進電機驅動器相聯(lián)接. 4 設計總結 步進電機可在寬廣的頻率范圍內通過改變脈沖頻率來實現(xiàn)調速,快速起停、正反 轉控制及制動等,這是步進電動機最突出的優(yōu)點.步進電機的性能在很大程度上取決于步進電

35、機控制系統(tǒng),而步進電機控制系統(tǒng)由步進電機控制器、驅動器、系統(tǒng)軟件等幾部分組成,控制系統(tǒng)的每一部分對步進電機的運行性能息息相關.一臺好的步進電機控制器就能體現(xiàn)出步進機在控制方面上的優(yōu)越性能。所以我選擇這樣的畢業(yè)設計課題,并且能通過此次設計來提高自己軟件編制和硬件電路設計的能力。在我完成這次畢業(yè)設計的過程中,當看到自己將專業(yè)知識用于解決實際的問題時,那份成就感和喜悅感是難以形容的。但是,在實際的編程以及調試程序過程中,我發(fā)現(xiàn)自己所應該學的太多太多。光靠自己在書本上所學過的這點知識是遠遠不夠的,真正地認識到了工作就是學習的道理。采用此設計的步進電機驅動系統(tǒng),在驅動二相或四相混合式步進電機時運動平穩(wěn),

36、速度快,噪音低,控制精高,而且可選整步半步驅動。外觀采用鋁鎂合金,散熱性好,價格低廉,可廣泛應用于需要驅動電流小于2A的混合式兩相或四相步進電機的系統(tǒng)中。 5 設計源程序(清單) #include "reg51。h" int delay(); //判斷LCD是否可以寫入即忙否(P1.7) void inti_lcd(); //液晶LCD1602初始化 void show_lcd(int); //液晶讀顯示 void cmd_wr(); //LCD寫控制程序 void ShowState(); //LCD狀態(tài)顯示即速度顯示

37、void clock(unsigned int Delay) ; //延時程序 void DoSpeed(); //計算速度 void motor_CCW(); //電機正轉 void motor_CW(); //電機反轉 void key(); //固定檔位按鍵 #define uchar unsigned char //無符號字符定義 uchar code CW[4]={0x01,0x02,0x04,0x08}; //正轉表 uchar code CCW[4]={0x08,0x04,0x02,0

38、x01}; //反轉表 #define RIGHT_RUN 1 //正轉值 #define LEFT_RUN 0 //反轉值 sbit RS=0xA0; sbit RW=0xA1; sbit E=0xA2; //LCD1602RS RW E腳分別接于P2。0 P2。1 P2。2 sbit P0_0=P0^0; sbit P0_1=P0^1; sbit P0_2=P0^2; sbit P0_3=P0^3; sbit P2_3=P2^3; sbit P1_7=P1^7; sbit P3_0=

39、P3^0; //單片機的管腳定義 #define sfr P1=0x90; #define sfr P0=0x80; //寄存器定義 char SpeedChar[]=”SPEED(n/min):”; char StateChar[]=”RUNSTATE:"; char STATE_CW[]=”CW"; char STATE_CCW[]=”CCW”; //顯示數(shù)組 char SPEED[3]="050”; //初始速度設定 unsigned int

40、RunSpeed=50; //初始速度值 unsigned char RunState=RIGHT_RUN; //運行狀態(tài) main() //主程序 { /*定時器設置*/ TMOD=0x66; //定時器0,1都為計數(shù)方式;方式2; EA=1; //開總中斷開啟 TH0=0xff; //定時器T0初值FFH; TL0=0xff; ET0=1; //T0中斷開啟 TR0=1; //定時器T0開啟 TH1=0xff; //定時器T1初值FFH; TL1=0xff; ET1=1;

41、 TR1=1; //T1中斷開啟 IT0=1; //脈沖方式 EX0=1; //開外部中斷0:加速 IT1=1; //脈沖方式 EX1=1; //開外部中斷1:減速 inti_lcd(); DoSpeed(); ShowState(); while(1) { if(P2_3==1) motor_CW(); //電機正轉 else if(P2_3==0) motor_CCW(); //電機反轉 } } /*步進電

42、機正轉 /********************************************************/ void motor_CW() { uchar i; { for (i=0; i<4; i++) //一個周期轉30度 { P0 = CW[i]; //取數(shù) clock(RunSpeed);// 脈沖延時 } } } /*步進電機反轉 /********************************************************/ void motor_CCW()

43、 { uchar j; { for (j=0; j<4; j++) //一個周期轉30度 { P0 =CCW[j]; //取數(shù)據(jù) clock(RunSpeed);// 脈沖延時 } } } //定時器0中斷程序:正轉 void t_0(void) interrupt 1 { RunState=RIGHT_RUN; P2_3=1; P1=0x01; //清屏 cmd_wr(); ShowState(); } //定時器1中斷:反轉 void t_1

44、(void) interrupt 3 { RunState=LEFT_RUN; P2_3=0; P1=0x01; cmd_wr(); ShowState(); } //中斷0:加速程序 void SpeedUp() interrupt 0 { if(RunSpeed〉=12) RunSpeed=RunSpeed-2; DoSpeed(); P1=0x01; cmd_wr(); ShowState(); }

45、//中斷1:減速程序 void SpeedDowm() interrupt 2 { if(RunSpeed<=100) RunSpeed=RunSpeed+2; DoSpeed(); P1=0x01; cmd_wr(); ShowState(); } void key() { if(P3_0==0) RunSpeed=70; DoSpeed(); P1=0x01; cmd_wr(); ShowState(); } int delay

46、() //判斷LCD是否忙 { int a; start: RS=0; RW=1; E=0; for(a=0;a〈2;a++); E=1; P1=0xff; if(P1_7==0) return 0; else goto start; } void inti_lcd() //設置LCD方式 { P1=0x38; //液晶模式設置 cmd_wr(); //寫命令 delay();

47、 P1=0x01; //清除 cmd_wr(); delay(); P1=0x0f; //光標,顯示開啟 cmd_wr(); delay(); P1=0x06; cmd_wr(); delay(); P1=0x0c; cmd_wr(); delay(); } void cmd_wr() //寫控制字 { RS=0; RW=0; E=0; E=1; } void show_lcd(int i) //LCD顯示子程序

48、{ P1=i; //將數(shù)據(jù)經P1口送入液晶顯示 RS=1; RW=0; E=0; E=1; } void ShowState() //顯示狀態(tài)與速度 { int i=0; while(SpeedChar[i]!='\0’) { delay(); show_lcd(SpeedChar[i]); i++; } delay(); P1=0x80 | 0x0d; cmd_wr(); i=0; w

49、hile(SPEED[i]!='\0’) { delay(); show_lcd(SPEED[i]); i++; } delay(); P1=0xC0; cmd_wr(); i=0; while(StateChar[i]!=’\0') { delay(); show_lcd(StateChar[i]); i++; } delay(); P1=0xC0 | 0x0A;

50、 cmd_wr(); i=0; if(RunState==RIGHT_RUN) while(STATE_CW[i]!=’\0') { delay(); show_lcd(STATE_CW[i]); i++; } else while(STATE_CCW[i]!=’\0') { delay(); show_lcd(STATE_CCW[i]);

51、 i++; } } void clock(unsigned int Delay) //1ms延時程序 { unsigned int i; for(;Delay>0;Delay—-) for(i=0;i〈124;i++); } void DoSpeed() //液晶上速度顯示計算 { SPEED[0]=(1000*6/RunSpeed/100)+48; SPEED[1]=1000*6/RunSpeed%100/10+48; SPEED[2]=1000*6/RunSpeed%10+4

52、8; } 6 附錄 6.1為什么步進電機低速時可以正常運轉,但若高于一定速度就無法啟動,并伴有嘯叫聲? 步進電機有一個技術參數(shù):空載啟動頻率,即步進電機在空載情況下能夠正常啟動的脈沖頻率,如果脈沖頻率高于該值,電機不能正常啟動,可能發(fā)生丟步或停轉。在有負載的情況下,啟動頻率應更低。如果要使電機達到高速轉動,脈沖頻率應該有加速過程,即啟動頻率較低,然后按一定加速度升到所希望的高頻(電機速從低速升到高速)。 6.2 四相混合式步進電機與驅動器的串聯(lián)接法和并聯(lián)接法有什么區(qū)別? 四相混合式步進電機一般由兩相驅動器來驅動,因此,連接時可以采用串聯(lián)接法或并聯(lián)接法將四相電機接成兩相使用。串聯(lián)接

53、法一般在電機轉速較的場合使用,此時需要的驅動器輸出電流為電機相電流的0.7倍,因而電機發(fā)熱?。徊⒙?lián)接法一般在電機轉速較高的場合使用(又稱高速接法),所需要的驅動器輸出電流為電機相電流的1.4倍,因而電機發(fā)熱較大。6.3如何確定步進電機驅動器的直流供電電源? A.電壓的確定 混合式步進電機驅動器的供電電源電壓一般是一個較寬的范圍(比如IM483的供電電壓為12~48VDC),電源電壓通常根據(jù)電機的工作轉速和頻率應要求來選擇。如果電機工作轉速較高或響應要求較快,那么電壓取值也高,但電源電壓的紋波不能超過驅動器的最大輸入電壓,否則可能損壞驅動器。 B.電流的確定 供電電源電流一般根據(jù)驅動器的

54、輸出相電流I來確定.如果用線性電源,電源電流一般可取I 的1。1~1。3倍;如果采用開關電源,電源電流一般可取I 的1。5~2.0倍. 參考文獻 1 胡漢才,《單片機原理及其接口技術》,清華大學出版社; 2 沙占友,王彥朋,孟志永,《單片機外圍電路設計》,電子工業(yè)出版社; 3康華光,陳大欽,《電子技術基礎》,北京高等教育出版社; 4黃繼昌,張海貴,郭繼忠,《實用單元電路及其應用》,人民郵電出社;;5張迎新 《單片機初級教程--單片機基礎》,北京航空航天大學出版社。6 CS-51系列單片機實用接口技術》北京航空航天大學出版社 7電動機的單片機控制》 北京航空航天大學出版 8單片機的C語言言應用程序設計》  北京航空航天大學出版社  9單片機典型模塊設計實例導航.北京人民郵電出版社. 附2:系統(tǒng)原理圖及實物圖 23

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!