基于單片機(jī)控制的步進(jìn)電機(jī)畢業(yè)論文_第1頁(yè)
已閱讀1頁(yè),還剩15頁(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、<p><b>  畢業(yè)論文</b></p><p>  題 目 基于單片機(jī)控制的步進(jìn)電機(jī)</p><p><b>  學(xué)生姓名 </b></p><p>  學(xué) 號(hào) </p><p>  院 系 </p><p>

2、<b>  專 業(yè) </b></p><p><b>  指導(dǎo)教師 </b></p><p>  二O 年 月 日</p><p><b>  摘要</b></p><p>  介紹了步進(jìn)電機(jī)和直流電機(jī)原理及其驅(qū)動(dòng)程序控制控制模塊,通過(guò)AT89S52單

3、片機(jī)及脈沖分配器(又稱邏輯轉(zhuǎn)換器) L298完成步進(jìn)電機(jī)和直流電機(jī)各種運(yùn)行方式的控制。實(shí)現(xiàn)步進(jìn)電機(jī)的正反轉(zhuǎn)速度控制并且顯示數(shù)據(jù)。整個(gè)系統(tǒng)采用模塊化設(shè)計(jì),結(jié)構(gòu)簡(jiǎn)單、可靠,通過(guò)按鍵控制,操作方便,節(jié)省成本。</p><p><b>  關(guān)鍵詞</b></p><p>  步進(jìn)電機(jī);單片機(jī)控制; AT89S52;</p><p>  Please e

4、nter the</p><p>  This paper introduces the principle of stepping motor and dc motor control module and its driver control, by AT89S52 single chip microcomputer and pulse distributor (also called logical con

5、verter) L298 to complete the operation ways of stepping motor and dc motor control. Implementation of step motor and reversing speed control and display the data. The whole system USES modular design, simple structure, r

6、eliable, through the button control, convenient operation, cost savings. </p><p><b>  keywords</b></p><p>  Stepping motor; Single chip microcomputer control; AT89S52 devices; To tra

7、nslate the text</p><p><b>  目錄</b></p><p><b>  1、引言</b></p><p>  隨著數(shù)字化技術(shù)發(fā)展,數(shù)字控制技術(shù)得到了廣泛而深入的應(yīng)用。步進(jìn)電機(jī)是一種將數(shù)字信號(hào)直接轉(zhuǎn)換成角位移或線位移的控制驅(qū)動(dòng)元件, 具有快速起動(dòng)和停止的特點(diǎn)。因?yàn)椴竭M(jìn)電動(dòng)機(jī)組成的控制系統(tǒng)結(jié)構(gòu)簡(jiǎn)單

8、,價(jià)格低廉,性能上能滿足工業(yè)控制的基本要求,所以廣泛地應(yīng)用于手工業(yè)自動(dòng)控制、數(shù)控機(jī)床、組合機(jī)床、機(jī)器人、計(jì)算機(jī)外圍設(shè)備、照相機(jī),投影儀、數(shù)碼攝像機(jī)、大型望遠(yuǎn)鏡、衛(wèi)星天線定位系統(tǒng)、醫(yī)療器件以及各種可控機(jī)械工具等等。直流電機(jī)廣泛應(yīng)用于計(jì)算機(jī)外圍設(shè)備( 如硬盤、軟盤和光盤存儲(chǔ)器) 、家電產(chǎn)品、醫(yī)療器械和電動(dòng)車上, 無(wú)刷直流電機(jī)的轉(zhuǎn)子都普遍使用永磁材料組成的磁鋼, 并且在航空、航天、汽車、精密電子等行業(yè)也被廣泛應(yīng)用。在電工設(shè)備中的應(yīng)用,除了直流

9、電磁鐵(直流繼電器、直流接觸器等)外,最重要的就是應(yīng)用在直流旋轉(zhuǎn)電機(jī)中。在發(fā)電廠里,同步發(fā)電機(jī)的勵(lì)磁機(jī)、蓄電池的充電機(jī)等,都是直流發(fā)電機(jī);鍋爐給粉機(jī)的原動(dòng)機(jī)是直流電動(dòng)機(jī)。此外,在許多工業(yè)部門,例如大型軋鋼設(shè)備、大型精密機(jī)床、礦井卷?yè)P(yáng)機(jī)、市內(nèi)電車、電纜設(shè)備要求嚴(yán)格線速度一致的地方等,通常都采用直流電動(dòng)機(jī)作為原動(dòng)機(jī)來(lái)拖動(dòng)工作機(jī)械的。直流發(fā)電機(jī)通常是作為直流電源,向負(fù)載輸出電能;</p><p><b>  

10、電機(jī)的工作原理</b></p><p><b>  步進(jìn)電機(jī)原理</b></p><p>  步進(jìn)電機(jī)本質(zhì)上是一個(gè)數(shù)字角度轉(zhuǎn)換器。以三相電機(jī)為例, 其結(jié)構(gòu)原理見圖1。各相夾角為120°的定子磁極上均勻分布了5個(gè)矩形小齒, 沒(méi)有繞組的轉(zhuǎn)子圓周上也均勻的分布著40個(gè)小齒(相鄰齒夾角為9°)。利用電磁學(xué)的性質(zhì), 在某相繞組通電時(shí), 相應(yīng)的磁極

11、產(chǎn)生磁場(chǎng), 與轉(zhuǎn)子形成磁路如此時(shí)定子的小齒與轉(zhuǎn)子的小齒沒(méi)有對(duì)齊, 則在磁場(chǎng)作用下, 轉(zhuǎn)子就轉(zhuǎn)動(dòng)一定角度, 達(dá)到齒的對(duì)齊。在單三拍控制方式下, 若A相通電, B、C相不通電, 在磁場(chǎng)作用下使轉(zhuǎn)子齒和A相定子齒相對(duì)假設(shè)此時(shí)為初態(tài)并且令與A相中心對(duì)齊的轉(zhuǎn)子齒為0號(hào)齒, 因?yàn)锽相與A相相差120°,可知120°/9°=13 3?9, 不為整數(shù), 即此時(shí)轉(zhuǎn)子齒與B相不對(duì)齊, 只是13號(hào)齒靠近相的中心, 且相差3

