基于單片機(jī)控制步進(jìn)電機(jī)報(bào)告_第1頁
基于單片機(jī)控制步進(jìn)電機(jī)報(bào)告_第2頁
免費(fèi)預(yù)覽已結(jié)束,剩余15頁可下載查看

下載本文檔

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

文檔簡介

1、電子賽培訓(xùn)課作品設(shè)計(jì)報(bào)告題目:單片機(jī)控制步進(jìn)電機(jī)姓名:班別:學(xué)號(hào):序號(hào):完成時(shí)間:2012-5-172012-5-17華南理工大學(xué)廣州學(xué)院電子信息工程學(xué)院目錄引言.1一、 系統(tǒng)方案的選擇和論證. 1 1二、 總體設(shè)計(jì).2 2三、 單元電路設(shè)計(jì). 3 3四、 整體測試.4 4五、 結(jié)論. 5 5六、 總結(jié). 6 6七、 參考文獻(xiàn). 6 61單片機(jī)控制步進(jìn)電機(jī)摘要:本設(shè)計(jì)采用一塊AT89C52單片機(jī)對一個(gè)四相步進(jìn)電機(jī)進(jìn)行控制, 使步進(jìn)電 機(jī)在安全溫度內(nèi)按輸入的步數(shù)和轉(zhuǎn)動(dòng)的方向進(jìn)行運(yùn)行。 控制電機(jī)轉(zhuǎn)動(dòng)的方法采用 四相八拍控制法。本設(shè)計(jì)采用矩陣鍵盤實(shí)現(xiàn)步進(jìn)電機(jī)不同轉(zhuǎn)動(dòng)步數(shù)的輸入以及轉(zhuǎn) 向的控制,還有對

2、鍵盤實(shí)現(xiàn)鎖鍵和開鎖的作用。用DS18B20弋替電機(jī)的測溫系統(tǒng), 實(shí)現(xiàn)超溫報(bào)警和停機(jī)的功能。引言隨著數(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à)格低廉, 性能上能滿 足工業(yè)控制的基本要求, 所以廣泛地應(yīng)用于手工業(yè)自動(dòng)控制、 數(shù)控機(jī)床、 組合機(jī) 床、機(jī)器人、計(jì)算機(jī)外圍設(shè)備、照相機(jī),投影儀、數(shù)碼攝像機(jī)、大型望遠(yuǎn)鏡、衛(wèi) 星天線定位系統(tǒng)、醫(yī)療器件以及各種可控機(jī)械工具等等。設(shè)計(jì)內(nèi)容:采用單片機(jī)控制一個(gè)三相單三拍的步進(jìn)電機(jī)工作。 要實(shí)現(xiàn)的功能:一、 步進(jìn)電機(jī)的

3、旋轉(zhuǎn)方向由正反轉(zhuǎn)控制信號(hào)控制;二、 步進(jìn)電機(jī)的步數(shù)由鍵盤輸入,可輸入的步數(shù)分別為3、6、9、12、15、18、21、24和27步,且鍵盤具有鍵盤鎖功能,當(dāng)鍵盤上鎖時(shí),步進(jìn)電機(jī)不接受 輸入步數(shù),也不會(huì)運(yùn)轉(zhuǎn)。只有當(dāng)鍵盤鎖打開并輸入步數(shù)時(shí), 步進(jìn)電機(jī)才開始工作;三、 電機(jī)運(yùn)轉(zhuǎn)的時(shí)候有正轉(zhuǎn)和反轉(zhuǎn)指示燈指示;四、 電機(jī)在運(yùn)轉(zhuǎn)過程中,如果過熱,則電機(jī)停止運(yùn)轉(zhuǎn),同時(shí)紅色指示燈亮, 同時(shí)警報(bào)響。本次設(shè)計(jì)的意義:1)了解51系列單片機(jī)及外圍相關(guān)芯片、電路的工作原理和接口技術(shù),學(xué)會(huì) 進(jìn)行控制系統(tǒng)軟件程序設(shè)計(jì)。2)編制程序完成步進(jìn)電機(jī)速度、方向、及旋轉(zhuǎn)角度的控制。3)設(shè)計(jì)相關(guān)的硬件電路,軟硬調(diào)試實(shí)現(xiàn)步進(jìn)電機(jī)速度、方

