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

📄 fiq.lst

📁 凌阳十六位单片机的实验详细说明及其相对应的源码
💻 LST
📖 第 1 页 / 共 2 页
字号:
                     <      	.DEFINE C_IRQ4_2KHz             0x0020         	// 2048Hz IRQ4
                     <      	.DEFINE C_IRQ4_4KHz             0x0040         	// 4096Hz IRQ4
                     <      	.DEFINE C_IRQ3_KEY              0x0080         	// Key Change IRQ3
                     <      	.DEFINE C_IRQ3_EXT1             0x0100         	// Ext1 IRQ3
                     <      	.DEFINE C_IRQ3_EXT2             0x0200         	// Ext2 IRQ3
                     <      	.DEFINE C_IRQ2_TMB              0x0400         	// Timer B IRQ2
                     <      	.DEFINE C_FIQ_TMB               0x0800         	// Timer B FIQ
                     <      	.DEFINE C_IRQ1_TMA              0x1000         	// Timer A IRQ1
                     <      	.DEFINE C_FIQ_TMA               0x2000         	// Timer A FIQ
                     <      	.DEFINE C_IRQ0_PWM              0x4000         	// PWM IRQ0
                     <      	.DEFINE C_FIQ_PWM               0x8000         	// PWM FIQ
                     <      	
                     <      	// Definitions for P_TimerA/B_Ctrl ............                               
                     <      	.DEFINE	C_Fosc_2				0x0000 			// 
                     <      	.DEFINE	C_Fosc_256		    	0x0001 			//
                     <      	.DEFINE	C_32768Hz				0x0002 			//
                     <      	.DEFINE	C_8192Hz				0x0003 			//
                     <      	.DEFINE	C_4096Hz				0x0004 			//
                     <      	.DEFINE	C_A1					0x0005 			//
                     <      	.DEFINE C_A0					0x0006 			//
                     <      	.DEFINE C_Ext1					0x0007 			//
                     <      	
                     <      	.DEFINE	C_2048Hz				0x0000 			//
                     <      	.DEFINE	C_1024Hz				0x0008 			//
                     <      	.DEFINE	C_256Hz					0x0010 			//
                     <      	.DEFINE	C_TMB1Hz				0x0018 			//
                     <      	.DEFINE	C_4Hz					0x0020 			//
                     <      	.DEFINE	C_2Hz					0x0028 			//
                     <      	.DEFINE	C_B1					0x0030 			//
                     <      	.DEFINE	C_Ext2					0x0038 			//
                     <      	
                     <      	.DEFINE	C_Off					0x0000 			//
                     <      	.DEFINE C_D1					0x0040 			//
                     <      	.DEFINE C_D2					0x0080 			//
                     <      	.DEFINE C_D3					0x00C0 			//
                     <      	.DEFINE C_D4					0x0100 			//
                     <      	.DEFINE C_D5					0x0140 			//
                     <      	.DEFINE C_D6					0x0180 			//
                     <      	.DEFINE C_D7					0x01C0 			//
                     <      	.DEFINE C_D8					0x0200 			//
                     <      	.DEFINE C_D9					0x0240 			//
                     <      	.DEFINE C_D10					0x0280 			//
                     <      	.DEFINE C_D11					0x02C0 			//
                     <      	.DEFINE C_D12					0x0300 			//
                     <      	.DEFINE C_D13					0x0340 			//
                     <      	.DEFINE C_D14					0x0380 			//
                     <      	.DEFINE C_TA_Div_2				0x03C0 			// Timer A
                     <      	.DEFINE C_TB_Div_2				0x03C0 			// Timer B
                     <      	
                     <      	//... Definition for P_SystemClock ............
                     <      	.DEFINE C_Fosc					0x0000 			// b3..b0
                     <      	.DEFINE C_Fosc_Div_2			0x0001 			//
                     <      	.DEFINE C_Fosc_Div_4			0x0002 			//
                     <      	.DEFINE C_Fosc_Div_8			0x0003 			// (default)
                     <      	.DEFINE C_Fosc_Div_16			0x0004 			//
                     <      	.DEFINE C_Fosc_Div_32			0x0005 			//
                     <      	.DEFINE C_Fosc_Div_64			0x0006 			//
                     <      	.DEFINE C_Sleep					0x0007 		 	//
                     <      	
                     <      	.DEFINE	C_32K_Work				0x0000 			// b4
                     <      	.DEFINE C_32K_Off				0x0000 			// 
                     <      	.DEFINE C_StrongMode			0x0000 			// b5
                     <      	.DEFINE C_AutoMode				0x0000 			//
                     <      	
                     <      	//... Define for P_AD_Ctrl ....................
                     <      	.DEFINE	C_AD					0x0001 			//
                     <      	.DEFINE C_DA					0x0000 			//
                     <      	.DEFINE C_MIC					0x0000 			//
                     <      	.DEFINE C_LINE					0x0002 			//
                     <      	
                     <      	//... Define for P_DA_Ctrl ....................
                     <      	.DEFINE C_PushPull				0x0000 			// b0, (default) 
                     <      	.DEFINE C_DoubleEnd				0x0001 			// b0
                     <      	.DEFINE	C_DAC_Mode				0x0000 			// b1, (default)
                     <      	.DEFINE C_PWM_Mode				0x0002 			// b1
                     <      	
                     <      	.DEFINE	C_D1_Direct				0x0000 			// DAC1 latch
                     <      	.DEFINE C_D1_LatchA				0x0008 			// 
                     <      	.DEFINE C_D1_LatchB				0x0010 			//
                     <      	.DEFINE C_D1_LatchAB			0x0018 			//
                     <      	
                     <      	.DEFINE	C_D2_Direct				0x0000 			// DAC2 latch
                     <      	.DEFINE C_D2_LatchA				0x0020 			// 
                     <      	.DEFINE C_D2_LatchB				0x0040 			//
                     <      	.DEFINE C_D2_LatchAB			0x00C0 			//
                     <      	
                     <      	//... Define for P_LVD_Ctrl ...................
                     <      	.DEFINE C_LVD24V				0x0000 			// LVD = 2.4V 
                     <      	.DEFINE C_LVD28V				0x0001 			// LVD = 2.8V
                     <      	.DEFINE C_LVD32V				0x0002 			// LVD = 3.2V
                     <      	.DEFINE C_LVD36V				0x0003 			// LVD = 3.6V
                     <      	
                     <      	//////////////////////////////////////////////////
                     <      	// Note: This register will map to the P_INT_Ctrl
                     <      	//	(0x7010), The SACMvxx.lib use this register to
                     <      	//	combine with user's interrupt setting
                     <      	//////////////////////////////////////////////////
                     <      	.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_InitQueue_A2000
                     <      	.EXTERNAL 	F_SP_InitQueue_S480
                     <      	.EXTERNAL 	F_SP_InitQueue_S240
                     <      	.EXTERNAL 	F_SP_InitQueue_MS01
                     <      	.EXTERNAL 	F_SP_InitQueue_DVR
                     <      	
                     <      	.EXTERNAL 	F_SP_ReadQueue
                     <      	.EXTERNAL 	F_SP_ReadQueue_A2000
                     <      	.EXTERNAL 	F_SP_ReadQueue_S480
                     <      	.EXTERNAL 	F_SP_ReadQueue_S240
                     <      	.EXTERNAL 	F_SP_ReadQueue_MS01
                     <      	.EXTERNAL 	F_SP_ReadQueue_DVR
                     <      	
                     <      	.EXTERNAL 	F_SP_WriteQueue
                     <      	.EXTERNAL 	F_SP_WriteQueue_A2000
                     <      	.EXTERNAL 	F_SP_WriteQueue_S480
                     <      	.EXTERNAL 	F_SP_WriteQueue_S240
                     <      	.EXTERNAL 	F_SP_WriteQueue_MS01
                     <      	.EXTERNAL 	F_SP_WriteQueue_DVR
                     <      	
                     <      	.EXTERNAL 	F_SP_TestQueue
                     <      	.EXTERNAL 	F_SP_TestQueue_A2000
                     <      	.EXTERNAL 	F_SP_TestQueue_S480
                     <      	.EXTERNAL 	F_SP_TestQueue_S240
                     <      	.EXTERNAL 	F_SP_TestQueue_MS01
                     <      	.EXTERNAL 	F_SP_TestQueue_DVR
                     <      	
                     <      	.EXTERNAL	F_SP_ReadQueue_NIC		// Read queue with no index change
                     <      	.EXTERNAL	F_SP_ReadQueue_NIC_A2000
                     <      	.EXTERNAL	F_SP_ReadQueue_NIC_S480
                     <      	.EXTERNAL	F_SP_ReadQueue_NIC_S240
                     <      	.EXTERNAL	F_SP_ReadQueue_NIC_MS01
                     <      	.EXTERNAL	F_SP_ReadQueue_NIC_DVR
                     <      	
                     <      	
                     <      	.EXTERNAL	F_SP_SACM_A2000_Init_
                     <      	.EXTERNAL	F_SP_SACM_S480_Init_
                     <      	.EXTERNAL	F_SP_SACM_S240_Init_
                     <      	
                     <      	.EXTERNAL	F_SP_SACM_MS01_Init_
                     <      	.EXTERNAL	F_SP_PlayMode0_
                     <      	.EXTERNAL	F_SP_PlayMode1_
                     <      	.EXTERNAL	F_SP_PlayMode2_
                     <      	.EXTERNAL	F_SP_PlayMode3_
                     <      	
                     <      	.EXTERNAL	F_SP_SACM_DVR_Init_
                     <      	.EXTERNAL 	F_SP_SACM_DVR_Rec_Init_
                     <      	.EXTERNAL 	F_SP_SACM_DVR_Play_Init_
                     <      	
                     <      	.EXTERNAL	F_SP_GetResource
                     <      	
                     <      	//////////////////////////////////////////////////////////////////
                     <      	// Reserve old defintion
                     <      	// Note: Some user who use old library may use the old name
                     <      	//////////////////////////////////////////////////////////////////
                     <      	.EXTERNAL	F_SP_Send_PWM					// Get RAW data 
                     <      	.EXTERNAL	F_SP_Send_DAC1 					// 
                     <      	.EXTERNAL	F_SP_Send_DAC2 					//
                     <      	
                     <      	.EXTERNAL	F_STD_Send_DAC1 				// reserved old
                     <      	.EXTERNAL	F_STD_Send_DAC2 				// reserved old
                     <      	
                     <      	.EXTERNAL 	F_RampUpDAC1					// reserved old
                     <      	.EXTERNAL 	F_RampDnDAC1					// reserved old
                     <      	.EXTERNAL 	F_RampUpDAC2					// reserved old
                     <      	.EXTERNAL  	F_RampDnDAC2					// reserved old
                     <      	///////////////////////////////////////////////////////////////////
                     <      	
                     <      	
                     <      		
                     <      	//========================================================================================        
                     <      	// End of hardware.inc
                     <      	//========================================================================================
                            	