12、76;。如果此時(shí)突然變?yōu)锽相通電, 而A、C相都不通電, 那么, 13號(hào)齒會(huì)在磁場(chǎng)的作用下轉(zhuǎn)到與相中心對(duì)齊的位置, 這就是常說(shuō)的走一步, 此時(shí),轉(zhuǎn)子轉(zhuǎn)了。這樣, 按照A一B一C一A順序通電次, 可以使轉(zhuǎn)子轉(zhuǎn)動(dòng)9°。那么步進(jìn)電機(jī)的步距角Q=(360/NZ)°(式中N=MC為運(yùn)行拍數(shù);M為控制繞組相數(shù);C為狀態(tài)系數(shù), 單三拍或雙三拍時(shí)C=1, 單六拍或雙六拍</p><p><b>  

13、直流電機(jī)的原理</b></p><p>  由直流電動(dòng)機(jī)和發(fā)電機(jī)工作原理示意圖可以看到,直流電機(jī)的結(jié)構(gòu)應(yīng)由定子和轉(zhuǎn)子兩大部分組成。直流電機(jī)運(yùn)行時(shí)靜止不動(dòng)的部分稱為定子,定子的主要作用是產(chǎn)生磁場(chǎng),由機(jī)座、主磁極、換向極、端蓋、軸承和電刷裝置等組成。運(yùn)行時(shí)轉(zhuǎn)動(dòng)的部分稱為轉(zhuǎn)子,其主要作用是產(chǎn)生電磁轉(zhuǎn)矩和感應(yīng)電動(dòng)勢(shì),是直流電機(jī)進(jìn)行能量轉(zhuǎn)換的樞紐,所以通常又稱為電樞,由轉(zhuǎn)軸、電樞鐵心、電樞繞組、換向器和風(fēng)扇等組

14、成。</p><p>  直流電機(jī)的結(jié)構(gòu):電機(jī)要實(shí)現(xiàn)機(jī)電能量變換,電路和磁路之間必須有相對(duì)運(yùn)動(dòng)。所以旋轉(zhuǎn)電機(jī)具備靜止的和旋轉(zhuǎn)的兩大部分。靜止和旋轉(zhuǎn)部分之間有一定大小的間隙,稱為氣隙。靜止的部分稱為定子,作用是產(chǎn)生磁場(chǎng)和作為電機(jī)的機(jī)械支撐。包括主磁極、換向極、機(jī)座、端蓋、軸承、電刷裝置等。旋轉(zhuǎn)部分稱為轉(zhuǎn)子或電樞,作用是感應(yīng)電勢(shì)實(shí)現(xiàn)能量轉(zhuǎn)換。包括電樞鐵心,電樞繞組,換向器、軸和風(fēng)扇等。</p><

15、p>  定子部分:1、主磁極:也稱為主極。作用是產(chǎn)生氣隙磁場(chǎng)。2、換向極:也稱為附加極或間極。作用是改善換向。裝在主極之間。3、機(jī)座:由鑄鋼或厚鋼板焊成。是電機(jī)的機(jī)械支撐。4、電刷裝置:將直流電壓、電流引入或引出的裝置。其組數(shù)與主極極數(shù)相等。</p><p>  轉(zhuǎn)動(dòng)部分:(轉(zhuǎn)子部分)1、電樞鐵心:主磁路的主要部分及嵌放電樞繞組,由硅鋼片迭壓而成。2、電樞繞組:由許多按一定規(guī)律聯(lián)接的線圈組成。用來(lái)感應(yīng)電勢(shì)和

16、通過(guò)電流,是電路的主要部分。3、換向器:由許多彼此絕緣的換向片構(gòu)成。</p><p><b>  硬件系統(tǒng)</b></p><p><b>  原理流程</b></p><p><b>  ULN2003</b></p><p>  ULN是集成達(dá)林頓管IC,內(nèi)部還集成了一個(gè)消

17、線圈反電動(dòng)勢(shì)的二極管,可用來(lái)驅(qū)動(dòng)繼電器。它是雙列16腳封裝,NPN晶體管矩陣,最大驅(qū)動(dòng)電壓=50V,電流=500mA,輸入電壓=5V,適用于TTL COMS,由達(dá)林頓管組成驅(qū)動(dòng)電路。 ULN是集成達(dá)林頓管IC,內(nèi)部還集成了一個(gè)消線圈反電動(dòng)勢(shì)的二極管,它的輸出端允許通過(guò)電流為200mA,飽和壓降VCE 約1V左右,耐壓BVCEO 約為36V。用戶輸出口的外接負(fù)載可根據(jù)以上參數(shù)估算。采用集電極開路輸出,輸出電流大,故可直接驅(qū)動(dòng)繼電器或固體繼

18、電器,也可直接驅(qū)動(dòng)低壓燈泡。通常單片機(jī)驅(qū)動(dòng)ULN2003時(shí),上拉2K的電阻較為合適,同時(shí),COM引腳應(yīng)該懸空或接電源。ULN2003是一個(gè)非門電路,包含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、

19、數(shù)字量輸出卡等控制電路中??芍苯域?qū)動(dòng)繼電器等負(fù)載。 輸入5VTTL電平,輸出可達(dá)500mA/50V。ULN2003是高耐壓、大電流達(dá)林頓陳列,由七個(gè)硅NPN達(dá)林頓管組成。 ULN2003的每一對(duì)達(dá)林頓都串聯(lián)一個(gè)2.7K的基極電阻,在5V的工作電壓下它能與TTL和CMOS電路 直接相連,可以直接處理原先需要標(biāo)準(zhǔn)邏輯緩沖器。ULN2003 是高壓大電流達(dá)林頓晶體管陣列系列產(chǎn)品,具有電流增益高、工作電壓高、溫度范圍寬、帶

20、負(fù)載能力強(qiáng)等特點(diǎn),適應(yīng)于各類要求高速大功率驅(qū)動(dòng)的系統(tǒng)。      </p><p>  ULN2003A引腳圖及功能:</p><p>  ULN2003 是高耐壓、大電流、內(nèi)部由七個(gè)硅NPN 達(dá)林頓管組成的驅(qū)動(dòng)芯片。 經(jīng)常在以下電路中使用,作為顯示驅(qū)動(dòng)、繼電器驅(qū)動(dòng)、照明燈驅(qū)動(dòng)、電磁閥驅(qū)動(dòng)、伺服電機(jī)、步進(jìn)電機(jī)驅(qū)動(dòng)等電路中。ULN2

