程序清单31采用不对称规则采样法生成三相SPWM波的开环调速控制程.docx

上传人:b****4 文档编号:12264668 上传时间:2023-04-17 格式:DOCX 页数:19 大小:16.98KB
下载 相关 举报
程序清单31采用不对称规则采样法生成三相SPWM波的开环调速控制程.docx_第1页
第1页 / 共19页
程序清单31采用不对称规则采样法生成三相SPWM波的开环调速控制程.docx_第2页
第2页 / 共19页
程序清单31采用不对称规则采样法生成三相SPWM波的开环调速控制程.docx_第3页
第3页 / 共19页
程序清单31采用不对称规则采样法生成三相SPWM波的开环调速控制程.docx_第4页
第4页 / 共19页
程序清单31采用不对称规则采样法生成三相SPWM波的开环调速控制程.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

程序清单31采用不对称规则采样法生成三相SPWM波的开环调速控制程.docx

《程序清单31采用不对称规则采样法生成三相SPWM波的开环调速控制程.docx》由会员分享,可在线阅读,更多相关《程序清单31采用不对称规则采样法生成三相SPWM波的开环调速控制程.docx(19页珍藏版)》请在冰豆网上搜索。

程序清单31采用不对称规则采样法生成三相SPWM波的开环调速控制程.docx

程序清单31采用不对称规则采样法生成三相SPWM波的开环调速控制程

程序清单3-1采用不对称规则采样法生成三相SPWM波的开环调速控制程序

#include

.SECTION/PMIVreset;

JUMPstart;

.SECTION/PMIVint4;

JUMPPWMSYNC_IRQ;

.section/datadata1;

.VARPITC=42166;

.VARK_=0;

.VARF_modu=480;

.VARTWOP=25736;

.VART_THP=8579;

.VARF_THP=17157;

.VARATOD=917;

.VARM_=0;

.VART_QUA=625;

.VARPMAX=2350;

.VARPMIN=150;

.VARN_=0;

.VARF_CARR=40000;

.VARKMAX=0;

.VARF_M=37749;

.VARTEMP1=0x0000;

.VARTEMP2=0x0000;

.VARTEMP3=0x0000;

.VARTEMP4=0x0000;

.VARTEMP5=0x0000;

.VARTEMP6=0x0000;

.VARTEMP=0x0000;

.VARSIN_ENTRY[361]=

0,286,572,857,1143,1428,1713,1997,2280,2563,2845,

3126,3406,3686,3964,4240,4516,4790,5063,5334,5604,

5872,6138,6402,6664,6924,7182,7438,7692,7943,8192,

8438,8682,8923,9162,9397,9630,9860,10087,10311,10531,

10749,10963,11174,11381,11585,11786,11982,12176,12365,12551,

12733,12911,13085,13255,13421,13583,13741,13894,14044,14189,

14330,14466,14598,14726,14849,14968,15082,15191,15296,15396,

15491,15582,15668,15749,15826,15897,15964,16026,16083,16135,

16182,16225,16262,16294,16322,16344,16362,16374,16382,16384,//90

16382,16384,16362,16344,16322,16294,16262,16225,16182,16135,

16083,16026,15964,15897,15826,15749,15668,15582,15491,15396,

15296,15191,15082,14968,14849,14726,14598,14466,14330,14189,

14044,13894,13741,13583,13421,13255,13085,12911,12733,12551,

12365,12176,11982,11786,11585,11381,11174,10963,10749,10531,

10311,10087,9860,9630,9397,9162,8923,8682,8438,8192,

7943,7692,7438,7182,6924,6664,6402,6138,5872,5604,

5334,5063,4790,4516,4240,3964,3686,3406,3126,2845,

2563,2280,1991,1713,1428,1143,857,572,286,0,//180

65250,64964,64679,64396,64108,63823,63539,63256,62973,62691,

62410,62130,61850,61572,61296,61020,60746,60473,60202,59932,

59664,59398,59134,58872,58612,58354,58098,57844,57593,57344,

57198,56854,56613,56374,56139,55906,55676,55449,55225,55005,

54787,54573,54362,54155,53951,53750,53554,53360,53171,52985,

52803,52625,52451,52281,52115,51953,51795,51642,51492,51347,

51206,51070,50938,50810,50687,50568,50454,50345,50240,50140,

50045,49954,49868,49787,49710,49639,49572,49510,49453,49401,

49354,49311,49274,49242,49214,49192,49174,49162,49154,49152,//270

49154,49162,49174,49192,49214,49242,49274,49311,49354,49401,

49453,49510,49574,49639,49710,49787,49868,49954,50045,50140,