4、向、及旋轉(zhuǎn)角度 的控制,分析結(jié)果。4)學(xué)會(huì)運(yùn)用“自動(dòng)控制原理” 、“現(xiàn)弋控制理論”和“計(jì)算機(jī)控制技術(shù)”所 學(xué)理論知識(shí)進(jìn)行控制器的設(shè)計(jì)和計(jì)算機(jī)控制的算法實(shí)現(xiàn)。 為今后畢業(yè)設(shè)計(jì)、 將來 工作做必要的知識(shí)儲(chǔ)備。一、系統(tǒng)方案選擇和論證本設(shè)計(jì)由于需要實(shí)現(xiàn)9個(gè)不同步數(shù)的輸入以及其它功能的輸入, 所以可以采 用獨(dú)立鍵盤和矩陣鍵盤, 實(shí)現(xiàn)步進(jìn)電機(jī)的步數(shù)由鍵盤輸入且鍵盤具有鍵盤鎖功能。 考慮到單片機(jī)的端口數(shù)量有限和編程和方便性, 最后決定采用矩陣鍵盤。 在步進(jìn) 電機(jī)方面由于此次設(shè)計(jì)的軟件采用proteus,在此軟件中只有一個(gè)四相步進(jìn)電機(jī) 的模型,然后考慮到步進(jìn)電機(jī)控制方法的難易度最后決定采用四相八拍控制法,由于

5、單片機(jī)不能直接驅(qū)動(dòng)步進(jìn)電機(jī), 所以P2口在輸出后接入U(xiǎn)LN2803, ULN2803輸出后接電機(jī), 通過此芯片放大控制電壓。 在測溫方面一開始打算用一個(gè)溫度傳 感器開關(guān)去實(shí)時(shí)監(jiān)測電機(jī)的溫度, 當(dāng)溫度過高的時(shí)候就斷開開關(guān); 但考慮到系統(tǒng) 的可操作性、準(zhǔn)確性、編程的難易度及仿真軟件的限制,最后決定采用DS18B202代替電機(jī)的測溫系統(tǒng),實(shí)現(xiàn)電機(jī)在運(yùn)轉(zhuǎn)過程中,如果過熱,則電機(jī)停止運(yùn)轉(zhuǎn),同 時(shí)紅色指示燈亮,同時(shí)警報(bào)響。在轉(zhuǎn)向方面用不同顏色的LED燈指示正轉(zhuǎn)和反轉(zhuǎn)。 當(dāng)電機(jī)溫度超過安全溫度時(shí),報(bào)警燈會(huì)閃爍和報(bào)警鈴會(huì)鳴響,并讓電機(jī)停止運(yùn)轉(zhuǎn) 同時(shí)鎖住鍵盤。基于單片機(jī)和proteus的步進(jìn)電機(jī)控制電路的基本組

6、成如圖2-1所示二、總體設(shè)計(jì)三、單元電路設(shè)計(jì)入想要的功能P1P1AT89C52AT89C52- 、- -單片=機(jī)-圖 2-12-1由陣鍵盤模塊狀態(tài)模塊由 P0P0 口控制,負(fù)責(zé)報(bào)警和轉(zhuǎn)向的指示-步進(jìn)電機(jī)模塊,由 P2P2 口控 制,控制電機(jī)的運(yùn)行與停止 工作測溫模塊,由 P3.3P3.3 口進(jìn)行控 制,對電機(jī)的溫度監(jiān)測, 使電 機(jī)在安全溫度內(nèi)工作31、電機(jī)工作狀態(tài)指示模塊 如圖3-1所示圖 3-13-1功能:指示單片機(jī)目前的工作狀態(tài),當(dāng)電機(jī)的溫度超出安全溫度的時(shí)候, 警燈閃的同時(shí),報(bào)警器也會(huì)響。2、單片機(jī)驅(qū)動(dòng)電機(jī)模塊(如圖3-2)圖 3-23-2功能:單片機(jī)輸出的程序通過ULN2803電機(jī)驅(qū)動(dòng)

