⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 三相交流异步电动机svpwm开环调速控制程序.txt

📁 各种电动机的DSP2407控制ASM程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:
 
.include "240x.h"      ; 寄存器地址
.global  _c_int0          ;全局化标号
;--------------------------------------以下定义变量-------------------------------------------------------------
ST0 .set 0                                ;状态寄存器ST0
ST1 .set 1                                ;状态寄存器ST1
.bss TEMP,1                  ;临时变量
.bss SET_F,1                 ;频率调节比,Q16格式(值为0-1,对应0-50Hz)
.bss F_OMEGA,1             ;频率调节比-角频率转换率,Q5格式
.bss OMEGA,1               ;调制波角频率,Q5格式
.bss SET_V,1                 ;参考电压,Q14格式
.bss MAX_V,1               ;最大参考电压幅值1/  ,Q14格式
.bss T_SAMPLE,1             ;采样周期,Q24格式
.bss THETA_H,1              ;参考电压相位角高字,Q12格式
.bss THETA_L,1              ;参考电压相位角低字,Q12格式
.bss THETA_R,1              ;相位角的圆整值,Q12格式
.bss THETA_M,1             ;相位查表值(0-90度),Q12格式
.bss THETA_I,1              ;相角查表索引,Q9格式
.bss SS,1                    ;SIN符号,Q0格式
.bss SC,1                    ;COS符号,Q0格式
.bss SIN_INDX,1             ;SIN表索引,Q0格式
.bss SIN_ENTRY,1            ;SIN表入口地址
.bss SIN_END,1              ;SIN表结束地址
.bss SIN_THETA,1            ;SINθ值,Q14格式
.bss COS_THETA,1            ;COSθ值,Q14格式
.bss UA,1                    ;参考电压D轴分量UA,Q12格式
.bss UB,1                    ;参考电压Q轴分量UB,Q12格式
.bss THETA_S,1               ;θ-扇区数转换系数,Q15格式
.bss SECTOR,1                ;参考电压所在的扇区数,Q0格式
.bss THETA_90,1               ;90度,Q12格式
.bss THETA_180,1              ;180度,Q12格式
.bss THETA_270,1              ;270度,Q12格式
.bss THETA_360,1              ;360度,Q12格式
.bss DEC_MS,24               ;6个逆阵,Q14格式
.bss T1_PERIODS,1            ;定时器1周期值,Q5格式
.bss CMP_1,1                 ;第1基本矢量,Q0格式
.bss CMP_2,1                 ;第2基本矢量,Q0格式
.bss CMP_0,1                 ;0基本矢量/2,Q0格式
.bss FIRST_TOG,1             ;存放第一次比较匹配的比较器地址
.bss SEC_TOG,1               ;存放第二次比较匹配的比较器地址
            .bss  ACCH,1                  ;ACC高字保存单元
            .bss  ACCL,1                   ;ACC低字保存单元
            .bss  AR0_SAVE,1              ;AR0保存单元
            .bss  P_HI,1                   ;P寄存器高字保存单元
            .bss  P_LO,1                   ;P寄存器低字保存单元