21、003 的每一對(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 。ULN2003可以驅(qū)動(dòng)7個(gè)繼電器,具有高電壓輸出特性,并帶有共陰極的續(xù)流二極管使器件可用

22、于開關(guān)型感性負(fù)載。每對(duì)達(dá)林頓管的額定集電極電流是500mA,達(dá)林頓對(duì)管還可并聯(lián)使用以達(dá)到更高的輸出電流能力。    顯示電路主要包括大型LED數(shù)碼管BSI20-1(共陽(yáng)極,數(shù)字凈高12 cm)和高電壓大電流驅(qū)動(dòng)器ULN2003,大型LED數(shù)碼管的每段是由多個(gè)LED發(fā)光二極管串并聯(lián)而成的,因此導(dǎo)通電流大、導(dǎo)通壓降高。ULN2003是高壓大電流達(dá)林頓晶體管陣列電路,</p><p>

23、<b>  L298</b></p><p>  L298是SGS公司的產(chǎn)品,比較常見的是15腳Multiwatt封裝的L298N,內(nèi)部同樣包含4通道邏輯驅(qū)動(dòng)電路??梢苑奖愕尿?qū)動(dòng)兩個(gè)直流電機(jī),或一個(gè)兩相步進(jìn)電機(jī)。L298是一款單片集成的高電壓、高電流、雙路全橋式電機(jī)驅(qū)動(dòng),設(shè)計(jì)用于連接標(biāo)準(zhǔn)TTL邏輯電平,驅(qū)動(dòng)電感負(fù)載(諸如繼電器、線圈、DC和步進(jìn)電機(jī))。L298提供兩個(gè)使能輸入端,可以在不依賴

24、于輸入信號(hào)的情況下,使能或禁用L298器件。L298低位晶體管的發(fā)射器連接到一起,而其對(duì)應(yīng)的外部端口則可用來(lái)連接一個(gè)外部感應(yīng)電阻。L298還提供一個(gè)額外的電壓輸入,所以其邏輯電路可以工作在更低的電壓下。L298 特性 :L298工作電壓高達(dá)46V ;總DC電流達(dá)4A ;低飽和電壓 ;L298具有過(guò)溫保護(hù)功能 ;邏輯“0”輸入電壓高達(dá)1.5V(高抗噪性) ;</p><p><b>  74HC573&l

25、t;/b></p><p>  SL74HC573 跟LS/AL573 的管腳一樣。器件的輸入是和標(biāo)準(zhǔn)CMOS 輸出兼容的;加上拉電阻,他們能和LS/ALSTTL 輸出兼容。當(dāng)鎖存使能端為高時(shí),這些器件的鎖存對(duì)于數(shù)據(jù)是透明的(也就是說(shuō)輸出同步)。當(dāng)鎖存使能變低時(shí),符合建立時(shí)間和保持時(shí)間的數(shù)據(jù)會(huì)被鎖存。輸出能直接接到CMOS,NMOS 和TTL 接口上;操作電壓范圍:2.0V~6.0V;低輸入電流:1.0Ua

26、;CMOS 器件的高噪聲抵抗特性。</p><p><b>  軟件系統(tǒng)</b></p><p><b>  1、主程序</b></p><p>  該系統(tǒng)采用多個(gè)模塊的方式來(lái)實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的控制??刂颇K采用單片機(jī)AT89S52 來(lái)控制L298,L298驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)。</p><p>  2、直流

27、電機(jī)驅(qū)動(dòng)程序</p><p>  #include <reg52.h></p><p>  sbit KEY0=P3^0; //控制按鍵,為高電平時(shí),直流電機(jī)工作。為0時(shí)啟動(dòng)步進(jìn)電機(jī);</p><p>  sbit KEY1 = P3^2; //控制直流電機(jī)調(diào)速按鍵</p><p>  sbit KEY2 = P3^

