單相和三相SPWM
全部回復(30)
正序查看
倒序查看
PIC16F877SPWM程序:
#include__CONFIG(HS&WDTDIS&LVPDIS); bit sin_f;//換向標志位 const unsigned char sin_[]={0,3,7,11,15,19,23,27,31,35,39,42,46,50,54,58, 62,65,69,73,77,80,84,88,92,95,99,102,106,109,113,116, 120,123,127,130,133,137,140,143,146,150,153,156,159,162,165,168, 171,173,176,179,182,184,187,190,192,195,197,199,202,204,206,208, 211,213,215,217,219,220,222,224,226,227,229,230,232,233,235,236, 237,238,240,241,242,243,243,244,245,246,246,247,248,248,248,249, 249,249,249,249,250,249,249,249,249,249,248,248,248,247,246,246, 245,244,243,243,242,241,240,238,237,236,235,233,232,230,229,227, 226,224,222,220,219,217,215,213,211,208,206,204,202,199,197,195, 192,190,187,184,182,179,176,173,171,168,165,162,159,156,153,150, 146,143,140,137,133,130,127,123,120,116,113,109,106,102,99,95, 92,88,84,80,77,73,69,65,62,58,54,50,46,42,39,35, 31,27,23,19,15,11,7,3}; unsigned char sin_num;//SIN函數表查表變量指針 //------------------------------------- void main(void) { TRISC1=1; TRISC2=1; PORTC=0; TOUTPS0=0; //1:1后分頻比,TOUTPS0=0 TOUTPS1=0; //1:1后分頻比,TOUTPS1=0 TOUTPS2=0; //1:1后分頻比,TOUTPS2=0 TOUTPS3=0; //1:1后分頻比,TOUTPS3=0 TMR2ON=1; //啟動定時器T2 TMR2IF=0; //清除T2的中斷標志 TMR2IE=1; //T2中斷允許 PEIE=1; //外設中斷允許,TMR2屬于外設中斷范圍 GIE=1; PR2=0xf9; //裝載PR2寄存器設置PWM周期,頻率為20khz CCP1CON=0x0C; //CCP1模塊工作在PWM模式 CCPR1L=0x00; //裝載CCPR1L寄存器設置PWM占空比,為0% TMR2IF=0; //清零PIR1寄存器中的TMR2IF中斷標志位 T2CKPS0=0; //定時器TMR2設置1:1預分頻比,T2CKPS0=0 T2CKPS1=0; //定時器TMR2設置1:1預分頻比,T2CKPS1=0 TMR2ON=1; //T2CON寄存器中的TMR2ON位置1使能Timer2 TRISC2=0; //清零TRISC2位,使能CCP1引腳輸出驅動器 CCP2CON=0x0C; //CCP2模塊工作在PWM模式 CCPR2L=0x00; //裝載CCPR2L寄存器設置PWM占空比,為0% TRISC1=0; //清零TRISC1位,使能CCP2引腳輸出驅動器 sin_f=1; sin_num=0; while(1) { } } void interrupt ISR(void) { if(TMR2IF==1) { TMR2IF=0; if(sin_num==199) { sin_num=0; sin_f=!sin_f; } if(sin_f) { CCPR2L=sin_[sin_num]; CCPR1L=0; } else { CCPR1L=sin_[sin_num]; CCPR2L=0; } sin_num++; } }
0
回復
帖子已被設置為頭條,恭喜樓主可添加電源網私人官網微信(dianyuan_com)為好友,領取現金紅包(備注信息:頭條紅包)
注:現金紅包僅限當日領取
活動介紹:http://www.laiyangyintong.cn/bbs/1531738.html
0
回復
已經被添加到社區經典圖庫嘍
http://www.laiyangyintong.cn/bbs/classic/
http://www.laiyangyintong.cn/bbs/classic/
0
回復
@空軍通信兵
主要是現在制造業很難混,大家都忙所以沒時間來電源網了。還有就是有些人離開逆變器這個行業,轉行做其他產品了。所以不來了,我去年也是做逆變器的,現在轉行做多普勒雷達產品。中國老板只想著賺錢,不考慮產品質量。中國的很多老板認為技術不值錢,中國的工程師遍地都是。中國老板喜歡過河拆橋,中國拿高工資的都是老板,大家崇拜的都是馬云,王健林,還有就是歌星影星,這些人每一個是玩高科技的,而美國崇拜的是科技人員,特斯拉,喬布斯等科技研發人員。中國玩虛的都賺錢了,搞實業的很難生存。為了生存很多實業家轉行玩虛的。所以人少了。再過一兩年我也去玩虛的,賺錢養家。
現實擊垮了多少人的夢想,還是堅守自己的信念吧。還能有夢想的時間不多了。
0
回復
@zcq760622
PIC16F877SPWM程序:#include__CONFIG(HS&WDTDIS&LVPDIS);bitsin_f;//換向標志位constunsignedcharsin_[]={0,3,7,11,15,19,23,27,31,35,39,42,46,50,54,58,62,65,69,73,77,80,84,88,92,95,99,102,106,109,113,116,120,123,127,130,133,137,140,143,146,150,153,156,159,162,165,168,171,173,176,179,182,184,187,190,192,195,197,199,202,204,206,208,211,213,215,217,219,220,222,224,226,227,229,230,232,233,235,236,237,238,240,241,242,243,243,244,245,246,246,247,248,248,248,249,249,249,249,249,250,249,249,249,249,249,248,248,248,247,246,246,245,244,243,243,242,241,240,238,237,236,235,233,232,230,229,227,226,224,222,220,219,217,215,213,211,208,206,204,202,199,197,195,192,190,187,184,182,179,176,173,171,168,165,162,159,156,153,150,146,143,140,137,133,130,127,123,120,116,113,109,106,102,99,95,92,88,84,80,77,73,69,65,62,58,54,50,46,42,39,35,31,27,23,19,15,11,7,3};unsignedcharsin_num;//SIN函數表查表變量指針//-------------------------------------voidmain(void){TRISC1=1;TRISC2=1;PORTC=0;TOUTPS0=0;//1:1后分頻比,TOUTPS0=0TOUTPS1=0;//1:1后分頻比,TOUTPS1=0TOUTPS2=0;//1:1后分頻比,TOUTPS2=0TOUTPS3=0;//1:1后分頻比,TOUTPS3=0TMR2ON=1;//啟動定時器T2TMR2IF=0;//清除T2的中斷標志TMR2IE=1;//T2中斷允許PEIE=1;//外設中斷允許,TMR2屬于外設中斷范圍GIE=1;PR2=0xf9;//裝載PR2寄存器設置PWM周期,頻率為20khzCCP1CON=0x0C;//CCP1模塊工作在PWM模式CCPR1L=0x00;//裝載CCPR1L寄存器設置PWM占空比,為0%TMR2IF=0;//清零PIR1寄存器中的TMR2IF中斷標志位T2CKPS0=0;//定時器TMR2設置1:1預分頻比,T2CKPS0=0T2CKPS1=0;//定時器TMR2設置1:1預分頻比,T2CKPS1=0TMR2ON=1;//T2CON寄存器中的TMR2ON位置1使能Timer2TRISC2=0;//清零TRISC2位,使能CCP1引腳輸出驅動器CCP2CON=0x0C;//CCP2模塊工作在PWM模式CCPR2L=0x00;//裝載CCPR2L寄存器設置PWM占空比,為0%TRISC1=0;//清零TRISC1位,使能CCP2引腳輸出驅動器sin_f=1;sin_num=0;while(1){}}voidinterruptISR(void){if(TMR2IF==1){TMR2IF=0;if(sin_num==199){sin_num=0;sin_f=!sin_f;}if(sin_f){CCPR2L=sin_[sin_num];CCPR1L=0;}else{CCPR1L=sin_[sin_num];CCPR2L=0;}sin_num++;}}
請問這是三想spwm代碼嗎
0
回復