;-------------------------------------- CONTEXT段,定义保护现场数据区--------------------------
ST0_SAVE  .usect ".context",1   ;状态寄存器ST0保存单元
ST1_SAVE  .usect ".context",1   ;状态寄存器ST1保存单元
;-------------------------------------- 定义主向量段--------------------------------------------------
.sect  ".vectors"              ;定义主向量段
RESET  B  _c_int0           ;地址0000H,复位,优先级1
INT1   B  PHANTOM        ;地址0002H,INT1,优先级4
INT2   B  _C_INT2           ;地址0004H,INT2,优先级5
INT3   B  PHANTOM        ;地址0006H,INT3,优先级6
INT4   B  PHANTOM        ;地址0008H,INT4,优先级7
INT5   B  PHANTOM        ;地址000AH,INT5,优先级8
INT6   B  PHANTOM        ;地址000CH,INT6,优先级9 
RESERVED  B  PHANTOM                ;地址000EH,测试,优先级10
SW_INT8   B  PHANTOM                ;地址0010H,自定义软中断
SW_INT9   B  PHANTOM                ;地址0012H,自定义软中断
SW_INT10  B  PHANTOM                ;地址0014H,自定义软中断
SW_INT11  B  PHANTOM                ;地址0016H,自定义软中断
SW_INT12  B  PHANTOM                ;地址0018H,自定义软中断
SW_INT13  B  PHANTOM                ;地址001AH,自定义软中断
SW_INT14  B  PHANTOM                ;地址001CH,自定义软中断
SW_INT15  B  PHANTOM                ;地址001EH,自定义软中断
SW_INT16  B  PHANTOM                ;地址0020H,自定义软中断
TRAP           B  PHANTOM                        ;地址0022H,TRAP矢量
NMI                     B  PHANTOM                        ;地址0024H,NMI,优先级3
EMU_TRAP B  PHANTOM                        ;地址0026H,仿真Trap,优先级2
SW_INT20  B  PHANTOM                ;地址0028H,自定义软中断
SW_INT21  B  PHANTOM                ;地址002AH,自定义软中断
SW_INT22  B  PHANTOM                ;地址002CH,自定义软中断
SW_INT23  B  PHANTOM                ;地址002EH,自定义软中断
SW_INT24  B  PHANTOM                ;地址0030H,自定义软中断
SW_INT25  B  PHANTOM                ;地址0032H,自定义软中断
SW_INT26  B  PHANTOM                ;地址0034H,自定义软中断
SW_INT27  B  PHANTOM                ;地址0036H,自定义软中断
SW_INT28  B  PHANTOM                ;地址0038H,自定义软中断
SW_INT29  B  PHANTOM                ;地址003AH,自定义软中断
SW_INT30  B  PHANTOM                ;地址003CH,自定义软中断
SW_INT31  B  PHANTOM                ;地址003EH,自定义软中断
;-------------------------------------- 定义子向量段------------------------------------------------------
.sect  ".pvecs"                ;定义子向量段
PVECTORS        B        PHANTOM                        ;偏移地址0000H 
                        B        PHANTOM                          ;偏移地址0001H
                        B        PHANTOM                        ;偏移地址0002H
                        B        PHANTOM                        ;偏移地址0003H
                        B        PHANTOM                        ;偏移地址0004H
                        B        PHANTOM                        ;偏移地址0005H
                        B        PHANTOM                        ;偏移地址0006H
                        B        PHANTOM                        ;偏移地址0007H
                        B        PHANTOM                        ;偏移地址0008H
                        B        PHANTOM                        ;偏移地址0009H
                        B        PHANTOM                        ;偏移地址000AH
                        B        PHANTOM                        ;偏移地址000BH
                        B        PHANTOM                        ;偏移地址000CH
                        B        PHANTOM                        ;偏移地址000DH
                        B        PHANTOM                        ;偏移地址000EH
                        B        PHANTOM                        ;偏移地址000FH  
                        B        PHANTOM                        ;偏移地址0010H
                        B        PHANTOM                        ;偏移地址0011H
                        B        PHANTOM                        ;偏移地址0012H
                        B        PHANTOM                        ;偏移地址0013H
                        B        PHANTOM                        ;偏移地址0014H
                        B        PHANTOM                        ;偏移地址0015H
                        B        PHANTOM                        ;偏移地址0016H
                        B        PHANTOM                        ;偏移地址0017H 
                        B        PHANTOM                        ;偏移地址0018H
                        B        PHANTOM                        ;偏移地址0019H 
                        B        PHANTOM                        ;偏移地址001AH
                        B        PHANTOM                        ;偏移地址001BH
                        B        PHANTOM                        ;偏移地址001CH
                        B        PHANTOM                        ;偏移地址001DH
                        B        PHANTOM                        ;偏移地址001EH
                        B        PHANTOM                        ;偏移地址001FH
                        B        PHANTOM                        ;偏移地址0020H
                        B        PHANTOM                        ;偏移地址0021H 
                        B        PHANTOM                        ;偏移地址0022H
                        B        PHANTOM                        ;偏移地址0023H
                        B        PHANTOM                        ;偏移地址0024H
                        B        PHANTOM                        ;偏移地址0025H
                        B        PHANTOM                        ;偏移地址0026H 
                        B        PHANTOM                        ;偏移地址0027H 
                        B        PHANTOM                        ;偏移地址0028H
                        B        T1UF_ISR                        ;偏移地址0029H
                        B        PHANTOM                        ;偏移地址002AH
                        B        PHANTOM                        ;偏移地址002BH
                        B        PHANTOM                        ;偏移地址002CH
                        B        PHANTOM                        ;偏移地址002DH
                        B        PHANTOM                        ;偏移地址002EH
                        B        PHANTOM                        ;偏移地址002FH 
                        B        PHANTOM                        ;偏移地址0030H
                        B        PHANTOM                        ;偏移地址0031H
                        B        PHANTOM                        ;偏移地址0032H
                        B        PHANTOM                        ;偏移地址0033H
                        B        PHANTOM                        ;偏移地址0034H
                        B        PHANTOM                        ;偏移地址0035H
                        B        PHANTOM                        ;偏移地址0036H
                        B        PHANTOM                        ;偏移地址0037H
                        B        PHANTOM                        ;偏移地址0038H
                        B        PHANTOM                        ;偏移地址0039H
                        B        PHANTOM                        ;偏移地址003AH
                        B        PHANTOM                        ;偏移地址003BH
                        B        PHANTOM                        ;偏移地址003CH
                        B        PHANTOM                        ;偏移地址003DH
                        B        PHANTOM                        ;偏移地址003EH
                        B        PHANTOM                        ;偏移地址003FH
                        B        PHANTOM                        ;偏移地址0040H
                        B        PHANTOM                        ;偏移地址0041H
