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

📄 c7_4_1.asm

📁 dsp入门与实践一书的源代码
💻 ASM
字号:

   



		.title  "spwm_generate.asm" 
		
		.include "lf2407_regs.h"  
		.include "spwm_generate_vec.asm"
	    
	    .ref F$$ITOF,F$$DIV,F$$MUL,F$$FTOI,F$$ADD,F$$LTOF,F$$SUB
		.ref _sin
		.def _cy_begin 
        
        .data
Input_Temp      .word  00h   
Output_Temp     .word  00h 
ST0_CON1     .word  00h
ST1_CON1     .word  00h 

STACK      .usect   "STACKS",100h

FCL		 	.usect  	"data_PRM",1	
FCH		 	.usect  	"data_PRM",1	
FRL		 	.usect  	"data_PRM",1	
FRH		 	.usect  	"data_PRM",1	
AL		 	.usect  	"data_PRM",1	
AH		 	.usect  	"data_PRM",1	
N           .usect  	"data_PRM",1	NL			.usect  	"data_PRM",1		
NH		 	.usect  	"data_PRM",1		
I		 	.usect  	"data_PRM",1	
T3PR_TEMPL  .usect 		"data_PRM",1	
T3PR_TEMPH	.usect 		"data_PRM",1	
DATIOL	    .usect 		"data_PRM",1	
DATIOH      .usect 		"data_PRM",1	
DFLAG		.usect  	"data_PRM",1	
		
		.text
_cy_begin:
		NOP
     	CALL	SYSINIT				
        CALL	PWM_INIT			
        	LDP		#5
		SPLK		#2710H,FCL	
		SPLK		#0,FCH
		SPLK		#032H,FRL	
		SPLK		#0,FRH
		SPLK		#3E8H,AL	
		SPLK		#0,AH
		SPLK		#0,I		
		SPLK		#1,DFLAG
        	CALL    JISUAN 
        	
LOOP:
		LDP		#5
		BIT		DFLAG,BIT0
		BCND	LOOP,NTC
		LACL	DFLAG
		AND		#0FFFEH
		SACL	DFLAG
		CALL	DATIO
		B		LOOP
;(3)系统初始化程序
SYSINIT:
		SETC		INTM 
		CLRC	CNF
		LDP		#0
		SPLK		#02h,IMR		
		SPLK		#0FFFFh,IFR		
		LDP		#DP_PF1
		SPLK		#0E8h,WDCR		
		LDP 		#00E0H
		SPLK 	#81FEH,SCSR1    		
		RET	
;(4)EVB模块的PWM初始化程序
PWM_INIT:
		LDP		#DP_PF2
		LACL	MCRA
		OR		#07EH			
		SACL	MCRC				
		LACL	MCRC
		OR		#600h
		SACL	MCRC
		LDP		#DP_EVB
		SPLK		#0FFFFh,EVBIFRA		
		SPLK		#0555h,ACTRB		
		SPLK		#00h,DBTCONB		
		SPLK		#1fh,CMPR4		
		SPLK		#2Fh,CMPR5
		SPLK		#3fh,CMPR6
		SPLK		#0960h,T3PR		
		LDP		#5
		SPLK		#0960h,T3PR_TEMPL
		SPLK		#0,T3PR_TEMPH
		LDP		#DP_EVB
		SPLK		#0A600h,COMCONB		
		SPLK		0,T3CNT
		SPLK		#41h,GPTCONB
		SPLK		#080h,EVBIMRA
		SPLK		#0000101101001110b,T3CON
		CLRC	INTM
		RET

JISUAN: LDP		#5					
		LACL	AL
		LRLK    AR1,STACK	  	
	 	SETC 	SXM	
		CALL	F$$ITOF,AR1		
		CLRC	SXM
		MAR		*-
		LACC	*-,16
	 	ADDS	*
	 	SACL	AL
	 	SACH	AH 	
		LRLK	AR1,STACK		
	 	SETC		SXM
	 	LACL	#0
	 	SACL	*+
		LACL	#44FAH			
	 	SACL	*+
	 	LACL	AL
	 	SACL	*+
	 	LACL	AH
	 	SACL	*+
	 	CALL	F$$DIV
	 	MAR		*-
		LACC	*-,16
		ADDS	*
		SACL	AL
		SACH	AH
		LACL	T3PR_TEMPL
		LRLK    AR1,STACK
		SETC 	SXM			
