基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)_第1頁(yè)
基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)_第2頁(yè)
基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)_第3頁(yè)
基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)_第4頁(yè)
基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、武漢軟件工程職業(yè)學(xué)院2009 級(jí) 畢 業(yè) 設(shè) 計(jì)課題名稱 基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng) 學(xué)生姓名 張宗華 學(xué) 號(hào) 1297809050094 班 級(jí) 光電0901 指導(dǎo)老師 馮芳亮 完成時(shí)間: 2011 年11月 20日光電子與通信工程系目錄開題報(bào)告 1畢業(yè)設(shè)計(jì)任務(wù)書 2設(shè)計(jì)說(shuō)明書 21. 設(shè)計(jì)方案論論證22. 設(shè)計(jì)原理23. 硬件設(shè)計(jì)23.1框圖23.1.1 數(shù)碼管的硬件電路33.1.2按鍵的硬件電路 43.1.3驅(qū)動(dòng)芯片ULN2003 73.1.4 步進(jìn)電機(jī)工作原理93.2 電路全圖 143.2 PCB圖 144. 軟件設(shè)計(jì)154.1框圖154.1.1主框圖154.1.2運(yùn)行模塊框圖164

2、.1.3控制模塊框圖184.2關(guān)鍵程序段說(shuō)明184.2.1按鍵控制184.2.2數(shù)碼管顯示調(diào)節(jié)194.3程序清單 20安裝調(diào)試過(guò)程說(shuō)明25對(duì)本設(shè)計(jì)的評(píng)價(jià)26本次畢業(yè)設(shè)計(jì)的心得和體會(huì)26本次畢業(yè)設(shè)計(jì)的支撐材料261. 參考資料及文獻(xiàn)262. 元件參數(shù)總表27畢業(yè)設(shè)計(jì)成績(jī)鑒定表30光電子與通信工程系畢業(yè)設(shè)計(jì)開題報(bào)告姓名張宗華系光電子與通信工程系專業(yè)光電子技術(shù)班級(jí)光電0901設(shè)計(jì)題目基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)指導(dǎo)教師馮芳亮設(shè)計(jì)目的本次畢業(yè)設(shè)計(jì)是讓我們更加切實(shí)的掌握單片機(jī)的應(yīng)用以及步進(jìn)電機(jī)的工作原理。使我們不只停留在理論階段,親自動(dòng)手能讓我們將自己所學(xué)習(xí)的理論在實(shí)踐中論證。理論與實(shí)踐相結(jié)合讓我們

3、更加透徹的弄懂單片機(jī)、步進(jìn)電機(jī)工作原理以及它們的相關(guān)應(yīng)用。設(shè)計(jì)摘要隨著微電子和計(jì)算機(jī)技術(shù)的發(fā)展,步進(jìn)電機(jī)的需求量與日俱增,它廣泛用于打印機(jī)、電動(dòng)玩具等消費(fèi)類產(chǎn)品以及數(shù)控機(jī)床、工業(yè)機(jī)器人、醫(yī)療器械等機(jī)電產(chǎn)品中,其在各個(gè)國(guó)民經(jīng)濟(jì)領(lǐng)域都有應(yīng)用。研究步進(jìn)電機(jī)的控制系統(tǒng),對(duì)提高控制精度和響應(yīng)速度、節(jié)約能源等都具有重要意義,本控制系統(tǒng)的設(shè)計(jì),由硬件設(shè)計(jì)和軟件設(shè)計(jì)兩部分組成。其中,硬件設(shè)計(jì)主要包括單片機(jī)最小系統(tǒng)、鍵盤控制模塊、步進(jìn)電機(jī)驅(qū)動(dòng)模塊、數(shù)碼顯示模塊等功能模塊的設(shè)計(jì),以及硬件電路在電路板上的實(shí)現(xiàn)。軟件設(shè)計(jì)包括主程序以及各個(gè)模塊的控制程序,最終實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)轉(zhuǎn)動(dòng)方向及轉(zhuǎn)動(dòng)速度的控制,并且將步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)

4、速度動(dòng)態(tài)顯示在LED數(shù)碼管上。本系統(tǒng)具有智能性、實(shí)用性及可靠性的特點(diǎn)。設(shè)計(jì)規(guī)劃2011.1010 準(zhǔn)備階段:復(fù)習(xí)相關(guān)知識(shí),熟悉相關(guān)軟件。2011.10.12 明確設(shè)計(jì)任務(wù)和要求,研究并制定出總體設(shè)計(jì)方案,并提交總體設(shè)計(jì)方案報(bào)告。2011.10.12-19 各部分電路設(shè)計(jì)和實(shí)現(xiàn):繪制工作原理圖。2011.10.20-25 根據(jù)已有的單片機(jī)教學(xué)板來(lái)設(shè)計(jì)驅(qū)動(dòng)步進(jìn)電機(jī)的驅(qū)動(dòng)電路,并制作驅(qū)動(dòng)電路。2011.10.25-2011.11.9 C語(yǔ)言程序設(shè)計(jì):繪制程序流程圖,根據(jù)程序流程圖,編寫程序。2011.11.10-15 程序調(diào)試:將編好的程序下載到硬件板子中,進(jìn)行調(diào)試。2011.11.16-22提交設(shè)