50240,50345,50454,50568,50687,50810,50938,51070,51206,51347,

51492,51642,51795,51953,52115,52281,52451,52625,52803,52985,

53171,53360,53554,52750,53951,54155,54362,54574,54787,55005,

55225,55449,55676,55906,56139,56374,56613,56854,57098,57344,

57593,57844,58098,58354,58612,58872,59134,59398,59664,59932,

60202,60473,60746,61050,61296,61572,61850,62130,62410,62691,

62973,63256,63539,63823,64108,64393,64679,64964,65250,0;//360

.SECTION/PMprogram;

start:

DISINT;

IMASK=0x0000;

IOPG=Interrupt_Controller_Page;

AX0=0xBBB0;

IO(IPR2)=AX0;

IMASK=0x0010;

AX0=0x0;

IO(PLLCTL)=AX0;

.SECTION/PMprogram;

IOPG=0x0008;

AX0=0x1;

IO(PWM0_CTRL)=AX0;

AX0=1250;

IO(PWM0_TM)=AX0;

AX0=3999;

IO(PWM0_SYNCWT)=AX0;

AX0=40;

IO(PWM0_DT)=AX0;

AX0=40;

IO(PWM0_CHA)=AX0;

IO(PWM0_CHB)=AX0;

IO(PWM0_CHC)=AX0;

AX0=0x0;

IO(PWM0_SEG)=AX0;

AX0=0x0000;

IO(PWM0_STAT)=AX0;

ENAINT;

.SECTION/codeprogram;

ASTAT=0x00;

AX0=DM(F_modu);

SI=AX0;

SR=LSHIFTAX0BY-4(HI);

AX0=SR1;

AF=PASS0x0000;

AY0=DM(F_CARR);

DIVQAX0;DIVQAX0;DIVQAX0;DIVQAX0;

DIVQAX0;DIVQAX0;DIVQAX0;DIVQAX0;

DIVQAX0;DIVQAX0;DIVQAX0;DIVQAX0;

DIVQAX0;DIVQAX0;DIVQAX0;DIVQAX0;

DM(N_)=AY0;

SI=AY0;

SR=LSHIFTSIBY1(LO);

DM(KMAX)=SR0;

ENAM_MODE;

AX0=DM(F_modu);

MX0=DM(F_M);

MR=MX0*AX0(UU);

DM(M_)=MR1;

WAIT:

JUMPWAIT;

PWMSYNC_IRQ:

.SECTION/codeprogram;

ENASEC_REG,ENASEC_DAG;

ENAM_MODE;

AX0=0;

IO(PWM0_STAT)=AX0;

MX0=DM(PITC);

MY0=DM(K_);

MR=MX0*MY0(UU);

SI=MR1;

SR=ASHIFTSIBY4(HI);

SI=MR0;

SR=SRORLSHIFTSIBY4(LO);

MX1=SR1;

MY1=DM(F_modu);

MR=MX1*MY1(UU);

SI=MR1;

SR=LSHIFTSIBY8(HI);

SI=MR0;

SR=SRORLSHIFTSIBY8(LO);

AX1=SR1;

DM(TEMP1)=AX1;

AY1=DM(T_THP);

AR=AX1+AY1;

DM(TEMP2)=AR;

AX0=DM(TWOP);

AR=AR-AX0;

IFLTJUMPWXM1;

DM(TEMP2)=AR;

WXM1:

AR=DM(TEMP1);

AX0=DM(F_THP);

AR=AR+AX0;

DM(TEMP3)=AR;

AX0=DM(TWOP);

AR=AR-AX0;

IFLTJUMPWXM2;

DM(TEMP3)=AR;

WXM2:

AX0=DM(TEMP1);

AY0=DM(ATOD);

MR=AX0*AY0(UU);

DM(TEMP1)=MR1;

AX0=DM(TEMP1);

I0=SIN_ENTRY;

M0=AX0;

AX0=DM(I0+M0);

AY0=DM(M_);

MR=AX0*AY0(SU);

SI=MR1;

SR=ASHIFTSIBY7(HI);

SI=MR0;

SR=SRORLSHIFTSIBY7(LO);

AY0=SR1;

AX0=0x8000;

AR=AX0ANDAY0;

AX1=16384;

IFEQJUMPZHENG1;

AR=ABSAY0;

AR=AX1-AR;

JUMPM_S1;

ZHENG1:

AR=AX1+Ay0;

M_S1:

AY1=DM(T_QUA);

MR=AR*AY1(UU);

SI=MR1;

SR=ASHIFTSIBY1(HI);

