基于Proteus的步進電機控制系統設計-【實用文檔】doc_第1頁
基于Proteus的步進電機控制系統設計-【實用文檔】doc_第2頁
基于Proteus的步進電機控制系統設計-【實用文檔】doc_第3頁
基于Proteus的步進電機控制系統設計-【實用文檔】doc_第4頁
基于Proteus的步進電機控制系統設計-【實用文檔】doc_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于Proteus的步進電機控制系統設計-【實用文檔】doc文檔可直接使用可編輯,歡迎下載

基于Proteus的步進電機控制系統設計-【實用文檔】doc文檔可直接使用可編輯,歡迎下載畢業(yè)設計說明書XXX學生姓名:學號:學院:專業(yè):指導教師:2016年5月基于Protues的步進電機控制系統設計摘要本文設計了一種基于Protues軟件的步進電機控制系統,該系統由AT89C52主控模塊,LCD1602液晶顯示模塊,按鍵控制模塊,步進電機模塊,步進電機驅動模塊構成,由AT89C52單片機產生驅動脈沖信號,來控制步進電機的運動狀態(tài),按鍵設定可以控制步進電機的步進方向和步進速度,并在LCD1602液晶上實時顯示步進角度,步進方向以及當前速度,該設計采用仿真軟件protues進行電路圖的繪制并進行仿真,整個系統采用模塊化設計,結構簡單,具有很強的可靠性以及穩(wěn)定性。關鍵詞:AT89C52;步進電機;LCD1602;Protues;按鍵BasedonprotuessteppingmotorcontrolsystemdesignAbstractThispaperdesignsakindofsteppingmotorcontrolsystembasedonProtuessoftware,thesystemconsistsofmaincontrolmodule,AT89C52LCD1602LCDdisplaymodule,thekeycontrolmodule,steppermotormodule,steppermotordrivermodule,drivepulsesignalgeneratedbythesinglechipmicrocomputerAT89C52,tocontrolthemovementofstepmotor,setkeyscancontrolthesteppermotorstepanddirectionandstepspeed,andreal—timedisplayontheLCD1602LCDstepperAngle,stepanddirectionandthecurrentspeed,thedesignadoptstheProtuessimulationsoftwareofcircuitdiagramdrawingandcarryonthesimulationofthewholesystemUSESmodulardesign,simplestructure,strongreliabilityandstability。Keywords:AT89C52;Steppingmotor;LCD1602;Protues;keys目錄TOC\o"1—3"\h\z\uHYPERLINK\l”_Toc449300752”1引言PAGEREF_Toc449300752\h1HYPERLINK\l"_Toc449300753”2系統方案設計及論證PAGEREF_Toc449300753\h12。1設計要求PAGEREF_Toc449300754\h1HYPERLINK\l"_Toc449300755"2.2系統總體方案PAGEREF_Toc449300755\h1HYPERLINK\l”_Toc449300756"2。3設計方案的論證PAGEREF_Toc449300756\h22.3.1單片機模塊的選擇與論證PAGEREF_Toc449300757\h22。3.2電機驅動模塊的選擇與論證PAGEREF_Toc449300758\h2HYPERLINK\l”_Toc449300759"3硬件電路設計PAGEREF_Toc449300759\h3HYPERLINK\l”_Toc449300760”3。1硬件設計概述PAGEREF_Toc449300760\h33.2AT89C52單片機最小系統設計PAGEREF_Toc449300761\h3HYPERLINK\l”_Toc449300762"3.3步進電機驅動模塊設計PAGEREF_Toc449300762\h4HYPERLINK\l"_Toc449300763"3。3。1步進電機PAGEREF_Toc449300763\h4HYPERLINK\l”_Toc449300764"3。3。2步進電機原理PAGEREF_Toc449300764\h4HYPERLINK\l”_Toc449300765"3.3.3L297介紹PAGEREF_Toc449300765\h63.2.4L298簡介PAGEREF_Toc449300766\h7HYPERLINK\l"_Toc449300767”3。3.5步進電機驅動模塊設計PAGEREF_Toc449300767\h83.4液晶顯示模塊設計PAGEREF_Toc449300768\h9HYPERLINK\l”_Toc449300769”3.5控制電路設計PAGEREF_Toc449300769\h103.6總體電路圖PAGEREF_Toc449300770\h114程序設計及仿真PAGEREF_Toc449300771\h11HYPERLINK\l"_Toc449300772"4.1主程序框圖PAGEREF_Toc449300772\h12HYPERLINK\l"_Toc449300773"4。2程序下載以及軟件說明PAGEREF_Toc449300773\h13HYPERLINK\l”_Toc449300774"4.3仿真結果449300774\h135總結PAGEREF_Toc449300775\h17HYPERLINK\l"_Toc449300776”附錄A部分程序代碼PAGEREF_Toc449300776\h17參考文獻PAGEREF_Toc449300777\h24HYPERLINK\l”_Toc449300778"致謝PAGEREF_Toc449300778\h251引言隨著經濟和科學技術的發(fā)展,步進電機的應用范圍越來越廣泛.步進電機是一種高精度的電機執(zhí)行元件,在農業(yè)、工業(yè)、智能控制領域應用的非常廣泛.它的使用能提高系統的可靠性。常見的儀器如復印機、傳真機、打字機、FDD、監(jiān)視攝影機、照明裝置、自動機械、游戲機、醫(yī)療機械等都用到了步進電機本次畢業(yè)設計中使用了電路分析與仿真軟件-Protues,設計者可以根據設計需要搭建開發(fā)平臺,可以將在編譯器中編譯好的程序加載到芯片中運行.Protues軟件目前支持的編譯器有Keil、IAR等。Protues軟件有大量的元件庫,支持大型設計,在仿真中可以觀察各元件的狀態(tài)。將需要的程序在Protues軟件中仿真,調試好功能,再導入到相應的硬件電路中,這樣可以縮短開發(fā)產品周期,降低研發(fā)成本.2系統方案設計及論證2.1設計要求本次設計,通過編程控制單片機,實現對四相步進電機轉動的控制,控制電機實現正轉、反轉、加速與減速運行。整個控制系統的工作過程是:通電之后,電機按照程序設計的轉速和轉動方向轉動。當按下正(反)轉按鍵時,通電后電機實現正(反)轉;按下加速按鍵電機加速轉動;按下減速按鍵電機減速轉動2.2系統總體方案圖2。1總體設計方案本次設計了使用AT89C52單片機作為控制核心的四相步進電機的開環(huán)控制系統。系統總體設計方案如圖2.1所示,整個步進電機控制系統以單片機為控制核心,單片機產生的脈沖信號通過功率放大器放大之后驅動步進電機轉動。通過控制鍵盤控制部分的四個按鍵,可以控制步進電機正轉、反轉、加速、減速。為了提高控制的準確性,本次設計使用了兩個外部中斷,本設計通過單片機與硬件相結合實現了單片機對步進電機的精確控制和旋轉方向的控制。從步進電機控制系統的設計要求可知,需要控制步進電機的轉動速度和方向。對于加減速的變化控制,通常采用按鍵來控制速度,所以只要2個電源線,再加上一個方向線框,一根啟動線可以了,所以鍵盤控制部分設置需要四個按鍵。四個鍵分別控制電機的正轉、反轉以及電機的加速和減速運行.2.3設計方案的論證2.3.1單片機模塊的選擇與論證從學校實驗室現有的設備和單片機的性價比考慮,本次設計可以選擇的單片機有AT89S52單片機和AT89C52單片機。AT89C52是一種低功耗,高性能CMOS8位8K的閃存可編程和可擦除只讀存儲器(PEROM)字節(jié)的微型計算機。單片機本身帶有8K字節(jié)閃存,256Kb的RAM,32個I/O接線端,兩個16位的定時器/計數器,二個五向量兩級中斷結構,一個全雙工串行口,片上振蕩器和時鐘電路。掉電模式保存RAM的內容,但凍結振蕩器關閉,直到下一個硬件復位芯片其它功能。通過比較AT89S52單片機和AT89C52單片機兩種單片機的性能和價格,AT89C52單片機CPU集成在單片機的8位閃存芯片上,這樣提供了一個高度靈活的嵌入式應用系統。所以本次電路設計中選用AT89C52型號的單片機.2。3.2電機驅動模塊的選擇與論證方案一:集成驅動芯片。L298N是高電壓和高電流全橋驅動。具有高頻率、低靜態(tài)電流、輸出電流大、電路簡單、散熱效果好等特點,不容易燒壞,而且還帶有控制使能端。L298N芯片抗干擾能力強,具有信號指示和續(xù)流保護功能。光電隔離技術的應用,使L298N芯片可以控制2臺直流電機或步進電機,速度控制,可以很容易實現正反轉.該芯片是用于電動馬達驅動,操作方便,穩(wěn)定性好,性能好。方案二:分立元件組成驅動電路。使用三極管元件搭建電路,電路比較復雜,并且靜態(tài)電流較大,參數需要調試.搭建的電路功率小,散熱性能也不好,同時飽和導通壓降小。但是由分立元件構成電路價格低廉,所以在實際中應用比較廣泛。但是這種電路存在工作性能不夠穩(wěn)定的缺點?;谝陨系姆治龊捅容^,我們發(fā)現,方案2采用分立元件構成驅動H橋電路相應的功率管驅動電路和匹配,雖然功率較大,但電路復雜,不符合應用程序的要求.故本系統采用方案一的芯片。3硬件電路設計3.1硬件設計概述本次設計的硬件電路主要包括單片機最小系統、步進電機驅動電路、顯示電路及控制電路四大部分。單片機最小系統主要是為了讓單片機正常工作。步進電機驅動電路主要是對單片機輸出的脈沖進行功率放大,從而驅動電機轉動。顯示電路可以顯示轉速和電機的工作狀態(tài)??刂齐娐分饕砷_關和按鈕組成,由設計人員根據相應的工作操作.3.2AT89C52單片機最小系統設計圖3.1單片機最小系統最小系統是一個可以用最少的組件來工作的系統。本次設計中單片機最小系統主要由單片機、晶振電路、復位電路三部分組成。晶振頻率為12MHz。圖3。1為本次設計中單片機最小系統。3.3步進電機驅動模塊設計3.3.1步進電機(1)步進電機步進電機可以將電脈沖信號轉換為線位移或角位移。給步進電機一個脈沖信號,它就可以轉動一個角度,這種工作方式比較適合用單片機進行控制。由于步進電機工作原理的特殊性,它必須通過調節(jié)脈沖信號的頻率和個數來控制.由于步進電機的轉動角度和轉速取決于脈沖信號的頻率和個數,它每接收到一個脈沖信號,就轉動一個角度。所以步進電機的精度很高,在系統開環(huán)情況下就能實現高精度的控制,在工業(yè)控制領域獲得了廣泛的應用。由于步進電機的旋轉角度是由脈沖輸入的數量決定的,所以步進電機也叫數字角轉換器.目前,步進電機的控制主要是由環(huán)形脈沖分配器、軟件環(huán)形脈沖分配器、專用集成芯片環(huán)形脈沖分配器等組成。本次畢業(yè)設計中采用了低功耗、性價比高的單片機進行電機轉動控制,并且使用了軟件進行環(huán)形脈沖分配。步進電機有多種工作方式。在每個工作模式中,脈沖頻率越高,速度越快,但在一定程度上,步進電機不能跟上電機的頻率會出現失步現象,因此,脈沖頻率必須控制在步進電機允許的范圍內.3.3.2步進電機原理步進電機在接收到脈沖信號后才能工作,所以不可以直接與交流或者直流電源連接,需要使用驅動器才可以工作.通過程序設計和控制,單片機可以產生環(huán)形分配器需要的脈沖序列.脈沖序列是按一定規(guī)律分布的,由功率放大器放大的脈沖序列,然后被加載到輸入端的步進電機驅動步進電機工作.環(huán)形分配器分兩大類:第一類,軟環(huán)形分配器,并通過計算機軟件的脈沖序列分配.第二類,硬環(huán)形分配器,用硬件構成環(huán)形分配器,分配脈沖序列。步進電機在結構上分為三相三步和三三相雙拍和三相六拍。(1)步進電機的速度控制.如果步進電機送一個控制脈沖,它將是一個步驟,然后發(fā)送一個脈沖,這將是一個進一步的步驟。調整步進電機的脈沖頻率,可以實現對步進電機進行速度的控制。(2)步進電機的起??刂撇竭M電機由于其結構和工作原理的特殊性,運行時會有步進感。為了提高步進電機轉動時的平滑性,減小機械振動,可以通過在脈沖信號的上升沿和下降沿采用細分的梯形波來改善這一狀況。這樣可以減小步進電機的步進角,使得步進電機運行更平穩(wěn).(3)步進電機的加減速控制在使用脈沖信號驅動步進電機進行工作時,如果脈沖信號變化太快,步進電機的機械結構會由于慣性跟不上脈沖信號的變化,這時候會產生失步和賭轉的現象.步進電機起動過程中,輸入波形有一個加速過程,在結束時同樣存在一個減速波形。步進電機加速加速曲線最理想的指數曲線,整個加速過程和加速過程中頻率變化的規(guī)律是一個互逆的過程。為了充分利用步進電機的轉矩,選定脈沖信號的加減速曲線需要符合步進電機升降過程的運行規(guī)律,這樣可以縮短升降速時間,防止失步現象.(4)步進電機換向的控制步進電機的換向動作必須在電機降速停止或降到突跳頻率范圍之內進行,這樣可以避免產生沖擊而損壞電機。脈沖信號需要有一定的脈沖寬度、脈沖序列的均勻度、高低電平方式。步進電機工作時正反向的切換是是由降速→換向→加速3個過程組成的.步進電機有如下特點:①步進電機精度很高,適合于開環(huán)控制系統。②步進電機動態(tài)響應快,脈沖信號便于控制,使得步進電機容易啟動、停止、正反轉和變速。③步進電機的速度可以在一個比較寬的范圍內進行平滑調整,低速運行仍然可以得到大量的轉矩,所以步進電機可以直接驅動負載。④步進電機帶慣性負載的能力比較強。3。3.3L297介紹L297是一款可專門用于步進電機控制的控制芯片,這款芯片可以產生4相的控制信號,芯片本身需要5v電壓供電才可以正常工作。通過單片機編程可以來控制步進電機的轉速。L297芯片采用雙列直插式20引腳封裝。引腳圖見下圖3。2。圖3.2L297芯片引腳圖L297各個引腳的功能說明如下:第1腳SYNG---—斬波器輸出端.第2腳GND——--接地端.第3腳HOME-———集電極開路輸出端。當此引腳電平有效時,晶體管處于開路狀態(tài)。第4腳A----A相驅動信號。第5腳INH1——---此引腳為控制A相以及B相的驅動極。當此引腳為低電平0時,A相、B相驅動控制處于禁止狀態(tài)。第6腳B-B相驅動信號。第7腳C—--——C相驅動信號。第8腳INH2此引腳為控制C相以及D相的驅動級.其作用同INH1。第9腳D———-—-D相驅動信號.第10腳ENABLE---—--使能輸入端。當此引腳為低電平時,A相,B相,C相,D相以及INH1引腳,INH2引腳都為低電平。第11腳CONTROL-——---此引腳為斬波器功能控制端。當為低電平0時,INH1和INH2工作,當為高電平1時,A,B,C,D工作.第12腳Vcc-—---—電源輸入端,接+5v。第13腳SENS2—-—-—--此引腳為C相以及D相電壓反饋輸入端。通過繞組電流檢測進行反饋。第14腳SENS1—------此引腳為A相以及B相電壓反饋輸入端。通過繞組電流檢測進行反饋。第15腳Vref--—--—-—此引腳為斬波器的基準電壓輸入端.第16腳OSC——-——-—此引腳為斬波器的頻率輸入端.第17腳CW/CCW——-—----方向控制端??刂撇竭M電機的轉動方向,當此引腳的電平發(fā)生變化時,步進電機反向旋轉。第18腳CLOCK-----步進時鐘輸入端。當該引腳輸入一個低電平時,步進電機步進一個對應增量,該步進在信號的上升沿產生.第19腳-低電平全步方式,高電平半步方式。第20腳RESET——復位端。低電平有效。系統初始化。3.2.4L298簡介L298N是一種雙全橋步進電機驅動芯片,主要用于二相以及四相電機的驅動,它內部包含了4信道邏輯驅動電路,同時具有兩個H橋的高電壓,可用來驅動46V、2A以下的電機。其引腳排列如圖3。3所示。圖3.3L298引腳圖3.3.5步進電機驅動模塊設計圖3。4步進電機驅動電路圖步進電機直接連接交流或者直流電源時不會運動,必須與驅動電路同時使用才能發(fā)揮其功能。驅動電路由決定順序的控制電路與控制電路輸出功率的換相電路組成。本次步進電機的驅動電路由L297和L298芯片構成,步進電機驅動電路圖如圖3.4所示。L297的四相輸出接L298N電機驅動芯片的OUT1、OUT2和OUT3、OUT4,在ENA、ENB兩個使能端為高電平,控制器只要控制4個輸入端的電平高低,就能實現小車的正轉、反轉等動作。3.4液晶顯示模塊設計圖3。4液晶顯示模塊電路連接圖本次設計選擇了LM016L液晶模塊,電路連接如圖3.4所示。LM016L模塊引腳說明如下:第1腳:VSS接地。第2腳:VDD接5V正電源。第3腳:VO為液晶對比度調整端口,用來調整顯示器的對比度,在使用時一般通過外接一個10K的電位器來調整對比度.第4腳:RS指令/數據寄存器選擇端口。第5腳:R/W,信號讀寫選擇端口。第6腳:E端為使能信號端,當該端口信號由1跳變?yōu)椋皶r。液晶顯示模塊開始進行工作。第7~14腳:8位數據傳輸口。第15腳:背光源正極。第16腳:背光源負極。本次設計中顯示部分用的是XXX模塊,XXX模塊的數據端與單片機通過P1口的P1.0~P1。7連接,顯示步進電機的轉速和方向.3。5控制電路設計圖3.5控制電路原理圖本設計中設置了步進電機的四種運動狀態(tài),分別為正轉,反轉,加速,減速,分別由四個按鍵開關控制,REV,FWD按鍵控制電機的正轉和反向。當REV、FWD的電平發(fā)生變化時,單片機檢測P3.4和P3。5的電平狀態(tài)從而進行電機的正反轉控制。圖3。5為步進電機控制部分電路原理圖。表1為四相單四拍脈沖分配表,表2為四相雙四拍脈沖分配表。步進電機的工作是由輸入電機的脈沖頻率來控制步進電機的轉速,通過REV、FWD的開關來控制控制電機的加速度,根據按鍵次數來控制中斷的次數,從而改變速度值存儲區(qū)中的數據,進而改變了步進電機的輸出脈沖頻率最終改變了電機的轉速。3.6總體電路圖總電路圖如圖12所示。圖3。6總體電路圖(包括顯示電路圖)步進電機的總體電路如圖3.6所示,硬件電路設計部分,以AT89C52單片為核心控制器件,設計了步進電機控制系統。整個硬件部分由單片機最小系統、步進電機驅動電路、液晶顯示電路、控制電路和電源部分組成。4程序設計及仿真通過對步進電機控制系統的分析,單片機需要控制步進電機隨時實現正轉、反轉、加速、減速,本次采用了效率較高的中斷方式來實現。源程序由主程序,定時器中斷程序,外部中斷1以及外部中斷0等四部分組成.主程序的主要作用對系統進行初始化設置以及開關檢測。當開關閉合時系統開始進行工作,反之,當開關斷開后系統就停止工作。4.1主程序框圖圖4.1程序流程框圖程序流程框圖如圖4。1所示。系統在進行工作時需要先進行初始化設置,初始化完成后進行定時器設置,當定時器T0工作時,步進電機進入正轉運行狀態(tài),LCD1602進行實時顯示步進電機的轉速以及運行狀態(tài),同樣,當定時器T1工作時,步進電機進入反轉運行狀態(tài),液晶顯示反轉轉速以及反轉狀態(tài)。中斷0觸發(fā)后進行減速控制,中斷1觸發(fā)后進行加速控制,液晶顯示模塊進行速度以及運動狀態(tài)的顯示。根據定時器中斷次數來判斷步進電機的運行方向,進而控制正反轉改,通過按鍵來確定外部中斷,進而改變步進電機輸出脈沖頻率,即改變了電機的轉速。當按正轉控制按鍵時,步進電機進行正轉,轉速為400n/min,當按反轉控制按鍵時,步進電機進行反轉,轉速依然為400n/min,當按減速控制按鍵時,步進電機減速,轉速為303n/min,當按加速控制按鍵時,步進電機加速,轉速為500n/min,不斷按加速按鍵或者減速按鍵,步進電機速度會進行步進加速或者減速。4.2程序下載以及軟件說明本設計采用的編程軟件為keil,采用的仿真軟件為Protues,同時采用keil與Protues級聯調試仿真的步驟如下:1。keil中新建工程,同時新建c文件,點擊保存,并將c文件添加到所建工程中。2。在所建c文件中編寫程序,編寫完成后點擊編譯,若編譯出錯,檢查程序是否有語法以及格式錯誤并進行修改,直至編譯無報錯.3.點擊輸出文件設置快捷按鈕output,勾選生成HEX文件,重新進行編譯.4.Protues中新建原理圖文件,根據所需器件進行原理圖的繪制。5.雙擊AT89C52單片機,然后在彈出對話框中選擇由keil軟件生成的HEX文件,點擊ok。6。單擊Protues中的仿真按鈕進行仿真。7。點擊正轉控制按鍵,按鍵導通,步進電機進行正轉,顯示模塊顯示點擊速度以及運動狀態(tài),同樣,其他狀態(tài)也依此方式進行仿真。4。3仿真結果將編寫好的C語言程序在keil軟件中運行,并修改錯誤,直至最后沒有警告和錯誤,然后進行編譯生成HEX文件,然后與Protues軟件連接,導入Protues軟件。圖4.2—4.5是硬件電路在Protues軟件中的仿真結果界面。圖4。2正轉仿真結果圖4.2是步進電機正轉仿真結果,閉合原理圖上的FEED按鍵,點擊Protues軟件的運行按鈕.電路圖上的各個接線引腳會呈現動態(tài)的彩色,步進電機正轉,液晶顯示器上顯示字符REV(正轉),轉速400r/min,圖4.3反轉仿真結果圖4。3為步進電機反轉仿真結果,閉合原理圖上的REV按鍵,點擊Protues軟件的運行按鈕,電路圖上的各個接線引腳會呈現動態(tài)的彩色,電機進行反轉,液晶顯示器上顯示FZ(反轉),轉速400r/min,.圖4。4加速仿真結果圖4。4為步進電機加速轉動的仿真結果圖。閉合原理圖上的FEED按鍵,點擊Protues軟件的運行按鈕,電路圖上的各個接線引腳會呈現動態(tài)的彩色,步進電機反轉。點擊原理圖上的SPEED按鍵,步進電機加速轉動,液晶顯示器上顯示FZ(反轉),速度由400r/min變?yōu)椋担?r/min.圖4。5減速仿真結果圖4.5為步進電機減速轉動的仿真結果圖,閉合原理圖上的FEED按鍵,點擊Protues軟件的運行按鈕,電路圖上的各個接線引腳會呈現動態(tài)的彩色,步進電機反轉。點擊原理圖上的SOLWDOWN按鍵,步進電機減速轉動,液晶顯示器上顯示FZ(反轉),速度由400r/min變?yōu)?00r/min.從圖4。2-4.5,可以看出本次設計的控制系統完全實現了設計要求的功能:電機正轉以及反轉,加速,減速運行。滿足設計要求。將C語言程序在Keil中編譯之后導入到Protues軟件中運行,發(fā)現設計的電路可以正常工作,實現了論文要求的功能,步進電機可以正常的正轉、反轉、加速和減速。但是由于本次設計時間比較倉促,加上硬件和軟件條件的不足,整個步進電機控制系統的討論不夠詳細,步進電機轉速控制的精度還需要進一步提高。由于選擇的器件的原因,相關實驗做得不夠完善,后續(xù)有待進一步的提高。同時本次畢業(yè)設計中,對電源供電部分的設計也比較粗放。在實際的電路板制作中,外界的供電電壓不可能正好適合電路中的芯片電壓,需要用電壓轉換芯片對電路的電壓進行轉換,同時需要考慮電壓轉換芯片的功耗和功率,這些都是以后在實際應用中需要繼續(xù)研究的問題。5總結本次畢業(yè)設計從選題到系統功能的實現,是一個讓人不斷進步和成長的過程,不僅端正了我的學習態(tài)度,還增強了我對電路設計的興趣。做畢業(yè)設計的整個過程,我學習到了很多新知識,從開始對單片機很膚淺的了解到整個電路的設計;從對編程沒有信心甚至是懼怕到獨立編寫單片機的控制程序并實現其功能等,這對我都是莫大的鼓勵,也增強了我的自信心.經過自己認真學習C語言編程知識,學習keil軟件知識,從開始編寫出簡單的程序,到最后編寫出復雜的單片機程序是一個不斷進步的過程。整個畢業(yè)設計中感謝指導老師和身邊的同學對我的幫助和督促。在電路軟件的設計與調試過程中,我學習到了許多以前不曾接觸到的知識,增長了編程經驗。同時體會到知識不僅在于應用,更是一個學習和積累經驗的過程,這不僅需要對工作內容有充分的認識,也需要嚴謹,認真和堅忍不拔的精神。整個過程讓我學習到了很多,也給我以后的工作和生活態(tài)度產生了重要的積極影響。以后涉及到步進電機的控制系統將會越來越智能化、微型化以及網絡化。本設計對步進電機控制以及應用所做的研究有所不足,我們會在現有的基礎上,不斷的進行創(chuàng)新以及改進,創(chuàng)造新的技術和方法,最終將它們運用到實際工業(yè)生產中,獲取最大的經濟效益.附錄A部分程序代碼#include”AT89C52.h"intdelay();voidinti_lcd();voidshow_lcd(int);voidcmd_wr();voidShowState();voidclock(unsignedintDelay);voidDoSpeed();//計算速度//正轉值#defineRIGHT_RUN1//反轉值#defineLEFT_RUN0sbitRS=0xA0;sbitRW=0xA1;sbitE=0xA2;charSpeedChar[]="Speed(n/min):";charStateChar[]="Runstate:";charSTATE_CW[]=”FZ";charSTATE_CCW[]="REV”;charSPEED[3]=”050";unsignedintRunSpeed=50;//速度unsignedcharRunState=RIGHT_RUN;//運行狀態(tài)main(){/*定時器設置*/TMOD=0x66;//定時器0,1都為計數方式;方式2;EA=1;//開中斷TH0=0xff;//定時器0初值FFH;TL0=0xff;ET0=1;TR0=1;TH1=0xff;//定時器1初值FFH;TL1=0xff;ET1=1;TR1=1;IT0=1;//脈沖方式EX0=1;//開外部中斷0:加速IT1=1;//脈沖方式EX1=1;//開外部中斷1:減速inti_lcd();DoSpeed();ShowState();while(1){clock(RunSpeed);P0_1=P0_1^0x01;}}//定時器0中斷程序:正轉voidt_0(void)interrupt1{RunState=RIGHT_RUN;P0_0=1;P1=0x01;cmd_wr();ShowState();}//定時器1中斷:反轉voidt_1(void)interrupt3{RunStat(yī)e=LEFT_RUN;P0_0=0;P1=0x01;cmd_wr();ShowStat(yī)e();}//中斷0:加速程序voidSpeedUp()interrupt0{if(RunSpeed>=12)RunSpeed=RunSpeed—2;DoSpeed();P1=0x01;cmd_wr();ShowState();}//中斷1:減速程序voidSpeedDowm()interrupt2{if(RunSpeed<=100)RunSpeed=RunSpeed+2;DoSpeed();P1=0x01;cmd_wr();ShowState();}intdelay()//判斷LCD是否忙{inta;start:RS=0;RW=1;E=0;for(a=0;a<2;a++);E=1;P1=0xff;if(P1_7==0)return0;elsegotostart;}voidinti_lcd()//設置LCD方式{P1=0x38;//設置16x2顯示cmd_wr();delay();P1=0x01;//清除cmd_wr();delay();P1=0x0f;cmd_wr();delay();P1=0x06;//光標移動設置cmd_wr();delay();P1=0x0c;//顯示開及光標設置cmd_wr();delay();}voidcmd_wr()//寫控制字{RS=0;RW=0;E=0;E=1;}voidshow_lcd(inti)//LCD顯示子程序{P1=i;RS=1;RW=0;E=0;E=1;}voidShowStat(yī)e()//顯示狀態(tài)與速度{inti=0;while(SpeedChar[i]!='\0’)//////charSpeedChar[]="SPEED(n/min):";{delay();show_lcd(SpeedChar[i]);i++;}delay();P1=0x80|0x0d;///數據首地址為80H,所以數據地址為80H+地址碼(0-27H,40—67H)cmd_wr();i=0;while(SPEED[i]!='\0'){delay();show_lcd(SPEED[i]);///SPEED[3]=”050”;i++;}delay();P1=0xC0;cmd_wr();i=0;while(StateChar[i]!=’\0’){delay();show_lcd(Stat(yī)eChar[i]);//charStat(yī)eChar[]=”Runstate:”;i++;}delay();P1=0xC0|0x0A;/////0x0c顯示開及光標設置cmd_wr();i=0;if(RunStat(yī)e==RIGHT_RUN)while(STATE_CW[i]!=’\0'){delay();show_lcd(STATE_CW[i]);///charSTATE_CW[]=”FW";i++;}elsewhile(STATE_CCW[i]!=’\0'){delay();show_lcd(STATE_CCW[i]);///charSTATE_CCW[]="REV";i++;}}voidclock(unsignedintDelay)//1ms延時程序{unsignedinti;for(;Delay>0;Delay--)for(i=0;i〈124;i++);}voidDoSpeed(){SPEED[0]=(1000*20/RunSpeed/100)+48;SPEED[1]=1000*20/RunSpeed%100/10+48;SPEED[2]=1000*20/RunSpeed%10+48;}參考文獻[1]王文華.基于80C51單片機的智能小車設計。山西電子技術.2010,第4期[2]董濤,劉進英,蔣蘇?;趩纹瑱C的智能小車的設計與制作.計算機測與控制.2010第2期[3]陳永真,寧武,藍和慧.新編全國大學生電子設計競賽試題精選.第一版.電子工業(yè)出版社,2009[4]高吉祥,唐朝京。全國大學生電子設計競賽系列教程數字系統與自動控制系統設計.第一版.電子工業(yè)出版社,

溫馨提示

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

評論

0/150

提交評論