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

📄 sacmv32.lst

📁 凌阳十六位单片机的实验详细说明及其相对应的源码
💻 LST
📖 第 1 页 / 共 5 页
字号:
                            	
                            	
                            	.PUBLIC	_SP_GetResource	
                            	
                            	.PUBLIC	F_RampUpDAC1 
                            	.PUBLIC	F_RampDnDAC1 
                            	.PUBLIC	F_RampUpDAC2 
                            	.PUBLIC	F_RampDnDAC2 
                            	.PUBLIC	_STD_RampUpDAC1 
                            	.PUBLIC	_STD_RampDnDAC1 
                            	.PUBLIC	_STD_RampUpDAC2 
                            	.PUBLIC	_STD_RampDnDAC2 
                            	
                            	
                            	/////////////////////////////////////////////////////////////////
                            	// Note: This register map to the P_INT_Ctrl(0x7010)
                            	// 	User's interrupt setting have to combine with this register 
                            	//	while co-work with SACM library.
                            	//
                            	//  See. following function for example:
                            	//	F_SP_SACM_A2000_Init_:
                            	//	F_SP_SACM_S480_Init_:
                            	//	F_SP_SACM_S240_Init_:
                            	//	F_SP_SACM_MS01_Init_:
                            	//	F_SP_SACM_DVR_Init_: 
                            	//////////////////////////////////////////////////
                            	
                            	.external R_InterruptStatus // declared in spce.asm
                            	//////////////////////////////////////////////////
                            	
                            	.define C_QueueSize 50					
00000091                    	.RAM
00000091 00 00              	.VAR 	R_Queue 
00000092 00 00 00 00        	.DW		C_QueueSize-1	DUP(0) 
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00 00 00
         00 00      
000000C3 00 00              	.VAR	R_ReadIndex 
000000C4 00 00              	.VAR	R_WriteIndex 
                            	
000089A7                    	.CODE
                            	//////////////////////////////////////////////////////
                            	// Ramp Functions
                            	//////////////////////////////////////////////////////	
                            	////////////////////////////////////////////////////////
                            	// Function: _SP_RampUpDAC1
                            	// Description: Ramp Up before using DAC to avoid "bow" sound
                            	//              from speaker 
                            	// Syntax  : SP_RampUpDAC1()
                            	// Destory: R1,R2
                            	////////////////////////////////////////////////////////
                            	_SP_RampUpDAC1:	.PROC
                            	F_SP_RampUpDAC1:
000089A7 90 D4              			push r1,r2 to [sp] 
000089A8 11 93 17 70        	        r1=[P_DAC1] 
000089AA 09 B3 C0 FF        	        r1 &= ~0x003f 
000089AC 09 43 00 80        	        cmp     r1,0x8000
000089AE 0E 0E              	        jb     	L_RU_NormalUp
000089AF 19 5E              	        je      L_RU_End
                            	                
                            	L_RU_DownLoop:
000089B0 40 F0 13 8A        	        call    F_Delay         
000089B2 41 94              	        r2 = 0x0001 
000089B3 1A D5 12 70        	        [P_Watchdog_Clear] = r2 
000089B5 09 23 40 00        	        r1 -= 0x40 
000089B7 19 D3 17 70        	        [P_DAC1] = r1 
000089B9 09 43 00 80        	        cmp     r1,0x8000 
000089BB 4C 4E              	        jne     L_RU_DownLoop   
                            	L_RD_DownEnd:
000089BC 0C EE              	        jmp     L_RU_End 
                            	
                            	L_RU_NormalUp:
                            	L_RU_Loop:
000089BD 40 F0 13 8A        	        call    F_Delay 
000089BF 41 94              	        r2 = 0x0001 
000089C0 1A D5 12 70        	        [P_Watchdog_Clear] = r2 
000089C2 09 03 40 00        	        r1 += 0x40 
000089C4 19 D3 17 70        	        [P_DAC1] = r1 
000089C6 09 43 00 80        	        cmp     r1, 0x8000 
000089C8 4C 4E              	        jne     L_RU_Loop 
                            	L_RU_End:
000089C9 90 90              			pop     r1,r2 from [sp] 
000089CA 90 9A              	  		retf 
                            	    	.ENDP
                            	    
                            	////////////////////////////////////////////////////////
                            	// Function: _SP_RampDnDAC1
                            	// Description: Ramp down after using DAC to avoid "bow" sound
                            	//              from speaker 
                            	// Syntax  : SP_RampDnDAC1()
                            	// Destory: R1,R2
                            	////////////////////////////////////////////////////////
                            	_SP_RampDnDAC1:	.PROC
                            	F_SP_RampDnDAC1:
000089CB 90 D4              			push r1,r2 to [sp] 
                            	  		//int off 
000089CC 11 93 17 70        	    	r1 = [P_DAC1] 
000089CE 09 B3 C0 FF        	     	r1 &= ~0x003F 
000089D0 0A 5E              	      	jz      L_RD_End 
                            	L_RD_Loop:                
