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

📄 main.asm

📁 DSP变频调速
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	SPLK	#15,LED1
	SPLK	#15,LED2 
	SPLK	#15,LED3 
	CALL	DIS
	ret
		

;;----------------------------------------------------------- 
PHANTOM  
	KICK_DOG
	LDP		#0
	SST 	#ST0,ST0_save 			; save status register ST0
	SST 	#ST1,ST1_save 			; save status register ST1
	LDP 	#0 						; set DP
	SACH 	ACCH 					;
	SACL 	ACCL 
				
	LDP 	#0	
	ZALH 	ACCH 					;
	ADDS 	ACCL			     
	LST 	#ST1,ST1_save			; restore status register ST1
	LST 	#ST0,ST0_save 			; restore status register ST0
	CLRC	INTM 					;
	RET 							; return   
;-------------------------------------------------------------------------
; Interrupt driven inner loop for PWM
;-------------------------------------------------------------------
sine       

	KICK_DOG
	LDP		#0H 
	SST 	#ST0,ST0_save 			; save status register ST0
	SST 	#ST1,ST1_save 			; save status register ST1
	LDP 	#0H 					; set DP
	MAR 	*,AR0 					; set ARP
	SACH 	ACCH 					;
	SACL 	ACCL 					; save ACC
	Sph 	P_hi 					;
	spl 	P_lo 					; save P register
	mpy 	#1 						; P<=T
	spl 	T_save 					; save T register
	sar 	AR0,AR0_save 			; save AR0  
	
    LDP		#04H                
	lacc	count_h,4
	or		count_l
	sacl	count_hl
	lacc	count_hl 
    SFL
    SFL
    SFL 
    ADD		#0FFH               	;;;;;;;;;;;;;;;;;;;
	sacl	vf_cen  
	lacc	count_hl  
	SFL 
	sacl	freqstep

	CALL	sine_pwm

    LDP		#0E8H                    
	LACC	EVIFRA
    SACL	EVIFRA
	LDP 	#0H 					; set DP
	lar 	AR0, AR0_save 			; restore AR0
	lt 		P_lo 					; T<=P_lo
	mpy 	#1 						; P (low byte) <=1*P_lo
	lph 	P_hi 					; P high byte <=P_hi
	lt 		T_save 					; restore T
	ZALH 	ACCH 					;
	ADDS 	ACCL 					; restore ACC
	LDP 	#0 						; point to B2
	LST 	#ST1,ST1_save			; restore status register ST1
	LST 	#ST0,ST0_save 			; restore status register ST0
	CLRC	INTM                
	RET 							; return
			  
;Generate PWM sine wave 
sine_pwm:                       	;sine interrupt service program           


  	LDP     #4h
    LACC    modreg
    add		freqstep
    sacl	modreg
    lacc	modreg,8
    sach	table
    lacc	table 
    sub		#256  
    bcnd	a_wor1,GT  
    
a_wor:
	add		#256  
a_wor1:
	add		toptable
    tblr	sineval   
    
    lt		sineval      			;V/F Control  
    mpy		vf_cen          		;multi a coeficient: count_hl/60h
    pac    
    sach	vf_cmp1
    lacc	vf_cmp1,6

	sacl	vf_cmp1
    lt		vf_cmp1
  	mpy		#normal
 	pac
  	sach	comparet1,1
  	lacc	comparet1
  	add		#normal   
            
  	ldp		#232 
  	SACL	CMPR1 
;-----------------------------------------------------------------------------
    ldp		#4h
	lacl	table
	add		#b_phase
	sub		#256  
    bcnd	b_wor1,GT 
    
b_wor:  
	add		#256 
b_wor1:
	add		toptable 
	tblr	b_sadd  
	 
	lt		b_sadd           		;V/F Control
     
   	mpy		vf_cen           		;multi a coeficient: AD_SAMPLE/3FF
    pac    
    sach	vf_cmp2
    lacc	vf_cmp2,6
     
	sacl	vf_cmp2
	
	lt		vf_cmp2
  	mpy		#normal
  	pac
  	sach	comparet1,1
  	lacc	comparet1
 	add		#normal  

  	ldp		#232 
 	SACL	CMPR2  
;--------------------------------------------------------------------------------- 
    ldp		#4h
	lacl	table
	add		#c_phase 
	sub		#256  
    bcnd	c_wor1,GT  
    
c_wor:   
	add		#256 
c_wor1:
	add		toptable
	tblr	c_sadd 
	
	lt		c_sadd           		;V/F Control   
	
	mpy		vf_cen           		;multi a coeficient: AD_SAMPLE/3FF
    pac    
    sach	vf_cmp3
    lacc	vf_cmp3,6
      
	sacl	vf_cmp3
	lt		vf_cmp3
	
	
  	mpy		#normal
  	pac
  	sach	comparet1,1
  	lacc	comparet1
  	add		#normal 
   	ldp		#232 
	SACL	CMPR3     
	kick_dog
	ldp 	#0E1H		 	 		;
	lacc 	PBDATDIR 		 		; 
	OR		#0FFH
	NOP 
	sacl 	PBDATDIR 		 		;     
	
;-----------------------------------------------------------------------------------	
	
	RET             
;----------------------------------------------------------------------------------- 
; Console Input Routine
_ci:                                

	LDP		#0E0H
	BIT		SCIRXST, 9				; test RXRDY bit
	BCND	_ci, NTC				; if RXRDY NEQ 1, loop back on input 
	KICK_DOG
	RET
;------------------------------------------------------------------------------
; Console Output Routine
_co:
	LDP		#0E0H
	BIT		SCICTL2, 8				; test TXRDY bit
	BCND	_co, NTC				; if TXRDY NEQ 1, loop back on output   
	KICK_DOG
	RET
;------------------------------------------------------------------------------- 
;---------------- HEX CONVERT TO BCD SUB_PROGRAM -------------------------------

hex_bcd                             ;hex to BCD convert sub_program
	
	ldp		#04h	
	lacl	add_temp                ;temp register
hb_loop		        
	KICK_DOG   
	ldp		#04h
	lacl	add_temp
    sub		#0ah                    ;decide if lagrer then 10
    bcnd	add_jixu,geq            ;>0,jump to add_jixu
    add		#0ah                    ;<0,restore
    sacl	add_var_l               ;
    b		add_ret
add_jixu 
	sacl	add_pn                  ;
	lacl	add_cen
	add		#1h
	sacl	add_cen 
	lacl	add_pn
	sacl	add_temp 
	lacl	add_temp   
	
		
	LDP		#0E0H                   ;clear the ERROR flags
	BIT		SCIRXST,8
	BCND	hb_loop,NTC
	LACL	SCICTL1                 ;send 0 to the 8th bit of SCIRXST
	AND		#0FFDFH
	SACL	SCICTL1
	
	LACL	SCICTL1
	OR		#0020H                  ;send 1 to the 8th bit of SCIRXST
	SACL	SCICTL1   
	  
	b		hb_loop
				
add_ret
	lacl	add_cen
	sacl	add_var_h 
	splk	#00h,add_cen  		
	ret
;-----------------------------------------------------------------------------------	

DIS                                 ;display sub_program  
		
		LDP		#0E1H
		LACL	PCDATDIR
		AND		#0FF7FH             ;iopc7=0
		SACL	PCDATDIR  
		LDP		#06H
		MAR		*,AR0
		LAR		AR0,#03H            ;four displayers
		MAR		*,AR1
		LAR		AR1,#LED3 
		
DIS1    
		MAR		*,AR1
		LACL	*-,AR1
		ADD		#led_table 
		LDP		#06H
		TBLR	TEMP 
		
		LACC	TEMP,8
		SACL	TEMP
		LACC	TEMP,16 
		SACH	TEMP	
		MAR		*,AR2
		LAR		AR2,#07H           	;eight sects 
		
DIS2    
		CLRC	C                   ;clear the c flag
		NOP
		SFL                         ;arithmatic left shift
		SACH	TEMP   		
		BCND	NEG_DATA,NC         ;decide the c equal 0>? 
		LDP		#0E1H               ;no
		LACL	PCDATDIR
		OR		#040H               ;iopc6=1
		SACL	PCDATDIR
		B		CONTINUE   
		
NEG_DATA                            ;c=0
		LDP		#0E1H
		LACL	PCDATDIR
		AND		#0FFBFH             ;iopc6=0
		SACL	PCDATDIR   
		
CONTINUE
		
		NOP
		NOP 
		LACL	PCDATDIR
		OR		#080H               ;iopc7=1
		SACL	PCDATDIR 
		NOP
		NOP  
		ldp		#0e1h
		lacc	PCDATDIR   
		AND		#0FF7FH             ;iopc6=0,generate the clk signal
		SACL	PCDATDIR 
		NOP        
		LDP		#06H
		LACC	TEMP,16        
		BANZ	DIS2
		MAR		*,AR0
		BANZ	DIS1   
		MAR		*,AR3
		LAR		AR3,#00H
LOOP
		call	delay_time 
		BANZ	LOOP   
		KICK_DOG
		RET		             


led_table:
		.word	003FH            	;"0"
		.word   0006H            	;"1"
		.word   005BH            	;"2"
		.word   004FH            	;"3"
		.word   0066H            	;"4"
		.word   006DH            	;"5"
		.word   007DH            	;"6"
		.word   0007H            	;"7"
		.word   007FH            	;"8"
		.word   006FH            	;"9"
		.word   0077H            	;"A"
		.word   007CH            	;"B"
		.word   0039H            	;"C"
		.word   005EH            	;"D"
		.word   0079H            	;"E"
		.word   0071H            	;"F""    
	