28、3; //控制步進(jìn)電機(jī)正反轉(zhuǎn)、停機(jī)按鍵</p><p>  sbit PWM = P1^5; //定義直流電機(jī)PWM輸出調(diào)速端口</p><p>  unsigned char CYCLE; //定義周期 該數(shù)字X基準(zhǔn)定時(shí)時(shí)間 如果是10 則周期是10 x 0.1ms</p><p>  unsigned char PWM_Num=0;//直流電機(jī)速

29、度檔位;</p><p>  unsigned char PWM_ON ;//定義高電平時(shí)間</p><p>  unsigned char Flag;//定義步進(jìn)電機(jī)正反轉(zhuǎn)和停止標(biāo)志位</p><p>  unsigned char code F_Rotation[4]={0x1f,0x2f,0x4f,0x8f}; //步進(jìn)電機(jī)正轉(zhuǎn)表格</p>&

30、lt;p>  unsigned char code B_Rotation[4]={0x8f,0x4f,0x2f,0x1f}; //步進(jìn)電機(jī)反轉(zhuǎn)表格</p><p>  /******************************************************************/</p><p>  /* 延時(shí)函數(shù)

31、 */</p><p>  /******************************************************************/</p><p>  void Delay(unsigned int i)//延時(shí)</p><p><b>  {</b>

32、;</p><p>  while(--i);</p><p><b>  }</b></p><p>  /******************************************************************/</p><p>  /* 主函數(shù)

33、 */</p><p>  /******************************************************************/</p><p><b>  main()</b></p><p><b>  {</b>&

34、lt;/p><p>  unsigned char i;</p><p>  EX0=1; //外部中斷0開,控制直流電機(jī)</p><p>  EX1=1; //外部中斷1開,控制步進(jìn)電機(jī)</p><p>  IT0=1; //邊沿觸發(fā)</p><p>  IT1=1;

35、 //邊沿觸發(fā)</p><p>  EA=1; //全局中斷開 </p><p>  P0=0x06;//開機(jī)顯示直流電機(jī)1檔位</p><p>  TMOD|=0x01;//定時(shí)器設(shè)置 1ms in 12M crystal</p><p>  TH0=(65536-1000)/256; </p>

36、<p>  TL0=(65536-1000)%256;//定時(shí)1mS </p><p>  ET0=1; //打開中斷</p><p><b>  TR0=1; </b></p><p>  CYCLE = 10;// 時(shí)間可以調(diào)整 這個(gè)是10步調(diào)整 周期10ms,PWM的周期不變,8位PWM就是256步</p>

37、<p>  while(KEY0==1) //P3.0為高電平,則直流電機(jī)運(yùn)轉(zhuǎn);</p><p><b>  {</b></p><p>  switch(PWM_Num){</p><p>  case 0:P0=0x06;PWM_ON=0;break;//高電平時(shí)長(zhǎng),P0口段碼為1;</p><p>  c

38、ase 1:P0=0x5B;PWM_ON=4;break;//P0口段碼為2;</p><p>  case 2:P0=0x4F;PWM_ON=6;break;//P0口段碼為3</p><p>  case 3:P0=0x66;PWM_ON=8;break; //P0口段碼為4</p><p>  case 4:P0=0x6D;PWM_ON=10;break; /

39、/P0口段碼為停機(jī)S</p><p>  default:break; }</p><p><b>  }</b></p><p>  while(KEY0==0) //KEY0按下,則步進(jìn)電機(jī)工作。</p><p><b>  { </b></p><p>  while(