;--------------------------------------以下是主程序--------------------------------------------------------
.text
;--------------------------------------系统初始化程序----------------------------------------------------
_c_int0    
            SETC   INTM               ; 禁止中断
CLRC  CNF                 ;B0为数据存储区
LDP    #224
SPLK   #0000001000000100B,SCSR1 ;CLKIN 10M,CLKOUT 20M
SPLK   #68H,WDCR            ;不用看门狗
LDP    #225
LACC  MCRA
OR     #0FC0H             ;设置PWM1-6引脚
SACL   MCRA
;--------------------------------------中断初始化程序----------------------------------------------------
LDP    #0  
SPLK   #0FFH,IFR            ; 清所有系统中断标志
SPLK   #00000010B,IMR      ; 开INT2中断
LDP    #232         
SPLK   #0FFFH,EVAIFRA     ; 清事件管理器A所有中断标志
SPLK   #0FH,EVAIFRB 
SPLK   #0FH,EVAIFRC 
SPLK   #0200H,EVAIMRA     ; 开T1下溢中断
SPLK   #0,EVAIMRB          ; 屏蔽所有中断
SPLK   #0,EVAIMRC          ; 屏蔽所有中断
;--------------------------------------初始化事件管理器A程序-----------------------------------------
SPLK   #500,T1PR           ; T1周期值=50 us/50ns/2=500
SPLK   #500,CMPR1         ; 占空比初值 0%
SPLK   #500,CMPR2
SPLK   #500,CMPR3
SPLK   #0000011001100110B,ACTRA  ; 引脚PWM1,3,5高有效,2,4,6低有效
SPLK   #01F4H,DBTCONA     ; 死区时间1*32*50ns=1.6us
SPLK   #1000001000000000B,COMCONA  ;允许比较,不用硬件空间矢量
SPLK   #1000100000000010B,T1CON ;连续增减计数方式,预分频=1
;--------------------------------------变量初始化程序-----------------------------------------------------
            LDP    #6                       ; 指向B1
SPLK   #0347H,T_SAMPLE     ;采样周期=50us *224=839秒=347H, Q24格式
SPLK   #16000,T1_PERIODS       ;T1周期值的Q5格式,500*32
SPLK   #11585,MAX_V           ; 最大参考电压幅值1/ ,Q14格式
SPLK   #0,SET_F         ; SET F=0
SPLK   #10053,F_OMEGA        ;频率调节比-角频率转换率,Q5格式
                       ;当SET_F=1时,对应最大角频率2π50Hz*25=10053
SPLK   #0,THETA_L             ;θ低字,Q12格式
SPLK   #0,THETA_H             ; θ高字,Q12格式
LAR   AR0,#THETA_90          ; 传送常用角度和逆阵数据
LAR   AR1,#(28-1)              ; 28个
LACC  #ANGLES_              ; 指向源
LAR   AR0 
INIT_TBL   
            TBLR  *+,AR1                     ; 下一个
ADD   #1                       ; 下一个地址
BANZ  INIT_TBL,AR0              ;AR1=0结束 
SPLK   #29335,THETA_I           ; 相角查表索引,180/π,Q9格式
SPLK   #31291,THETA_S          ; θ-扇区数转换系数,6/(2π),Q15格式
SPLK  #SIN_ENTRY_,SIN_ENTRY    ;SIN表起始地址
SPLK  #(SIN_ENTRY_+90),SIN_END  ;SIN表结束地址
LDP   #232
SPLK   #0000100001000010B,T1CON  ;使能T1
CLRC  INTM                     ; 开总中断
;--------------------------------------主循环程序(SET_F由外部输入)-----------------------------------
MAIN_LOOP   
            LDP  #6
LT    SET_F                  ; 将频率调节比(Q16格式)转换成角频率
MPYU  F_OMEGA               ; Q21
PAC                          ; 积送ACC, Q5格式
SACH  OMEGA               ; 保存角频率,Q5格式
            LT    SET_F                   ;将频率调节比(Q16格式)转换成参考电压
MPYU  MAX_V                 ; Q16*Q14=Q30
PAC 
SACH  SET_V                ; 保存参考电压幅值,Q14格式
B     MAIN_LOOP              ; 循环
;--------------------------------------假中断处理----------------------------------------------------------
PHANTOM   
            CLRC     INTM
            RET
;--------------------------------------T1下溢中断处理子程序----------------------------------------------
_C_INT2    
            SST   #ST0,ST0_SAVE          ; 保存现场ST0
SST   #ST1,ST1_SAVE          ; 保存ST1
LDP   #6 
SACH  ACCH 
SACL  ACCL                 ; 保存ACC
SPH    P_HI 
SPL   P_LO                    ; 保存 P
MPY   #1                      ; P<=T

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -