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

📄 sacmv32.lst

📁 凌阳十六位单片机的实验详细说明及其相对应的源码
💻 LST
📖 第 1 页 / 共 5 页
字号:
                            	  
00008A7C E1 92              	  		r1 = D:[r1] 					// Get data
00008A7D 90 9A              		  	retf
                            	
                            	
                            	////////////////////////////////////////////////////////////////// 
                            	// Function: Delay
                            	// 	void SP_Delay()
                            	//////////////////////////////////////////////////////////////////  
                            	_SP_Delay:	.PROC
                            	F_SP_Delay:
                            			// User define
00008A7E 90 9A              			retf 
                            			.ENDP
                            	
                            	
                            	
                            	//////////////////////////////////////////////////////
                            	// SACM initial functions
                            	//////////////////////////////////////////////////////	
                            	.public F_SP_SACM_A1600_Init_
                            	.PUBLIC F_SP_SACM_A2000_Init_
                            	.PUBLIC F_SP_SACM_S530_Init_
                            	.PUBLIC F_SP_SACM_S480_Init_
                            	.PUBLIC F_SP_SACM_S240_Init_
                            	.public F_SP_SACM_S200_Init_
                            	
                            	.PUBLIC F_SP_SACM_MS01_Init_
                            	.PUBLIC F_SP_PlayMode0_
                            	.PUBLIC F_SP_PlayMode1_    
                            	.PUBLIC F_SP_PlayMode2_  
                            	.PUBLIC F_SP_PlayMode3_   
                            	
                            	.PUBLIC F_SP_SACM_DVR_Init_
                            	.PUBLIC F_SP_SACM_DVR_Rec_Init_
                            	.PUBLIC F_SP_SACM_DVR_Play_Init_
                            	
                            	//----------------------------------------------------
                            	// A1600
                            	//----------------------------------------------------	
                            	///////////////////////////////////////////////////////////////////////////////
                            	// Function: The partial code of hardware setting of SACM_A1600_Initial() 
                            	//			or F_SACM_A1600_Initial:
                            	// Note: The following functions are the partial code of original
                            	//			initial subroutine. (H/W setting part) 
                            	//
                            	//	Ex: F_SACM_A1600_Initial:
                            	//			...
                            	//			call F_SP_SACM_A1600_Init_	: S480/S240/MS01 is same
                            	//			...
                            	//			retf
                            	////////////////////////////////////////////////////////////////////////////////
                            	
                            	F_SP_SACM_A1600_Init_:	
00008A7F 09 93 80 00        			R1 = C_SystemClock;             // 24MHz, Fcpu=Fosc
00008A81 19 D3 13 70        	        [P_SystemClock]=R1           	//  Frequency 20MHz
00008A83 70 92              	        R1 = 0x0030                     // TimerA CKA=Fosc/2 CKB=1 Tout:off
00008A84 19 D3 0B 70        	        [P_TimerA_Ctrl] = R1			// Initial Timer A
00008A86 09 93 FF F9        	        R1 = C_A1600_Timer_Setting                  	// 16K
00008A88 19 D3 0A 70        	        [P_TimerA_Data] = R1 
00008A8A 09 93 A8 00        	        R1 = 0x00A8                     // Set the DAC Ctrl
00008A8C 19 D3 2A 70        	        [P_DAC_Ctrl] = R1
00008A8E 09 93 FF FF        	        R1 = 0xffff
                            	        
00008A90 19 D3 11 70        	        [P_INT_Clear] = R1          	// Clear interrupt occuiped events
00008A92 40 92              	        R1 =0x0000						// 
                            	        
                            	        .if BODY_TYPE == SPCE061A
00008A93 11 93 2D 70        	        R1 = [P_INT_Mask]		//
                            	        .endif
                            	        .if BODY_TYPE == SPCE500A
                            	        R1 = [R_InterruptStatus]		//
                            	        .endif        
                            	        
00008A95 09 A3 00 20        	        R1 |= C_FIQ_TMA					// Enable Timer A FIQ
                            	        //R1 |= C_IRQ4_1KHz
00008A97 19 D3 CB 00        	        [R_InterruptStatus] = R1		//
00008A99 19 D3 10 70        	        [P_INT_Ctrl] = R1				//
                            	
00008A9B 90 9A              			RETF
                            	//----------------------------------------------------
                            	// A2000
                            	//----------------------------------------------------	
                            	///////////////////////////////////////////////////////////////////////////////
                            	// Function: The partial code of hardware setting of SACM_A2000_Initial() 
                            	//			or F_SACM_A2000_Initial:
                            	// Note: The following functions are the partial code of original
                            	//			initial subroutine. (H/W setting part) 
                            	//
                            	//	Ex: F_SACM_A2000_Initial:
                            	//			...
                            	//			call F_SP_SACM_A2000_Init_	: S480/S240/MS01 is same
                            	//			...
                            	//			retf
                            	////////////////////////////////////////////////////////////////////////////////
                            	F_SP_SACM_A2000_Init_:	
00008A9C 09 93 80 00        			R1=C_SystemClock;        // 24MHz, Fcpu=Fosc
00008A9E 19 D3 13 70        	        [P_SystemClock]=R1           	//  Frequency 20MHz
00008AA0 70 92              	        R1 = 0x0030                     // TimerA CKA=Fosc/2 CKB=1 Tout:off
00008AA1 19 D3 0B 70        	        [P_TimerA_Ctrl] = R1			// Initial Timer A
00008AA3 09 93 FF F9        	        R1 = C_A2000_Timer_Setting                   	// 16K
00008AA5 19 D3 0A 70        	        [P_TimerA_Data] = R1 
00008AA7 09 93 A8 00        	        R1 = 0x00A8                     // Set the DAC Ctrl
00008AA9 19 D3 2A 70        	        [P_DAC_Ctrl] = R1
00008AAB 09 93 FF FF        	        R1 = 0xffff
                            	        