;的值转换为浮点数
		CALL	F$$ITOF,AR1		
	 	CLRC	SXM
	 	MAR		*-
	 	LACC	*-,16
		ADDS	*
		SACL	T3PR_TEMPL
		SACH	T3PR_TEMPH
	 	LACL	FCL			
	 	LRLK    AR1,STACK 
	 	SETC 	SXM 	
	 	CALL	F$$LTOF,AR1
	 	CLRC	SXM
		MAR		*-
		LACC	*-,16
 		ADDS	*
	 	SACL	FCL
	 	SACH	FCH
		LACL	FRL
	 	LRLK    AR1,STACK
	 	SETC 	SXM		  	
	 	CALL	F$$ITOF,AR1
	 	CLRC	SXM
		MAR		*-
	 	LACC	*-,16
	 	ADDS	*
	 	SACL	FRL
	 	SACH	FRH
	 	LRLK    AR1,STACK		
	 	LACL	FRL
		SACL	*+
		LACL	FRH
		SACL	*+
		LACL	FCL
		SACL	*+
		LACL	FCH
		SACL	*+
		CALL	F$$DIV
		MAR		*-
		LACC	*-,16
		ADDS	*
		SACL	NL
		SACH	NH			
		LRLK    AR1,STACK
		SETC 	SXM
		SACL	*+
		SACH	*+
		CALL	F$$FTOI
	 	SACL	N			
	 	LRLK	AR1,STACK
	 	SACL	*+
		LACL	NH
	 	SACL	*+
	 	LACL	#0F5C3H			
	 	SACL	*+
	 	LACL	#40C8H
	 	SACL	*+
	 	CALL	F$$DIV
		MAR	*-
		LACC	*-,16
		ADDS	*
		SACL	NL
		SACH	NH
		RET

DATIO:
		LDP		#5
		LACL	I   			
		LRLK    AR1,STACK
		SETC		SXM
		CALL	F$$ITOF,AR1
		CLRC	SXM
	 	MAR		*-
	 	LACC	*-,16
	 	ADDS	*				
	 	LRLK	AR1,STACK			
	 	SACL	*+	
		SACH	*+
		LACL	NL
		SACL	*+
		LACL	NH
		SACL	*+
		CALL	F$$MUL
		MAR		*-
		ZALH	*-
		ADDS	*
		LRLK    AR1,STACK			
		SACL	*+
		SACH	*+
		CALL	_sin				
		LRLK    AR1,STACK			
		SACL	*+
		SACH	*+
		LACL	AL
		SACL	*+
		LACL	AH
		SACL	*+
		CALL	F$$MUL
		MAR		*-
		ZALH	*-
		ADDS	*				
		LRLK    AR1,STACK			
		SACL	*+
		SACH	*+
		LACL	#0
		SACL	*+
		LACL	#3F00H				
		SACL    *+
		CALL	F$$ADD
		MAR		*-
		ZALH	*-
		ADDS	*				
		LRLK	AR1,STACK
		SACL	*+
		SACH	*+
		LACL	T3PR_TEMPL
		SACL	*+
		LACL	T3PR_TEMPH
		SACL	*+
		CALL	F$$MUL
		MAR		*-
		ZALH	*-
		ADDS	*				
		LRLK    AR1,STACK			
		SETC 		SXM	
		SACL		*+
		SACH	*+
	 	CALL	F$$FTOI,AR1
	 	CLRC	SXM				
	 	SACL	DATIOL 
	 	LDP		#5
		LACC	I
		SUB		N
		BCND	NSPWM,GEQ
		LACC	I
		ADD		#1
		SACL	I
		B	 	RRET
NSPWM:	SPLK		#0,I				
RRET:	RET 
   


GISR2:
		SST		#0,ST0_CON1		
		SST		#1,ST1_CON1	
		LDP		#0E0h			
		LACC	PIVR,1				
		ADD		#PVECTORS		
		BACC
		
T3GP_ISR:
		LDP		#5 
		LACC	DFLAG
		OR		#1			
		SACL	DFLAG	
		LACL	DATIOL
		LDP		#DP_EVB
		SACL	CMPR4				
		ADD		#32H
		SACL	CMPR5
		ADD		#32H
		SACL	CMPR6
		LDP		#0
		LST		#1,ST1_CON1
		LST		#0,ST0_CON1
		LDP		#DP_EVB
		SPLK		#0FFFFH,EVBIFRA
		CLRC	INTM
		RET

PHANTOM: 	
        LDP #DP_PF1
        SPLK #05555h,WDKEY				
		SPLK #0AAAAh,WDKEY
		RET
		
        .end
        

⌨️ 快捷键说明

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