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

📄 kaihuan.asm

📁 基于SVPWM的开环V/F控制程序。用tm320lf2407实现。
💻 ASM
📖 第 1 页 / 共 3 页
字号:
            SPLK    #9307H,COMCON   ;A72FH
;***************************************************
            SPLK    #0FFFFH,EVIFRA  
            SPLK    #0FFFFH,EVIFRB  
            SPLK    #0FFFFH,EVIFRC
            SPLK    #0201H,EVIMRA    ;PDPINT
            SPLK    #0001H,EVIMRB     ;T2PERINT,T2COMINT
            SPLK    #0004H,EVIMRC    ;CAP3INT 0000H
            LDP     #DP_0
            LACC    IMR
            OR      #0EH
            SACL    IMR      ;OPEN  INT 2,3,4 ---T1 TIMER UF,PDPINT
            LDP     #DP_EV
            SPLK    #1200H,T2CON 	;9204H
            SPLK    #1240H,T2CON	;9244H
            LDP     #PAGE_VAR
            B       GDI
READKEY1:
            BIT     SWITCH_ST,10          ;IF STOP?
            BCND    GDI, TC            ;IF STOP,FLAG0.0=1
	        LACC    FLAG0               ;IF STOP,FLAG0.1=1
	        OR      #02H
	        SACL    FLAG0 
GDI:
	        BIT     FLAG0,14
	        BCND    STOP,TC
	        BIT     FLAG0,15
	        BCND    LOOP,TC
	        B       READKEY
;---------------------------- READ FGD----------------------------------------
LOOP:      
	        LDP     #PAGE_VAR
            MAR     *,AR1
            LAR     AR1,FREL
            LAR     AR0,FGD  
            CMPR    1                 ;FREL<FGD?
            BCND    LOOP1,TC
            CMPR    0                 ;FREL=FGD?
            BCND    LOOP2,TC
            CALL    DOWN
            B       LOOP2
LOOP1:                        
            CALL    UP
LOOP2:   
            B       READKEY
STOP:       
	        LDP     #PAGE_VAR
            MAR     *,AR1
            LAR     AR1,FREL
            LAR     AR0,#1
            CMPR    1
            BCND    STOP1,TC
            CALL    DOWN
	
	        B       READKEY
STOP1:    
            LDP     #DP_EV
            SPLK    #00H,COMCON   
            LDP     #DP_0
	        LACC    IMR
	        AND     #00H;         #0FFFDH
	        SACL    IMR      ;OPEN  INT 2 ---T1 TIMER UF,PDPINT
            SPLK    #0FFFH,ACTR
            LDP     #PAGE_VAR
	        LACC    FLAG0
	        AND     #0FFFCH
	        SACL    FLAG0
            B       READKEY
;******************THIS IS THE END OF PROGRAM.***************************
UP:  
            MAR     *, AR1
            LAR     AR1,CNT
            LAR     AR0, #0400H        
            CMPR    1
            BCND    END1, TC
            LACC    FREL
            ADD     #1
            SACL    FREL
            SPLK    #0,CNT
            CALL    VMTAB
            CALL    SDELTA
END1:       
       RET
DOWN:
            MAR     *, AR1
            LAR     AR1, CNT
            LAR     AR0, #0400H         ; TCON <= 100
            CMPR   1
            BCND    END2, TC          
            LACC    FREL
            SUB     #1
            SACL    FREL
            SPLK    #0,CNT
            CALL    VMTAB
            CALL    SDELTA
END2:       
	RET
;---------------------- ERROR JUDGE--------------------------
ERROUT: 
            LDP     #PAGE_VAR
            SPLK    #9,FL
            LACC    SWITCH_ST,16
            SFL     
            BCND    ERR7, NC          ;D7=0  ERR
            SFL     
            BCND    ERR6, NC          ;D6=0
            SFL     
            BCND    ERR5,NC           ;D5=0
            SFL     
            BCND    ERR4,NC           ;D4=0
            SFL     
            BCND    ERR3,NC           ;D3=0
            SFL     
            BCND    ERR2,NC           ;D2=0                
            SFL     
            BCND    ERR1, NC          ;D1=0
            SFL                       
            BCND    ERR0, NC          ;D0=0
            SPLK    #08,FL
            LDP     #PAGE_VAR
            SPLK    #0FFFFH, GPR0
            OUT     GPR0, LED1
            OUT     GPR0, LED2  
            B       ERR8
ERR0:       
            SPLK    #0, FL
            B       ERR8
ERR1:  
            SPLK    #01,FL
            B       ERR8
ERR2:  
            SPLK    #02,FL
            B       ERR8
ERR3:  
            SPLK    #03,FL
            B       ERR8
ERR4:  
            SPLK    #04, FL
            B       ERR8