5、計(jì)成果,寫設(shè)計(jì)說(shuō)明書。2011.11.23-30 檢查和修改畢業(yè)設(shè)計(jì)說(shuō)明書。2011.12.7 交畢業(yè)設(shè)計(jì)說(shuō)明書?;趩纹瑱C(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)說(shuō)明書1. 設(shè)計(jì)方案論證設(shè)計(jì)方案及論證:采用單片機(jī)來(lái)控制步進(jìn)電機(jī),實(shí)現(xiàn)了軟件與硬件相結(jié)合的控制方法。用軟件代替環(huán)形分配器,達(dá)到了對(duì)步進(jìn)電機(jī)的最佳控制。系統(tǒng)中采用單片機(jī)接口線直接去控制步進(jìn)電機(jī)各相驅(qū)動(dòng)線路。由于單片機(jī)的強(qiáng)大功能,還可設(shè)計(jì)大量的外圍電路,鍵盤作為一個(gè)外部中斷源,設(shè)置了步進(jìn)電機(jī)正轉(zhuǎn)、反轉(zhuǎn)、檔次、停止等功能,采用中斷和查詢相結(jié)合的方法來(lái)調(diào)用中斷服務(wù)程序,完成對(duì)步進(jìn)電機(jī)的最佳控制,顯示器及時(shí)顯示正轉(zhuǎn)、反轉(zhuǎn)速度等狀態(tài)。環(huán)形分配器其功能由單片機(jī)系統(tǒng)

6、實(shí)現(xiàn),采用軟件編程的辦法實(shí)現(xiàn)脈沖的分配。本方案有以下優(yōu)點(diǎn):(1)單片機(jī)軟件編程可以使復(fù)雜的控制過(guò)程實(shí)現(xiàn)自動(dòng)控制和精確控制,避免了失步、振蕩等對(duì)控制精度的影響;(2)用軟件代替環(huán)形分配器,通過(guò)對(duì)單片機(jī)的設(shè)定,用同一種電路實(shí)現(xiàn)了多相步進(jìn)電機(jī)的控制和驅(qū)動(dòng),大大提高了接口電路的靈活性和通用性;(3)單片機(jī)的強(qiáng)大功能使顯示電路、鍵盤電路、復(fù)位電路等外圍電路有機(jī)的組合,大大提高系統(tǒng)的交互性?;谝陨蟽?yōu)點(diǎn),本次設(shè)計(jì)采用基于單片機(jī)的控制方案。用AT89C52單片機(jī)做控制系統(tǒng),用ULN2003A芯片來(lái)驅(qū)動(dòng)四相步進(jìn)電機(jī)。2. 設(shè)計(jì)原理步進(jìn)電機(jī)是將脈沖信號(hào)轉(zhuǎn)變成步距角的電機(jī)。所以我們采用單片機(jī)控制輸出脈沖信號(hào),然后

7、用一個(gè)驅(qū)動(dòng)芯片驅(qū)動(dòng)步進(jìn)電機(jī)。利用軟件使步進(jìn)電機(jī)根據(jù)我們的要求運(yùn)行以及控制。3. 硬件設(shè)計(jì)3.1 框圖單片機(jī)控制板步進(jìn)電機(jī)驅(qū)動(dòng)電路四相六線步進(jìn)電機(jī)以上是單片機(jī)通用開發(fā)板作為控制系統(tǒng),用ULN2003A作為驅(qū)動(dòng)步進(jìn)電機(jī)的芯片,構(gòu)架成的一個(gè)單片控制步進(jìn)電機(jī)大體的硬件框架圖。他們之間的各種關(guān)系跟關(guān)聯(lián)以及I/O口的相關(guān)應(yīng)用,連線的接法等等看下面詳細(xì)分析。3.11數(shù)碼管的硬件電路本次設(shè)計(jì)選用的單片機(jī)板采用四位共陽(yáng)極數(shù)碼管,用S9012三極管來(lái)作為數(shù)碼管的段選。集電極接數(shù)碼管,發(fā)射極接+5V,基極串聯(lián)一個(gè)4.7k的電阻跟單片機(jī)的IO口連接?;鶚O串聯(lián)電阻是為了限流,達(dá)到阻抗匹配才能安全正確的使用。在數(shù)碼管段選

8、接到單片機(jī)的P0口的時(shí)候用了一個(gè)103的上拉電阻。Protel的原理圖接法如下圖3.11-1所示:3.11-13.12按鍵的硬件電路本次設(shè)計(jì)選用的單片機(jī)板采用的是SW-PB按鍵。只用一個(gè)IO口P2采用行列掃描式來(lái)讀取取鍵值。具體接法如圖3.12-1所示:3.12-1機(jī)械抖動(dòng): 按鍵按下時(shí),電平的變化并不是馬上到位,而是會(huì)有一個(gè)不穩(wěn)定的狀態(tài)過(guò)程,再進(jìn)入電平穩(wěn)定狀態(tài)。軟件消抖:如果按鍵較多,常用軟件方法去抖,即檢測(cè)出鍵閉合后執(zhí)行一個(gè)延時(shí)程序,產(chǎn)生5ms10ms的延時(shí),讓前沿抖動(dòng)消失后再一次檢測(cè)鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認(rèn)為真正有鍵按下。當(dāng)檢測(cè)到按鍵釋放后,也要給5ms10ms的延時(shí),待