7、器給步進(jìn)電機(jī)一個(gè)脈沖信號(hào)圖 3-33-3功能:實(shí)時(shí)監(jiān)測電機(jī)的溫度,當(dāng)電機(jī)超過安全溫度時(shí),單片機(jī)會(huì)發(fā)出警報(bào)并 停止電機(jī)工作。4、鍵盤輸入模塊(如圖3-4)4Fi.ompi.imEP.S.6.7圖 3-43-45功能:通過預(yù)設(shè)使每一個(gè)鍵盤具有一個(gè)特定的功能, 制電機(jī)的需求。四、整體測試1、安全溫度下電機(jī)正轉(zhuǎn)(如圖4-1)圖 4-24-2從而實(shí)現(xiàn)按設(shè)計(jì)要求控應(yīng)珂grJL轉(zhuǎn)燈D3JLED-F-D.O/MZOPQ.1/AD1產(chǎn)口.工戶口2PO.3A1W 4/fiSkTtaiiF-D.5/EMPID.6/.TO.iTADTP2.D/口它.1/00pa3/irJTI47TOF3 g/TMPM

8、f/RU=7bs34 MuK-圖 4-14-1此時(shí)電機(jī)正轉(zhuǎn),正轉(zhuǎn)指示燈亮,功能正常實(shí)現(xiàn)2、安全溫度下電機(jī)反轉(zhuǎn)(如圖4-2)LS1rjD2LEG IEJLIP0 a/MDDPL.1/A1D1nft .2/AE2PO.3/AD3FD-=kMX住.5/A1MF0.0/ADOPO .7/AD7a 謂P2-irjAeHX.Z/J4.1UFZ.3AAI 1P2.4/A12P2.5/AI3P2.&/AI4P2.7/A153T35R站Hl口工空ggaKit曰H-BB&Bccc-cccJ-4*6?&.PS.DriRXDP3JTyipF3-2/BN1DP5 3Z1N T1P3 4TTT P

9、HgZTIDS1SB2D 尹4Maresr7OUMIDESD2LED- ORE&IIdTSOi_rDlLEC-IUI 1報(bào)警燈-3MULlMZSOa訂口13vcc QGMOCOMID.p 丁肥,7/RDvccOQDHD6此時(shí)電機(jī)反轉(zhuǎn),反轉(zhuǎn)指示燈亮,功能正常實(shí)現(xiàn)73、超出安全溫度時(shí)電機(jī)停止工作并報(bào)警(如圖5-1)圖 5-15-1此電機(jī)溫度超出安全溫度50,報(bào)警燈閃爍,報(bào)警器鳴響,鍵盤鎖住禁止輸 入。同時(shí)指示停機(jī)前電機(jī)轉(zhuǎn)動(dòng)的方向。功能正常。4、當(dāng)鍵盤鎖住時(shí)鍵盤無法使用剛開機(jī)時(shí),為防止出現(xiàn)事故,整個(gè)功能鍵盤是鎖住的,只有解鎖后才能對電 機(jī)進(jìn)行控制,在運(yùn)行過程當(dāng)中,當(dāng)鍵盤鎖住后,將保持停機(jī)前的

10、狀態(tài),并禁止對 電機(jī)進(jìn)行操作。其它功能還是正常運(yùn)行。結(jié)論是正常。五、結(jié)論經(jīng)測試,整體電路工作正常,實(shí)現(xiàn)了要求的所有功能。由于延時(shí)的原因,有 些功能會(huì)出現(xiàn)一定的誤差,比如:有時(shí)按下鍵去的時(shí)候電機(jī)會(huì)沒有反應(yīng), 因?yàn)槌?序還沒有執(zhí)行到這里。本設(shè)計(jì)有多個(gè)不足之處,比如:電機(jī)在沒有走完輸入的步 數(shù)之前是不能對電機(jī)進(jìn)行其它的控制,就算此時(shí)電機(jī)已經(jīng)超出了安全溫度也不能 及時(shí)的報(bào)警和停機(jī)。由于延時(shí)的效果,使得電機(jī)在執(zhí)行輸入的相應(yīng)的步數(shù)的時(shí)候 會(huì)出現(xiàn)一點(diǎn)偏差,但是走的總步數(shù)是沒有錯(cuò)的。對此,我提出改進(jìn)方案為,用定 時(shí)器中斷方式,每隔一斷時(shí)間去檢查,看電機(jī)是否已超出F0.3/MJ3戸口-W-W1尸n p aPCI

