版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 單片機(jī)課程設(shè)計(jì)</b></p><p> 課題:步進(jìn)電機(jī)正反轉(zhuǎn)設(shè)計(jì)</p><p> 系 別: 電氣與電子工程系</p><p><b> 專 業(yè): </b></p><p><b> 姓 名: </b></p&
2、gt;<p><b> 學(xué) 號(hào)</b></p><p><b> 指導(dǎo)老師: </b></p><p> 2013年01月09日</p><p><b> 一 設(shè)計(jì)目的</b></p><p> 1、增進(jìn)對(duì)單片機(jī)的感性認(rèn)識(shí),加深對(duì)單片機(jī)理論方面
3、的理解;</p><p> 2、掌握單片機(jī)的內(nèi)部功能模塊的應(yīng)用,如定時(shí)器/計(jì)數(shù)器、中斷、片內(nèi)外存貯器、I/O口、A/D、D/A、串行口通訊等;</p><p> 3、了解和掌握單片機(jī)應(yīng)用系統(tǒng)的軟硬件設(shè)計(jì)過(guò)程、方法及實(shí)現(xiàn);</p><p> 4、了解步進(jìn)電機(jī)控制的基本原理,能實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)驅(qū)動(dòng)控制,掌握控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng)的編程方法。 </p><
4、;p><b> 二 設(shè)計(jì)要求</b></p><p> 1、具有速度和轉(zhuǎn)向設(shè)定功能;</p><p> 2、設(shè)置開(kāi)始、停止以及正反轉(zhuǎn)??;</p><p> 3、轉(zhuǎn)速以及轉(zhuǎn)向有數(shù)碼管顯示(本設(shè)計(jì)使用的為L(zhǎng)CD12864)。</p><p><b> 三 、總體設(shè)計(jì)</b></p
5、><p> 步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的數(shù)字控制執(zhí)行機(jī)構(gòu)。它將電脈沖信號(hào)轉(zhuǎn)變成角位移,即給一個(gè)脈沖信號(hào),步進(jìn)電機(jī)就轉(zhuǎn)動(dòng)一個(gè)角度,因此非常適合于單片機(jī)控制。 步進(jìn)電機(jī)具有控制簡(jiǎn)便、定位準(zhǔn)確等特點(diǎn)。隨著科學(xué)技術(shù)的發(fā)展,在許多領(lǐng)域?qū)⒌玫綇V泛的應(yīng)用。鑒于傳統(tǒng)的脈沖系統(tǒng)移植性不好,本文提出微機(jī)控制系統(tǒng)代替脈沖發(fā)生器和脈沖分配器,用軟件的方法產(chǎn)生控制脈沖,通過(guò)軟件編程可以任意設(shè)定步進(jìn)電機(jī)的轉(zhuǎn)速、旋轉(zhuǎn)角度、轉(zhuǎn)動(dòng)次
6、數(shù)和控制步進(jìn)電機(jī)的運(yùn)行狀態(tài)。以簡(jiǎn)化控制電路,降低生產(chǎn)成本,提高系統(tǒng)的運(yùn)行效率和靈活性。</p><p> 步進(jìn)電機(jī)的角位移與輸入脈沖數(shù)嚴(yán)格成正比,因此,當(dāng)它轉(zhuǎn)動(dòng)一周后,沒(méi)有累計(jì)誤差,具有良好的跟隨性。由步進(jìn)電機(jī)與驅(qū)動(dòng)電路組成的開(kāi)環(huán)數(shù)控系統(tǒng),既非常簡(jiǎn)單、 廉價(jià),又非??煽俊M瑫r(shí),它也可以與角度反饋環(huán)節(jié)組成高性能的閉環(huán)數(shù)控系統(tǒng)。步進(jìn)電機(jī)的動(dòng)態(tài)響應(yīng)快,易于起停、正反轉(zhuǎn)及變速。速度可在相當(dāng)寬的范圍內(nèi)平滑 調(diào)節(jié),低速下仍
7、能保證獲得大轉(zhuǎn)矩。步進(jìn)電機(jī)只能通過(guò)脈沖電源供電才能運(yùn)行,它不能直接使用交流電源和直流電源。 步進(jìn)電機(jī)存在振蕩和失步現(xiàn)象,必須對(duì)控制系統(tǒng)和機(jī)械負(fù)載采取相應(yīng)的措施。步進(jìn)電機(jī)自身的噪聲和振動(dòng)較大,帶慣性負(fù)載的能力較差。</p><p> 步進(jìn)電機(jī)是自動(dòng)控制系統(tǒng)中常用的執(zhí)行部件。步進(jìn)電機(jī)的輸入信號(hào)為脈沖電流,它能將輸入的脈沖信號(hào)轉(zhuǎn)換為階躍型的角位移或直線位移,因而步進(jìn)電機(jī)可看作是一個(gè)串行的數(shù)/模轉(zhuǎn)換器。由于步進(jìn)電機(jī)能夠
8、直接接受數(shù)字信號(hào),而不需數(shù)/模轉(zhuǎn)換,所以使用微機(jī)控制步進(jìn)電機(jī)顯得非常方便。</p><p> 步進(jìn)電機(jī)有以下優(yōu)點(diǎn):</p><p> (1)通常不需要反饋就能對(duì)位置和速度進(jìn)行控制;</p><p> (2)位置誤差不會(huì)積累;</p><p> (3)與數(shù)組設(shè)備兼容,能夠直接接收數(shù)字信號(hào);</p><p> (
9、4)可以快速啟停。</p><p> 步進(jìn)電機(jī)的品種規(guī)格很多,按照它們的結(jié)構(gòu)和工作原理可以劃分為磁阻式(也稱反應(yīng)式或變磁阻式)電機(jī)、混合式電機(jī)、永磁式電機(jī)和特種電機(jī)等四種主要型式。步進(jìn)電機(jī)不需位移傳感器就可精確定位,所以在精確定位系統(tǒng)中應(yīng)用廣泛。目前打字機(jī)、計(jì)算機(jī)外部設(shè)備、數(shù)控機(jī)床、傳真機(jī)等設(shè)備中都使用了步進(jìn)電機(jī)。隨著電子計(jì)算機(jī)技術(shù)的發(fā)展,步進(jìn)電機(jī)必將發(fā)揮它的控制方便、控制準(zhǔn)確的特點(diǎn),在工業(yè)控制等領(lǐng)域取得更為廣
10、泛的應(yīng)用。</p><p> 本設(shè)計(jì)采用16 位單片機(jī)AT89C51對(duì)步進(jìn)電機(jī)進(jìn)行控制,通過(guò)I/O口輸出的具有時(shí)序的方波作為步進(jìn)電機(jī)的控制信號(hào),信號(hào)經(jīng)過(guò)驅(qū)動(dòng)芯片驅(qū)動(dòng)步進(jìn)電機(jī);同時(shí),用觸發(fā)按鍵來(lái)對(duì)電機(jī)的狀態(tài)進(jìn)行控制,并用128X64LCD顯示電機(jī)的狀態(tài)及轉(zhuǎn)速。</p><p> 因?yàn)椴竭M(jìn)電機(jī)的控制是通過(guò)脈沖信號(hào)來(lái)控制的,將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開(kāi)環(huán)控制元件。所以怎樣產(chǎn)生這個(gè)脈沖
11、信號(hào)和產(chǎn)生怎樣的信號(hào)是電機(jī)控制的關(guān)鍵。</p><p> 用軟件控制單片機(jī)產(chǎn)生脈沖信號(hào),通過(guò)單片機(jī)的P1口輸出脈沖信號(hào),因?yàn)樗x電機(jī)是兩相的,所以只需要P0口的低四位P0.0-P0.3分別通過(guò)ULN2003A接到電機(jī)的五根電線上。可以通過(guò)調(diào)整輸出脈沖的頻率來(lái)調(diào)整電機(jī)的轉(zhuǎn)速,通過(guò)改變輸入脈沖的順序來(lái)改變轉(zhuǎn)動(dòng)方向,P2口和P3口接128X64LCD,可以顯示當(dāng)前的電機(jī)轉(zhuǎn)速和轉(zhuǎn)向,設(shè)置復(fù)位鍵可使正在轉(zhuǎn)動(dòng)的電機(jī)停止轉(zhuǎn)動(dòng)
12、,大概可分為如下圖所示的幾部分。</p><p> 注:由于此設(shè)計(jì)程序較復(fù)雜,在此沒(méi)有列出程序的框圖,程序框圖詳見(jiàn)軟件設(shè)計(jì)。</p><p> 四 、主要器件介紹及電路設(shè)計(jì)</p><p><b> 4.1、步進(jìn)電機(jī)</b></p><p> 4.1.1 步進(jìn)電機(jī)概述</p><p>
13、步進(jìn)電機(jī)是將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開(kāi)環(huán)控制元件。在非超載的情況下,電機(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)行的??梢酝ㄟ^(guò)控制脈沖個(gè)數(shù)來(lái)控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)可以通過(guò)控制脈沖頻率來(lái)控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的。由于脈沖信號(hào)數(shù)與步距
14、角的線性關(guān)系,加上步進(jìn)電機(jī)只有周期性的誤差而無(wú)累積誤差等特點(diǎn),使得在速度、位置等控制領(lǐng)域用步進(jìn)電機(jī)來(lái)控制變的非常的簡(jiǎn)單。 步進(jìn)電機(jī)是一種感應(yīng)電機(jī),它的工作原理是利用電子電路,將直流電變成分時(shí)供電的,多相時(shí)序控制電流,用這種電流為步進(jìn)電機(jī)供電,步進(jìn)電機(jī)才能正常工作,驅(qū)動(dòng)器就是為步進(jìn)電機(jī)分時(shí)供電的,多相時(shí)序控制器 </p><p> 雖然步進(jìn)電機(jī)已被廣泛地應(yīng)用,但步進(jìn)電機(jī)并不能象普通的直流電機(jī),交流電機(jī)在常規(guī)
15、下使用。它必須由雙環(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)品之一, 廣泛應(yīng)用在各種自動(dòng)化控制系統(tǒng)中。隨著微電子和計(jì)算機(jī)技術(shù)的發(fā)展,步進(jìn)電機(jī)的需求量與日俱增,在各個(gè)國(guó)民經(jīng)濟(jì)領(lǐng)域都有應(yīng)用。</p><p> 4.1.2 步進(jìn)電機(jī)的工作原理<
16、;/p><p> 通常電機(jī)的轉(zhuǎ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)方向一致。當(dāng)定子的矢量磁場(chǎng)旋轉(zhuǎn)一個(gè)角度。轉(zhuǎn)子也隨著該磁場(chǎng)轉(zhuǎn)一個(gè)角度。每輸入一個(gè)電脈沖,電動(dòng)機(jī)轉(zhuǎn)動(dòng)一個(gè)角度前進(jìn)一步。它輸出的角位移與輸入的脈沖數(shù)成正比、轉(zhuǎn)速與脈沖頻率成正比。改變繞組通電的順序,電機(jī)就會(huì)反轉(zhuǎn)。所以可用控制脈沖數(shù)量、頻率及電動(dòng)機(jī)各相繞組的通電順序來(lái)控制步進(jìn)
17、電機(jī)的轉(zhuǎn)動(dòng)</p><p> 四相步進(jìn)電機(jī),采用單極性直流電源供電。只要對(duì)步進(jìn)電機(jī)的各相繞組按合適的時(shí)序通電,就能使步進(jìn)電機(jī)步進(jìn)轉(zhuǎn)動(dòng)。圖1是該四相</p><p> 反應(yīng)式步進(jìn)電機(jī)工作原理圖。</p><p> 圖2 四相反應(yīng)式步進(jìn)電機(jī)工作原理圖</p><p> 開(kāi)始時(shí),開(kāi)關(guān)SB接通電源,SA、SC、SD斷開(kāi),B相磁極和轉(zhuǎn)子0、3號(hào)
18、齒對(duì)齊,同時(shí),轉(zhuǎn)子的1、4號(hào)齒就和C、D相 繞組磁極產(chǎn)生錯(cuò)齒,2、5號(hào)齒就和D、A相繞組磁極產(chǎn)生錯(cuò)齒。當(dāng)開(kāi)關(guān)SC接通電源,SB、SA、SD斷開(kāi)時(shí),由于C相繞組的磁力線和1、4號(hào)齒之間磁力線的作用,使轉(zhuǎn)子轉(zhuǎn)動(dòng),1、4號(hào)齒和C相繞組的磁極對(duì)齊。而0、3號(hào)齒和A、B相繞組產(chǎn)生錯(cuò)齒,2、5號(hào)齒就和A、D相繞組磁極產(chǎn)生錯(cuò)齒。依次類推,A、B、C、D四相繞組輪流供電,則轉(zhuǎn)子會(huì)沿著A、B、C、D方向轉(zhuǎn)動(dòng)。</p><p>
19、四相步進(jìn)電機(jī)按照通電順序的不同,可分為單四拍、雙四拍、八拍三種工作方式。單四拍與雙四拍的步距角相等,但單四拍的轉(zhuǎn)動(dòng)力矩小。八拍工作方式的步距角是單四拍與雙四拍的一半,因此,八拍工作方式既可以保持較高的轉(zhuǎn)動(dòng)力矩又可以提高控制精度。</p><p> 單四拍、雙四拍與八拍工作方式的電源通電時(shí)序與波形分別如圖2.a、b、c所示:</p><p> a單四拍 b雙四拍
20、 c八拍</p><p> 圖3.步進(jìn)電機(jī)工作時(shí)序波形圖</p><p> 4.2 ULN2003</p><p> ULN是集成達(dá)林頓管IC,內(nèi)部還集成了一個(gè)消線圈反電動(dòng)勢(shì)的二極管,可用來(lái)驅(qū)動(dòng)繼電器。它是雙列16腳封裝,NPN晶體管矩陣,最大驅(qū)動(dòng)電壓=50V,電流=500mA,輸入電壓=5V,適用于TTL COMS,由達(dá)林頓管組成驅(qū)
21、動(dòng)電路。 ULN是集成達(dá)林頓管IC,內(nèi)部還集成了一個(gè)消線圈反電動(dòng)勢(shì)的二極管,它的輸出端允許通過(guò)電流為200mA,飽和壓降VCE 約1V左右,耐壓BVCEO 約為36V。用戶輸出口的外接負(fù)載可根據(jù)以上參數(shù)估算。采用集電極開(kāi)路輸出,輸出電流大,故可直接驅(qū)動(dòng)繼電器或固體繼電器,也可直接驅(qū)動(dòng)低壓燈泡。通常單片機(jī)驅(qū)動(dòng)ULN2003時(shí),上拉2K的電阻較為合適,同時(shí),COM引腳應(yīng)該懸空或接電源。</p><p> ULN20
22、03是一個(gè)非門(mén)電路,包含7個(gè)單元,但獨(dú)每個(gè)單元驅(qū)動(dòng)電流最大可達(dá)350mA.資料的最后有引用電路,9腳可以懸空。 比如1腳輸入,16腳輸出,你的負(fù)載接在VCC與16腳之間,不用9腳。 </p><p> ULN2003的作用:ULN2003是大電流驅(qū)動(dòng)陣列,多用于單片機(jī)、智能儀表、PLC、數(shù)字量輸出卡等控制電路中。可直接驅(qū)動(dòng)繼電器等負(fù)載。輸入5VTTL電平,輸出可達(dá)500mA/50V。</p>&l
23、t;p> ULN2003是高耐壓、大電流達(dá)林頓陳列,由七個(gè)硅NPN達(dá)林頓管組成。 該電路的特點(diǎn)如是: ULN2003的每一對(duì)達(dá)林頓都串聯(lián)一個(gè)2.7K的基極電阻,在5V的工作電壓下它能與TTL和CMOS電路 直接相連,可以直接處理原先需要標(biāo)準(zhǔn)邏輯緩沖器。</p><p> ULN2003 是高壓大電流達(dá)林頓晶體管陣列系列產(chǎn)品,具有電流增益高、工作電壓高、溫度范圍寬、帶負(fù)載能力強(qiáng)等特點(diǎn),適應(yīng)于各類要求高速大
24、功率驅(qū)動(dòng)的系統(tǒng)。 </p><p> ULN2003A引腳圖及功能如下:</p><p> 圖4 ULN2003A引腳圖</p><p> ULN2003 是高耐壓、大電流、內(nèi)部由七個(gè)硅NPN達(dá)林頓管組成的驅(qū)動(dòng)芯片。 </p><p> 經(jīng)常在以下電路中使用,作為: </p><p>&
25、lt;b> 1、顯示驅(qū)動(dòng)</b></p><p><b> 2、繼電器驅(qū)動(dòng)</b></p><p><b> 3、照明燈驅(qū)動(dòng)</b></p><p><b> 4、電磁閥驅(qū)動(dòng)</b></p><p> 5、伺服電機(jī)、步進(jìn)電機(jī)驅(qū)動(dòng)等電路中。</p
26、><p> ULN2003的每一對(duì)達(dá)林頓都串聯(lián)一個(gè)2.7K 的基極電阻,在5V 的工作電壓下它能與TTL 和CMOS 電路直接相連,可以直接處理原先需要標(biāo)準(zhǔn)邏輯緩沖器來(lái)處理的數(shù)據(jù)。ULN2003 工作電壓高,工作電流大,灌電流可達(dá)500mA,并且能夠在關(guān)態(tài)時(shí)承受50V 的電壓,輸出還可以在高負(fù)載電流并行運(yùn)行。ULN2003 的封裝采用DIP—16 或SOP—16 </p><p> ULN
27、2003A在各種控制電路中常用它作為驅(qū)動(dòng)繼電器的芯片,其芯片內(nèi)部做了一個(gè)消線圈反電動(dòng)勢(shì)的二極管。ULN2003的輸出端允許通過(guò)IC 電流200mA,飽和壓降VCE 約1V左右,耐壓BVCEO 約為36V。輸出電流大,故可以直接驅(qū)動(dòng)繼電器或固體繼電器(SSR)等外接控制器件,也可直接驅(qū)動(dòng)低壓燈泡。</p><p> ULN2003可以驅(qū)動(dòng)7個(gè)繼電器,具有高電壓輸出特性,并帶有共陰極的續(xù)流二極管使器件可用于開(kāi)關(guān)型感
28、性負(fù)載。每對(duì)達(dá)林頓管的額定集電極電流是500mA,達(dá)林頓對(duì)管還可并聯(lián)使用以達(dá)到更高的輸出電流能力。ULN2003A中每對(duì)達(dá)林頓管的基極都串聯(lián)有一個(gè)2.7kΩ的電阻,可直接與TTL或5V CMOS器件連接。</p><p> 4.3 12864LCD</p><p> 12864A-1漢字圖形點(diǎn)陣液晶顯示模塊,可顯示漢字及圖形,內(nèi)置8192個(gè)中文漢字(16X16點(diǎn)陣,16*8=128,1
29、6*4=64,一行只能寫(xiě)8個(gè)漢字,4行;)、128個(gè)字符(8X16點(diǎn)陣)及64X256點(diǎn)陣顯示RAM(GDRAM)。</p><p> 4.3.1 主要技術(shù)參數(shù)和顯示特性如下:</p><p> 電源:VDD 3.3V-5V(內(nèi)置升壓電路,無(wú)需負(fù)壓);</p><p> 顯示內(nèi)容:128列× 64行(128表示點(diǎn)數(shù))</p><p
30、><b> 顯示顏色:黃綠</b></p><p> 顯示角度:6:00鐘直視</p><p><b> LCD類型:STN</b></p><p> 與MCU接口:8位或4位并行/3位串行</p><p><b> 配置LED背光</b></p>
31、<p> 多種軟件功能:光標(biāo)顯示、畫(huà)面移位、自定義字符、睡眠模式等</p><p> 4.3.2 外形尺寸圖:</p><p> 圖5 12864LCD外形尺寸</p><p> 4.3.3 主要外形尺寸</p><p> 4.3.4 模塊引腳說(shuō)明</p><p> 邏輯工作電壓(VDD):4.
32、5~5.5V</p><p> 電源地(GND):0V</p><p> 工作溫度(Ta):0~60℃(常溫) / -20~75℃(寬溫)</p><p> 4.3.5 接口時(shí)序</p><p> 模塊有并行和串行兩種連接方法(時(shí)序如下):</p><p> 4.3.5.1 8位并行連接時(shí)序圖</p&g
33、t;<p> 圖6 MPU寫(xiě)資料到模塊</p><p> 圖7 MPU從模塊讀出資料</p><p> 4.3.5.2 串行連接時(shí)序圖</p><p><b> 圖8 串行連接時(shí)序</b></p><p> 串行數(shù)據(jù)傳送共分三個(gè)字節(jié)完成:</p><p> 第一字節(jié):串口
34、控制—格式 11111ABC。A為數(shù)據(jù)傳送方向控制:H表示數(shù)據(jù)從LCD到MCU,L表示數(shù)據(jù)從MCU到LCD。B為數(shù)據(jù)類型選擇:H表示數(shù)據(jù)是顯示數(shù)據(jù),L表示數(shù)據(jù)是控制指令。 C固定為0</p><p> 第二字節(jié):(并行)8位數(shù)據(jù)的高4位—格式 DDDD0000</p><p> 第三字節(jié):(并行)8位數(shù)據(jù)的低4位—格式 0000DDDD</p><p> 串行
35、接口時(shí)序參數(shù):(測(cè)試條件:T=25℃ VDD=4.5V)</p><p> 4.4 系統(tǒng)的時(shí)鐘電路</p><p> 時(shí)鐘電路是用于產(chǎn)生單片機(jī)工作時(shí)所必需的時(shí)鐘信號(hào)。時(shí)鐘是單片機(jī)的心臟,單片機(jī)各功能部件的運(yùn)行都是以時(shí)鐘頻率為基準(zhǔn)的,有條不紊地一拍一拍地工作。時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。在本系統(tǒng)中采用外部時(shí)鐘方式的電路,如圖所示:</p
36、><p> 圖9 系統(tǒng)的時(shí)鐘電路</p><p> 在本設(shè)計(jì)中的電容C1、C2典型值為30±10 pF。外接代內(nèi)容的值雖然沒(méi)有嚴(yán)格的要求,但是電容的大小會(huì)影響振蕩器的穩(wěn)定性和起振的快速性。同時(shí),在系統(tǒng)中采用12MHz的晶體振蕩器來(lái)產(chǎn)生時(shí)鐘脈沖。這樣可以滿足系統(tǒng)在設(shè)計(jì)時(shí)的機(jī)器周期的需要。</p><p> 4.5 步進(jìn)電機(jī)驅(qū)動(dòng)電路</p>&
37、lt;p> 由單片機(jī)直接輸出的脈沖不足以驅(qū)動(dòng)步進(jìn)電機(jī)正常工作所以需要驅(qū)動(dòng)電路給步進(jìn)電機(jī)提供電源,在本設(shè)計(jì)中采用型號(hào)為ULN2003A的芯片,使步進(jìn)電機(jī)正常工作。驅(qū)動(dòng)信號(hào)由P0口的P0.0-P0.3輸出,分別與驅(qū)動(dòng)芯片的B1-B4相連,電路如下圖所示:</p><p> 圖10 步進(jìn)電機(jī)的驅(qū)動(dòng)電路</p><p><b> 五 軟件設(shè)計(jì)</b></p&
38、gt;<p><b> 1、主程序的設(shè)計(jì)</b></p><p> 主程序需具備的功能,要不斷掃描P1口并判斷觸發(fā)按鍵是否閉合,并能根據(jù)其電平高低,輸出不同的控制脈沖,并調(diào)用顯示子程序顯示轉(zhuǎn)速及方向。</p><p> 圖11 主程序設(shè)計(jì)流程</p><p><b> 程序如下</b></p&g
39、t;<p> #include <REG51.h> </p><p> //#include <stdio.h></p><p> //#include <math.h></p><p> #include "macro.h"</p><p> void iniL
40、CD(void); </p><p> void write_hz_str( int x1,int y1, uchar *point ) ;</p><p> uchar buf_Direction; //設(shè)定步進(jìn)電機(jī)的轉(zhuǎn)向</p><p> uint set_speed;
41、 //設(shè)定步進(jìn)電機(jī)的轉(zhuǎn)速</p><p> uchar step_motor_loop[8]={0x01,0x03,0x02,0x06,0x04,0x0C,0x08,0x09};</p><p> uchar step_index;</p><p> uchar buf_SpeedString[]=" ";</p>
42、;<p> #define CST_STEP_MOTOR_Z 10 //正轉(zhuǎn)</p><p> #define CST_STEP_MOTOR_F 20 //反轉(zhuǎn)</p><p> #define CST_STEP_MOTOR_ST 0 //停</p><p> #defi
43、ne fosc_12MHz 12 </p><p> #define fosc_24MHz 24 </p><p> #define fosc_setting fosc_12MHz //工作方式1</p><p> #define CST_TIME_MS 1000
44、 </p><p> #define CST_TH0 (65536-CST_TIME_MS*fosc_setting/fosc_12MHz)/256</p><p> #define ST_TL0 (65536-CST_TIME_MS*fosc_setting/fosc_12MHz)%256 </p><p> void step_motor_dri
45、ver(void)</p><p><b> {</b></p><p> static uint speed_delay=0;</p><p> speed_delay++;</p><p> if( buf_Direction==CST_STEP_MOTOR_Z)</p><p>&l
46、t;b> {</b></p><p> P0=step_motor_loop[step_index];</p><p> if(speed_delay >=set_speed)</p><p><b> {</b></p><p> speed_delay =0;</p>
47、<p> step_index++; //大于7,從頭再來(lái) </p><p> if(step_index >7)</p><p> step_index =0; </p><p><b> }</b></p><p><b> }</b>&l
48、t;/p><p> else if( buf_Direction==CST_STEP_MOTOR_F)</p><p><b> {</b></p><p> P0=step_motor_loop[step_index];</p><p> if(speed_delay >=set_speed )</p&
49、gt;<p><b> {</b></p><p> speed_delay =0;</p><p> step_index--; </p><p> if(step_index <=0)</p><p> step_index =7; </p>
50、<p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> speed_delay =0;</p><p&g
51、t;<b> P0=0x00;</b></p><p><b> }</b></p><p><b> }</b></p><p> void caluate(void)</p><p><b> {</b></p><p&g
52、t; uchar temp=0;</p><p> uint u16Temp=0;</p><p> u16Temp=(100-set_speed)*100/85;</p><p> buf_SpeedString[0]='0'+(u16Temp/100);</p><p> buf_SpeedString[1]=&
53、#39;0'+(u16Temp%100/10);</p><p> buf_SpeedString[2]='0'+(u16Temp%100%10);</p><p> buf_SpeedString[3]='%';</p><p> write_hz_str(6,60,&buf_SpeedString);<
54、/p><p><b> }</b></p><p><b> //按鍵處理程序</b></p><p> void key_Scan (void) </p><p><b> { </b></p><p> static uchar key_loo
55、se=0;</p><p> uchar temp=0;</p><p><b> P1=0XFF;</b></p><p> temp=P1&0xFF;</p><p> if(key_loose >0)</p><p><b> {</b><
56、/p><p> if(temp==0xFF)</p><p> key_loose=0;</p><p><b> return;</b></p><p><b> }</b></p><p> else if(temp !=0xFF)</p><p
57、><b> {</b></p><p> key_loose=10;</p><p> temp=P1&0xFF;</p><p> switch(temp)</p><p><b> {</b></p><p> case 0xFE: <
58、;/p><p> buf_Direction=CST_STEP_MOTOR_Z; </p><p> write_hz_str(6,20,"反轉(zhuǎn)");</p><p> caluate();</p><p> break; </p><p> case 0xFD
59、: </p><p> buf_Direction=CST_STEP_MOTOR_F; </p><p> write_hz_str(6,20,"正轉(zhuǎn)");</p><p> caluate();</p><p> break; </p><p>
60、 case 0xFB: write_hz_str(6,50,"100%");</p><p> buf_Direction=CST_STEP_MOTOR_ST; </p><p> write_hz_str(6,20,"停止");</p><p> caluate();</p><p> b
61、reak; </p><p> case 0xEF: </p><p> if(buf_Direction !=CST_STEP_MOTOR_ST)</p><p><b> {</b></p><p> set_speed+=5;</p><p>
62、 if(set_speed>=80)</p><p> set_speed =80;; //減速</p><p><b> }</b></p><p> caluate();</p><p><b> break;</b></p><p> cas
63、e 0xF7: </p><p> if(buf_Direction !=CST_STEP_MOTOR_ST)</p><p><b> {</b></p><p> set_speed-=5;</p><p> if(set_speed <=15)</p><p> set
64、_speed =15; //加速 </p><p><b> }</b></p><p> caluate();</p><p><b> break;</b></p><p> default: </p><p> break;
65、 //其它值返回 </p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void isr_timer0 (void) interrupt 1 usin
66、g 1</p><p><b> {</b></p><p> TH0=CST_TH0; </p><p> TL0=CST_TL0;</p><p> step_motor_driver();</p><p><b> }</b></p><p
67、> void init_timer0(void)</p><p><b> {</b></p><p> TCON=0x00;</p><p> TMOD=0x00;</p><p><b> TL0=0x00;</b></p><p><b>
68、TH0=0x00;</b></p><p> TCON=0x00;</p><p> // Timer 0 C/T=0,定時(shí)工作方式</p><p> //Timer 0 M1,M0=0,1</p><p> TMOD=0x01; //GATE=0,以運(yùn)行控制位TR0 啟動(dòng)定時(shí)器0 C/T=0,定時(shí)工作方式</p&
69、gt;<p> TH0=CST_TH0; </p><p> TL0=CST_TL0;</p><p> TF0=0;//clear 0. count over flag.</p><p> TR0=1;// enable TIMER0 ,start count</p><p> ET0=1; //enable acc
70、ept interrupt</p><p><b> }</b></p><p> // 主控程序</p><p> void main(void) </p><p><b> { </b></p><p><
71、;b> P2=0xff;</b></p><p><b> P1=0xff;</b></p><p><b> P0=0Xff;</b></p><p> init_timer0();</p><p> iniLCD();
72、 //初始化 LCD</p><p> write_hz_str(0,18,"2013-1-7");</p><p> write_hz_str(3,18,"步進(jìn)電機(jī)仿真");</p><p> write_hz_str(6,20,"停止");</p><p
73、> buf_Direction=CST_STEP_MOTOR_ST;</p><p> set_speed=60;</p><p> step_index=3;</p><p> EA=1; //開(kāi)中斷 </p><p> caluate();<
74、;/p><p><b> while(1)</b></p><p><b> {</b></p><p> key_Scan();</p><p><b> }</b></p><p><b> }</b></p>
75、<p> 2、顯示子程序的設(shè)計(jì)</p><p> 圖12 顯示程序流程圖</p><p><b> 程序如下:</b></p><p> #include <REG51.h> </p><p> //#include <stdio.h></p><p&g
76、t; //#include <math.h></p><p> #include "macro.h"</p><p> #include "LCD_HZ.h"</p><p> sbit E =P3^5;</p><p> sbit RW=P3^4;</p>&l
77、t;p> sbit RS =P3^2;</p><p> sbit L =P3^1;//左半平面 </p><p> sbit R =P3^0;//右半平面 </p><p> sbit Busy=P2^7;// //忙 判斷位 </p><p> #define LCDPAGE
78、 0xB8 //設(shè)置頁(yè)指令。</p><p> #define LCDLINE 0x40 //設(shè)置列指令。</p><p> //LCD判斷忙的子程序</p><p> void chkbusy(void) //測(cè)LCD忙狀態(tài) </p><p><b> { &
79、lt;/b></p><p> E=1; //使能LCD</p><p> RS=0; //讀寫(xiě)指令 </p><p> RW=1; //讀 </p><p> P2=0xff;
80、 //讀操作前先進(jìn)行一次空讀操作 ,接下來(lái)才能讀到數(shù)據(jù) </p><p> while(!Busy); //等待,不忙退出 </p><p><b> }</b></p><p><b> //寫(xiě)指令代碼</
81、b></p><p> void wcode(uchar cd) //寫(xiě)指令 代碼 </p><p><b> { </b></p><p> chkbusy(); //寫(xiě)等待 </p><p>
82、 P2=0xff; //使能LCD</p><p> RW=0; //讀禁止 </p><p> RS=0; //輸出 設(shè)置 </p><p> P2=cd;
83、 //寫(xiě)數(shù)據(jù)代碼 </p><p> E=1; //以下兩句產(chǎn)生下降沿 </p><p> E=0; </p><p><b> }</b></p><p> //把
84、顯示數(shù)據(jù)寫(xiě)到內(nèi)存單元中 </p><p> void wdata(uchar dat) //寫(xiě)顯示數(shù)據(jù)</p><p><b> {</b></p><p> chkbusy(); //寫(xiě)等待 </p><p>
85、; P2=0xff; //使能LCD</p><p> RW=0; //讀禁止 </p><p> RS=1; //輸出 設(shè)置 </p><p> P2=dat ^0xFF;
86、 //寫(xiě)數(shù)據(jù)代碼 </p><p> E=1; //以下兩句產(chǎn)生下降沿 </p><p> E=0; </p><p><b> }</b></p>
87、<p><b> //顯示LCD程序</b></p><p> //可以更改程序中的64變?yōu)?2就可以輸出數(shù)字了</p><p> void disrow(uchar page,uchar col,uchar *temp)</p><p><b> { </b></p><p>
88、<b> uchar i;</b></p><p> if(col<64) // 左半平面</p><p><b> { </b></p><p><b> L=1;R=0;</b></p>&l
89、t;p> wcode(LCDPAGE+page); // 寫(xiě)指令 頁(yè) </p><p> wcode(LCDLINE+col); //寫(xiě)指令行 </p><p> if((col+16)<64) //如果字在左半平
90、面顯示不了,轉(zhuǎn)到右半平面去 </p><p><b> { </b></p><p> for(i=0;i<16;i++) //寫(xiě)字 </p><p> wdata(*(temp+i));</p><p><b> }</b>&
91、lt;/p><p> else //右半平面 </p><p><b> {</b></p><p> for(i=0;i<64-col;i++) //減去左邊數(shù),從右半平面第一位開(kāi)始顯示 </p><p
92、> wdata(*(temp+i)); //寫(xiě)字 顯示 </p><p> L=0;R=1; //右半平面 </p><p> wcode(LCDPAGE+page); //寫(xiě)指令 頁(yè) </p><p>
93、; wcode(LCDLINE); //寫(xiě)指令行 </p><p> for(i=64-col;i<16;i++) //寫(xiě)字右半平面 </p><p> wdata(*(temp+i));</p><p><b> }</b>
94、;</p><p><b> }</b></p><p><b> else</b></p><p><b> { </b></p><p><b> L=0;R=1;</b></p><p> wcode(LCDPAG
95、E+page); // 寫(xiě)指令 頁(yè) </p><p> wcode(LCDLINE+col-64); //寫(xiě)指令行 </p><p> for(i=0;i<16;i++) //寫(xiě)字 </p><p> wdata(
96、*(temp+i)); </p><p><b> }</b></p><p><b> }</b></p><p><b> //供調(diào)用子程序</b></p><p> void display_HZ( int page, int col,uchar *temp)&
97、lt;/p><p><b> { </b></p><p> disrow( page, col, temp); //顯示上半字 </p><p> disrow( page+1, col, temp+16); //顯示下半字 </p>
98、<p><b> } </b></p><p> ///****************************************************</p><p> void disrow_ascii(uchar page,uchar col,uchar *temp)</p><p><b> { &
99、lt;/b></p><p><b> uchar i;</b></p><p> if(col<64) // 左半平面</p><p><b> { </b></p><p><b> L=1
100、;R=0;</b></p><p> wcode(LCDPAGE+page); // 寫(xiě)指令 頁(yè) </p><p> wcode(LCDLINE+col); //寫(xiě)指令行 </p><p> if((col+8)<64)
101、 //如果字在左半平面顯示不了,轉(zhuǎn)到右半平面去 </p><p><b> { </b></p><p> for(i=0;i<8;i++) //寫(xiě)字 </p><p> wdata(*(temp+i));</p><p&
102、gt;<b> }</b></p><p> else //右半平面 </p><p><b> {</b></p><p> for(i=0;i<64-col;i++) //減去左邊數(shù),從右半平面第
103、一位開(kāi)始顯示 </p><p> wdata(*(temp+i)); //寫(xiě)字 顯示 </p><p> L=0;R=1; //右半平面 </p><p> wcode(LCDPAGE+page); // 寫(xiě)指令 頁(yè) </
104、p><p> wcode(LCDLINE); //寫(xiě)指令行 </p><p> for(i=64-col;i<8;i++) //寫(xiě)字 右半平面 </p><p> wdata(*(temp+i));</p><p><b>
105、}</b></p><p><b> }</b></p><p><b> else</b></p><p><b> { </b></p><p><b> L=0;R=1;</b></p><p> wc
106、ode(LCDPAGE+page); // 寫(xiě)指令 頁(yè) </p><p> wcode(LCDLINE+col-64); //寫(xiě)指令行 </p><p> for(i=0;i<8;i++) //寫(xiě)字 </p><p>
107、 wdata(*(temp+i)); </p><p><b> }</b></p><p><b> }</b></p><p> void display_ascII( int page, int col,uchar *temp)</p><p><b> { </b
108、></p><p> disrow_ascii( page, col, temp); //顯示上半字 </p><p> disrow_ascii( page+1, col, temp+8); //顯示下半字 </p><p><b> } </b></p>
109、<p><b> //LCD初始化 </b></p><p> void iniLCD(void) //初始化 </p><p><b> { </b></p><p><b> L=1;</b></p>&l
110、t;p><b> R=1;</b></p><p> wcode(0x38);</p><p> wcode(0x0f); //開(kāi)顯示 設(shè)置 </p><p> wcode(0xc0); //設(shè)置顯示
111、啟動(dòng)為第一行 </p><p> wcode(0x01); //清屏</p><p> wcode(0x06); //畫(huà)面不動(dòng),光標(biāo)右移。</p><p><b> }</b></p>
112、<p> //然后應(yīng)用下面程序來(lái)索引漢字 </p><p> void write_hz_str( int x1,int y1, uchar *point ) </p><p><b> { </b></p><p> signed char temp1, temp2; </p><p><b&
113、gt; int i;</b></p><p> int x,y,hang=0;</p><p> int hz_cnt=0; </p><p><b> x=x1;</b></p><p><b> y=y1;</b></p><p> while (
114、*point != '\0') //判斷是否顯示完成 </p><p><b> { </b></p><p> if (hz_cnt>=8) //應(yīng)是8,中間有字符ASCII 嗎+ 漢字則只有1個(gè)字節(jié)空間不夠?qū)憹h字所以換行</p><p>&
115、lt;b> {</b></p><p> hz_cnt =0;</p><p> hang+=2; </p><p><b> }</b></p><p> temp1 = *point++; //取漢字?jǐn)?shù)據(jù) </p><p> if (temp1 &am
116、p;0x80) //如果是要顯示漢字 </p><p><b> { </b></p><p> temp2 = *point ++; </p><p> for (i = 0; i < HZ_SIZE ; i++) //字碼中共9個(gè)漢字</p><p><b> { </b&
117、gt;</p><p> if ((temp1 == GB_16[i].Index[0]) && (temp2 == GB_16[i].Index[1])) //查索引 </p><p><b> { </b></p><p> x=x1+hang;</p><p> y=y1+hz_cnt*16
118、;</p><p> display_HZ(x,y, &(GB_16[i].Msk[0])); //找到,字模指針賦值 </p><p> hz_cnt+=1;</p><p><b> break;</b></p><p><b> } </b></p><
119、;p><b> } </b></p><p><b> }</b></p><p> else if (temp1<=127 && temp1>=32)</p><p><b> { </b></p><p> temp1 -=32;
120、 </p><p> x=x1+hang;</p><p> y=y1+hz_cnt*8;</p><p> display_ascII(x,y, &(nAsciiDot[16*temp1])); //找到,字模指針賦值 </p><p> hz_cnt+=1; </p><p><b&g
121、t; } </b></p><p><b> } </b></p><p><b> }</b></p><p><b> 3、 H文件</b></p><p><b> H文件見(jiàn)附錄</b></p><p>
122、<b> 六、整體電路圖</b></p><p><b> 七、電路仿真及調(diào)試</b></p><p> 7.1Proteus介紹</p><p> Proteus是由Labcenter Electronics開(kāi)發(fā)的功能強(qiáng)大的單片機(jī)仿真軟件Proteus與其他的仿真軟件相比較,在下面的優(yōu)點(diǎn):</p>
123、<p> 1.能仿真模擬電路、數(shù)字電路、數(shù)?;旌想娐?;</p><p> 2.能繪制原理圖、PCB圖;</p><p> 3.幾乎包括實(shí)際中所有使用的儀器</p><p> 4.其最大的亮點(diǎn)在于能夠?qū)纹瑱C(jī)進(jìn)行實(shí)物級(jí)的仿真。從程序的編寫(xiě),編譯到調(diào)試,目標(biāo)版的仿真一應(yīng)俱全。支持匯編語(yǔ)言和C語(yǔ)言的編程。還可配合Keil C實(shí)現(xiàn)程序的聯(lián)合調(diào)試,將Prot
124、eus中繪制的原理圖作為實(shí)際中的目標(biāo)板,而用Keil C集成環(huán)境實(shí)現(xiàn)對(duì)目標(biāo)板的控制,與實(shí)際中通過(guò)硬件仿真器對(duì)目標(biāo)板的調(diào)試幾乎完全相同,并且支持多顯示器的調(diào)試,即Proteus運(yùn)行在一臺(tái)計(jì)算機(jī)上,而Keil C運(yùn)行在另一臺(tái)計(jì)算機(jī)上,通過(guò)網(wǎng)絡(luò)連接實(shí)現(xiàn)遠(yuǎn)程的調(diào)試。</p><p><b> 7.2系統(tǒng)仿真</b></p><p> 對(duì)應(yīng)的單拍正轉(zhuǎn)、雙拍正轉(zhuǎn)、單雙拍正轉(zhuǎn)種
125、情況下由虛擬示波器(OSCILLOSCOPE)采集的脈沖驅(qū)動(dòng)信號(hào),對(duì)于步進(jìn)電機(jī)的控制,實(shí)際上是控制步進(jìn)脈沖的個(gè)數(shù)和步進(jìn)脈沖的間隔,而步進(jìn)電機(jī)的間隔又可轉(zhuǎn)化為某基準(zhǔn)延時(shí)子程序的循環(huán)次數(shù)。因此,可以很方便地用軟件來(lái)控制步進(jìn)電機(jī)的運(yùn)行,達(dá)到控制目的。繪制完電路圖后,將編好的程序輸入軟件內(nèi)檢查所編程序是否正確,檢查程序無(wú)誤后裝入單片機(jī)內(nèi),進(jìn)行防真。仿真結(jié)果可見(jiàn)圖13所示。</p><p><b> 八 設(shè)計(jì)總
126、結(jié)</b></p><p> 這次課程設(shè)計(jì)根據(jù)課題要求,復(fù)習(xí)了所學(xué)的單片機(jī)和步進(jìn)電機(jī)的內(nèi)容,通過(guò)查閱大量書(shū)籍、專業(yè)網(wǎng)站、論壇等,通過(guò)反復(fù)對(duì)比,采用技術(shù)較為成熟以及仿真效果的電路。在軟件設(shè)計(jì)方面,一部分參考文獻(xiàn)的已成程序進(jìn)行修改編寫(xiě),一部分則是平時(shí)的經(jīng)驗(yàn)積累,初步掌握了步進(jìn)電機(jī)控制的基本原理和步進(jìn)電機(jī)轉(zhuǎn)動(dòng)編程的方法,步進(jìn)電機(jī)作為執(zhí)行元件,是機(jī)電一體化的關(guān)鍵產(chǎn)品之一,廣泛應(yīng)用在各種自動(dòng)化控制系統(tǒng)中。隨著
127、微電子和計(jì)算機(jī)技術(shù)的發(fā)展,步進(jìn)電機(jī)的需求量與日增加,在各個(gè)國(guó)民經(jīng)濟(jì)領(lǐng)域仍將起到重要作用。根據(jù)課程設(shè)計(jì)的要求和自己通過(guò)參考有關(guān)資料,寫(xiě)好程序流程圖,在程序流程圖的基礎(chǔ)上,根據(jù)芯片的功能寫(xiě)出相應(yīng)的程序,達(dá)到能夠?qū)崿F(xiàn)所要求的功能的目的。 在寫(xiě)程序時(shí),在每條指令后都寫(xiě)好注釋,以便在程序出錯(cuò)的檢查過(guò)程中可以更容易查找得到。 本次課程設(shè)計(jì)重點(diǎn)是理論與實(shí)際的相結(jié)合,不單單只是書(shū)上的一條條分離的指令。這次實(shí)驗(yàn)我們學(xué)到了有關(guān)步進(jìn)電機(jī)的
溫馨提示
- 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ù)僅提供信息存儲(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ī)課程設(shè)計(jì)步進(jìn)電機(jī)啟動(dòng)停止正反轉(zhuǎn)
- 單片機(jī)步進(jìn)電機(jī)課程設(shè)計(jì)--單片機(jī)控制步進(jìn)電機(jī)的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--步進(jìn)電機(jī)
- 基于avr單片機(jī)控制步進(jìn)電機(jī)正反轉(zhuǎn)
- 單片機(jī)課程設(shè)計(jì)---步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)-步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)-單片機(jī)控制步進(jìn)電機(jī)
- 微特電機(jī)課程設(shè)計(jì)--步進(jìn)電機(jī)正反轉(zhuǎn)
- 微機(jī)原理課程設(shè)計(jì)---步進(jìn)電機(jī)正反轉(zhuǎn)
- 單片機(jī)-控制步進(jìn)電機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)步進(jìn)電機(jī)控制設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告——單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)--步進(jìn)電機(jī)控制
- 單片機(jī)課程設(shè)計(jì)---步進(jìn)電機(jī)控制
- 單片機(jī)課程設(shè)計(jì)報(bào)告--步進(jìn)電機(jī)控制設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-步進(jìn)電機(jī)的控制
- 單片機(jī)課程設(shè)計(jì)--步進(jìn)電機(jī)角度控制
- 單片機(jī)課程設(shè)計(jì)---步進(jìn)電機(jī)控制 (2)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的步進(jìn)電機(jī)控制
評(píng)論
0/150
提交評(píng)論