资源描述:
《《无位置传感器的无刷直流电动机调速掌控程序》》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《无位置传感器的无刷直流电动机调速控制程序》.INCLUDE“240x.H“以下定义常数和变量KP•SET245;电流调节比例系数,0.12的QI1格式KPS.SET100;速度调节比例系数.BSSCAPT,1;换相控制字.BSSCOMP,1;更新占空比的比较值,由电流调节输出.BSSIDC_REF,1;电流参考值,山速度调节输出.BSSIDC_ERRORKJ;电流偏差.BSSFLAGCUR,1;更新比较值和换相标志,1-允许更新,0-不允许.BSSSPEED_REF,1;给定速度参考.BSSV_ERR
2、ORK,1;速度偏差.BSSSPEED_COUNT,1;速度调节环计数器.BSSVI,1湘电压1.BSSV2,l;相电压2.BSSV3,l湘电压3.BSSNEUTRAL,1;中性点电压.BSSFLAG,!;感应电动势变符号标志,1-变了;0-没变.BSSFLAGUR1;转过一机械转标志,1■没转过,0■转过.BSSBCOUNT,1涎迟时间更新值,磁定位时临时变量.BSSB2COUNT,1;延迟时间.BSSSTALLJ;磁定位结束标志,1■结束,0-没结束.BSSASYM,1;延时计算感应电动势计数器.B
3、SSSPEEDFLAGJ;第一转时禁止速度调节标志,1■禁止,0-允许.BSSTIME;每转时间计数器.BSSSTACK,6;软堆栈区■定义主向量・.SECT“VECTORS"RSVECTB_C_INT0;复位INT1BPHANTOM;INT1INT2BPHANTOM;INT2INT3BPHANTOM;INT3INT4BPHANTOM;INT4INT5BPHANTOM;INT5INT6BADCINT;ADC中断;略以下是程序・TEXT■_C」NT0初始化程序…SETCCNFCLRCOVMSETCSXM;
4、符号扩展SETCINTM;关中断LARAR1,#STACKLDP#0E0HSPLK#68H,WDCR;不用看门狗SPLK#O284H,SCSR1;1OMCLK1N,20MCLKOUTLDP#0E8HSPLK#5OO,T1PR;PWM设置,周期50微秒SPLK#OOOOH,T1CNTSPLK#OFFFH,ACTRA;PWM1〜6全部高电平输出SPLK#01F4H,DBTCONA;死区1.6微秒SPLK#500,CMPR1;占空比为0SPLK#500,CMPR2SPLK#500,CMPR3SPLK#8200
5、H,COMCONA;允许比较,T1下溢重载SPLK#0840H,T1CON;连续增减计数,内部时钟,不分频SPLK#0100H,GPTCONA;T1周期中断标志启动AD转换LDP#OE1HSPLK#OFCOH,MCRA;引脚设置为PWMLDP#0LACC#020HSACLIMR;允许INT6中断LACCIFR;清标志SACLIFRLDP#0E8HLACCEVAIFRA;清标志SACLEVAIFRALACCEVAIFRBSACLEVAIFRBLACCEVAIFRCSACLEVAIFRCSPLK#0,EVA
6、IMRA;屏蔽中断SPLK#0,EVAIMRBSPLK#0,EVAIMRCLDP#OE1H;AD设置SPLK#0500H,ADCTRL2;允许EVA启动AD转换SPLK#0900H,ADCTRLl;10分频SPLK#0003H,MAXCONV;4个转换通道SPLK#3210H,CHSELSEQl;ADCIN00-03通道CLRCINTM;开总中断变量初始化LDP#0;变量初始化SPLK#020H,IDC_REF;磁定位电流SPLK#0,IDC_ERRORKSPLK#0300H,SPEED_REF;转速初
7、值SPLK#00112,COMP;最小占空比SPLK#0000H,FLAGCURSPLK#OOOOH,SPEED_COUNTSPLK#0000H,CAPTSPLK#0000H,V1SPLK#0000H,V2SPLK#0000H,V3SPLK#0000H,NEUTRALSPLK#0000H,FLAGSPLK#0001H,FLAGUP;没转过一转SPLK#0001H,SPEEDFLAG;禁止速度调节SPLK#0000H,BCOUNTSPLK#000()H,B2COUNTSPLK#0000H,STALLSPL
8、K#OOOOH,ASYMSPLK#0000H,V_ERRORKSPLK#OOOOH,TIME准备磁定位——LDP#0LACCCOMP;装载比较初值LDP#0E8H;反相驱动SPLK#03FDH,ACTRA;PWM1低有效,PWM6低电平,其它高电平SACLCMPR1;A相入,C相出,B相不通电SPLK#0000H,CMPR2SPLK#0000H,CMPR3等待磁定位结束MAGSTALLLDP#0LACCSTALL;检测磁足位是否结束BCND