ERR5:  
            SPLK    #05, FL
            B       ERR8
ERR6:  
            SPLK    #06, FL
            B       ERR8
ERR7:  
            SPLK    #07, FL
ERR8:
         RET
DISPWR:
	        LDP     #PAGE_VAR
	        LACC    WR_R0
	        LAR     AR1,#WR_R1
	        MAR     *,AR1
	        RPT     #6
	        ADD     *+
	        RPT     #2
	        SFR
	        SACL    WR_R
	        ABS
            SACL    WR_A
	        SPLK    #10,DIVIDE
	        LACC    WR_A
            RPT     #15
            SUBC    DIVIDE
            SACH    ONE                       ;ONE 
            SACL    TEN
            LACC    TEN                                 
            RPT     #15
            SUBC    DIVIDE
            SACH    TEN                      ;TEN
            SACL    HUNDRED
            LACC    HUNDRED
            RPT     #15
            SUBC    DIVIDE
            SACH    HUNDRED                        ;HUNDRED
            SACL    THOUSAND                     ;THOUSAND              
            LACC    TEN
            SPLK    #STABLE1,GPR0
            ADD     GPR0
            TBLR    VALUEL
            LACC    ONE
            ADD     GPR0
            TBLR    VALUEH
            LACC    VALUEH,8
            OR      VALUEL
            SACL    GPR0
            OUT     GPR0,LED1
            LACC    THOUSAND       
            SPLK    #STABLE2,GPR0
            ADD     GPR0
            TBLR    VALUEL
            LACC    HUNDRED
            ADD     GPR0
            TBLR    VALUEH
            LACC    VALUEH,8
            OR      VALUEL
            SACL    GPR0
            BIT     FLAG0,12
            BCND    DISPWR2,TC
            LAR     AR0,THOUSAND
            MAR     *,AR1
            LAR     AR1,#0
            CMPR    0
            BCND    DISPWR1,TC
            AND     #0FFFBH
            SACL    GPR0       
            B       DISPWR2
DISPWR1:
  	        OR      #000FFH
	        AND     #0FFFBH
	        SACL    GPR0                 
DISPWR2:    
            OUT     GPR0,LED2
            RET
;=====================================================
DISFGD:     LDP     #PAGE_VAR
            LACC    FGD
            SPLK    #10, DIVIDE          ;TEN
	        RPT     #15
            SUBC    DIVIDE
            SACH    ONE
            SACL    TEN      
            LACC    TEN
            SPLK    #STABLE2,GPR0
            ADD     GPR0
            TBLR    VALUEL
            LACC    ONE
            ADD     GPR0
            TBLR    VALUEH
            LACC    VALUEH,8
            OR      VALUEL
            SACL    GPR0
            OUT     GPR0,LED2
           RET
DISFREL:    LDP     #PAGE_VAR
            LACC    FREL
            SPLK    #10, DIVIDE                  ;TEN
	        RPT     #15
            SUBC    DIVIDE
            SACH    ONE
            SACL    TEN      
            LDP     #PAGE_VAR
            LACC    TEN
            SPLK    #STABLE1,GPR0
            ADD     GPR0
            TBLR    VALUEL
            LACC    ONE
            ADD     GPR0
            TBLR    VALUEH
            LACC    VALUEH,8
            OR      VALUEL
            SACL    GPR0
            OUT     GPR0,LED1
            RET
;-----------------------------ERROR  DISPLAY-----------------------------
DISERR:   
            LDP     #PAGE_VAR
            LACC    FL
            SPLK    #STABLE2,GPR0
            ADD     GPR0
            TBLR    GPR1
            LACC    GPR1,8
            OR      #00FFH
            SACL    GPR1
            OUT     GPR1,LED2
            OUT     GPR1,LED2          
          RET          
;===============================================================
PHANTOM: 	KICK_DOG				;RESETS WD COUNTER
		    RET;	B	PHANTOM
;****************SEARCH DELTA********************RY
SDELTA:
	        LDP     #PAGE_VAR          
	        LACC    FREL,3
	        SACL    GPR0
	        LT      GPR0
	        SPLK    #5033,GPR1
	        MPY     GPR1
	        PAC
	        SACH    DELTA
	        RET			        
VMTAB:
	        LDP     #PAGE_VAR
	        LT      FREL
	        MPY     UDMAX		
	        PAC
	        SACL    UDG
	        SACL    REAL
	        MPY     UQMAX		
	        PAC
	        SACL    UQG
	        SACL    IMAG
	        CALL    R_PT
	        LACC    P_VALUE
	        SACL    USG
	        LACC    P_THITA
	        SACL    UDQTHITA
	        RET