9、后沿抖動(dòng)消失后才能轉(zhuǎn)入該鍵的處理程序可以在去抖程序里加入檢測(cè)松手程序例如 if(!key) /檢測(cè)鍵盤是否按下 delay():/去抖延時(shí)一般是50ms if(!key)/再次檢測(cè)鍵盤是否按下 ×××+: /這里寫數(shù)碼管加"1"程序 while(key);/加入寫句,目的是等待key變?yōu)樵瓉?lái)的狀態(tài)才會(huì)執(zhí)行下一條指令!1、按鍵在按下的時(shí)候、由于機(jī)械連接的不穩(wěn)定,導(dǎo)致剛剛被按鍵連通的電路中出現(xiàn)電平抖動(dòng)。 2、在某些情況下,例如系統(tǒng)受到外部震動(dòng),也會(huì)在按鍵電路中出現(xiàn)電平抖動(dòng),但這種抖動(dòng)不是控制者所希望的操作,如果沒(méi)有防抖動(dòng)程序,那么系統(tǒng)會(huì)因這種不希望

10、出現(xiàn)的干擾而錯(cuò)誤動(dòng)作。 3、為了避免系統(tǒng)誤判,可以編寫防抖動(dòng)程序。程序流程的文字說(shuō)明如下(假設(shè)按鍵按下后,低電平送到單片機(jī)): (1)是否有低電平輸入(按鍵電路按鍵被按下了嗎)?如果是,到(2)步執(zhí)行;不是,繼續(xù)執(zhí)行(1) (2)延時(shí)等待(可以使用定時(shí)器或非定時(shí)器都可以),然后執(zhí)行(3)步 (3)是否有低電平輸入?是的話,執(zhí)行后面的其他程序;不是,則跳轉(zhuǎn)到(1)步執(zhí)行 4、說(shuō)明:干擾抖動(dòng)的持續(xù)時(shí)間很短,為了防止(1)中的低電平是系統(tǒng)內(nèi)的干擾抖動(dòng),則延時(shí)等待一會(huì),然后判斷是否真的按鍵按下。并聯(lián)電容消抖:用10K的上拉電阻與按鍵串聯(lián),然后按鍵并聯(lián)一個(gè)去抖電容,以用來(lái)消除按鍵的機(jī)械抖動(dòng) 電容的計(jì)算方

11、法如下: 電容的容值是根據(jù)機(jī)械按鍵的觸點(diǎn)抖動(dòng)頻率而定,一般機(jī)械按鍵的抖動(dòng)頻率為100Hz左右,當(dāng)按鍵閉合抖動(dòng)時(shí)接觸時(shí)間在毫秒級(jí),根據(jù)電容充放電的時(shí)間t=0.7*根號(hào)RC R=10K,C選0.1uF,電容的充放電時(shí)間約20ms,大于抖動(dòng)時(shí)間,可將抖動(dòng)濾除掉 通常電容C選取0.01uF1uF 硬件消抖2:在鍵數(shù)較少時(shí)可用硬件方法消除鍵抖動(dòng)。下圖所示的RS觸發(fā)器為常用的硬件去抖。 3.12-2圖3.12-2中兩個(gè)“與非”門構(gòu)成一個(gè)RS觸發(fā)器。當(dāng)按鍵未按下時(shí),輸出為1;當(dāng)鍵按下時(shí),輸出為0。此時(shí)即使用按鍵的機(jī)械性能,使按鍵因彈性抖動(dòng)而產(chǎn)生瞬時(shí)斷開(抖動(dòng)跳開B),中要按鍵不返回原始狀態(tài)A,雙穩(wěn)態(tài)電路的狀

12、態(tài)不改變,輸出保持為0,不會(huì)產(chǎn)生抖動(dòng)的波形。也就是說(shuō),即使B點(diǎn)的電壓波形是抖動(dòng)的,但經(jīng)雙穩(wěn)態(tài)電路之后,其輸出為正規(guī)的矩形波。這一點(diǎn)通過(guò)分析RS觸發(fā)器的工作過(guò)程很容易得到驗(yàn)證。3.13驅(qū)動(dòng)芯片ULN2003A步進(jìn)電機(jī)模塊中使用的驅(qū)動(dòng)芯片為 ULN2003A,它是由七對(duì)達(dá)林頓管組成的,是集電極開路輸出的功率反相器,并且每個(gè)輸出端都有一個(gè)連接到共同端(COM)的二極管,為斷電后的電機(jī)繞組提供一個(gè)放電回路,起放電保護(hù)作用。內(nèi)部邏輯如圖3.13-1所示。因此,ULN2003A 非常適合驅(qū)動(dòng)小功率的步進(jìn)電機(jī)。圖3.13-1ULN2003A的外部封裝圖如3.13-2。圖3.13-2單片機(jī)的P1.0-P1.3

13、輸出的脈沖信號(hào)經(jīng)J2送到ULN2003A的IN1-IN4輸入端,經(jīng)ULN2003A 放大和倒相后的輸出脈沖信號(hào)通過(guò) J3 來(lái)驅(qū)動(dòng)步進(jìn)電機(jī)作相應(yīng)的作。ULN2003A的 COM 端和步進(jìn)電機(jī)的 COM1、COM2 連接到 VCC。ULN2003A驅(qū)動(dòng)步進(jìn)電機(jī)模塊原理圖如圖 3.13-3所示。圖3.13-33.14步進(jìn)電機(jī)的工作原理當(dāng)步進(jìn)電機(jī)接收到一個(gè)脈沖信號(hào),步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度(稱“步距角”),它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的??梢酝ㄟ^(guò)控制脈沖個(gè)數(shù)來(lái)控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)可以通過(guò)控制脈沖頻率來(lái)控制電機(jī)轉(zhuǎn)動(dòng)的速度,從而達(dá)到調(diào)速的目的。步進(jìn)電機(jī)的這些特性非