000089D1 40 F0 13 8A        	        call    F_Delay         
000089D3 41 94              	        r2 = 0x0001 
000089D4 1A D5 12 70        	        [P_Watchdog_Clear] = r2 
000089D6 09 23 40 00        	        r1 -= 0x40 
000089D8 19 D3 17 70        	        [P_DAC1] = r1   
000089DA 4A 4E              	        jnz     L_RD_Loop 
                            	L_RD_End:       
000089DB 90 90              	        pop     r1,r2 from [sp] 
000089DC 90 9A              	        retf 
                            			.ENDP
                            	
                            	////////////////////////////////////////////////////////
                            	// Function: _SP_RampUpDAC2
                            	// Description: Ramp Up before using DAC to avoid "bow" sound
                            	//              from speaker 
                            	// Syntax  : SP_RampUpDAC2()
                            	// Destory: R1,R2
                            	////////////////////////////////////////////////////////
                            	_SP_RampUpDAC2:	.PROC
                            	F_SP_RampUpDAC2:
000089DD 90 D4              			push r1,r2 to [sp] 
000089DE 11 93 16 70        	  		r1=[P_DAC2] 
000089E0 09 B3 C0 FF        	    	r1 &= ~0x003f 
000089E2 09 43 00 80        	     	cmp     r1,0x8000
000089E4 0E 0E              	      	jb     	L_RU_NormalUp_   
000089E5 5D 5E              	       	je      L_RU_End 
                            	                
                            	L_RU_DownLoop_:
000089E6 40 F0 13 8A        	        call    F_Delay         
000089E8 41 94              	        r2 = 0x0001 
000089E9 1A D5 12 70        	        [P_Watchdog_Clear] = r2 
000089EB 09 23 40 00        	        r1 -= 0x40 
000089ED 19 D3 16 70        	        [P_DAC2] = r1 
000089EF 09 43 00 80        	        cmp     r1,0x8000 
000089F1 4C 4E              	        jne     L_RU_DownLoop_   
                            	L_RD_DownEnd_:
000089F2 0C EE              	        jmp     L_RU_End_ 
                            	
                            	L_RU_NormalUp_:
                            	L_RU_Loop_:
000089F3 40 F0 13 8A        			call    F_Delay 
000089F5 41 94              	  		r2 = 0x0001 
000089F6 1A D5 12 70        	    	[P_Watchdog_Clear] = r2 
000089F8 09 03 40 00        	        r1 += 0x40 
000089FA 19 D3 16 70        	        [P_DAC2] = r1 
000089FC 09 43 00 80        	        cmp     r1, 0x8000 
000089FE 4C 4E              	        jne     L_RU_Loop_ 
                            	L_RU_End_:
000089FF 90 90              	   		pop     r1,r2 from [sp] 
00008A00 90 9A              	     	retf 
                            	      	.ENDP
                            	
                            	////////////////////////////////////////////////////////
                            	// Function: _SP_RampDnDAC2
                            	// Description: Ramp down after using DAC to avoid "bow" sound
                            	//              from speaker 
                            	// Syntax  : SP_RampDnDAC2()
                            	// Destory: R1,R2
                            	////////////////////////////////////////////////////////
                            	_SP_RampDnDAC2:	.PROC
                            	F_SP_RampDnDAC2:
                            			//int off 
00008A01 90 D4              			push r1,r2 to [sp] 
                            	                
00008A02 11 93 16 70        	        r1 = [P_DAC2] 
00008A04 09 B3 C0 FF        	        r1 &= ~0x003F 
00008A06 0A 5E              	        jz      L_RD_End_ 
                            	L_RD_Loop_:                
00008A07 40 F0 13 8A        	        call    F_Delay         
00008A09 41 94              	        r2 = 0x0001 
00008A0A 1A D5 12 70        	        [P_Watchdog_Clear] = r2 
00008A0C 09 23 40 00        	        r1 -= 0x40 
00008A0E 19 D3 16 70        	        [P_DAC2] = r1   
00008A10 4A 4E              	        jnz     L_RD_Loop_ 
                            	L_RD_End_:       
00008A11 90 90              	        pop     r1,r2 from [sp] 
00008A12 90 9A              	        retf 
                            			.ENDP
                            	
                            		
                            	//-------------------------------------------------------
                            	// Function: F_Delay
                            	// Description: Provide delay for Ramp up/down 
                            	//              The delay time is adjustable by adjusting C_RampDelay
                            	// Destory: R1
                            	//-------------------------------------------------------			
                            	F_Delay:
00008A13 88 D2              	        push r1 to [sp] 
00008A14 09 93 50 00        	        r1 = C_RampDelay; 							// Ramp Up/Dn delay per step
                            	
                            	L_D_Loop:
00008A16 41 22              	        r1 -= 1 
00008A17 42 4E              	        jnz     L_D_Loop  
00008A18 88 90              	        pop     r1 from [sp] 

⌨️ 快捷键说明

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