;=============R/P TRANSFORMATION =============
R_PT:
            SETC    SXM
            LDP     #PAGE_VAR
            LACC    REAL
            ABS
            SACL    BUFFER0
            BCND    R_PT6,EQ       ;IF REAL=0 GO R_PT6
            LACC    IMAG
            ABS     
            SACL    BUFFER1
            BCND    R_PT9,EQ      ;IF IMAG=0 GO R_PT9
            SUB     BUFFER0
            BCND    R_PT2,EQ      ;IF IMAG=REAL GO R_PT2
            BCND    R_PT1,GT      ;IF IMAG>REAL GO R_PT1
            LACC    BUFFER1,10       ; IMAG<REAL 
            RPT     #15
            SUBC    BUFFER0
            SACL    P_GPRP
            ADD     #SQRTTAB
            TBLR    BUFFER2
            LT      BUFFER0
            MPY     BUFFER2
            PAC
            SACH    BUFFER2,2
            LACC    P_GPRP
            ADD     #ATANTAB
            TBLR    BUFFER3
            B       R_PT3
R_PT1:					;IMAG>REAL 
	        LACC    BUFFER0,10
	        RPT     #15
      	    SUBC    BUFFER1
	        SACL    P_GPRP
	        ADD     #SQRTTAB
	        TBLR    BUFFER2
	        LT      BUFFER1
	        MPY     BUFFER2
	        PAC
	        SACH    BUFFER2,2
	        LACC    P_GPRP
	        ADD     #ATANTAB
	        TBLR    BUFFER3
	        LACC    #DEGREE90
	        SUB     BUFFER3
	        SACL    BUFFER3
	        B       R_PT3
R_PT2:					;IMAG=REAL 
	        SPLK    #DEGREE45,BUFFER3
	        LT      BUFFER0
	        SPLK    #SQRT2,BUFFER1
	        MPY     BUFFER1
	        PAC
	        SACH    BUFFER2,2
R_PT3:              
	        LACC    REAL
	        BCND    R_PT5,GT		;REAL>0 GO R_PT5
	        LACC    IMAG		;REAL<0
	        BCND    R_PT4,LT		;REAL<0 & IMAG<0 GO R_PT4
	        LACC    #DEGREE180	;REAL<0 & IMAG>0 
	        SUB     BUFFER3
	        SACL    BUFFER3
	        B       R_PTZ
R_PT4:	    			;REAL<0 & IMAG<0 
	        LACC    #DEGREE180
	        ADD     BUFFER3
	        SACL    BUFFER3
	        B       R_PTZ
R_PT5:      
	        LACC    IMAG
	        BCND    R_PTZ,GT		;REAL>0 & IMAG>0 GO R_PTZ
	        LACC    #DEGREE360	;REAL>0 & IMAG<0 GO R_PTZ
	        SUB     BUFFER3
	        SACL    BUFFER3
	        B       R_PTZ
R_PT6:      
	        LACC    IMAG
	        BCND    R_PT8,EQ       	;REAL=0 & IMAG=0 GO R_PT8
	        BCND    R_PT7,LT		;REAL=0 & IMAG<0 GO R_PT7
	        ABS     
	        SACL    BUFFER2		;REAL=0 & IMAG>0
	        SPLK    #DEGREE90,BUFFER3
	        B       R_PTZ
R_PT7:      
	        ABS
	        SACL    BUFFER2
	        SPLK    #DEGREE270,BUFFER3
	        B       R_PTZ
R_PT8:	    			;REAL=0 & IMAG=0 
	        SPLK    #0,BUFFER2
	        SPLK    #0,BUFFER3
	        B       R_PTZ
R_PT9:	    		      ;IMAG=0
	        LACC    REAL		
	        BCND    R_PTA,LT	      ;IF IMAG=0 & REAL<0 GO R_PTA
	        SACL    BUFFER2              ;IMAG=0 & REAL>0 
	        SPLK    #DEGREE0,BUFFER3
	        B       R_PTZ
R_PTA:      
	        ABS
	        SACL    BUFFER2
	        SPLK    #DEGREE180,BUFFER3
R_PTZ:              
	        LACC    BUFFER2
	        SACL    P_VALUE 
	        LACC    BUFFER3
	        SACL    P_THITA
	        RET

EVCINT:
            MAR     *,AR7
            SST     #ST1,*-
            SST     #ST0,*-
            SACH    *-
            SACL    *-
            SAR     AR0,*-
            LDP     #DP_0
            LACC    IMR
            SACL    *-
            SPH     *-
            SPL     *-
            MPY     #1
            SPL     *-
            SPLK    #02H,IMR
            CLRC    INTM
            SPLK    #02H,IMR
            SETC    SXM                                ;EXTEND SIGNAL
            LDP     #DP_EV
            LACL    EVIVRC
            LACL    EVIMRC              
            AND     #000BH                     ;CLOSE CAPTURE3
            SACL    EVIMRC

⌨️ 快捷键说明

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