版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 畢業(yè)設(shè)計(jì)(論文)報(bào)告</p><p> 題 目 基于單片機(jī)控制的步進(jìn)電</p><p><b> 機(jī)控制器</b></p><p><b> 2012年 4 月</b></p><p> 基于單片機(jī)控制的步進(jìn)電機(jī)控制器</p><p> 摘
2、要:步進(jìn)電機(jī)是將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元步進(jìn)電機(jī)件。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號(hào)的頻率和脈沖數(shù),而不受負(fù)載變化的影響,當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度,稱為“步距角”,它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的。可以通過控制脈沖個(gè)數(shù)來控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)可以通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的。<
3、/p><p> 本系統(tǒng)采用AT89S51單片機(jī)來控制步進(jìn)電機(jī),不僅可以實(shí)現(xiàn)電機(jī)的正反轉(zhuǎn),還可以實(shí)現(xiàn)17級(jí)調(diào)速,以及LED狀態(tài)顯示功能,電路設(shè)計(jì)可靠且易于實(shí)現(xiàn),程序設(shè)計(jì)簡(jiǎn)單易懂。本系統(tǒng)主要由按鍵電路、單片機(jī)最小系統(tǒng)、AT89S51單片機(jī)、步進(jìn)電機(jī)狀態(tài)顯示電路、驅(qū)動(dòng)電路以及步進(jìn)電機(jī)等幾部分組成。輸出驅(qū)動(dòng)電路采用一個(gè)六非門芯片74LS04和四個(gè)三極管,來驅(qū)動(dòng)步進(jìn)電機(jī)的四相繞組。短路保護(hù)采用一個(gè)0.4A的保險(xiǎn)管,防止因繞組
4、短路而燒毀燒毀電機(jī)。</p><p> 關(guān)鍵詞:步進(jìn)電機(jī) 單片機(jī) 單片機(jī)最小系統(tǒng) 子程序 </p><p> Based on the single chip microcomputer to control the step motor controller</p><p> Abstract:Stepper motor is electrical p
5、ulse signal into angular or linear displacement of open-loop control stepping parts. In non-overload of situation Xia, motor of speed, and stop of location only depends on pulse signal of frequency and pulse number, and
6、does not by load changes of effect, dang step into drive received to a pulse signal, it on drive step into motor by set of direction turns a fixed of angle, called "step from angle", it of rotating is to fixed
7、of angle a step a step run of. B</p><p> The system uses AT89S51single-chip microcomputer to control the stepper motor, which can not only realize the motor positive inversion, can also realize the17 step s
8、peed regulation, and the LED state display function, circuit design and reliable and easy to realize, the program design is simple and easy to understand. This system is mainly composed of a key circuit, MCU minimum syst
9、em, AT89S51 MCU, step motor status display circuit, driving circuit and step motor etc.. The output driver circuit </p><p> Key Words:Stepping motor Single chip microcomputer The smallest single-chip sys
10、tem Subroutine</p><p><b> 目錄</b></p><p><b> 引言1</b></p><p> 第一章 設(shè)計(jì)方案2</p><p> 1.1 設(shè)計(jì)思路2</p><p> 1.2 總體設(shè)計(jì)框圖2</p><
11、;p> 第二章 設(shè)計(jì)原理分析3</p><p> 2.1 步進(jìn)電機(jī)3</p><p> 2.1.1 概述3</p><p> 2.1.2 優(yōu)點(diǎn)3</p><p> 2.1.3 驅(qū)動(dòng)方法4</p><p> 2.2 AT89S51單片機(jī)及其最小系統(tǒng)5</p><p>
12、 2.2.1 結(jié)構(gòu)6</p><p> 2.2.2 功能6</p><p> 2.3 按鍵電路9</p><p> 2.4 步進(jìn)電機(jī)狀態(tài)顯示電路9</p><p> 2.5 步進(jìn)電機(jī)驅(qū)動(dòng)電路9</p><p> 第三章 程序原理分析11</p><p> 3.1 程序設(shè)
13、計(jì)思路11</p><p> 3.2程序分析11</p><p> 3.3 定時(shí)器計(jì)數(shù)初值的設(shè)定12</p><p> 3.4 程序設(shè)計(jì)流程圖14</p><p><b> 總結(jié)15</b></p><p><b> 參考文獻(xiàn)16</b></p&g
14、t;<p><b> 附錄17</b></p><p> 附錄1 步進(jìn)電機(jī)總體控制電路17</p><p> 附錄2 源程序代碼18</p><p><b> 引言 </b></p><p> 步進(jìn)電機(jī)能將輸入的電脈沖信號(hào)轉(zhuǎn)換成輸出軸的角位移或直線位移。這種電機(jī)每輸入
15、一個(gè)脈沖信號(hào),輸出軸便轉(zhuǎn)動(dòng)一定的角度或前進(jìn)一步,因此又被稱作脈沖電機(jī)或步級(jí)電機(jī)。步進(jìn)電機(jī)輸出軸的角位移量與輸入脈沖數(shù)成正比,不受電壓以及環(huán)境溫度的影響,也沒有累積的定位誤差,因此控制輸入的數(shù)字脈沖數(shù)即可實(shí)現(xiàn)電機(jī)的精確定位;而步進(jìn)電機(jī)輸出軸的轉(zhuǎn)速與輸入的脈沖頻率成正比,控制輸入的脈沖頻率就能準(zhǔn)確的控制步進(jìn)電機(jī)的轉(zhuǎn)速,可以實(shí)現(xiàn)在寬廣的范圍內(nèi)精確調(diào)速。由于步進(jìn)電機(jī)的這一特點(diǎn)正好符合數(shù)字控制系統(tǒng)的要求,同時(shí)電子技術(shù)的發(fā)展也解決了步進(jìn)電機(jī)的電源問
16、題。因此隨著計(jì)算機(jī)技術(shù)和數(shù)字控制技術(shù)的發(fā)展,步進(jìn)電機(jī)的應(yīng)用也日益廣泛。目前,步進(jìn)電機(jī)應(yīng)用于磁盤驅(qū)動(dòng)器、數(shù)控機(jī)床、軋鋼機(jī)、機(jī)器人、以及自動(dòng)化儀表等方面。</p><p><b> 第一章 設(shè)計(jì)方案</b></p><p><b> 1.1 設(shè)計(jì)思路</b></p><p> 本系統(tǒng)主要由按鍵電路、單片機(jī)最小系統(tǒng)、AT8
17、9S51單片機(jī)、步進(jìn)電機(jī)電機(jī)電路、驅(qū)動(dòng)電路以及步進(jìn)電機(jī)等幾部分組成。驅(qū)動(dòng)電路可以采用FT5754芯片來實(shí)現(xiàn),芯片內(nèi)部有四組3A、5W、100V的PNP達(dá)林斯頓電路及四個(gè)二極管,輸出四個(gè)管腳、、、分別與步進(jìn)電機(jī)的四相繞組向連接。但考慮到所采用的步進(jìn)電機(jī)功率和額定電流都較小,以及經(jīng)濟(jì)性方面,本設(shè)計(jì)直接采用四個(gè)NPN型三極管來作為驅(qū)動(dòng)電路。</p><p> 步進(jìn)電機(jī)的控制主要通過5個(gè)按鍵來實(shí)現(xiàn),這5個(gè)按鍵分別表示“
18、正轉(zhuǎn)”、“反轉(zhuǎn)”、“加速”、“減速”和“停止”。單片機(jī)輸出四路脈沖信號(hào)觸發(fā)驅(qū)動(dòng)電路的四個(gè)NPN型三極管,其中觸發(fā)導(dǎo)通的三極管可驅(qū)動(dòng)步進(jìn)電機(jī)的相應(yīng)繞組得電,即步進(jìn)電機(jī)獲得脈沖,而產(chǎn)生一定的角位移。單片機(jī)循序不斷的輸出時(shí)序脈沖,就可以實(shí)現(xiàn)步進(jìn)電機(jī)的旋轉(zhuǎn)了。</p><p> 1.2 總體設(shè)計(jì)框圖</p><p> 總體設(shè)計(jì)框圖如圖1所示。</p><p> 圖1
19、 總體設(shè)計(jì)框圖</p><p> 第二章 設(shè)計(jì)原理分析</p><p><b> 2.1 步進(jìn)電機(jī)</b></p><p><b> 2.1.1 概述</b></p><p> 步進(jìn)電機(jī)是一種感應(yīng)電機(jī),它的工作原理是利用電子電路,將直流電變成分時(shí)供電的,多相時(shí)序控制電流,用這種電流為步進(jìn)電機(jī)
20、供電,步進(jìn)電機(jī)才能正常工作,驅(qū)動(dòng)器就是為步進(jìn)電機(jī)分時(shí)供電的,多相時(shí)序控制器 </p><p> 雖然步進(jìn)電機(jī)已被廣泛地應(yīng)用,但步進(jìn)電機(jī)并不能像普通的直流電機(jī),交流電機(jī)在常規(guī)下使用。它必須由雙環(huán)形脈沖信號(hào)、功率驅(qū)動(dòng)電路等組成控制系統(tǒng)方可使用。因此用好步進(jìn)電機(jī)卻非易事,它涉及到機(jī)械、電機(jī)、電子及計(jì)算機(jī)等許多專業(yè)知識(shí)。 </p><p> 步進(jìn)電機(jī)作為執(zhí)行元件,是機(jī)電一體化的關(guān)鍵產(chǎn)品
21、之一, 廣泛應(yīng)用在各種自動(dòng)化控制系統(tǒng)中。隨著微電子和計(jì)算機(jī)技術(shù)的發(fā)展,步進(jìn)電機(jī)的需求量與日俱增,在各個(gè)國(guó)民經(jīng)濟(jì)領(lǐng)域都有應(yīng)用。 步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。通俗一點(diǎn)講:當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度(即步進(jìn)角)。您可以通過控制脈沖個(gè)數(shù)來控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)您可以通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的。</p>
22、<p><b> 2.1.2 優(yōu)點(diǎn)</b></p><p> 電機(jī)旋轉(zhuǎn)的角度正比于脈沖數(shù); </p><p> 電機(jī)停轉(zhuǎn)的時(shí)候具有最大的轉(zhuǎn)矩(當(dāng)繞組激磁時(shí)); </p><p> 由于每步的精度在百分之三到百分之五,而且不會(huì)將一步的誤差積累到下一步因而有較好的位置精度和運(yùn)動(dòng)的重復(fù)性; </p>&l
23、t;p> 優(yōu)秀的起停和反轉(zhuǎn)響應(yīng); </p><p> 由于沒有電刷,可靠性較高,因此電機(jī)的壽命僅僅取決于軸承的壽命; </p><p> 電機(jī)的響應(yīng)僅由數(shù)字輸入脈沖確定,因而可以采用開環(huán)控制,這使得電機(jī)的結(jié)構(gòu)可以比較簡(jiǎn)單而且控制成本; </p><p> 僅僅將負(fù)載直接連接到電機(jī)的轉(zhuǎn)軸上也可以極低速的同步旋轉(zhuǎn)。 </p>
24、<p> 由于速度正比于脈沖頻率,因而有比較寬的轉(zhuǎn)速范圍。</p><p> 2.1.3 驅(qū)動(dòng)方法</p><p> 步進(jìn)電機(jī)不能直接接到工頻交流或直流電源上工作,而必須使用專用的步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)器,如圖2所示,它由脈沖發(fā)生控制單元、功率驅(qū)動(dòng)單元、保護(hù)單元等組成。圖中點(diǎn)劃線所包圍的二個(gè)單元可以用微機(jī)控制來實(shí)現(xiàn)。驅(qū)動(dòng)單元與步進(jìn)電動(dòng)機(jī)直接耦合,也可理解成步進(jìn)電動(dòng)機(jī)微機(jī)控制器的功率
25、接口。</p><p><b> 圖2</b></p><p> 本系統(tǒng)采用25Y48H01型步進(jìn)電機(jī),其相關(guān)參數(shù)如表1所示,內(nèi)部接線圖如圖3所示。</p><p> 表1 25Y48H01型步進(jìn)電機(jī)的相關(guān)參數(shù)</p><p> 圖3 25Y48H01型步進(jìn)電機(jī)內(nèi)部接線圖</p><p&g
26、t; 表2 步進(jìn)電機(jī)四相繞組的勵(lì)磁時(shí)序</p><p> 步進(jìn)電機(jī)的勵(lì)磁方式有1相勵(lì)磁、2相勵(lì)磁和1-2相勵(lì)磁3種。由于2相勵(lì)磁具有轉(zhuǎn)矩大、振動(dòng)小等優(yōu)點(diǎn),在目前使用較為普遍,本系統(tǒng)的設(shè)計(jì)也采用這種勵(lì)磁方式。步進(jìn)電機(jī)各相繞組的勵(lì)磁時(shí)序如表2所示。</p><p> 2.2 AT89S51單片機(jī)及其最小系統(tǒng)</p><p> Atmel公司的生產(chǎn)的89C51單
27、片機(jī)是一種低功耗/低電壓、高性能的8位單片機(jī),它采用CMOS和高密度非易失性存儲(chǔ)器技術(shù),而且其輸出引腳和指令系統(tǒng)都與MCS-51兼容;片內(nèi)的Flash ROM允許在系統(tǒng)內(nèi)改編程序或用常規(guī)的非易失性編程器來編程,內(nèi)部除CPU外,還包括256字節(jié)RAM,4K字節(jié)的ROM,4個(gè)8位并行I/O口,5個(gè)中斷源,2個(gè)中斷優(yōu)先級(jí),2個(gè)16位可編程定時(shí)計(jì)數(shù)器。89C51單片機(jī)是一種功能強(qiáng)、靈活性高且價(jià)格合理的單片機(jī),完全滿足本系統(tǒng)設(shè)計(jì)需要。</p
28、><p><b> 2.2.1 結(jié)構(gòu)</b></p><p> 4k Bytes Flash片內(nèi)程序存儲(chǔ)器; </p><p> 128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM); </p><p> 2個(gè)外部雙向輸入/輸出(I/O)口; </p><p> 5個(gè)中斷優(yōu)先級(jí)、2層
29、中斷嵌套中斷; </p><p><b> 6個(gè)中斷源; </b></p><p> 2個(gè)16位可編程定時(shí)器/計(jì)數(shù)器; </p><p> 2個(gè)全雙工串行通信口; </p><p> 看門狗(WDT)電路; </p><p> 片內(nèi)振蕩器和時(shí)鐘電路; </p
30、><p> 與MCS-51兼容; </p><p> 全靜態(tài)工作:0Hz-33MHz; </p><p> 三級(jí)程序存儲(chǔ)器保密鎖定; </p><p> 可編程串行通道; </p><p> 低功耗的閑置和掉電模式。</p><p><b> 2.2.2 功能<
31、;/b></p><p> VCC:電源電壓輸入端。 </p><p> GND:電源地。 </p><p> P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的低八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIA
32、SH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。 </p><p><b> 圖4</b></p><p> P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地
33、址接收。 </p><p> P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)
34、存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 </p><p> P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口除了作為普通I/O口,還有第二功能: </
35、p><p> P3.0 RXD(串行輸入口) </p><p> P3.1 TXD(串行輸出口) </p><p> P3.2 /INT0(外部中斷0) </p><p> P3.3 /INT1(外部中斷1) </p><p> P3.4 T0(T0定時(shí)器的外部計(jì)數(shù)輸入) </p>
36、<p> P3.5 T1(T1定時(shí)器的外部計(jì)數(shù)輸入) </p><p> P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器的寫選通) </p><p> P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器的讀選通) </p><p> P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。 </p><p> I/O口作為輸入口時(shí)有兩種工作方式,
37、即所謂的讀端口與讀引腳。讀端口時(shí)實(shí)際上并不從外部讀入數(shù)據(jù),而是把端口鎖存器的內(nèi)容讀入到內(nèi)部總線,經(jīng)過某種運(yùn)算或變換后再寫回到端口鎖存器。只有讀端口時(shí)才真正地把外部的數(shù)據(jù)讀入到內(nèi)部總線。89C51的P0、P1、P2、P3口作為輸入時(shí)都是準(zhǔn)雙向口。除了P1口外P0、P2、P3口都還有其他的功能。 </p><p> RST:復(fù)位輸入端,高電平有效。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。
38、 </p><p> ALE/PROG:地址鎖存允許/編程脈沖信號(hào)端。當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。
39、此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 </p><p> PSEN:外部程序存儲(chǔ)器的選通信號(hào),低電平有效。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。 EA/VPP:外部程序存儲(chǔ)器訪問允許。當(dāng)/EA保持低電平時(shí),則在此期間外部程
40、序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 </p><p> XTAL1:片內(nèi)振蕩器反相放大器和時(shí)鐘發(fā)生器的輸入端。 </p><p> XTAL2:片內(nèi)振蕩器反相放大器的輸出端。</p>
41、<p> 單片機(jī)最小系統(tǒng)包括振蕩電路和復(fù)位電路兩部分。振蕩電路用12M晶振,這樣一個(gè)機(jī)器周期 。</p><p> 復(fù)位電路采用手動(dòng)復(fù)位,當(dāng)按下RESET按鍵,電阻R1、R2接通5V電源,此時(shí)R2分得電壓大約為4V,為高電平,即置單片機(jī)RST腳為高電平,單片機(jī)復(fù)位。</p><p><b> 2.3 按鍵電路</b></p><p
42、> 采用5個(gè)按鍵用來控制步進(jìn)電機(jī)的5種狀態(tài),即“正轉(zhuǎn)”、“反轉(zhuǎn)”、“加速”、“減速”和“停止”。當(dāng)按下其中一個(gè)按鍵時(shí),電源通過上拉電阻和按鍵到地形成通路,使相應(yīng)輸入管腳接地,即給單片機(jī)送入一個(gè)低電平,此低電平即為有效電平。按鍵電路如圖4所示。</p><p> 2.4 步進(jìn)電機(jī)狀態(tài)顯示電路</p><p> 狀態(tài)指示采用三種顏色的發(fā)光二極管,“綠色”、“黃色”和“紅色”分別表示
43、步進(jìn)電機(jī)的“正轉(zhuǎn)”、“反轉(zhuǎn)”和“停止”狀態(tài)。限流電阻選擇1K的電阻,使發(fā)光二極管的壓降為3V左右。</p><p> 2.5 步進(jìn)電機(jī)驅(qū)動(dòng)電路</p><p> 從單片機(jī)輸出四路脈沖信號(hào),經(jīng)過非門和限流電阻,送到四個(gè)NPN型三極管的基極。如果從單片機(jī)輸出的是高電平,經(jīng)過非門變成低電平,送入三極管,使三極管截止;如果從單片機(jī)輸出的是低電平,經(jīng)過非門變成高電平,此高電平使三極管導(dǎo)通。步進(jìn)電
44、機(jī)的每相繞組并上一個(gè)二極管,目的是防止在三極管瞬間截止時(shí),繞組電感所產(chǎn)生很高的感應(yīng)電動(dòng)勢(shì)擊穿三極管。非門采用74LS04芯片,其內(nèi)部共有六個(gè)獨(dú)立的非門,這里只用了其中的四個(gè)。</p><p> 驅(qū)動(dòng)電路如圖6所示。</p><p><b> 圖5按鍵控制電路</b></p><p> 圖6步進(jìn)電機(jī)驅(qū)動(dòng)電路</p><p
45、><b> 程序原理分析</b></p><p> 3.1 程序設(shè)計(jì)思路</p><p> 根據(jù)外圍電路的設(shè)計(jì),單片機(jī)的輸入為P1口的前五個(gè)管腳,輸出為P1口的后三個(gè)管腳和P2口的前四個(gè)管腳。主程序部分首先向驅(qū)動(dòng)電路輸出四路高電平,使電機(jī)停轉(zhuǎn),然后設(shè)置定時(shí)器T0的工作方式以及給允許中斷位置高電平,點(diǎn)亮“停轉(zhuǎn)”的狀態(tài)顯示,接下來進(jìn)行按鍵掃描,如果有“正轉(zhuǎn)”或
46、“反轉(zhuǎn)”按鍵按下,則跳轉(zhuǎn)到相應(yīng)的程序段;如果有“停止”按鍵或沒有任何按鍵按下,則跳轉(zhuǎn)到程序的初始部分。正轉(zhuǎn)部分,首先點(diǎn)亮“正轉(zhuǎn)”的狀態(tài)指示,隨后輸出起始脈沖,接下來掃描按鍵,判斷是否執(zhí)行加速、減速或停轉(zhuǎn),然后調(diào)用給定時(shí)器T0賦初始值子程序,最后左移累加器A中的數(shù)值,如此循環(huán)便可實(shí)現(xiàn)步進(jìn)電機(jī)的正轉(zhuǎn)。反轉(zhuǎn)部分與正轉(zhuǎn)部分的程序設(shè)計(jì)雷同,不再贅述。加速和減速部分,改變定時(shí)器定時(shí)的初始值,即改變定時(shí)時(shí)間便可實(shí)現(xiàn)。</p><p
47、><b> 3.2程序分析</b></p><p> 首先,進(jìn)行P2口以及定時(shí)器的初始化,定時(shí)器工作于方式1,對(duì)P1.7清零,即點(diǎn)亮紅色發(fā)光二極管,表示步進(jìn)電機(jī)的“停止”的狀態(tài)。用JNB指令來掃描按鍵電路,按下則跳轉(zhuǎn),沒有按下則繼續(xù)向下執(zhí)行。如果P1.0按下,則跳轉(zhuǎn)到首地址為RUN的位置,先調(diào)用一個(gè)10ms的延時(shí)子程序來消除按鍵的抖動(dòng),對(duì)P1.6清零,即點(diǎn)亮綠色發(fā)光二極管,表示步進(jìn)
48、電機(jī)的“正轉(zhuǎn)”狀態(tài),然后通過累加器A輸出起始脈沖信號(hào)00110011B到P2口。隨后判斷加速、減速和停止按鍵是否按下,如果其中一個(gè)被按下,則跳到相應(yīng)的程序段,否則程序繼續(xù)向下執(zhí)行。接下來調(diào)用賦定時(shí)器初始值子程序TIME,根據(jù)R0的數(shù)據(jù)的不同,使用查表指令來讀取TABLE1和TABLE2中的數(shù)據(jù)分別賦給定時(shí)器T0的兩個(gè)八位寄存器TH0和TL0。返回后,利用查詢法來等待T0的中斷,當(dāng)定時(shí)結(jié)束時(shí)跳出循環(huán),并對(duì)中斷標(biāo)志位TF0清零。左移指令使累
49、加器A中的數(shù)據(jù)循環(huán)左移一位,最后返回到RUN1的位置。如果P1.1按下,則執(zhí)行反轉(zhuǎn)程序,該程序執(zhí)行過程與正轉(zhuǎn)部分相似,不同之處:一是反轉(zhuǎn)要點(diǎn)亮黃色發(fā)光二極管,二是對(duì)脈沖信號(hào)循環(huán)右移,從而實(shí)現(xiàn)反轉(zhuǎn)。</p><p> 加速子程序主要使R0內(nèi)的數(shù)據(jù)加1,即把速度提高一個(gè)級(jí)別,R0內(nèi)的數(shù)據(jù)還要與16相減,來確認(rèn)是否達(dá)到最高轉(zhuǎn)速,如果R0內(nèi)的數(shù)據(jù)大于16,則把16賦給R0,表示已達(dá)到最高轉(zhuǎn)速,不能再加速了。減速子程序主
50、要使R0內(nèi)的數(shù)據(jù)減1,即把速度降低一個(gè)級(jí)別,如果R0內(nèi)的數(shù)據(jù)為0,即速度為最低轉(zhuǎn)速,則直接跳過減一指令,保持這個(gè)最低轉(zhuǎn)速。</p><p> 賦定時(shí)器初值子程序,利用兩個(gè)查表指令來讀取預(yù)置的數(shù)據(jù),當(dāng)轉(zhuǎn)速改變時(shí),R0內(nèi)的數(shù)據(jù)發(fā)生變化,這時(shí)賦給定時(shí)器的初值也發(fā)生了變化,改變了定時(shí)時(shí)間,即脈沖的時(shí)間間隔發(fā)生變化,從而實(shí)現(xiàn)了電機(jī)變速。</p><p> 3.3 定時(shí)器計(jì)數(shù)初值的設(shè)定</p
51、><p> 程序設(shè)計(jì)選用定時(shí)器T0的定時(shí)中斷,來控制步進(jìn)電機(jī)每走一步所用的時(shí)間,改變了T0的定時(shí)時(shí)間,就改變了步進(jìn)電機(jī)的轉(zhuǎn)速。定時(shí)器T0工作于方式1,晶振fosc=12MHZ。由于采用的步進(jìn)電機(jī)的步距角為7.5°,轉(zhuǎn)一圈需要48個(gè)脈沖,設(shè)轉(zhuǎn)速為N(r/min),則每分鐘需送脈沖數(shù)據(jù)的個(gè)數(shù)為48N,即每送一個(gè)脈沖信號(hào)需時(shí):</p><p><b> 。</b>
52、</p><p> 定時(shí)器T0的計(jì)數(shù)初值 。設(shè)步進(jìn)電機(jī)最低轉(zhuǎn)速為20r/min,最高轉(zhuǎn)速為100r/min,每5r設(shè)為一個(gè)速度級(jí),一共17級(jí)。經(jīng)過計(jì)算,得出步進(jìn)電機(jī)的轉(zhuǎn)速對(duì)應(yīng)于定時(shí)器初值如表3所示。</p><p> 表3 電機(jī)速度及對(duì)應(yīng)定時(shí)器計(jì)數(shù)初值</p><p> 3.4 程序設(shè)計(jì)流程圖</p><p> 程序流程如圖7所示
53、:</p><p><b> 總結(jié)</b></p><p> 通過此次單片機(jī)課程設(shè)計(jì),使我對(duì)單片機(jī)控制系統(tǒng)有了更加全面和深入的了解,對(duì)電路板的設(shè)計(jì)和制作也更加的熟練。電路的設(shè)計(jì)并不復(fù)雜,兩天的時(shí)間就完成了,但之后編寫程序,發(fā)現(xiàn)有一些不妥的地方,進(jìn)行了調(diào)整,隨后開始制作PCB版圖,還算順利。程序的設(shè)計(jì)讓我犯了不少的困惑,以前編寫的都是一些功能簡(jiǎn)單的程序,這樣系統(tǒng)的程
54、序編寫還是第一次,發(fā)現(xiàn)自己好像有些摸不到頭腦,可能是編寫程序的時(shí)機(jī)還不夠成熟。而后,在圖書館借了幾本資料,仔細(xì)的研究一下,雖然實(shí)現(xiàn)的功能不大一致,但至少可以提供一些思路。果然,有了效果,我居然只用了一個(gè)下午的時(shí)間就編寫完成了,真是太神奇了。等拿到步進(jìn)電機(jī)進(jìn)行調(diào)試,電機(jī)卻沒有一點(diǎn)反應(yīng),經(jīng)過仔細(xì)的審查,發(fā)現(xiàn)按鍵輸入我使用的是單片機(jī)的P1口,可程序里我用的卻是P0口,于是對(duì)程序做了相應(yīng)的修改,調(diào)試成功。</p><p>
55、; 三周的實(shí)習(xí)即將結(jié)束,經(jīng)過了這樣一個(gè)設(shè)計(jì)和制作的過程,體會(huì)到這樣實(shí)踐真的是很必要,不僅可以加深對(duì)書本上的知識(shí)理解,還可以鍛煉自己的動(dòng)手能力和綜合運(yùn)用能力。經(jīng)過這次實(shí)習(xí),我更加喜歡自己的專業(yè)了,也對(duì)自己更有信心了。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 李朝青.單片機(jī)原理及接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2005.9
56、</p><p> [2] 蔡朝洋.單片機(jī)控制實(shí)習(xí)與專題制作.北京:北京航空航天大學(xué)出版社,2006.11</p><p> [3] 汪道輝.單片機(jī)系統(tǒng)設(shè)計(jì)與實(shí)踐.北京:電子工業(yè)出版社,2006.5</p><p> [4] 張大明.單片機(jī)控制實(shí)訓(xùn)指導(dǎo)及綜合應(yīng)用實(shí)例.北京:機(jī)械工業(yè)出版社,2007.3</p><p> [5] 楊天明
57、,陳杰.電機(jī)與拖動(dòng).北京:中國(guó)林業(yè)出版社;北京大學(xué)出版社,2006.8</p><p><b> 附錄</b></p><p> 附錄1 步進(jìn)電機(jī)總體控制電路</p><p> 附錄2 源程序代碼</p><p> ORG 0000H</p><p> AJMP MAIN</
58、p><p> ORG 0030H</p><p> MAIN: MOV P2,#0FFH</p><p> MOV R2,#00H</p><p> MOV SP,#40H</p><p> MOV TMOD,#01H</p><p> MOV IE,#82H<
59、/p><p><b> CLR P1.7</b></p><p> SETB P1.5</p><p> SETB P1.6</p><p> KEY: JNB P1.0,RUN</p><p> JNB P1.1,RERUN</p><p>
60、JNB P1.4,KEY</p><p><b> SJMP KEY</b></p><p> RUN: JNB P1.0,$</p><p> ACALL DELAY</p><p><b> CLR P1.6</b></p><p> SET
61、B P1.5</p><p> SETB P1.7</p><p> MOV A,# 00110011B</p><p> RUN1: MOV P2,A</p><p> JNB P1.1,RERUN</p><p> JB P1.2, KEEP</p><p>
62、 ACALL SPEEDUP</p><p> KEEP: JB P1.3, KEEP1</p><p> ACALL SPEEDLOW</p><p> KEEP1: JNB P1.4,MAIN</p><p> ACALL TIME</p><p> LOOP1: JBC
63、TF0,NEXT1</p><p> AJMP LOOP1</p><p> NEXT1: RL A</p><p> AJMP RUN1</p><p> RERUN: JNB P1.1,$</p><p> ACALL DELAY </p><p><b
64、> CLR P1.5</b></p><p> SETB P1.6</p><p> SETB P1.7</p><p> MOV A,# 00110011B</p><p> RERUN1: MOV P2,A</p><p> JNB P1.0,RUN</p>
65、<p> JB P1.2,THEN</p><p> ACALL SPEEDUP</p><p> THEN: JB P1.3,THEN1</p><p> ACALL SPEEDLOW</p><p> THEN1: JNB P1.4,MAIN</p><p> AC
66、ALL TIME</p><p> LOOP2: JBC TF0,NEXT2</p><p> AJMP LOOP2</p><p> NEXT2: RR A</p><p> AJMP RERUN1</p><p> SPEEDUP: JNB P1.2,$</p>&
67、lt;p> ACALL DELAY</p><p> PUSH ACC </p><p><b> INC R0</b></p><p><b> CLR C</b></p><p><b> MOV A,R0</b></p><p
68、> SUBB A,#16</p><p><b> JC NEXT3</b></p><p> MOV R0,#16</p><p> NEXT3: POP ACC</p><p><b> RET</b></p><p> SPEEDLOW:
69、 JNB P1.3,$</p><p> ACALL DELAY</p><p><b> PUSH ACC</b></p><p><b> MOV A,R0</b></p><p><b> JZ NEXT4</b></p><p>
70、;<b> DEC R0</b></p><p> NEXT4: POP ACC</p><p><b> RET</b></p><p> TIME: PUSH ACC</p><p><b> MOV A,R0</b></p>
71、<p> MOV DPTR,#TABLE1</p><p> MOVC A,@A+DPTR</p><p> MOV TH0,A </p><p><b> MOV A,R0</b></p><p> MOV DPTR,#TABLE2</p><p> MOVC
72、A,@A+DPTR</p><p> MOV TL0,A</p><p><b> SETB TR0</b></p><p><b> POP ACC</b></p><p><b> RET</b></p><p> DELAY:
73、 MOV R7,#10H</p><p> DS1: MOV R6,#0FFH</p><p> DS2: DJNZ R6,DS2</p><p> DJNZ R7,DS1</p><p><b> RET</b></p><p> TABLE1: D
74、B 1FH, 4CH, 6AH, 7FH, 8FH, 9CH, 0A6H, 0AEH, 0B5H, 0BAH, 0BFH, 0C4H, 0C7H, 0CBH, 0CEH, 0D0H, 0D3H</p><p> TABLE2: DB 00H, 00H, 00H, 6DH, 80H, 00H, 00H, 2EH, 00H, 0C4H, 0B6H, 00H, 0C0H, 0FH, 00H, 0A1H, 00
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)的步進(jìn)電機(jī)控制器畢業(yè)論文
- 基于單片機(jī)的步進(jìn)電機(jī)控制器的設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的步進(jìn)電機(jī)控制-畢業(yè)論文
- 基于單片機(jī)控制的步進(jìn)電機(jī)畢業(yè)論文
- 基于單片機(jī)的步進(jìn)電機(jī)控制-畢業(yè)論文
- 基于單片機(jī)的步進(jìn)電機(jī)控制畢業(yè)論文
- 基于單片機(jī)的步進(jìn)電機(jī)控制器的設(shè)計(jì)論文
- 基于單片機(jī)的步進(jìn)電機(jī)控制器設(shè)計(jì)-職業(yè)學(xué)院畢業(yè)論文
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的步進(jìn)電機(jī)控制器
- 基于單片機(jī)控制的步進(jìn)電機(jī)的畢業(yè)論文
- 基于單片機(jī)的步進(jìn)電機(jī)控制器的設(shè)計(jì)論文-2
- 基于avr單片機(jī)的步進(jìn)電機(jī)控制器設(shè)計(jì)
- 畢業(yè)論文---基于單片機(jī)控制的電梯控制器
- 單片機(jī)課程設(shè)計(jì)——基于單片機(jī)的步進(jìn)電機(jī)控制器設(shè)計(jì)
- 畢業(yè)論文--基于單片機(jī)的步進(jìn)電機(jī)的細(xì)分控制器的設(shè)計(jì)(含外文翻譯)
- 畢業(yè)論文----單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的步進(jìn)電機(jī)控制器的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)——基于單片機(jī)的步進(jìn)電機(jī)控制器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--步進(jìn)電機(jī)控制器
- 畢業(yè)設(shè)計(jì)----單片機(jī)的步進(jìn)電機(jī)控制器的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論