STC12系列PWM方式控制兩相步進電機_第1頁
STC12系列PWM方式控制兩相步進電機_第2頁
STC12系列PWM方式控制兩相步進電機_第3頁
STC12系列PWM方式控制兩相步進電機_第4頁
STC12系列PWM方式控制兩相步進電機_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

步進電機控制專業(yè)班級:姓名:學號:指導教師:目錄課程設計要求課程設計目的所用儀器及相關說明1.57步進電機23HS66202.DM524型細分型兩相混合式步進電機驅動器3.STC12C5A60S2系列單片機調(diào)試程序【程序一、二】程序功能【程序一、二】六.誤差說明七.心得體會八.課設說明一.課程設計要求通過計算機對單片機芯片的編程,將單片機與驅動器相連,從而實現(xiàn)對步進電機的各種方式控制。課程設計目的1.根據(jù)所期望的結果編寫程序,并在實驗儀器上調(diào)試和驗證。2.使用步近電機的工作原理與步進電機驅動器。3.學習控制步進電機轉角、速度、方向的實時軟件設計所用儀器及相關說明57步進電機23HS6620DM524型細分型兩相混合式步進電機驅動器,采用直流18~50V供電,適合驅動電壓24V~50V,電流小于4.0V,外徑42~86毫米的兩相混合式步進電機。此驅動器采用交流伺服驅動器的電流環(huán)進行細分控制,電機的轉矩波動很小,低速運行很平穩(wěn),幾乎沒有振動和噪音。高速時力矩也大大高于其它二相驅動器,定位精度高。廣泛適用于雕刻機、數(shù)控機床、包裝機械等分辯率要求較高的設備上。電氣參數(shù)輸入電壓直流18~50V輸入輸入電流小于4安培輸出電流1.0A~4.2A功耗功耗:80W;內(nèi)部保險:6A溫度工作溫度-10~45℃;存放溫度-40℃~70℃濕度不能結露,不能有水珠氣體禁止有可燃氣體和導電灰塵重量200克主要特點〔1〕平均電流控制,兩相正弦電流驅動輸出〔2〕直流24~50V供電〔3〕光電隔離信號輸入/輸出〔4〕有過壓、欠壓、過流、相間短路保護功能〔5〕十五檔細分和自動半流功能〔6〕八檔輸出相電流設置〔7〕具有脫機命令輸人端子〔8〕高啟動轉速〔9〕高速力矩大〔10〕電機的扭矩與它的轉速有關,而與電機每轉的步數(shù)無關控制信號接口控制信號定義PLS/CW+:步進脈沖信號輸入正端或正向步進脈沖信號輸入正端PLS/CW-:步進脈沖信號輸入負端或正向步進脈沖信號輸入負端DIR/CCW+:步進方向信號輸入正端或反向步進脈沖信號輸入正端DIR/CCW-:步進方向信號輸入負端或反向步進脈沖信號輸入負端ENA+:脫機使能復位信號輸入正端ENA-:脫機使能復位信號輸入負端脫機使能信號有效時復位驅動器故障,禁止任何有效的脈沖,驅動器的輸出功率元件被關閉,電機無保持扭矩??刂菩盘栠B接上位機的控制信號可以高電平有效,也可以低電平有效。當高有效時,把所有控制信號的負端連在一起作為信號地,低有效時,把所有控制信號的正端連在一起作為信號公共端?,F(xiàn)在以集電極開路和PNP輸出為例,接口電路示意圖如下:控制器集電極開路輸出圖2.輸入接口電路〔共陰極接法〕控制器PNP輸出注意:VCC值為5V時,R短接;VCC值為12V時,R為1K,大于1/8W電阻;VCC值為24V時,R為2K,大于1/8W電阻;R必須接在控制器信號端。功能選擇〔用驅動器面板上的DIP開關實現(xiàn)〕設置電機每轉步數(shù)驅動器可將電機每轉的步數(shù)分別設置為400、500、800、1000、1250、1600、2000、2500、3200、4000、5000、6400、8000、10000、12800步。用戶可以通過驅動器正面板上的撥碼開關的SW5、SW6、SW7、SW8位來設置驅動器的步數(shù)〔如表1〕:SW5狀態(tài)OFFONOFFONOFFONOFFONOFFONOFFONOFFONOFFSW6狀態(tài)ONOFFOFFONONOFFOFFONONOFFOFFONONOFFOFFSW7狀態(tài)ONONONOFFOFFOFFOFFONONONONOFFOFFOFFOFFSW8狀態(tài)ONONONONONONONOFFOFFOFFOFFOFFOFFOFFOFF步數(shù)400800160032006400128002560010002000400050008000100002000025000控制方式選擇撥碼開關SW4位可設置成兩種控制方式:當設置成“OFF〞時,為有半流功能。當設置成“ON〞時,為無半流功能。設置輸出相電流為了驅動不同扭矩的步進電機,用戶可以通過驅動器面板上的撥碼開關SW1、SW2、SW3位來設置驅動器的輸出相電流〔有效值〕單位安培,各開關位置對應的輸出電流,不同型號驅動器所對應的輸出電流值不同。具體見表2。輸出電流(A)SW1SW2SW3PEAKRMSONONON1.000.71OFFONON1.461.04ONOFFON1.911.36OFFOFFON2.371.69ONONOFF2.842.03OFFONOFF3.312.36ONOFFOFF3.762.69OFFOFFOFF4.203.00半流功能半流功能是指無步進脈沖500ms后,驅動器輸出電流自動降為額定輸出電流的70%,用來防止電機發(fā)熱。功率接口+V、GND:連接驅動器電源+V:直流電源正級,電源電壓直流16~50V。最大電流是5A。GND:直流電源負級。A+A-B+B-:連接兩相混合式步進電機驅動器和兩相混合式步進電機的連接采用四線制,電機繞組有并聯(lián)和串聯(lián)接法,并聯(lián)接法,高速性能好,但驅動器電流大(為電機繞組電流的1.73倍),串聯(lián)接法時驅動器電流等于電機繞組電流。安裝周圍要有20mm的空間,不能放在其它發(fā)熱的設備旁,要防止粉塵、油霧、腐蝕性氣體,濕度太大及強振動場所。故障診斷狀態(tài)燈指示RUN:綠燈,正常工作時亮。ERR:紅燈,故障時亮,電機相間短路、過壓保護和欠壓保護。故障及排除故障原因解決措施LED不亮電源接錯檢查電源連線電源電壓低提高電源電壓電機不轉,且無保持扭矩電機連線不對改正電機連線脫機使能RESET信號有效使RESET無效電機不轉,但有保持扭矩無脈沖信號輸入調(diào)整脈沖寬度及信號的電平電機轉動方向錯誤動力線相序接錯互換任意兩相連線方向信號輸入不對改變方向設定電機扭矩太小相電流設置過小正確設置相電流加速度太快減小加速度值電機堵轉排除機械故障驅動器與電機不匹配換適宜的驅動器驅動器接線一個完整的步進電機控制系統(tǒng)應含有步進驅動器、直流電源以及控制器〔脈沖源〕。以下為典型系統(tǒng)接線圖:單片機STC12C5A60S2系列PWMCCAPMn.1用來使能脈寬調(diào)制模式當PCA計數(shù)值與模塊的捕獲/比擬存放器的值相匹配時,如果TOG位〔CCAPMn.2〕置位,模塊CEXn輸出將發(fā)生翻轉。當PCA計數(shù)值與模塊的捕獲/比擬存放器的值相匹配時,如果匹配位MATn〔CCAPMn.3〕置位,CCON存放器的CCFn位將被置位。CAPNn〔CCAPMn.4〕和CAPPn〔CCAPMn.5〕用來設置捕獲輸入的有效沿。CAPNn位使能下降沿有效。CAPPn位使能上升沿有效。如果兩位都置位,那么兩種跳變沿都被使能,捕獲可在兩種跳變沿產(chǎn)生。通過置位CCAPMn存放器的ECOMn位〔CCAPMn.6〕來使能比擬器功能。每個PCA模塊還對應另外兩個存放器CCAPnH和CCAPnL。當出現(xiàn)捕獲或比擬時,它們用來保存16位的計數(shù)值。當PCA模塊用在PWM模式中時它們用來控制輸出的占空比。脈寬調(diào)節(jié)模式(PWM〕脈寬調(diào)制(PWMPulseWidthModulation)是一種使用程序來控制波形占空比、周期、相位波形的技術。PCA工作模式存放器CMODCPS2、CPS1、CPS0:PCA計數(shù)脈沖源選擇控制位。當三者分別為0、1、0時,選擇PCA/PWM時鐘源輸入為定時器0的溢出頻率。由于定時器0可以工作在1T模式,所以可以到達計一個時鐘就溢出,從而到達最高工作頻率CPU時鐘SYSclk。通過改變定時器0的溢出率,可以實現(xiàn)可調(diào)頻率的PWM輸出。四.調(diào)試程序【程序一】#include<REG51.H>#include<intrins.h>#defineU8unsignedchar#defineU16unsignedintsbitkey1=P1^0;sbitkey2=P1^1;sbitkey3=P1^5;sbitkey4=P1^6;U8table[4]={0xea,0xf2,0xfa,0xfc};U8table1[4]={0xfc,0xfa,0xf2,0xea}; U16timer0=0;U16j=0;voidDelayMs(U8ms);voidPWM_clock(U8clock);voidPWM_start(U8module,U8mode);//////////////////////延時子程序/////////////////////////////voidDelayMs(U8ms)//在11.0592M晶振下,stc10f系列〔單周期指令〕的ms級延時{ U16i; while(ms--) { for(i=0;i<850;i++); }}////////////////////主函數(shù)入口////////////////////////////sfrAUXR =0X8E;sfrCCON=0xD8;//PCA控制存放器sfrCMOD=0xD9;//PCA模式存放器sfrCCAPM0=0xDA;//PCA模塊0模式存放器//模塊0對應P1.3/CEX0/PCA0/PWM0(STC12C5A60S2系列)sfrCCAPM1=0xDB;//PCA模塊1模式存放器//模塊1對應P1.4/CEX1/PCA1/PWM1(STC12C5A60S2系列)sfrCL=0xE9;//PCA定時存放器低位sfrCH=0xF9;//PCA定時存放器高位sfrCCAP0L=0xEA;//PCA模塊0的捕獲存放器低位sfrCCAP0H=0xFA;//PCA模塊0的捕獲存放器高位sfrCCAP1L=0xEB;//PCA模塊1的捕獲存放器低位sfrCCAP1H=0xFB;//PCA模塊1的捕獲存放器高位sfrPCA_PWM0=0xF2;//PCAPWM模式輔助存放器0sfrPCA_PWM1=0xF3;//PCAPWM模式輔助存放器1sbitCF=0xDF;//PCA計數(shù)溢出標志位sbitCR=0xDE;//PCA計數(shù)器運行控制位sbitCCF1=0xD9;//PCA模塊1中斷標志sbitCCF0=0xD8;//PCA模塊0中斷標志//*CCAPOH=CCAPOL=0XC0;//模塊0輸出占空因數(shù)為25%//*CCAPOH=CCAPOL=0X80;//模塊0輸出占空因數(shù)為50%//*CCAPOH=CCAPOL=0X40;//模塊0輸出占空因數(shù)為75%voidPWM_clock(U8clock);voidPWM_start(U8module,U8mode);/*****************************************************************************設置PWM時鐘信號來源函數(shù)參數(shù):Clock 0:系統(tǒng)時鐘/12(即12分頻);1:系統(tǒng)時鐘/2(即2分頻); 2:定時器0的溢出脈沖 ; 3:ECI/P1.2(或P4.1)腳輸入的外部時鐘; 4:系統(tǒng)時鐘(即不分頻); 5:系統(tǒng)時鐘/4(即4分頻); 6:系統(tǒng)時鐘/6(即6分頻); 7:系統(tǒng)時鐘/8(即8分頻); /*****************************************************************************/voidPWM_Clock(unsignedcharclock){ if(clock==2) { AUXR|=0x80;//定時器0時鐘為Fosc,即1T TMOD|=0x02;//8位自動重裝載 TH0=0xe1; //TR0=1; } CMOD|=(clock<<1); //CMOD=0x84; CL=0; CH=0; }voidPWM_Start(U8module,U8R0,U8R1){ CCAP0L=0XFF-(R0*256/100); CCAP0H=0XFF-(R0*256/100); CCAP1L=0XFF-(R1*256/100); CCAP1H=0XFF-(R1*256/100); if(module==0) CCAPM0=0X42;//模塊0設置為8位PWM輸出,無中斷 elseif(module==1) CCAPM1=0X42;//模塊1設置為8位PWM輸出,無中斷 elseif(module==2) CCAPM0=CCAPM1=0X42;//模塊0和1設置為8位PWM輸出,無中斷 CR=1;//PCA計數(shù)器開始計數(shù)}voidmain(){U8keycode=0;U8keycode1=0; PWM_Clock(2);//PCA/PWM時鐘源為定時器0的溢出 PWM_Start(0,20,0);//模塊0,設置為PWM輸出,無中斷,初始占空因素為25% while(1) { if(key1==0) { while(key1==0); EA=0; TR0=1; TH0=table[keycode]; keycode++; if(keycode==4) keycode=0;} DelayMs(100); if(key3==0) { while(key3==0); TR0=1; EA=0; TH0=table1[keycode1]; keycode1++; if(keycode1==4) keycode1=0;} DelayMs(100); if(key2==0) { while(key2==0); EA=1; ET0=1; TR0=1; TH0=0xD1; } }}voidtimer()interrupt1{ ++timer0; if(timer0==256) { ++j; timer0=0; } if(j==3032) { j=0; TR0=0; } }【程序二】#include<REG51.H>#include<intrins.h>#defineU8unsignedchar#defineU16unsignedintsbitDIR=P1^5;sbitkey1=P3^0;sbitkey2=P3^1;sbitkey3=P3^2;sbitkey4=P3^3;U16i=0;U8keycode=0;U8table[4]={0xea,0xf7,0xfa,0xfe}; //調(diào)頻voidDelayMs(U8ms); voidPWM_clock(U8clock);voidPWM_start(U8module,U8mode);//////////////////////延時子程序/////////////////////////////voidDelayMs(U8ms)//在11.0592M晶振下,stc10f系列〔單周期指令〕的ms級延時{ U16i; while(ms--) { for(i=0;i<850;i++); }}////////////////////主函數(shù)入口////////////////////////////sfrAUXR =0X8E;sfrCCON=0xD8;//PCA控制存放器sfrCMOD=0xD9;//PCA模式存放器sfrCCAPM0=0xDA;//PCA模塊0模式存放器//模塊0對應P1.3/CEX0/PCA0/PWM0(STC12C5A60S2系列)sfrCCAPM1=0xDB;//PCA模塊1模式存放器//模塊1對應P1.4/CEX1/PCA1/PWM1(STC12C5A60S2系列)sfrCL=0xE9;//PCA定時存放器低位sfrCH=0xF9;//PCA定時存放器高位sfrCCAP0L=0xEA;//PCA模塊0的捕獲存放器低位sfrCCAP0H=0xFA;//PCA模塊0的捕獲存放器高位sfrCCAP1L=0xEB;//PCA模塊1的捕獲存放器低位sfrCCAP1H=0xFB;//PCA模塊1的捕獲存放器高位sfrPCA_PWM0=0xF2;//PCAPWM模式輔助存放器0sfrPCA_PWM1=0xF3;//PCAPWM模式輔助存放器1sbitCF=0xDF;//PCA計數(shù)溢出標志位sbitCR=0xDE;//PCA計數(shù)器運行控制位sbitCCF1=0xD9;//PCA模塊1中斷標志sbitCCF0=0xD8;//PCA模塊0中斷標志sbitECCF0=0xDA;sbitECF=0xD9;sbitPWM0=0xD8;//*CCAPOH=CCAPOL=0XC0;//模塊0輸出占空因數(shù)為25%//*CCAPOH=CCAPOL=0X80;//模塊0輸出占空因數(shù)為50%//*CCAPOH=CCAPOL=0X40;//模塊0輸出占空因數(shù)為75%voidPWM_clock(U8clock);voidPWM_start(U8module,U8mode);voidPWM_Clock(unsignedcharclock){ if(clock==2) { AUXR|=0x80;//定時器0時鐘為Fosc,即1T TMOD|=0x02;//8位自動重裝載 TH0=0xe1; //設定頻率 } CMOD|=0x05;//(clock<<1); CL=0; CH=0; //EA=1; }voidPWM_Start(U8module,U8R0,U8R1){ CCAP0L=0XFF-(R0*256/100); CCAP0H=0XFF-(R0*256/100); CCAP1L=0XFF-(R1*256/100); CCAP1H=0XFF-(R1*256/100); if(module==0) CCAPM0=0X42;//模塊0設置為8位PWM輸出,無中斷 elseif(module==1) CCAPM1=0X42;//模塊1設置為8位PWM輸出,無中斷 elseif(module==2) CCAPM0=CCAPM1=0X42;//模塊0和1設置為8位PWM輸出,無中斷 }voidmain(){ PWM_Clock(2);//PCA/PWM時鐘源為定時器0的溢出 PWM_Start(0,20,0);//模塊0,設置為PWM輸出,無中斷,初始占空因素為25%TR0=0; EA=1; while(1) { if(key1==0) { while(!key1) TR0=1; CR=1; i=0; CH=0x9c; //0x9c100 步數(shù) //0x38 200 } if(key2==0) { EA=0; TR0=1; CR=1; while(key2==0); TH0=table[keycode];//調(diào)頻 keycode++; if(keycode==4) keycode=0; } if(key3==0) //方向 { while(!key3)DIR=0; } } DelayMs(100);}voidPCA_isr()interrupt7{i=i+1; CH=0x9c; //0x9c100 步數(shù) //0x37 200 CF=0; if(i==100) //100*4 200*125 {CR=0; i=0; }}程序功能首先對各存放器設定初值,選擇工作模式,使PCA計數(shù)頻率為定時器0的溢出率,實現(xiàn)可調(diào)頻率的PWM輸出。設定CCAP0H和CCAP0L及CL和CH的初值,當PCA

溫馨提示

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

評論

0/150

提交評論