14、常適合使用單片機(jī)來(lái)控制,控制信號(hào)由單片機(jī)產(chǎn)生,步進(jìn)電機(jī)則根據(jù)控制信號(hào)來(lái)動(dòng)作。1、結(jié)構(gòu)及基本原理步進(jìn)電機(jī)在結(jié)構(gòu)上也是由定子和轉(zhuǎn)子組成,可以對(duì)旋轉(zhuǎn)角度和轉(zhuǎn)動(dòng)速度進(jìn)行高精度控制。當(dāng)電流流過(guò)定子繞組時(shí),定子繞組產(chǎn)生一矢量磁場(chǎng),該矢量場(chǎng)會(huì)帶動(dòng)轉(zhuǎn)子旋轉(zhuǎn)一角度,使得轉(zhuǎn)子的一對(duì)磁極磁場(chǎng)方向與定子的磁場(chǎng)方向一著該磁場(chǎng)旋轉(zhuǎn)一個(gè)角度。因此,控制電機(jī)轉(zhuǎn)子旋轉(zhuǎn)實(shí)際上就是以一定的規(guī)律控制定子繞組的電流來(lái)產(chǎn)生旋轉(zhuǎn)的磁場(chǎng)。每來(lái)一個(gè)脈沖電壓,轉(zhuǎn)子就旋轉(zhuǎn)一個(gè)步距角,稱為一步。根據(jù)電壓脈沖的分配方式,步進(jìn)電機(jī)各相繞組的電流輪流切換,在供給連續(xù)脈沖時(shí),就能一步一步地連續(xù)轉(zhuǎn)動(dòng),從而使電機(jī)旋轉(zhuǎn)。電機(jī)將電能轉(zhuǎn)換成機(jī)械能,步進(jìn)電機(jī)將電脈沖轉(zhuǎn)

15、換成特定的旋轉(zhuǎn)運(yùn)動(dòng)。每個(gè)脈沖所產(chǎn)生的運(yùn)動(dòng)是精確的,并可重復(fù),這就是步進(jìn)電機(jī)為什么在定位應(yīng)用中如此有效的原因。通過(guò)電磁感應(yīng)定律我們很容易知道激勵(lì)一個(gè)線圈繞組將產(chǎn)生一個(gè)電磁場(chǎng),分為北極和南極,見圖3.1.4-1所示。定子產(chǎn)生的磁場(chǎng)使轉(zhuǎn)子轉(zhuǎn)動(dòng)到與定子磁場(chǎng)對(duì)直。通過(guò)改變定子線圈的通電順序可使電機(jī)轉(zhuǎn)子產(chǎn)生連續(xù)的旋轉(zhuǎn)運(yùn)動(dòng)。圖3.14-1 激勵(lì)線圈產(chǎn)生電磁場(chǎng)2、 步進(jìn)電機(jī)的常用術(shù)語(yǔ)步距角:表示控制系統(tǒng)每發(fā)一個(gè)步進(jìn)脈沖信號(hào),步進(jìn)電機(jī)轉(zhuǎn)子所應(yīng)轉(zhuǎn)動(dòng)的角度的理論值。Qn = 2/ZN式中: Z - 轉(zhuǎn)子的齒數(shù)N- 運(yùn)行拍數(shù),通常等于相數(shù)或相數(shù)的整數(shù)倍,即N=kN1N1- 步進(jìn)電機(jī)相數(shù)從式中可以看出,運(yùn)行拍數(shù)和轉(zhuǎn)子的

16、齒數(shù)不同時(shí),步距角不同,且步距角與運(yùn)行拍數(shù)或轉(zhuǎn)子的齒數(shù)成反比。八拍運(yùn)行方式的步距角要比四拍運(yùn)行方式的步距角小一半。齒距角: 相鄰兩齒中心線間的夾角,通常定子和轉(zhuǎn)子具有相同的齒距角。Qz = 2/ Z 式中: Z - 轉(zhuǎn)子的齒數(shù)步距角與齒距角之間的關(guān)系:Qn = Qz/N = 2/NZ式中: N - 步進(jìn)電機(jī)工作拍數(shù) Z - 轉(zhuǎn)子的齒數(shù)步進(jìn)電機(jī)轉(zhuǎn)速:n = 60×f / N×Z(轉(zhuǎn)/分) 式中:f 脈沖頻率(Hz)N - 步進(jìn)電機(jī)工作拍數(shù)Z - 轉(zhuǎn)子的齒數(shù)從這個(gè)公式可以看出步進(jìn)電機(jī)以八拍運(yùn)行方式工作的轉(zhuǎn)速是以四拍運(yùn)行方式工作的轉(zhuǎn)速的一半。步進(jìn)電機(jī)的相數(shù):是指步進(jìn)電機(jī)內(nèi)部的線圈