00008AAD 19 D3 11 70        	        [P_INT_Clear] = R1          	// Clear interrupt occuiped events
                            	
                            	        
                            	        .if BODY_TYPE == SPCE061A
00008AAF 11 93 2D 70        	        R1 = [P_INT_Mask]		//
                            	        .endif
                            	        .if BODY_TYPE == SPCE500A
                            	        R1 = [R_InterruptStatus]		//
                            	        .endif 
                            	                
00008AB1 09 A3 00 20        	        R1 |= C_FIQ_TMA					// Enable Timer A FIQ
                            	
00008AB3 19 D3 CB 00        	        [R_InterruptStatus] = R1		//
00008AB5 19 D3 10 70        	        [P_INT_Ctrl] = R1				//
                            	
00008AB7 90 9A              			RETF
                            	
                            	
                            	
                            	//----------------------------------------------------
                            	// A3200 1ch
                            	//----------------------------------------------------	
                            	.public F_SP_SACM_A3200_Init_
                            	.public F_SACM_A3200_SetTimerSrc			
                            	.public F_SACM_A3200_SetIntSrc
                            	.public F_SACM_A3200_SendDecodedData
                            	//////////////////////////////////////////////////////////////////
                            	// Function: The partial code of hardware setting of 
                            	//			 SACM_A3200_Initial() or F_SACM_A3200_Initial:
                            	//           Single Channel A3200      
                            	//////////////////////////////////////////////////////////////////
                            	F_SP_SACM_A3200_Init_:	.proc 
                            	//	R1 = 0x0020;		// 20MHz 	
                            	//	R1 = 0x0000;		// 24MHz
                            	//	R1 = 0x0040;		// 32MHz						
                            	//	R1 = 0x0060;		// 40MHz
                            	//	R1 = 0x0080;		// 49MHz
00008AB8 09 93 80 00        		R1 = C_SystemClock
00008ABA 19 D3 13 70        		[P_SystemClock] = R1;
                            		
00008ABC 09 93 A4 00        		R1 = 0x00A4; 			// Latch DAR1 data to DAC1 by TimerA
00008ABE 19 D3 2A 70        		[P_DAC_Ctrl] = R1;  	// Latch DAR2 data to DAC2 by TimerA	
                            		
00008AC0 90 9A              		RETF;
                            	.endp 
                            	//--------------------------------------------------------------------
                            	//-- Function: F_SACM_A3200_SetTimerSrc
                            	//-- Parameter: R1 : TimerData
                            	//-- Return: NONE
                            	//-- Description: This function called by A3200 library to set timer A                 
                            	//--------------------------------------------------------------------
                            	F_SACM_A3200_SetTimerSrc: .proc
00008AC1 88 D4              		push R2 to [sp];
00008AC2 70 94              		R2 = 0x0030;
00008AC3 1A D5 0B 70        		[P_TimerA_Ctrl] = R2;	// select Fosc/2 as Timer A clock source 
00008AC5 19 D3 0A 70        		[P_TimerA_Data] = R1;
00008AC7 88 92              		pop R2 from [sp];
00008AC8 90 9A              		retf;
                            	.endp	
                            	//--------------------------------------------------------------------
                            	//-- Function: F_SACM_A3200_SetIntSrc
                            	//-- Parameter: NONE
                            	//-- Return: NONE
                            	//-- Description: This function called by A3200 library to set  
                            	//                interrupt 
                            	//--------------------------------------------------------------------
                            	F_SACM_A3200_SetIntSrc: .proc 
00008AC9 88 D2              		push R1 to [SP];
                            	    .if BODY_TYPE == SPCE061A
00008ACA 11 93 2D 70        	     R1 = [P_INT_Mask]		//
                            	    .endif
                            	    .if BODY_TYPE == SPCE500A
                            	     R1 = [R_InterruptStatus]		//
                            	    .endif 
                            	
00008ACC 09 A3 00 10        		R1 |= C_IRQ1_TMA;
00008ACE 19 D3 CB 00        		[R_InterruptStatus] = R1;
00008AD0 19 D3 10 70        		[P_INT_Ctrl] = R1;
00008AD2 88 90              		pop R1 from [SP];
00008AD3 90 9A              		RETF;
                            	.endp
                            	//--------------------------------------------------------------------
                            	//-- Function: F_SACM_A3200_SendDecodedData
                            	//-- Parameter: R1 : decoded sample
                            	//-- Return: NONE
                            	//-- Description: This function called by A3200 library to send  
                            	//                decoded data to DACs
                            	//--------------------------------------------------------------------
                            	F_SACM_A3200_SendDecodedData: .proc
00008AD4 19 D3 17 70        		[P_DAC1] = R1;
00008AD6 19 D3 16 70        		[P_DAC2] = R1;
00008AD8 90 9A              		RETF;
                            	.endp 		
                            	
                            			
                            	
                            	//----------------------------------------------------
                            	// A3200 2ch
                            	//----------------------------------------------------	
                            	.public F_SP_SACM_2Ch_A3200_Init_
                            	.public F_SACM_A3200_Ch1_SetTimerSrc			
                            	.public F_SACM_A3200_Ch1_SetIntSrc
                            	.public F_SACM_A3200_Ch1_SendDecodedData
                            	.public F_SACM_A3200_Ch2_SetTimerSrc			
                            	.public 

⌨️ 快捷键说明

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