11、 Z/rt-!?冃奮w卻FN.、基盤 aP2.3/A1DF2-3/JESLII嚴(yán)址 ” 心 INP2S/A13F*9G/A1-* Pl7/Al-5P3 d) )rRXE3 M.i/TXP r3.2QEps./irrri尸s*zrn pa.jBi/rtP 3 jd/CTFF3-7ZRD 1 iLlLNrSHiiS 1 14廿筑?&llBDbLIFIrF嚴(yán)工七mu-MEI3:-可n?疋FU :8安全溫度,這樣就能及 時(shí)的停機(jī)。 我還會(huì)增加一個(gè)緊急停機(jī)按鈕, 使得現(xiàn)場出現(xiàn)緊急情況的時(shí)候能實(shí)現(xiàn) 緊急停機(jī)。 我還會(huì)再增加一個(gè)加速控制鈕和一個(gè)減速控制鈕, 使電機(jī)在連續(xù)轉(zhuǎn)動(dòng) 時(shí)能平穩(wěn)的運(yùn)行以及起步和

12、停機(jī)。 對電路進(jìn)行調(diào)整后, 如果可以的話, 還可以加 上可視功能,顯示電機(jī)現(xiàn)在走了幾步,目前的溫度如何。六、總結(jié)在此次設(shè)計(jì)中, 由于是第一次接觸步進(jìn)電機(jī), 出于對步進(jìn)電機(jī)的不了解, 就 在用多少拍控制電機(jī)方面我參考了網(wǎng)上不少資料以及不少相關(guān)的書籍, 最后確定 用八拍控制法最合適,四相八拍控制法被普遍認(rèn)為是比較好用的一種控制方法。 剛開始不知道電機(jī)在轉(zhuǎn)動(dòng)的時(shí)候會(huì)有慣性效應(yīng), 即如果在上一個(gè)脈沖控制下沒有 完全走完, 但是下個(gè)脈沖已經(jīng)過來了, 這就會(huì)產(chǎn)生堵轉(zhuǎn)和失步現(xiàn)象。 所以在執(zhí)行 程序的時(shí)候要增加一點(diǎn)延時(shí)。 在做足了所有的準(zhǔn)備后, 電機(jī)還是不能正確的轉(zhuǎn)動(dòng), 我曾經(jīng)一步把注意力放在程序上, 但是后

13、來在參考一本資料的時(shí)候偶然發(fā)現(xiàn)其電 機(jī)的接線圖有所不同, 這讓我開始注意到, 也許硬件電路的設(shè)計(jì)出了問題, 果然 在后來對硬件電路進(jìn)行調(diào)整后,實(shí)現(xiàn)了預(yù)定的功能。在實(shí)現(xiàn)了電機(jī)能合理的轉(zhuǎn)動(dòng)的情況下, 我就把溫度監(jiān)測部分加進(jìn)來。 但這不 是簡簡單單的增加一個(gè)子函數(shù)的問題, 它關(guān)系到整個(gè)程序的運(yùn)行, 使得整個(gè)程序 都要做出相應(yīng)的調(diào)整, 這真的是牽一發(fā)而動(dòng)全身。 同樣一個(gè)變量我放在主函數(shù)里 比較大小與放在子函數(shù)里比較都會(huì)有不一樣的效果, 一個(gè)能正確實(shí)現(xiàn)相應(yīng)的功能, 而另一個(gè)卻不會(huì)。這也讓我在編程方面積累了一點(diǎn)經(jīng)驗(yàn)。 當(dāng)測溫這一塊加進(jìn)來后, 由于程序增加了不少, 而且里面還有相當(dāng)一部分的延時(shí)語句, 所以,

14、單片機(jī)對鍵 盤的掃描就不再那么及時(shí)了, 這就出現(xiàn)了有時(shí)按下鍵去卻沒反應(yīng)的現(xiàn)象。 這是我 以后要改進(jìn)的地方。七、參考文獻(xiàn)【圖書文獻(xiàn)】1、作者:高洪志,MCS-51單片機(jī)原理及應(yīng)用技術(shù)教程,北京,人民郵電出版社,2009年4月出版,第314316頁。2、作者:丁向榮,STC系列增強(qiáng)型8051單片機(jī),北京,電子工業(yè)出版社,2011年1月出版,第289290頁。3、 作者:周潤景,單片機(jī)電路設(shè)計(jì)、分析與制作 ,北京,機(jī)械工業(yè)出版社,210年8月出版,第1625頁。【網(wǎng)絡(luò)文獻(xiàn)】1、http:/ 個(gè))2、http:/ /包含_nop_()函數(shù)定義的頭文件#define uchar unsigned cha