17、組數(shù)。運(yùn)行頻率:是指拖動(dòng)一定負(fù)載使頻率連續(xù)上升時(shí),步進(jìn)電機(jī)能不失步運(yùn)行的極限頻率。啟動(dòng)頻率:是指在一定負(fù)載下直接啟動(dòng)而不失步的極限頻率。對(duì)于步距角為 7.5 度的步進(jìn)電機(jī)而言:Qn = 7.5 度Qz = Qn×N = 7.5×4=30 度 (齒距角)Z = 2/Qz = 360/30 = 12 (轉(zhuǎn)子的齒數(shù))3、步進(jìn)電機(jī)的基本控制(1)控制換相順序步進(jìn)電機(jī)的通電換相順序嚴(yán)格按照步進(jìn)電機(jī)的工作方式進(jìn)行。通常我們把通電換相這一過(guò) 程 稱 為 脈 沖 分 配 。 例 如 , 步 進(jìn) 電 機(jī) 的 八 拍 工 作 方 式 , 其 各 相 通 電 的 順 序A-AB-B-BC-C-C

18、D-D-DA(正轉(zhuǎn))或 DA-D-CD-C-BC-B-BA-A(反轉(zhuǎn)),通電控制脈沖必須嚴(yán)格這一順序分別控制 A,B,C,D 相的通電和斷電。(2)控制步進(jìn)電機(jī)的轉(zhuǎn)向如果按給定的工作方式正序通電換相,步進(jìn)電機(jī)就正轉(zhuǎn);如果按反序通電換相,則步進(jìn)電機(jī)就反轉(zhuǎn)。(3)控制步進(jìn)電機(jī)的速度如果給定步進(jìn)電機(jī)一個(gè)控制脈沖,它就轉(zhuǎn)一步,再發(fā)一個(gè)控制脈沖,它就會(huì)再轉(zhuǎn)一步。兩個(gè)脈沖的間隔時(shí)間越短,步進(jìn)電機(jī)就轉(zhuǎn)得越快。因此,脈沖的頻率決定了步進(jìn)電機(jī)的轉(zhuǎn)速。調(diào)整單片機(jī)發(fā)出脈沖的頻率,就可以對(duì)步進(jìn)電機(jī)進(jìn)行調(diào)速。調(diào)整單片機(jī)輸出的步進(jìn)脈沖頻率的方法:A、軟件延時(shí)方法改變延時(shí)的時(shí)間長(zhǎng)度就可以改變輸出脈沖的頻率,但這種方法使 C

19、PU 長(zhǎng)時(shí)間等待,無(wú)法進(jìn)行其它工作,因此沒(méi)有實(shí)用價(jià)值。在單獨(dú)進(jìn)行步進(jìn)電機(jī)的演示時(shí)可以采用。B、定時(shí)器中斷方法在中斷服務(wù)子程序中進(jìn)行脈沖輸出操作,調(diào)整定時(shí)器的定時(shí)常數(shù)就可以實(shí)現(xiàn)調(diào)速。這種方法占用 CPU 時(shí)間較少,是一種比較實(shí)用的調(diào)速方法。用單片機(jī)對(duì)步進(jìn)電機(jī)進(jìn)行速度控制,實(shí)際上就是控制每次換相的時(shí)間間隔。升速時(shí),使脈沖頻率逐漸升高,降速時(shí)則相反。4、步進(jìn)電機(jī)的三種運(yùn)行方式 (1)單四拍運(yùn)行方式當(dāng)電機(jī)繞組通電時(shí)序?yàn)?A-B-C-D 時(shí)為正轉(zhuǎn),通電時(shí)序?yàn)?D-C-B-A 時(shí)為反轉(zhuǎn)。見表 1。這種驅(qū)動(dòng)方式是如何一個(gè)時(shí)間,只有一組線圈被激磁,因此產(chǎn)生的力矩較小。單四拍運(yùn)行時(shí)序表正轉(zhuǎn)0XF1 0XF2 0

20、XF4 0XF8反轉(zhuǎn)0XF8 0XF4 0XF2 0XF1表1N=4步距角:Qn = Qz/N = 2/NZ = 360/4*12 = 7.5°則步進(jìn)電機(jī)轉(zhuǎn)一圈所需步進(jìn)脈沖數(shù):360°/ 7.5°= 48(2)雙四拍運(yùn)行方式當(dāng)電機(jī)繞組通電時(shí)序?yàn)?AB-BC-CD-DA 時(shí)為正轉(zhuǎn),通電時(shí)序?yàn)?DA-CD-BC-AB 時(shí)為反轉(zhuǎn)。見表 2。這種驅(qū)動(dòng)方式是在任何一個(gè)時(shí)間內(nèi),有二組線圈同時(shí)被激磁,因此產(chǎn)生的力矩較大。雙四拍運(yùn)行時(shí)序表正轉(zhuǎn)0XF3 0XF6 0XFC 0XF9反轉(zhuǎn)0XF9 0XFC 0XF6 0XF3表2N=4步距角:Qn = Qz/N = 2/NZ = 36