SI=MR0;

SR=SRORLSHIFTSIBY1(LO);

DM(TEMP1)=SR1;

AX0=DM(TEMP2);

AY0=DM(ATOD);

MR=AX0*AY0(UU);

DM(TEMP2)=MR1;

AX0=DM(TEMP2);

I0=SIN_ENTRY;

M0=AX0;

AX0=DM(I0+M0);

AY0=DM(M_);

MR=AX0*AY0(SU);

SI=MR1;

SR=ASHIFTSIBY7(HI);

SI=MR0;

SR=SRORLSHIFTSIBY7(LO);

AY0=SR1;

AX0=0x8000;

AR=AX0ANDAY0;

AX1=16384;

IFEQJUMPZHENG2;

AR=ABSAY0;

AR=AX1-AR;

JUMPM_S2;

ZHENG2:

AR=AX1+Ay0;

M_S2:

AY1=DM(T_QUA);

MR=AR*AY1(UU);

SI=MR1;

SR=ASHIFTSIBY1(HI);

SI=MR0;

SR=SRORLSHIFTSIBY1(LO);

DM(TEMP2)=SR1;

AX0=DM(TEMP3);

AY0=DM(ATOD);

MR=AX0*AY0(UU);

DM(TEMP3)=MR1;

AX0=DM(TEMP3);

I0=SIN_ENTRY;

M0=AX0;

AX0=DM(I0+M0);

AY0=DM(M_);

MR=AX0*AY0(SU);

SI=MR1;

SR=ASHIFTSIBY7(HI);

SI=MR0;

SR=SRORLSHIFTSIBY7(LO);

AY0=SR1;

AX0=0x8000;

AR=AX0ANDAY0;

AX1=16384;

IFEQJUMPZHENG3;

AR=ABSAY0;

AR=AX1-AR;

JUMPM_S3;

ZHENG3:

AR=AX1+Ay0;

M_S3:

AY1=DM(T_QUA);

MR=AR*AY1(UU);

SI=MR1;

SR=ASHIFTSIBY1(HI);

SI=MR0;

SR=SRORLSHIFTSIBY1(LO);

DM(TEMP3)=SR1;

AR=DM(K_);

AR=AR+1;

DM(K_)=AR;

MX0=DM(PITC);

MY0=DM(K_);

MR=MX0*MY0(UU);

SI=MR1;

SR=ASHIFTSIBY4(HI);

SI=MR0;

SR=SRORLSHIFTSIBY4(LO);

MX1=SR1;

MY1=DM(F_modu);

MR=MX1*MY1(UU);

SI=MR1;

SR=LSHIFTSIBY8(HI);

SI=MR0;

SR=SRORLSHIFTSIBY8(LO);

AX1=SR1;

DM(TEMP4)=AX1;

AY1=DM(T_THP);

AR=AX1+AY1;

DM(TEMP5)=AR;

AX0=DM(TWOP);

AR=AR-AX0;

IFLTJUMPWXM3;

DM(TEMP5)=AR;

WXM3:

AR=DM(TEMP4);

AX0=DM(F_THP);

AR=AR+AX0;

DM(TEMP6)=AR;

AX0=DM(TWOP);

AR=AR-AX0;

IFLTJUMPWXM4;

DM(TEMP6)=AR;

WXM4:

AX0=DM(TEMP4);

AY0=DM(ATOD);

MR=AX0*AY0(UU);

DM(TEMP4)=MR1;

AX0=DM(TEMP4);

I0=SIN_ENTRY;

M0=AX0;

AX0=DM(I0+M0);

AY0=DM(M_);

MR=AX0*AY0(SU);

SI=MR1;

SR=ASHIFTSIBY7(HI);

SI=MR0;

SR=SRORLSHIFTSIBY7(LO);

AY0=SR1;

AX0=0x8000;

AR=AX0ANDAY0;

AX1=16384;

IFEQJUMPZHENG4;

AR=ABSAY0;

AR=AX1-AR;

JUMPM_S4;

ZHENG4:

AR=AX1+Ay0;

M_S4:

AY1=DM(T_QUA);

MR=AR*AY1(UU);

SI=MR1;

SR=ASHIFTSIBY1(HI);

SI=MR0;

SR=SRORLSHIFTSIBY1(LO);

DM(TEMP4)=SR1;

AX0=DM(TEMP5);

AY0=DM(ATOD);

MR=AX0*AY0(UU);

DM(TEMP5)=MR1;

AX0=DM(TEMP5);

I0=SIN_ENTRY;

M0=AX0;

AX0=DM(I0+M0);

