




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、51單片機控制四相步進電機接觸單片機快兩年了,不過只是非常業(yè)余的興趣,實踐卻不多,到現(xiàn)在還算是個初學(xué)者吧。這幾天給自己的任務(wù)就是搞定步進電機的單片機控制。以前曾看過有關(guān)步進電機原理和控制的資料,畢竟自己沒有做過,對其具體原理還不是很清楚。今天從淘寶網(wǎng)買了一個EPSON的UMX-1型步進電機,此步進電機為雙極性四相,接線共有六根,外形如下圖所示:拿到步進電機,根據(jù)以前看書對四相步進電機的了解,我對它進行了初步的測試,就是將5伏電源的正端接上最邊上兩根褐色的線,然后用5伏電源的地線分別和另外四根線(紅、蘭、白、橙)依次接觸,發(fā)現(xiàn)每接觸一下,步進電機便轉(zhuǎn)動一個角度,來回五次,電機剛好轉(zhuǎn)一圈,說明此步
2、進電機的步進角度為360/(4×5)18度。地線與四線接觸的順序相反,電機的轉(zhuǎn)向也相反。如果用單片機來控制此步進電機,則只需分別依次給四線一定時間的脈沖電流,電機便可連續(xù)轉(zhuǎn)動起來。通過改變脈沖電流的時間間隔,就可以實現(xiàn)對轉(zhuǎn)速的控制;通過改變給四線脈沖電流的順序,則可實現(xiàn)對轉(zhuǎn)向的控制。所以,設(shè)計了如下電路圖:制作的實物圖如下:C51程序代碼為:代碼一#include <AT89X51.h> static unsigned int count;static unsigned int endcount;void delay();void main(void) co
3、unt = 0; P1_0 = 0; P1_1 = 0; P1_2 = 0; P1_3 = 0; EA = 1; /允許CPU中斷 TMOD = 0x11; /設(shè)定時器0和1為16位模式1 ET0 = 1; /定
4、時器0中斷允許TH0 = 0xFC; TL0 = 0x18; /設(shè)定時每隔1ms中斷一次 TR0 = 1; /開始計數(shù)startrun: P1_3 = 0; P1_0 = 1; delay(); P1_0 = 0; P1_1 = 1; delay(); P1_1 = 0;
5、; P1_2 = 1; delay(); P1_2 = 0; P1_3 = 1; delay(); goto startrun; /定時器0中斷處理void timeint(void) interrupt 1 TH0=0xFC; TL0=0x18; /設(shè)定時每隔1ms中斷一次 count+;void delay() endcount=2; count=0; dowhile(count<endcount);將上面的程序編譯,用ISP下載線下載至單片機運行,
6、步進電機便轉(zhuǎn)動起來了,初步告捷!不過,上面的程序還只是實現(xiàn)了步進電機的初步控制,速度和方向的控制還不夠靈活,另外,由于沒有利用步進電機內(nèi)線圈之間的“中間狀態(tài)”,步進電機的步進角度為18度。所以,我將程序代碼改進了一下,如下:代碼二#include <AT89X51.h> static unsigned int count;static int step_index;void delay(unsigned int endcount);void gorun(bit turn, unsigned int speedlevel);void main(void) count =
7、 0; step_index = 0; P1_0 = 0; P1_1 = 0; P1_2 = 0; P1_3 = 0; EA = 1; /允許CPU中斷 TMOD = 0x11; /設(shè)定時器0和1為16位模式1 ET0 = 1;
8、0; /定時器0中斷允許TH0 = 0xFE; TL0 = 0x0C; /設(shè)定時每隔0.5ms中斷一次 TR0 = 1; /開始計數(shù) do gorun(1,60); while(1); /定時器0中斷處理void timeint(void) interrupt 1 TH0=0xFE; TL0=0x0C; /設(shè)定時每隔0.5ms中斷一次 count+;
9、void delay(unsigned int endcount) count=0; dowhile(count<endcount);void gorun(bit turn,unsigned int speedlevel) switch(step_index) case 0: P1_0 = 1; P1_1 = 0; P1_2 = 0; P1_3 = 0;
10、0; break; case 1: P1_0 = 1; P1_1 = 1; P1_2 = 0; P1_3 = 0; break; case 2: P1_0 = 0; P1_1 = 1; P1_2 = 0; P1_3 = 0;
11、160; break; case 3: P1_0 = 0; P1_1 = 1; P1_2 = 1; P1_3 = 0; break; case 4: P1_0 = 0; P1_1 = 0; P1_2 = 1; P1_3 = 0;
12、 break; case 5: P1_0 = 0; P1_1 = 0; P1_2 = 1; P1_3 = 1; break; case 6: P1_0 = 0; P1_1 = 0; P1_2 = 0; P1_3 = 1;
13、0; break; case 7: P1_0 = 1; P1_1 = 0; P1_2 = 0; P1_3 = 1; delay(speedlevel); if (turn=0) step_index+; if (step_index>7) s
14、tep_index=0; else step_index-; if (step_index<0) step_index=7; 改進的代碼能實現(xiàn)速度和方向的控制,而且,通過step_index靜態(tài)全局變量能“記住”步進電機的步進位置,下次調(diào)用 gorun()函數(shù)時則可直接從上次步進位置繼續(xù)轉(zhuǎn)動,從而實現(xiàn)精確步進;另外,由于利用了步進電機內(nèi)線圈之間的“中間狀態(tài)”,步進角度減
15、小了一半,只為9度,低速運轉(zhuǎn)也相對穩(wěn)定一些了。但是,在代碼二中,步進電機的運轉(zhuǎn)控制是在主函數(shù)中,如果程序還需執(zhí)行其它任務(wù),則有可能使步進電機的運轉(zhuǎn)收到影響,另外還有其它方面的不便,總之不是很完美的控制。所以我又將代碼再次改進:代碼三#include <AT89X51.h> static unsigned int count; /計數(shù)static int step_index; /步進索引數(shù),值為07static bit turn; /步進電機轉(zhuǎn)動方向static bit stop_flag; /步進電機停止標(biāo)志static int s
16、peedlevel; /步進電機轉(zhuǎn)速參數(shù),數(shù)值越大速度越慢,最小值為1,速度最快static int spcount; /步進電機轉(zhuǎn)速參數(shù)計數(shù)void delay(unsigned int endcount); /延時函數(shù),延時為endcount*0.5毫秒void gorun(); /步進電機控制步進函數(shù)void main(void) count = 0; step_index = 0; spcount
17、 = 0; stop_flag = 0;P1_0 = 0; P1_1 = 0; P1_2 = 0; P1_3 = 0;EA = 1; /允許CPU中斷 TMOD = 0x11; /設(shè)定時器0和1為16位模式1 ET0 = 1; /定時器0中斷允許TH0 = 0
18、xFE; TL0 = 0x0C; /設(shè)定時每隔0.5ms中斷一次 TR0 = 1; /開始計數(shù) turn = 0;speedlevel = 2; delay(10000); speedlevel = 1; do speedlevel = 2; delay(10000); speedlevel = 1;
19、 delay(10000); stop_flag=1; delay(10000); stop_flag=0; while(1); /定時器0中斷處理 void timeint(void) interrupt 1 TH0=0xFE; TL0=0x0C; /設(shè)定時每隔0.5ms中斷一次 count+; spcount-; if(spcount<=0) &
20、#160; spcount = speedlevel; gorun(); void delay(unsigned int endcount) count=0; dowhile(count<endcount);void gorun() if (stop_flag=1) P1_0 = 0; P1_1 = 0; P1_2 = 0; P1_3 =
21、 0; return; switch(step_index) case 0: /0 P1_0 = 1; P1_1 = 0; P1_2 = 0; P1_3 = 0; break; case 1: /0、1 P1_0 = 1; P1_1 = 1;
22、60; P1_2 = 0; P1_3 = 0; break; case 2: /1 P1_0 = 0; P1_1 = 1; P1_2 = 0; P1_3 = 0; break; case 3: /1、2 P1_0 = 0; P1
23、_1 = 1; P1_2 = 1; P1_3 = 0; break; case 4: /2 P1_0 = 0; P1_1 = 0; P1_2 = 1; P1_3 = 0; break; case 5: /2、3 P1_0 = 0;
24、; P1_1 = 0; P1_2 = 1; P1_3 = 1; break; case 6: /3 P1_0 = 0; P1_1 = 0; P1_2 = 0; P1_3 = 1; break; case 7: /3、0 P1_0 = 1; P1_1 = 0; P1_2 = 0; P1_3 = 1; if (turn=0) step_index+; if (step_index>7)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030農(nóng)業(yè)保險行業(yè)兼并重組機會研究及決策咨詢報告
- 2025-2030內(nèi)視鏡攝像頭行業(yè)市場現(xiàn)狀供需分析及重點企業(yè)投資評估規(guī)劃分析研究報告
- 2025-2030全球及中國聯(lián)絡(luò)中心系統(tǒng)行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030全球及中國祛痰藥市場未來趨勢及前景競爭力策略研究報告
- 2025-2030全球及中國癡呆癥藥物行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030全球及中國電動巴士行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030全球及中國汽車頭枕桿行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030全球及中國扭矩校準(zhǔn)服務(wù)行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030全球及中國女傭服務(wù)軟件行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030全球及中國臨床工作流程解決方案行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 箱式變電站吊裝方案設(shè)計規(guī)范
- 期末考試-公共財政概論-章節(jié)習(xí)題
- MOOC 走進舞蹈藝術(shù)-首都師范大學(xué) 中國大學(xué)慕課答案
- AED急救知識課件
- 2023版《思想道德與法治》(緒論-第一章)緒論 擔(dān)當(dāng)復(fù)興大任 成就時代新人;第一章 領(lǐng)悟人生真諦 把握人生方向 第3講 創(chuàng)造有意義的人生
- 2023年水處理BOT合同模板范本
- mil-std-1916抽樣標(biāo)準(zhǔn)(中文版)
- 監(jiān)控施工方案范文六篇
- 支氣管鏡麻醉
- 2023-2024蘇教版七年級數(shù)學(xué)上冊期末試卷
- 少數(shù)民族民歌 課件-2023-2024學(xué)年高中音樂人音版(2019)必修 音樂鑒賞
評論
0/150
提交評論