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

📄 key.lst

📁 电子竞赛—具有语音功能的RCL测试仪
💻 LST
📖 第 1 页 / 共 2 页
字号:
                     <      	.EXTERNAL 	F_SP_Write_INT_Status;			// for further use
                     <      	.EXTERNAL  	F_SP_Set_INT_Vector;			// for further use
                     <      	.EXTERNAL	F_SP_Clear_INT_Vector;			// for further use
                     <      	
                     <      	.EXTERNAL	F_SP_Send_Out;					//
                     <      	.EXTERNAL	F_SP_Send_DAC1;					//
                     <      	.EXTERNAL	F_SP_Send_DAC2;					//
                     <      	.EXTERNAL	F_SP_Send_Two_DAC;				//
                     <      	.EXTERNAL	F_SP_Init_HW;					//
                     <      	
                     <      	.EXTERNAL	R_InterruptStatus;
                     <      	
                     <      	
                     <      	.EXTERNAL 	F_SP_RampUpDAC1;
                     <      	.EXTERNAL 	F_SP_RampDnDAC1;
                     <      	.EXTERNAL 	F_SP_RampUpDAC2;
                     <      	.EXTERNAL  	F_SP_RampDnDAC2;
                     <      	
                     <      	.EXTERNAL 	F_SP_InitQueue;
                     <      	.EXTERNAL 	F_SP_ReadQueue;
                     <      	.EXTERNAL 	F_SP_WriteQueue;
                     <      	.EXTERNAL 	F_SP_TestQueue;
                     <      	
                     <      	
                     <      	
                     <      	.EXTERNAL	F_SP_Get_ADC
                     <      	
                     <      	.EXTERNAL 	F_SP_Set_P_TimerA_Ctrl
                     <      	.EXTERNAL 	F_SP_Set_P_TimerA_Data
                     <      	.EXTERNAL 	F_SP_Set_P_TimerB_Ctrl
                     <      	.EXTERNAL 	F_SP_Set_P_TimerB_Data
                     <      	.EXTERNAL 	F_SP_Set_P_INT_Ctrl
                     <      	.EXTERNAL 	F_SP_Set_P_INT_Clear
                     <      	.EXTERNAL 	F_SP_Set_P_SystemClock
                     <      	.EXTERNAL 	F_SP_Set_P_DAC_Ctrl
                     <      	.EXTERNAL 	F_SP_Set_P_ADC_Ctrl
                     <      	
                     <      		
                     <      	
                     <      	//--------------------------------------------
                     <      	SACM_MACRO1: 	.MACRO
                     <      		
                     <      		.ENDM
                     <      	
                     <      	SACM_MACRO2:	.MACRO
                     <      		
                     <      		.ENDM
                     <      	
                     <      	
                     <      	
                     <      	
                     <      	//.define PC_Play_Enable_A2000		1    	// Enable the PC-Play function for SACM-A2000 module
                     <      	//.define PC_Play_Enable_S480		1    	// Enable the PC-Play function for SACM-S480 module
                     <      	//.define PC_Play_Enable_S240		1    	// Enable the PC-Play function for SACM-S240 module    
                     <      	//.define PC_Play_Enable_MS01		1    	// Enable the PC-Play function for SACM-MS01 module
                     <      	
                     <      	
                     <      	
                     <      	//========================================================================================        
                     <      	// End of hardware.inc
                     <      	//========================================================================================
                            	
                            	.PUBLIC	F_Key_Scan_Initial;
                            	.PUBLIC _Key_Scan_ServiceLoop;
                            	.PUBLIC F_Key_Scan_ServiceLoop;
                            	//.PUBLIC F_Key_Scan_ServiceLoop_2;
                            	.PUBLIC F_Key_DebounceCnt_Down;
                            	.PUBLIC _SP_GetCh;
                            	.PUBLIC	F_SP_GetCh;
                            	
                            	.PUBLIC R_KeyStrobe;
                            	
                            	//////////////////////////////////////////////////////////////////
                            	// RAM Define Area								
                            	//////////////////////////////////////////////////////////////////
000001DA                    	.RAM
000001DA 00 00              	.VAR	R_DebounceReg;						//for keyboard scan
                            	.DEFINE C_DebounceCnt			0x0005;		
                            	
000001DB 00 00              	.VAR	R_DebounceCnt;						//for keyboard scan
000001DC 00 00              	.VAR	R_KeyBuf;							//for keyboard scan
000001DD 00 00              	.VAR	R_KeyStrobe;						//for keyboard scan
                            	
000095CA                    	.CODE
                            	//////////////////////////////////////////////////////////////////
                            	// Function: Initialization for F_Key_Scan_ServiceLoop
                            	//////////////////////////////////////////////////////////////////     
                            	_Key_Scan_ServiceLoop:
                            	F_Key_Scan_Initial:
000095CA 40 92              			r1 = 0x0000;					//
000095CB 19 D3 DA 01        			[R_DebounceReg] = r1;			//
000095CD 19 D3 DC 01        			[R_KeyBuf] = r1; 				//
000095CF 19 D3 DD 01        			[R_KeyStrobe] = r1;				//
000095D1 45 92              			r1 = C_DebounceCnt;				//
000095D2 19 D3 DB 01        			[R_DebounceCnt] = r1;			//reset debounce counter
000095D4 90 9A              			retf;
                            	
                            	//////////////////////////////////////////////////////////////////
                            	// Function: Get Key code from key pad(8 x 1 key pad)
                            	// Input: Port IOA b7-b0
                            	// Output: R_KeyStrobe b7-b0
                            	//          | 	  |     |     | 
                            	// +Vcc --- x --- x ... x --- x ---   
                            	//          |     |     |     |
                            	//          IOA.7             IOA.0
                            	// Note: 1)link F_DebounceCntDown is necessary 
                            	// Destory register: r1, r2                                            
                            	////////////////////////////////////////////////////////////////// 
                            	F_Key_Scan_ServiceLoop:
                            			
000095D5 11 93 00 70        	     	r1 = [P_IOA_Data];			// get key data from IOA   
                            	    	//r1 = [P_IOB_Data];			// get key data from IOB
                            		    	
000095D7 47 B2              	        r1 = r1 and 0x7;				//
000095D8 12 95 DA 01        	        r2 = [R_DebounceReg];			//
000095DA 19 D3 DA 01        	        [R_DebounceReg] = r1;			//
000095DC 12 45 DA 01        	        cmp r2,[R_DebounceReg];			//
000095DE 04 5E              	        je	L_KS_StableTwoSample;		//
                            	        
000095DF 45 92              	        r1 = C_DebounceCnt;				//debounce time setting
000095E0 19 D3 DB 01        	        [R_DebounceCnt] = r1;			//
000095E2 90 9A              	        retf;							//
                            	        
                            	L_KS_StableTwoSample:
000095E3 11 93 DB 01        			r1 = [R_DebounceCnt];			//
000095E5 01 5E              			jz	L_KS_StableOverDebounce;	//
000095E6 90 9A              			retf;
                            		
                            	L_KS_StableOverDebounce:        
000095E7 19 D3 DB 01        			[R_DebounceCnt] = r1;			//
000095E9 12 95 DA 01        			r2 = [R_DebounceReg];			//
000095EB 11 93 DC 01        			r1 = [R_KeyBuf];				//
000095ED 1A D5 DC 01        			[R_KeyBuf] = r2;				//
000095EF 47 82              			r1 = r1 xor 0x0007;				//
000095F0 11 B3 DC 01        			r1 = r1 and [R_KeyBuf];			//
000095F2 47 B2              			r1 = r1 and 0x0007;				//
000095F3 11 A3 DD 01        			r1 = r1 or [R_KeyStrobe];		//
000095F5 19 D3 DD 01        			[R_KeyStrobe] = r1;				//save stable key code to R_KeyStrobe
000095F7 90 9A              			retf;		
                            		
                            	//////////////////////////////////////////////////////////////////
                            	// Function: debounce counter down count
                            	//////////////////////////////////////////////////////////////////
                            	F_Key_DebounceCnt_Down:
000095F8 11 93 DB 01        			r1 = [R_DebounceCnt];			// Debounce subroutine for F_IO_Key_Scan:
000095FA 03 5E              			jz	L_DebounceCntZero;			// stop count if zero
000095FB 41 22              			r1 -= 0x0001;					//
000095FC 19 D3 DB 01        			[R_DebounceCnt] = r1;			//
                            	L_DebounceCntZero:						//
000095FE 90 9A              			retf;  							//	
                            	
                            	
                            	//****************************************************************
                            	// Function: Get Keycode for I/O Port                                 
                            	// Destory register: r1, r2                          
                            	//****************************************************************
                            	_SP_GetCh:					
                            	F_SP_GetCh:
                            			//push	BP,BP to [SP];
                            	  		//BP = SP + 1;
                            			  
000095FF 11 93 DD 01        			r1 = [R_KeyStrobe];				// Get Key code
00009601 40 94              	        r2 = 0x0000;					// Clear KeyStrobe for next key	
00009602 1A D5 DD 01        	        [R_KeyStrobe] = r2;				//
                            	        //pop		BP,BP from [SP];
00009604 90 9A              	        retf;
                            	
                            	
                            	//========================================================================================        
                            	// End of key.asm
                            	//========================================================================================
0 error(s), 0 warning(s).

⌨️ 快捷键说明

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