40、Flag==0) </p><p><b>  {</b></p><p>  P0=0x71;//顯示 F 標(biāo)示正轉(zhuǎn)</p><p>  for(i=0;i<4;i++) //4相</p><p><b>  {</b></p><p>

41、;  P2=F_Rotation[i]; //輸出對(duì)應(yīng)的相 可以自行換成反轉(zhuǎn)表格</p><p>  Delay(500); //改變這個(gè)參數(shù)可以調(diào)整電機(jī)轉(zhuǎn)速 ,數(shù)字越小,轉(zhuǎn)速越大</p><p><b>  }</b></p><p><b>  }</b></p><p>  w

42、hile(Flag==1)</p><p><b>  { </b></p><p>  P0=0x7C;//顯示 b 標(biāo)示反轉(zhuǎn)</p><p>  for(i=0;i<4;i++) //4相</p><p><b>  {</b></p><p>  P2=

43、B_Rotation[i]; //輸出對(duì)應(yīng)的相 </p><p>  Delay(500); //改變這個(gè)參數(shù)可以調(diào)整電機(jī)轉(zhuǎn)速 ,數(shù)字越小,轉(zhuǎn)速越大</p><p><b>  }</b></p><p><b>  }</b></p><p>  while(Flag==2) /

44、/停止</p><p><b>  { </b></p><p>  P0=0x6D;// 顯示 S</p><p><b>  P2=0x0F;</b></p><p><b>  }</b></p><p><b>  }</b&

45、gt;</p><p><b>  }</b></p><p>  /******************************************************************/</p><p>  /* 定時(shí)器中斷函數(shù),產(chǎn)生PWM波。

46、 */</p><p>  /******************************************************************/ </p><p>  void tim(void) interrupt 1 using 1</p><p><b>  {</b></p><p&

47、gt;  static unsigned char count; //</p><p>  TH0=(65536-1000)/256; </p><p>  TL0=(65536-1000)%256;//定時(shí)1mS </p><p>  if (count==PWM_ON) </p><p><

48、b>  {</b></p><p>  PWM = 1; </p><p>  } </p><p><b>  count++;</b></p><p>  if(count == CYCLE)</p><p>

49、;<b>  {</b></p><p><b>  count=0;</b></p><p>  if(PWM_ON!=0) </p><p>  PWM = 0; </p><p><b>  }</b></p><p><b&g

50、t;  }</b></p><p>  /******************************************************************/</p><p>  /* 中斷0入口函數(shù) ,控制直流電機(jī)轉(zhuǎn)速 */</p><p&g

51、t;  /******************************************************************/ </p><p>  void ISR_Key1(void) interrupt 0 using 1</p><p><b>  {</b></p><p><b>  //定義檔位<

52、;/b></p><p>  Delay(500);</p><p><b>  if(!KEY1)</b></p><p><b>  {</b></p><p>  PWM_Num++; //s3按下觸發(fā)一次 </p><p>  if(PWM_Nu

53、m==5) </p><p>  PWM_Num=0; </p><p><b>  }</b></p><p><b>  }</b></p><p>  /******************************************************************/&l

54、t;/p><p>  /* 中斷入口函數(shù),控制步進(jìn)正反轉(zhuǎn)、停機(jī) */</p><p>  /******************************************************************/</p><p>  void ISR_Key2(

55、void) interrupt 2 using 1</p><p><b>  {</b></p><p>  Delay(500);</p><p><b>  if(!KEY2)</b></p><p><b>  {</b></p><p>  F

56、lag++; //s3按下觸發(fā)一次</p><p>  if(Flag==3)</p><p><b>  Flag=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  3、步

57、進(jìn)電機(jī)驅(qū)動(dòng)程序</p><p>  #include <reg52.h></p><p>  unsigned char Flag;//定義正反轉(zhuǎn)和停止標(biāo)志位</p><p>  sbit KEY = P3^3;</p><p>  unsigned char code F_Rotation[4]={0xf1,0xf2,0xf4,

58、0xf8}; //正轉(zhuǎn)表格</p><p>  unsigned char code B_Rotation[4]={0xf8,0xf4,0xf2,0xf1}; //反轉(zhuǎn)表格</p><p>  /******************************************************************/</p><p>  /*

59、 延時(shí)函數(shù) */</p><p>  /******************************************************************/</p><p>  void Delay(unsigned int i)//延時(shí)</p><p>

60、;<b>  {</b></p><p>  while(--i);</p><p><b>  }</b></p><p>  /******************************************************************/</p><p>  /*

61、 主函數(shù) */</p><p>  /******************************************************************/</p><p><b>  main()</b></p><p>&

62、lt;b>  {</b></p><p>  unsigned char i;</p><p>  EX1=1; //外部中斷0開</p><p>  IT1=1; //邊沿觸發(fā)</p><p>  EA=1; //全局中斷開</p><p>  wh

63、ile(Flag==0) </p><p><b>  {</b></p><p>  P0=0x71;//顯示 F 標(biāo)示正轉(zhuǎn)</p><p>  for(i=0;i<4;i++) //4相</p><p><b>  {</b></p><

64、p>  P1=F_Rotation[i]; //輸出對(duì)應(yīng)的相 可以自行換成反轉(zhuǎn)表格</p><p>  Delay(500); //改變這個(gè)參數(shù)可以調(diào)整電機(jī)轉(zhuǎn)速 ,數(shù)字越小,轉(zhuǎn)速越大</p><p><b>  }</b></p><p><b>  }</b></p><p>

65、;  while(Flag==1)</p><p><b>  { </b></p><p>  P0=0x7C;//顯示 b 標(biāo)示反轉(zhuǎn)</p><p>  for(i=0;i<4;i++) //4相</p><p><b>  {</b></p><p> 

66、 P1=B_Rotation[i]; //輸出對(duì)應(yīng)的相 </p><p>  Delay(500); //改變這個(gè)參數(shù)可以調(diào)整電機(jī)轉(zhuǎn)速 ,數(shù)字越小,轉(zhuǎn)速越大</p><p><b>  }</b></p><p><b>  }</b></p><p>  while(Flag==2

67、) //停止</p><p><b>  { </b></p><p>  P0=0x6D;// 顯示 S</p><p><b>  P1=0;</b></p><p><b>  }</b></p><p><b>  }</b

68、></p><p>  /******************************************************************/</p><p>  /* 中斷入口函數(shù) */</p><p>  /****************

69、**************************************************/</p><p>  void ISR_Key(void) interrupt 2 using 1</p><p><b>  {</b></p><p>  Delay(500);</p><p><b> 

70、 if(!KEY)</b></p><p><b>  {</b></p><p>  Flag++; //s3按下觸發(fā)一次</p><p>  if(Flag==3)</p><p><b>  Flag=0;</b></p><p><b

71、>  }</b></p><p><b>  }</b></p><p><b>  結(jié)束語(yǔ)</b></p><p>  該系統(tǒng)設(shè)計(jì)通過(guò)單片機(jī)AT89S52 來(lái)控制步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)狀況, 實(shí)現(xiàn)了占用CPU時(shí)間少, 效率高; 易控制步進(jìn)電機(jī)的轉(zhuǎn)速; 易控制電機(jī)的轉(zhuǎn)向; 提高了步進(jìn)電機(jī)的步進(jìn)精度等。再有, 該設(shè)

72、計(jì)過(guò)程考慮比較周全, 系統(tǒng)中除采用光電隔離電路有效地抑制電磁干擾, 以提高系統(tǒng)的可靠性外,還考慮到以下方面: 第一、在驅(qū)動(dòng)回路中, 適當(dāng)減緩MOSFET開關(guān)的開通速度,同時(shí)可以采用RCD 吸收回路, 抑制浪涌的產(chǎn)生, 減少電磁干擾的強(qiáng)度。其次,合理的接地設(shè)計(jì)。各單元回路的接地必須按照一定順序連接。同時(shí)步進(jìn)電機(jī)各相通電顯示只需在單片機(jī)的P2 口低三位外接3個(gè)發(fā)光二極管,在其高三位外接導(dǎo)線將環(huán)分后的信號(hào)引入單片機(jī)。由軟件根據(jù)高三位狀態(tài)點(diǎn)亮與

73、熄滅發(fā)光二極管。</p><p><b>  參考文獻(xiàn)</b></p><p>  1.肖洪兵. 跟我學(xué)用單片機(jī). 北京:北京航空航天大學(xué)出版社,2002.8 </p><p>  2.何立民. 單片機(jī)高級(jí)教程. 第1版.北京:北京航空航天大學(xué)出版社,2001 </p><p>  3.趙曉安. MCS-51單片機(jī)原理及

74、應(yīng)用. 天津:天津大學(xué)出版社,2001.3 </p><p>  4.李廣第. 單片機(jī)基礎(chǔ). 第1版.北京:北京航空航天大學(xué)出版社,1999 </p><p>  5.徐惠民、安德寧. 單片微型計(jì)算機(jī)原理接口與應(yīng)用. 第1版. 北京:北京郵電大學(xué)出版社,1996 </p><p>  6.何立民.從Cygnal 80C51F看8位單片機(jī)發(fā)展之路. 單片機(jī)與嵌入式系統(tǒng)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論