21、0/4*12 = 7.5°則步進(jìn)電機(jī)轉(zhuǎn)一圈所需步進(jìn)脈沖數(shù):360°/ 7.5°= 48 (3)八拍運(yùn)行方式當(dāng) 電 機(jī) 繞 組 通 電 時(shí) 序 為A-AB-B-BC-C-CD-D-DA時(shí) 為 正 轉(zhuǎn) , 通 電 時(shí) 序 為DA-D-CD-C-BC-B-BA-A 時(shí)為反轉(zhuǎn)。見表 3這種驅(qū)動(dòng)方式又承為“半步驅(qū)動(dòng)”,每個(gè)驅(qū)動(dòng)信號(hào)只驅(qū)動(dòng)半步。單雙八拍運(yùn)行時(shí)序表正轉(zhuǎn)0XF1 0XF3 0XF2 0XF6 0XF4 0XFC 0XF8 0XF9反轉(zhuǎn)0XF9 0XF8 0XFC 0XF4 0XF6 0XF2 0XF3 0XF1表3N = 8步距角: Qn = Qz/N = 2/N

22、Z = 360/8*12 = 3.75°則步進(jìn)電機(jī)轉(zhuǎn)一圈所需步進(jìn)脈沖數(shù):360°/ 3.75°= 96八拍運(yùn)行方式的步距角要比單四拍和雙四拍運(yùn)行方式的步距角小一半,所以步進(jìn)精度高一倍。3.2 電路全圖單片機(jī)控制步進(jìn)電機(jī)系統(tǒng)原理圖(Protel 99SE):3.3 PCB圖根據(jù)單片機(jī)的原理圖繪制出的PCB圖:?jiǎn)纹瑱C(jī)通用版PCB圖4. 軟件設(shè)計(jì)4.1 框圖4.1.1 主框圖開始初始化讀標(biāo)志位Menu=1?運(yùn)行模塊調(diào)整模塊YNStart4.1.2 運(yùn)行模塊框圖運(yùn)行模塊框圖單相轉(zhuǎn)?正轉(zhuǎn)?單相正轉(zhuǎn)一步單相反轉(zhuǎn)一步雙相正轉(zhuǎn)一步雙相反轉(zhuǎn)一步正轉(zhuǎn)?延 時(shí)按步長(zhǎng)?否?步長(zhǎng)自減步長(zhǎng)=

23、0?停止運(yùn)行StartYNYNNNNYYY4.1.3 控制模塊框圖42關(guān)鍵程序段說(shuō)明4.2.1按鍵控制為了讓單片機(jī)的I/O口的充分利用不至于產(chǎn)生浪費(fèi)或者不夠用,故本次按鍵控制方式選擇為行列掃描型。本子程序采用查詢方式,不斷地查詢P3口的情況從而判斷出到底是哪一行那一列的按鍵被按下,然后再給該按鍵賦值。具體程序段看以下按鍵掃描子程序:uchar scan_key()P3=0xf0;if(P3&0xf0)!=0xf0)delay(500);switch(P3)/查詢P3口看每行情況case 0x70: hang=1; break;case 0xb0: hang=2; break;case

24、0xd0: hang=3; break;case 0xe0: hang=4; break;default: break;delay(500);P3=0x0f;if(P3&0x0f)!=0x0f) /查詢P3口看每列情況switch(P3)case 0x07: lie=1; break;case 0x0b: lie=2; break;case 0x0d: lie=3; break;case 0x0e: lie=4; break;default: break;delay(500);return(hang-1)*4+lie);else return(0);消除按鍵的抖動(dòng)我用的是軟件消抖,利用

25、延時(shí)消除我們控制按鍵時(shí)候的抖動(dòng)以及產(chǎn)生的雜波,以保證單片機(jī)接收到的信號(hào)是準(zhǔn)確無(wú)誤的。4.2.2 數(shù)碼管顯示的調(diào)節(jié)步長(zhǎng)、速度以及其他的各種數(shù)碼管顯示調(diào)節(jié)程序原理類似,下面以步長(zhǎng)的調(diào)節(jié)程序?yàn)槔诱f(shuō)明。步長(zhǎng)調(diào)節(jié)程序以及相關(guān)標(biāo)注如下:void bc_set()menuflag=sdflag=0;/進(jìn)入步長(zhǎng)調(diào)節(jié)菜單跟速度標(biāo)志位都為0if(P3&0xf0)!=0xf0)/查詢是否有按鍵按下display(bc);/有就執(zhí)行顯示子函數(shù)將數(shù)字顯示在數(shù)碼管上display(bc);key=scan_key(); /取按鍵值if(key<=9) /如果鍵值小于等于9bck=key; /直接顯示在數(shù)碼

26、管上if(key=11) /如果鍵值等于11k+;if(k>3)k=0; /調(diào)整數(shù)碼管位數(shù)03對(duì)應(yīng)4位數(shù)碼管if(key=12) /如果鍵值為12bck+;if(bck>9)bck=0;/在數(shù)碼管上選中的該位數(shù)值+1 ,且加到9之后自動(dòng)返回到0if(key=13)/如果鍵值為13if(bck>0)bck-;else bck=9; /在數(shù)碼管上選中的該位數(shù)值-1 ,且減到0之后自動(dòng)返回到9if(key=14) /如果鍵值為14 bcflag=sdflag=0; /步長(zhǎng)跟速度標(biāo)志位都為0menuflag=1; /菜單標(biāo)志位為1至于速度調(diào)節(jié)以及其它調(diào)節(jié)跟這個(gè)類似,詳細(xì)情況下面程序中

27、有介紹。4.3程序清單#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit P10=P10;sbit P11=P11;sbit P12=P12;sbit P13=P13;#define d_round1 P10=1;P11=0;P12=0;P13=0;#define d_round2 P10=0;P11=1;P12=0;P13=0;#define d_round3 P10=0;P11=0;P12=1;P13=0;#define d_round4 P10=0;P11=0;P12=0;P13=

