資源描述:
《直流無刷電機(jī)控制pic程序(最新)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、#include//2008.4.24--14點(diǎn)00分#include#includeintcharge_delay,jm,lkk,trial,run_num,protect_num;charm,n,k,s,L,tri;charhall_num;//循環(huán)次數(shù)charhall_number;//1+3+2+10+8+9=33(一個(gè)循環(huán)和),hallless_protect()intpwm_hi;//pwm占空比上限intpwm_cycle;//pwm周期intpwm_lo;//pwm占空比下限,由
2、A/D結(jié)果確定intpwm_real;//pwm占空比實(shí)際intad_result;//A/D轉(zhuǎn)換結(jié)果bitghy,run_flag;//運(yùn)行標(biāo)志---0,未運(yùn)行,停止bitflag_autohand;//開始為-----自動(dòng)voiddelay(delay_num)intdelay_num;{intj;for(j=delay_num;j>1;j--){asm("nop");}}unionadres{inty1;unsignedcharadre[2];}adresult;voidpara_chushihua(){protect_num=0;trial=0b
3、10110000;tri=0x00;lkk=10;hall_num=0x00;hall_number=0x00;run_flag=0;//運(yùn)行標(biāo)志---0,未運(yùn)行,停止flag_autohand=1;//開始為-----自動(dòng)pwm_cycle=240;//pwm周期//pwm_hi=pwm_cycle-5;//pwm占空比上限pwm_hi=pwm_cycle-1;//pwm占空比上限pwm_real=pwm_cycle;//實(shí)際pwm占空比為pwm周期上限pwm_lo=0x0A;//設(shè)定下限++++++++++++++++++++++++++++++++
4、+++++++++++++++}voidnointerupt_chushihua(){INTCON=0X00;//禁止中斷}voidIo_chushihua(){//ADCON1=0x8e;//RA0/AN0--VOLTAGE電壓采樣,右對(duì)齊1ADCON1=0x86;//設(shè)定RA0--RA6設(shè)定為I/O口;TRISA=0x09;//RA0---PROTECT保護(hù)(電流保護(hù)和過溫保護(hù))--輸出,0--不保護(hù),1--保護(hù);//RA1----PSW1,繼電器,輸出,0,電源接通//RA2----指示燈,輸出0--->>//RA3----按鍵,加,輸入1//RA
5、4----指示燈,輸出0--->>//RA5----RSW1,繼電器,輸出0,軟啟充電PORTA=PORTA&0x09;//RA1=0,----輸出低電平,PSW1,繼電器斷//RA2=0,----輸出低電平,指示燈滅//RA4=0,----輸出低電平,指示燈滅//RA5=0,----輸出低電平,RSW1,繼電器斷RBPU=0;//RB端口內(nèi)部弱上拉電路禁止TRISB=0xfe;//RB7=1,空----輸入//RB6=1----HA,輸入//RB5=1----HB,輸入//RB4=1----HC,輸入//RB3=1----停,輸入,按鈕//RB2=1-
6、---啟,輸入,按鈕//RB1=1----自/手選擇,輸入,開關(guān)//RB0=0----ST/STOP,輸出,控制GALPORTB=PORTB&0xfe;//RB0=0,----輸出低電平,禁止GAL輸出TRISC=0x02;//RC7---A1+,PWMA1+,輸出0//RC6---A1,輸出0//RC5---B1+,輸出0//RC4---B1,輸出0//RC3---C1+,輸出0//RC2---CCP1(PWM),輸出,死區(qū)0//RC1----減,輸入,按鈕1//RC0---C1,輸出0PORTC=0x06;}voidprotect(){//過流和過溫
7、保護(hù)GIE=0;//關(guān)全局中斷pwm_real=pwm_hi;//PWM_real----PWM實(shí)時(shí)值CCPR1L=pwm_real;//設(shè)置PWM輸出為最大CCPR1H=0x00;//CCP1CON=0x0c;//CCP1選擇為PWM工作方式PR2=pwm_cycle;//設(shè)置PWM的周期TRISC=TRISC&0xfb;//設(shè)置RC2---PWM輸出T2CON=0x00;//分頻系數(shù)=0x00TMR2ON=1;//啟用TMR2PORTC=0x00;//PORTB=PORTB&0xfe;//RB0=0,----輸出低電平,禁止GAL輸出while(1)
8、{PORTA^=0b00010100;delay(15000);//延時(shí)}}vo