0000A653                    	.TEXT
                            	_FIQ:
0000A653 A0 D8              		push R1,R4 to [SP]
0000A654 11 93 10 70        		R1 = [P_INT_Ctrl]
0000A656 09 B3 00 20        		R1 &= 0x2000
0000A658 14 5E              		jz ?notTimerA						//当不为TIQ_TMA,则转
0000A659 11 93 7E 04        		R1 = [__gIsStopRecog]
0000A65B 03 4E              		jnz ?BSR_NotBusy					//[__gIsStopRecog]为1则转至放音处理
0000A65C 40 F0 41 80        		call _BSR_FIQ_Routine				//为0,调用辨识子程序
0000A65E 08 EE              		jmp ?BSR_Busy						//返回中断
                            	?BSR_NotBusy:							//放音处理
0000A65F 12 95 F6 04        		R2 = [_PlayFlag]
0000A661 03 4E              		jnz ?Play2000						//[_PlayFlag]为1则是播放2000
0000A662 40 F0 49 AD        		call F_FIQ_Service_SACM_S480;		//为0,播放480
0000A664 02 EE              		jmp ?BSR_Busy						//返回中断
                            	?Play2000:								//2000播放子程序
0000A665 40 F0 33 B3        		call F_FIQ_Service_SACM_A2000;
                            	?BSR_Busy:								//返回中断
0000A667 09 93 00 20        		R1 = 0x2000
0000A669 19 D3 11 70        		[P_INT_Clear] = R1
0000A66B A0 90              		pop	R1,R4 from [SP];
0000A66C 98 9A              		reti;
                            	?notTimerA:
0000A66D 09 93 00 88        		R1 = 0x8800;
0000A66F 19 D3 11 70        	    [P_INT_Clear] = R1;
0000A671 A0 90              		pop	R1,R4 from [SP];
0000A672 98 9A              		reti;
                            	
                            	_BREAK: 
                            	_IRQ0:
                            	_IRQ1: 
                            	_IRQ2: 
                            	_IRQ3: 
                            	_IRQ4: 
                            	_IRQ5: 
                            	_IRQ6: 
                            	_IRQ7:
                            	.END
0 error(s), 0 warning(s).

⌨️ 快捷键说明

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