28、1;#define s_round1 P10=1;P11=1;P12=0;P13=0;#define s_round2 P10=0;P11=1;P12=1;P13=0;#define s_round3 P10=0;P11=0;P12=1;P13=1;#define s_round4 P10=1;P11=0;P12=0;P13=1;#define stop P10=0;P11=0;P12=0;P13=0;uchar code smgw19=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xA7,0xa1,0x86,0x8e

29、,0xab,0x89,0xbf ; /09,a,b,c,d,e,f,n,h,-uchar smgd4=0xfe,0xfd,0xfb,0xf7;uchar code func54= 18,18,12,11,18,18,13,5,15,18,18,2,16,18,13,5,12,11,17,4 ;uchar bc4;uchar sd4;uchar hang,lie,key;uchar m,n,k=0,i;uint j,bc_date,sd_date;void gn_set();uchar scan_key();bit menuflag,bcflag,sdflag,bcsflag,sdsflag,k

30、sflag;void delay(j)while(j-);uchar scan_key()P3=0xf0;if(P3&0xf0)!=0xf0)delay(500);switch(P3)case 0x70: hang=1; break;case 0xb0: hang=2; break;case 0xd0: hang=3; break;case 0xe0: hang=4; break;default: break;delay(500);P3=0x0f;if(P3&0x0f)!=0x0f)switch(P3)case 0x07: lie=1; break;case 0x0b: lie

31、=2; break;case 0x0d: lie=3; break;case 0x0e: lie=4; break;default: break;delay(500);return(hang-1)*4+lie);else return(0);void display(uchar tab)for(i=0;i<4;i+)P0=smgwtabi;P2=smgdi;delay(20);void bc_set()menuflag=sdflag=0;if(P3&0xf0)!=0xf0)display(bc);display(bc);key=scan_key(); if(key<=9)b

32、ck=key;if(key=11)k+;if(k>3)k=0;if(key=12) bck+;if(bck>9)bck=0;if(key=13)if(bck>0)bck-;else bck=9; if(key=14)bcflag=sdflag=0;menuflag=1;void sd_set()menuflag=bcflag=0;if(P3&0xf0)!=0xf0)display(sd);display(sd);key=scan_key();if(key<=9)sdk=key;if(key=11)k+;if(k>3)k=0;if(key=12)sdk+;i

33、f(sdk>9)sdk=0;if(key=13)if(sdk>0)sdk-;else sdk=9;if(key=14)bcflag=sdflag=0;menuflag=1;void gn_set()menuflag=1;P3=0xf0;if(P3&0xf0)!=0xf0)key=scan_key();if(key=10)n+;delay(5000);if(n>4)n=0; delay(5000);for(m=0;m<4;m+)P0=smgwfuncnm;P2=smgdm;delay(500);void zanliu()bc_date=bc0*1000+bc1*1

34、00+bc2*10+bc3;void main()menuflag=1;while(1)if(menuflag=1)gn_set();if(n=0)if(key=14)bcflag=1;menuflag=sdflag=0;if(bcflag=1)bc_set();if(n=1)if(key=14)sdflag=1;menuflag=bcflag=0;if(sdflag=1)sd_set();安裝調(diào)試過(guò)程說(shuō)明安裝過(guò)程中遇到很多問(wèn)題,驅(qū)動(dòng)板的焊接還得仔細(xì)。這次的實(shí)驗(yàn)成品是用一個(gè)由單片機(jī)系統(tǒng)板控制的步進(jìn)電機(jī),由單片機(jī)系統(tǒng)板,ULN2003A達(dá)林頓驅(qū)動(dòng)芯片,和一個(gè)六線四相步進(jìn)電機(jī)所構(gòu)成。其實(shí)物圖如下:

35、運(yùn)行結(jié)果:將程序下載到單片機(jī)里面,加電運(yùn)行,按模式轉(zhuǎn)換鍵,轉(zhuǎn)入定位運(yùn)行,如果需要改變運(yùn)轉(zhuǎn)方向,還可以按方向鍵來(lái)控制其運(yùn)轉(zhuǎn)方向,然后按設(shè)置鍵,設(shè)置好旋轉(zhuǎn)的角度,按下確定鍵確定,步進(jìn)電機(jī)便可以運(yùn)行。由于采取了細(xì)分驅(qū)動(dòng),電機(jī)在運(yùn)行的過(guò)程中旋轉(zhuǎn)很穩(wěn)定,噪音和振動(dòng)比較小,電機(jī)有達(dá)林頓管提供驅(qū)動(dòng)電流,驅(qū)動(dòng)力很大,加上64倍減速齒輪,降低的轉(zhuǎn)速,增大了力矩,能夠驅(qū)動(dòng)很大的負(fù)載。可以應(yīng)用在許多場(chǎng)合,實(shí)用性很廣??梢栽诓桓淖冇布娐返那闆r下通過(guò)鍵盤或修改程序?qū)崿F(xiàn)不同的功能。對(duì)本設(shè)計(jì)的評(píng)價(jià)隨著微電子和計(jì)算機(jī)技術(shù)的發(fā)展,步進(jìn)電機(jī)的需求量與日俱增,在各個(gè)國(guó)民經(jīng)濟(jì)領(lǐng)域都有應(yīng)用。計(jì)算機(jī)通過(guò)軟件來(lái)控制步進(jìn)電機(jī),更好地挖掘出

