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

📄 sacmv32.lst

📁 电子词典的设计开发
💻 LST
📖 第 1 页 / 共 5 页
字号:
                            	//	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					
000007AE                    	.RAM
000007AE 00 00              	.VAR 	R_Queue 
000007AF 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      
000007E0 00 00              	.VAR	R_ReadIndex 
000007E1 00 00              	.VAR	R_WriteIndex 
                            	
0000BECA                    	.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:
0000BECA 90 D4              			push r1,r2 to [sp] 
0000BECB 11 93 17 70        	        r1=[P_DAC1] 
0000BECD 09 B3 C0 FF        	        r1 &= ~0x003f 
0000BECF 09 43 00 80        	        cmp     r1,0x8000
0000BED1 0E 0E              	        jb     	L_RU_NormalUp
0000BED2 19 5E              	        je      L_RU_End
                            	                
                            	L_RU_DownLoop:
0000BED3 40 F0 36 BF        	        call    F_Delay         
0000BED5 41 94              	        r2 = 0x0001 
0000BED6 1A D5 12 70        	        [P_Watchdog_Clear] = r2 
0000BED8 09 23 40 00        	        r1 -= 0x40 
0000BEDA 19 D3 17 70        	        [P_DAC1] = r1 
0000BEDC 09 43 00 80        	        cmp     r1,0x8000 
0000BEDE 4C 4E              	        jne     L_RU_DownLoop   
                            	L_RD_DownEnd:
0000BEDF 0C EE              	        jmp     L_RU_End 
                            	
                            	L_RU_NormalUp:
                            	L_RU_Loop:
0000BEE0 40 F0 36 BF        	        call    F_Delay 
0000BEE2 41 94              	        r2 = 0x0001 
0000BEE3 1A D5 12 70        	        [P_Watchdog_Clear] = r2 
0000BEE5 09 03 40 00        	        r1 += 0x40 
0000BEE7 19 D3 17 70        	        [P_DAC1] = r1 
0000BEE9 09 43 00 80        	        cmp     r1, 0x8000 
0000BEEB 4C 4E              	        jne     L_RU_Loop 
                            	L_RU_End:
0000BEEC 90 90              			pop     r1,r2 from [sp] 
0000BEED 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:
0000BEEE 90 D4              			push r1,r2 to [sp] 
                            	  		//int off 
0000BEEF 11 93 17 70        	    	r1 = [P_DAC1] 
0000BEF1 09 B3 C0 FF        	     	r1 &= ~0x003F 
0000BEF3 0A 5E              	      	jz      L_RD_End 
                            	L_RD_Loop:                
0000BEF4 40 F0 36 BF        	        call    F_Delay         
0000BEF6 41 94              	        r2 = 0x0001 
0000BEF7 1A D5 12 70        	        [P_Watchdog_Clear] = r2 
0000BEF9 09 23 40 00        	        r1 -= 0x40 
0000BEFB 19 D3 17 70        	        [P_DAC1] = r1   
0000BEFD 4A 4E              	        jnz     L_RD_Loop 
                            	L_RD_End:       
0000BEFE 90 90              	        pop     r1,r2 from [sp] 
0000BEFF 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:
0000BF00 90 D4              			push r1,r2 to [sp] 
0000BF01 11 93 16 70        	  		r1=[P_DAC2] 
0000BF03 09 B3 C0 FF        	    	r1 &= ~0x003f 
0000BF05 09 43 00 80        	     	cmp     r1,0x8000
0000BF07 0E 0E              	      	jb     	L_RU_NormalUp_   
0000BF08 5D 5E              	       	je      L_RU_End 
                            	                
                            	L_RU_DownLoop_:
0000BF09 40 F0 36 BF        	        call    F_Delay         
0000BF0B 41 94              	        r2 = 0x0001 
0000BF0C 1A D5 12 70        	        [P_Watchdog_Clear] = r2 
0000BF0E 09 23 40 00        	        r1 -= 0x40 
0000BF10 19 D3 16 70        	        [P_DAC2] = r1 
0000BF12 09 43 00 80        	        cmp     r1,0x8000 
0000BF14 4C 4E              	        jne     L_RU_DownLoop_   
                            	L_RD_DownEnd_:
0000BF15 0C EE              	        jmp     L_RU_End_ 
                            	
                            	L_RU_NormalUp_:
                            	L_RU_Loop_:
0000BF16 40 F0 36 BF        			call    F_Delay 
0000BF18 41 94              	  		r2 = 0x0001 
0000BF19 1A D5 12 70        	    	[P_Watchdog_Clear] = r2 
0000BF1B 09 03 40 00        	        r1 += 0x40 
0000BF1D 19 D3 16 70        	        [P_DAC2] = r1 
0000BF1F 09 43 00 80        	        cmp     r1, 0x8000 
0000BF21 4C 4E              	        jne     L_RU_Loop_ 
                            	L_RU_End_:
0000BF22 90 90              	   		pop     r1,r2 from [sp] 
0000BF23 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 
0000BF24 90 D4              			push r1,r2 to [sp] 
                            	                
0000BF25 11 93 16 70        	        r1 = [P_DAC2] 
0000BF27 09 B3 C0 FF        	        r1 &= ~0x003F 
0000BF29 0A 5E              	        jz      L_RD_End_ 
                            	L_RD_Loop_:                
0000BF2A 40 F0 36 BF        	        call    F_Delay         
0000BF2C 41 94              	        r2 = 0x0001 
0000BF2D 1A D5 12 70        	        [P_Watchdog_Clear] = r2 
0000BF2F 09 23 40 00        	        r1 -= 0x40 
0000BF31 19 D3 16 70        	        [P_DAC2] = r1   
0000BF33 4A 4E              	        jnz     L_RD_Loop_ 
                            	L_RD_End_:       
0000BF34 90 90              	        pop     r1,r2 from [sp] 
0000BF35 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:
0000BF36 88 D2              	        push r1 to [sp] 
0000BF37 09 93 50 00        	        r1 = C_RampDelay; 							// Ramp Up/Dn delay per step
                            	
                            	L_D_Loop:
0000BF39 41 22              	        r1 -= 1 
0000BF3A 42 4E              	        jnz     L_D_Loop  
0000BF3B 88 90              	        pop     r1 from [sp] 
0000BF3C 90 9A              	        RETF	 
                            	
                            	
                            	
                            	//////////////////////////////////////////////////////
                            	// Queue Functions
                            	//////////////////////////////////////////////////////				
                            	
                            	////////////////////////////////////////////////////////
                            	// Function: _SP_InitQueue
                            	// Description: Initiate queue for algorism use 
                            	// Syntax  : SP_InitQueue()
                            	// Destory: R1
                            	////////////////////////////////////////////////////////
                            	_SP_InitQueue:	.PROC
                            	_SP_InitQueue_A2000:
                            	_SP_InitQueue_S530:

⌨️ 快捷键说明

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