delay_time:  
		KICK_DOG 
		CLRC	SXM
		LACC	#020H
delay:  
		SUB		#01
		RPT		#80h
		nop
		BCND	delay,NEQ
		NOP
		NOP	     
    	RET          


stable:                    			;Sine look_up table
		.word	0
		.word	804
		.word	1608
		.word	2410
		.word	3212
		.word	4011
		.word	4808
		.word	5602
		.word	6393
		.word	7179
		.word	7962
		.word	8739
		.word	9512
		.word	10278
		.word	11039
		.word	11793 
		.word	12539
		.word	13279
		.word	14010
		.word	14732
		.word	15446
		.word	16151
		.word	16846
		.word	17530
		.word	18204
		.word	18868
		.word	19519
		.word	20159
		.word	20787
		.word	21403
		.word	22005
		.word	22594
		.word	23170
		.word	23731
		.word	24279
		.word	24811
		.word	25329
		.word	25832
		.word	26319
		.word	26790
		.word	27245
		.word	27683
		.word	28105
		.word	28510
		.word	28898
		.word	29268
		.word	29621
		.word	29956
		.word	30273
		.word	30571
		.word	30852
		.word	31113
		.word	31356
		.word	31580
		.word	31785
		.word	31971
		.word	32137
		.word	32285
		.word	32412
		.word	32521
		.word	32609
		.word	32678
		.word	32728
		.word	32757
		.word	32767
		.word	32757
		.word	32728
		.word	32678
		.word	32609
		.word	32521
		.word	32412
		.word	32285
		.word	32137
		.word	31971
		.word	31785
		.word	31580
		.word	31356
		.word	31113
		.word	30852
		.word	30571
		.word	30273
		.word	29956
		.word	29621
		.word	29268
		.word	28898
		.word	28510
		.word	28105
		.word	27683
		.word	27245
		.word	26790
		.word	26319
		.word	25832
		.word	25329
		.word	24811
		.word	24279
		.word	23731
		.word	23170
		.word	22594
		.word	22005
		.word	21403
		.word	20787
		.word	20159
		.word	19519
		.word	18868
		.word	18204
		.word	17530
		.word	16846
		.word	16151
		.word	15546
		.word	14732
		.word	14010
		.word	13279
		.word	12539
		.word	11793
		.word	11039
		.word	10278
		.word	9512
		.word	8739
		.word	7962
		.word	7179
		.word	6393
		.word	5602
		.word	4808
		.word	4011
		.word	3212
		.word	2410
		.word	1608
		.word	804
		.word	0
		.word	64731
		.word	63927
		.word	63125
		.word	62323
		.word	61524
		.word	60727
		.word	59933
		.word	59142
		.word	58356
		.word	57573
		.word	56796
		.word	56023
		.word	55257
		.word	54496
		.word	53742   
		.word	52996
		.word	52256
		.word	51525
		.word	50803
		.word	50089
		.word	49384
		.word	48689
		.word	48005
		.word	47331
		.word	46667
		.word	46016
		.word	45376
		.word	44748
		.word	44132
		.word	43530
		.word	42941
		.word	42365
		.word	41804
		.word	41256
		.word	40724
		.word	40206
		.word	39703   
		.word	39216
		.word	38745
		.word	38290
		.word	37852
		.word	37430
		.word	37025
		.word	36637
		.word	36267
		.word	35914
		.word	35579
		.word	35262
		.word	34964
		.word	34683
		.word	34422
		.word	34179
		.word	33955
		.word	33750
		.word	33564
		.word	33398
		.word	33250
		.word	33123
		.word	33014  
		.word	32926
		.word	32857
		.word	32807
		.word	32778
		.word	32768
		.word	32778
		.word	32807
		.word	32857
		.word	32926
		.word	33014
		.word	33123
		.word	33250
		.word	33398
		.word	33564
		.word	33750
		.word	33955
		.word	34179
		.word	34422
		.word	34683
		.word	34964
		.word	35262
		.word	35579 
		.word	35914
		.word	36267
		.word	36637
		.word	37025
		.word	37430
		.word	37852
		.word	38290
		.word	38745
		.word	39216
		.word	39703
		.word	40206
		.word	40724
		.word	41256
		.word	41804
		.word	42365
		.word	42941
		.word	43530
		.word	44132
		.word	44748
		.word	45376
		.word	46016
		.word	46667   
		.word	47331
		.word	48005
		.word	48689
		.word	49384
		.word	50089
		.word	50803
		.word	51525
		.word	52256
		.word	52996
		.word	53742
		.word	54496
		.word	55257
		.word	56023
		.word	56796
		.word	57573
		.word	58356
		.word	59142
		.word	59933
		.word	60727
		.word	61524
		.word	62323
		.word	63125 
		.word	63927
		.word	64731
		.word	65535
		            
		            
		
		
		
		

⌨️ 快捷键说明

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