36、電動(dòng)機(jī)的潛力。因此,用計(jì)算機(jī)控制步進(jìn)電機(jī)已經(jīng)成為了一種必然的趨勢(shì),也符合數(shù)字化的時(shí)代趨勢(shì)。本文構(gòu)建了一個(gè)步進(jìn)電機(jī)控制系統(tǒng),系統(tǒng)的硬件組成主要有:51系列單片機(jī)、ULN2003A驅(qū)動(dòng)電路。該系統(tǒng)在分析目前步進(jìn)電機(jī)特點(diǎn)基礎(chǔ)上,確定步進(jìn)電機(jī)功能要求。針對(duì)步進(jìn)電機(jī)的功能要求,提出了控制系統(tǒng)的詳細(xì)方案。在步進(jìn)電機(jī)控制系統(tǒng)中,選用了51單片機(jī)作為控制工具,并對(duì)單片機(jī)控制系統(tǒng)的管腳進(jìn)行了分配,并給出了原理圖。并對(duì)步進(jìn)電機(jī)轉(zhuǎn)速控制進(jìn)行了設(shè)計(jì)。達(dá)到了轉(zhuǎn)速的控制的要求,確定了鍵盤控制。論文設(shè)計(jì)符合步進(jìn)電機(jī)控制系統(tǒng)的標(biāo)準(zhǔn)要求。經(jīng)系統(tǒng)調(diào)試,可以實(shí)現(xiàn)步進(jìn)電機(jī)的以下功能:正反轉(zhuǎn)、加減速。本系統(tǒng)控制靈活,簡(jiǎn)單方便,制作成本

37、低。同時(shí)也有不足的地方:比如說(shuō)轉(zhuǎn)速控制的精度還不算十分精確。本次畢業(yè)設(shè)計(jì)的心得和體會(huì)驀然回首,為期幾個(gè)月的畢業(yè)設(shè)計(jì)就要結(jié)束了,在這個(gè)漫長(zhǎng)而又短暫的時(shí)間里,通過(guò)自己不斷的學(xué)習(xí),不斷的努力與拼搏、不斷的對(duì)新知識(shí)的追求與索取、不斷的自我發(fā)現(xiàn)、感覺(jué)自己的知識(shí)系統(tǒng)性的提高了很多,對(duì)知識(shí)的掌握程度也深了很多,對(duì)知識(shí)之間的相互聯(lián)系也有了更深的了解; 通過(guò)不斷搞自己的知識(shí)水平和自我能力、不斷的學(xué)習(xí)新方法、新思想、新的思維方式、不斷的改變自己的人生觀和方法論、感到自己不但成長(zhǎng)且成熟了很多;通過(guò)不斷的把課本知識(shí)應(yīng)用于實(shí)際,不斷的把查閱到的資料與文獻(xiàn)中的知識(shí)應(yīng)用于現(xiàn)實(shí),不斷的把所學(xué)的理論與方法應(yīng)用于實(shí)際之中,從而提

38、高了自己理論聯(lián)系實(shí)際的能力。在整個(gè)畢業(yè)設(shè)計(jì)論文設(shè)計(jì)過(guò)程中我學(xué)到了做任何事情都要有應(yīng)該有的態(tài)度和心態(tài),首先我明白了做學(xué)問(wèn)要一絲不茍,對(duì)于出現(xiàn)的任何問(wèn)題和偏差都不要輕視,要通過(guò)合理的正確的途徑去解決,在做事情的過(guò)程中要有耐心和毅力,不能一遇到困難就打退堂鼓,只要堅(jiān)持下去就可以找到思路去解決問(wèn)題的。在工作中要學(xué)會(huì)怎么與別人合作,認(rèn)真聽取別人的意見,這樣做起事情來(lái)就事半功倍。論文的順利文成,首先我要感謝我的指導(dǎo)老師馮方亮導(dǎo)師以及我們畢業(yè)設(shè)計(jì)小組成員的幫助,感謝他們提出的寶貴意見和建議。另外,要感謝在大學(xué)期間傳授我知識(shí)的老師,特別是肖春華老師,是我單片機(jī)入門的導(dǎo)師。是你們悉心教導(dǎo)使我有了良好的專業(yè)課知識(shí),這也是這篇論文能完成的基礎(chǔ)。此次論文的完成既為大學(xué)三年劃上了一個(gè)完美的句號(hào),也為將來(lái)的人生之路做了一個(gè)很好的鋪墊。本次畢業(yè)設(shè)計(jì)的支撐材料 1、參考資料和文獻(xiàn)1 張毅剛,彭喜源,譚曉昀MCS一51單片機(jī)應(yīng)用設(shè)計(jì)M黑龍江,哈爾濱工業(yè)大學(xué)出版社,1997.2 戴佳.戴衛(wèi)恒.51單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì)實(shí)例精講M. 2007.3 胡漢才. 單片機(jī)原理及其接口技術(shù)M .2004.4 譚浩強(qiáng). C語(yǔ)言程序設(shè)計(jì)M.1999.5 王曉明.電動(dòng)機(jī)的單片機(jī)控制M.北京:北京航空航天大學(xué)出版社,2

溫馨提示

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

評(píng)論

0/150

提交評(píng)論