AY0=DM(M_);

MR=AX0*AY0(SU);

SI=MR1;

SR=ASHIFTSIBY7(HI);

SI=MR0;

SR=SRORLSHIFTSIBY7(LO);

AY0=SR1;

AX0=0x8000;

AR=AX0ANDAY0;

AX1=16384;

IFEQJUMPZHENG5;

AR=ABSAY0;

AR=AX1-AR;

JUMPM_S5;

ZHENG5:

AR=AX1+Ay0;

M_S5:

AY1=DM(T_QUA);

MR=AR*AY1(UU);

SI=MR1;

SR=ASHIFTSIBY1(HI);

SI=MR0;

SR=SRORLSHIFTSIBY1(LO);

DM(TEMP5)=SR1;

AX0=DM(TEMP6);

AY0=DM(ATOD);

MR=AX0*AY0(UU);

DM(TEMP6)=MR1;

AX0=DM(TEMP6);

I0=SIN_ENTRY;

M0=AX0;

AX0=DM(I0+M0);

AY0=DM(M_);

MR=AX0*AY0(SU);

SI=MR1;

SR=ASHIFTSIBY7(HI);

SI=MR0;

SR=SRORLSHIFTSIBY7(LO);

AY0=SR1;

AX0=0x8000;

AR=AX0ANDAY0;

AX1=16384;

IFEQJUMPZHENG5;

AR=ABSAY0;

AR=AX1-AR;

JUMPM_S6;

ZHENG6:

AR=AX1+AY0;

M_S6:

AY1=DM(T_QUA);

MR=AR*AY1(UU);

SI=MR1;

SR=ASHIFTSIBY1(HI);

SI=MR0;

SR=SRORLSHIFTSIBY1(LO);

DM(TEMP6)=SR1;

AR=DM(K_);

AR=AR+1;

DM(K_)=AR;

AX0=DM(KMAX);

AR=AR-AX0;

IFLTJUMPWXM5;

AY0=0x0;

DM(K_)=AY0;

WXM5:

AX0=DM(TEMP1);

AY0=DM(TEMP4);

AR=AX0+AY0;

DM(TEMP1)=AR;

ASTAT=0x0;

AY1=DM(PMIN);

AX1=DM(TEMP1);

AR=AX1-AY1;

IFGTJUMPWXM6;

AX0=0x0;

DM(TEMP1)=AX0;

JUMPWXM7;

WXM6:

AY1=DM(PMAX);

AX1=DM(TEMP1);

ASTAT=0x0;

AR=AX1-AY1;

IFLTJUMPWXM7;

AY0=2500;

DM(TEMP1)=AY0;

WXM7:

AX0=DM(TEMP2);

AY0=DM(TEMP5);

AR=AX0+AY0;

DM(TEMP2)=AR;

ASTAT=0x00;

AY1=DM(PMIN);

AX1=DM(TEMP1);

AR=AX1-AY1;

IFGTJUMPWXM8;

AX0=0;

DM(TEMP2)=AX0;

JUMPWXM9;

WXM8:

AY1=DM(PMAX);

AX1=DM(TEMP1);

AR=AX1-AY1;

IFLTJUMPWXM9;

AY0=2500;

DM(TEMP1)=AY0;

WXM9:

AX0=DM(TEMP3);

AY0=DM(TEMP6);

AR=AX0+AY0;

DM(TEMP3)=AR;

ASTAT=0x0;

AY1=DM(PMIN);

AX1=DM(TEMP1);

AR=AX1-AY1;

IFGTJUMPWXM10;

AY0=0;

DM(TEMP3)=AY0;

JUMPPWMCH;

WXM10:

AY1=DM(PMAX);

AX1=DM(TEMP1);

AR=AX1-AY1;

IFLTJUMPPWMCH;

AY0=2500;

DM(TEMP3)=AY0;

PWMCH:

IOPG=0x08;

MX1=DM(TEMP1);

SI=AX1;

SR=LSHIFTSIBY-1(LO);

AX1=SR0;

AR=40;,

AR=AR+AX1;

IO(PWM0_CHA)=AR;

MX1=DM(TEMP2);

SI=AX1;

SR=LSHIFTSIBY-1(LO);

AX1=SR0;

AR=40;

AR=AR+AX1;

IO(PWM0_CHB)=AR;

MX1=DM(TEMP3);

SI=AX1;

SR=LSHIFTSIBY-1(LO);

AX1=SR0;

AR=40;

AR=AR+AX1;

IO(PWM0_CHC)=AR;

DISSEC_REG,DISSEC_DAG;

RTI;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1