资源描述:
《直流无刷电机控制PIC程序(最新).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include//2008.4.24--14点00分#include#includeintcharge_delay,jm,lkk,trial,run_num,protect_num;charm,n,k,s,L,tri;charhall_num;//循环次数charhall_number;//1+3+2+10+8+9=33(一个循环和),hallless_protect()intpwm_hi;//pwm占空比上限intpwm_cycle;//pwm周期intpwm_lo;//pwm占空比
2、下限,由A/D结果确定intpwm_real;//pwm占空比实际intad_result;//A/D转换结果bitghy,run_flag;//运行标志---0,未运行,停止bitflag_autohand;//开始为-----自动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;
3、trial=0b10110000;tri=0x00;lkk=10;hall_num=0x00;hall_number=0x00;run_flag=0;//运行标志---0,未运行,停止flag_autohand=1;//开始为-----自动pwm_cycle=240;//pwm周期//pwm_hi=pwm_cycle-5;//pwm占空比上限pwm_hi=pwm_cycle-1;//pwm占空比上限pwm_real=pwm_cycle;//实际pwm占空比为pwm周期上限pwm_lo=0x0A;//设定下限++++++++++++++++++++
4、+++++++++++++++++++++++++++}voidnointerupt_chushihua(){INTCON=0X00;//禁止中断}voidIo_chushihua(){//ADCON1=0x8e;//RA0/AN0--VOLTAGE电压采样,右对齐1ADCON1=0x86;//设定RA0--RA6设定为I/O口;TRISA=0x09;//RA0---PROTECT保护(电流保护和过温保护)--输出,0--不保护,1--保护;//RA1----PSW1,继电器,输出,0,电源接通//RA2----指示灯,输出0--->>//RA3
5、----按键,加,输入1//RA4----指示灯,输出0--->>//RA5----RSW1,继电器,输出0,软启充电PORTA=PORTA&0x09;//RA1=0,----输出低电平,PSW1,继电器断//RA2=0,----输出低电平,指示灯灭//RA4=0,----输出低电平,指示灯灭//RA5=0,----输出低电平,RSW1,继电器断RBPU=0;//RB端口内部弱上拉电路禁止TRISB=0xfe;//RB7=1,空----输入//RB6=1----HA,输入//RB5=1----HB,输入//RB4=1----HC,输入//RB3=
6、1----停,输入,按钮//RB2=1----启,输入,按钮//RB1=1----自/手选择,输入,开关//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),输出,死区0//RC1----减,输入,按钮1//RC0---C1,输出0PORTC=0x0
7、6;}voidprotect(){//过流和过温保护GIE=0;//关全局中断pwm_real=pwm_hi;//PWM_real----PWM实时值CCPR1L=pwm_real;//设置PWM输出为最大CCPR1H=0x00;//CCP1CON=0x0c;//CCP1选择为PWM工作方式PR2=pwm_cycle;//设置PWM的周期TRISC=TRISC&0xfb;//设置RC2---PWM输出T2CON=0x00;//分频系数=0x00TMR2ON=1;//启用TMR2PORTC=0x00;//PORTB=PORTB&0xfe;//RB0
8、=0,----输出低电平,禁止GAL输出while(1){PORTA^=0b00010100;delay(15000);//延时}}vo