15、r#define uint unsigned intuchar beheavecount=0 x00,0 x01,0 x03,0 x02,0 x06,0 x04,0 x0c,0 x08,0 x09;uchar opbeheavecount=0 x00,0 x09,0 x08,0 x0c,0 x04,0 x06,0 x02,0 x03,0 x01;/uchar beheavecount=0 x00,0 x01,0 x03,0 x02,0 x06,0 x04,0 x0c,0 x08,0 x09;9uchar step,temp,lock,lock2,i,o,time,flag;sbit DQ=P3

16、A3;sbit wron g=P0A3;sbit warning=P0A2;void keyscan();void delay(uint z);void beheave(uchar x);void Write(uchar dat);uchar Read();void Init();void delayms(uint i);void tempereture();void main()step=lock=lock2=0;i=1;o=0 x00;P0=0 x00;P2=0 xff;P0=0 x02;wrong=0;while(1)warning=0;tempereture();if(flag=1)w

17、arning=0;keyscan();if(step=30) /鎖鍵step=0;lock=0;10if(step=31) /解鎖lock=1;step=0;if(step=32&o=0 x00) /step=0; P0=0 x02; lock=0;i=9-i; i+; if(i8) i=1; i+;if(i8) i=1;if(step=32&o=0 xff)step=0;P0=0 x01;lock=0; i=9-i; i+;if(i8) i=1;i+; if(i8) i=1;if(flag=0)warning=1; delay(200);wrong=wrong; lock=0

18、;if(lock&step0) beheave(step);void keyscan() /鍵盤處理函數(shù)P1=0 xfe;temp=P1;temp=temp&0 xf0;while(temp!=0 xf0) /消除抖動(dòng)delay(5); temp=P1; temp=temp&0 xf0; while(temp!=0 xf0)temp=P1; switch(temp)/判斷按下哪個(gè)鍵case 0 xee:step=3;break;case 0 xde:step=6;break;case 0 xbe:step=9;break;case 0 x7e:step=12;break

19、;while(temp!=0 xf0) /判斷鍵是否已回位temp=P1; temp=temp&0 xf0;/lock=1;P1=0 xfd;temp=P1;temp=temp&0 xf0;while(temp!=0 xf0)delay(5); temp=P1; temp=temp&0 xf0; while(temp!=0 xf0)temp=P1; switch(temp)case 0 xed:step=15;break; case 0 xdd:step=18;break; case 0 xbd:step=21;break;換正向/換反向11case 0 x7d:ste

20、p=24;break;while(temp!=0 xf0) /判斷鍵是否已回位temp=P1; temp=temp&0 xf0;/lock=1;P1=0 xfb; temp=P1; temp=temp&0 xf0; while(temp!=0 xf0)delay(5);temp=P1; temp=temp&0 xf0; while(temp!=0 xf0)temp=P1; switch(temp)case 0 xeb:step=27;break; case 0 xdb:step=30;lock2=0;break; case0 xbb:step=0;lock2=1;bre

21、ak;case 0 x7b:step=32;o=o;break;while(temp!=0 xf0) /判斷鍵是否已回位temp=P1;temp=temp&0 xf0;/lock=1;if(lock2=0)lock=0;else if(lock2=1)lock=1;void beheave(uchar x) /uint y=0; /定義一個(gè)記錄賦值次數(shù)的變量if(o=0 xff)doP2=opbeheavecounti;if(i=8)i=1;elsei+;y+; delay(600); while(yx);if(o=0 x00)doP2=beheavecounti;if(i=8)i=1;else電機(jī)轉(zhuǎn)動(dòng)處理函數(shù)12i+;y+;delay(600); while(y0;a-)DQ = 0; /給脈沖信號(hào)dat=1;DQ = 1; /給脈沖信號(hào)if(DQ) dat|=0 x80;delayms(5);return(dat);void Write(uchar dat)/寫字節(jié)uchar a=0;for (a=8; a0; a-)DQ = 0;DQ = dat&0 x01;delayms(5);DQ = 1;dat=1;void tempereture()1

溫馨提示

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

最新文檔

評論

0/150

提交評論