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

📄 isr.lst

📁 凌阳61单片机实现的多功能电子琴源程序代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
                     <      	.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
                     <      	//========================================================================================
                            	.INCLUDE	S480.inc
                     <      	//////////////////////////////////////////////////////////////////////////////////////////
                     <      	// Progarm: SACM-S480 API external definition for sacmV26e.lib
                     <      	// Writen by: Andy
                     <      	// Date: 	2000/06/20
                     <      	//		 	2001/02/10
                     <      	//			2001/10/11: Add manual mode definition
                     <      	//////////////////////////////////////////////////////////////////////////////////////////
                     <      	
                     <      	.EXTERNAL F_SACM_S480_Initial
                     <      	.EXTERNAL F_SACM_S480_ServiceLoop				// For Auto Mode only
                     <      	.EXTERNAL F_SACM_S480_Play						// For Auto Mode only
                     <      	.EXTERNAL F_SACM_S480_Stop
                     <      	.EXTERNAL F_SACM_S480_Stop_EX					// Keep Int. enable
                     <      	.EXTERNAL F_SACM_S480_Pause
                     <      	.EXTERNAL F_SACM_S480_Resume
                     <      	.EXTERNAL F_SACM_S480_Volume
                     <      	.EXTERNAL F_SACM_S480_Status
                     <      	
                     <      	.EXTERNAL F_SACM_S480_InitDecoder				// For Manual Mode only
                     <      	.EXTERNAL F_SACM_S480_Decoder					// For Manual Mode only
                     <      	.EXTERNAL F_SACM_S480_InitQueue					// For Manual Mode only
                     <      	.EXTERNAL F_SACM_S480_FillQueue					// For Manual Mode only
                     <      	.EXTERNAL F_SACM_S480_TestQueue					// For Manual Mode only
                     <      	
                     <      	.EXTERNAL F_FIQ_Service_SACM_S480				// Interrupt service Routine(Play)
                     <      	
                     <      	//========================================================================================        
                     <      	// End of S480.inc
                     <      	//========================================================================================
                            	.INCLUDE	Key.inc
                     <      	.external F_Key_Init
                     <      	.external F_Key_Scan
                     <      	.external F_Key_Get
                     <      	
                     <      	.define KEY_0		0x88
                     <      	.define KEY_1		0x84
                     <      	.define KEY_2		0x82
                     <      	.define KEY_3		0x81
                     <      	.define KEY_4		0x48
                     <      	.define KEY_5		0x44
                     <      	.define KEY_6		0x42
                     <      	.define KEY_7		0x41
                     <      	.define KEY_8		0x28
                     <      	.define KEY_9		0x24
                     <      	.define KEY_A		0x22
                     <      	.define KEY_B		0x21
                     <      	.define KEY_C		0x18
                     <      	.define KEY_D		0x14
                     <      	.define KEY_E		0x12
                     <      	.define KEY_F		0x11
                     <      	
                     <      	.define PAD_1		KEY_0
                     <      	.define	PAD_2		KEY_1
                     <      	.define	PAD_3		KEY_2
                     <      	.define	PAD_4		KEY_4
                     <      	.define	PAD_5		KEY_5
                     <      	.define	PAD_6		KEY_6
                     <      	.define	PAD_7		KEY_8
                     <      	.define	PAD_8		KEY_9
                     <      	.define	PAD_9		KEY_A
                     <      	.define PAD_0		KEY_D
                     <      	.define PAD_STAR	KEY_C
                     <      	.define PAD_POUND	KEY_E
                     <      	.define PAD_PGUP	KEY_3
                     <      	.define PAD_PGDN	KEY_7
                     <      	.define PAD_ENTER	KEY_B
                     <      	.define PAD_ESC		KEY_F
                            	//============================================================================================
                            	//汇编格式:	_FIQ
                            	//实现功能:	中断服务子程序,在FIQ_TMA中断中调用F_FIQ_Service_SACM_S480函数解码并播放
                            	//参数:		无
                            	//返回值:		无	
                            	//破坏寄存器:	无
                            	//=============================================================================================
                            	.PUBLIC	_FIQ;
                            	_FIQ:
000081B9 A0 D8              		PUSH	r1,r4 to [sp];
000081BA 09 93 00 20        		r1=0x2000;
000081BC 11 C3 10 70        		test r1,[P_INT_Ctrl];
000081BE 0B 4E              		jnz L_FIQ_TimerA;
000081BF 09 93 00 08        		r1=0x0800;
000081C1 11 C3 10 70        		test r1,[P_INT_Ctrl];
000081C3 0C 4E              		jnz L_FIQ_TimerB;
                            	L_FIQ_PWM:
000081C4 09 93 00 80        		r1=C_FIQ_PWM;
000081C6 19 D3 11 70        		[P_INT_Clear]=r1;
000081C8 A0 90              		POP R1,R4 from[sp];
000081C9 98 9A              		reti;
                            	L_FIQ_TimerA:
000081CA 19 D3 11 70        		[P_INT_Clear]=r1;
000081CC 40 F0 8B 94        		call F_FIQ_Service_SACM_S480;         //调用F_FIQ_Service_SACM_S480解码
000081CE A0 90              		pop r1,r4 from [sp];
000081CF 98 9A              		reti;
                            	L_FIQ_TimerB:
000081D0 19 D3 11 70        		[P_INT_Clear]=r1;
000081D2 A0 90              		pop r1,r4 from [sp];
000081D3 98 9A              		reti;
                            	
                            	//============================================================================================
                            	//汇编格式:	_IRQ6
                            	//实现功能:	中断服务子程序,在IRQ6的TMB2 128Hz中断当中调用扫键程序
                            	//参数:		无
                            	//返回值:		无
                            	//破坏寄存器:	无
                            	//=============================================================================================	
                            	.PUBLIC _IRQ6
                            	_IRQ6:        
000081D4 A0 D8              	   	PUSH r1,r4 to [sp];
000081D5 41 92              		r1=0x0001;
000081D6 11 C3 10 70        		TEST r1,[P_INT_Ctrl];
000081D8 05 4E              		JNZ  _IRQ6_TMB2;
000081D9 42 92              		r1=0x0002;
000081DA 19 D3 11 70        		[P_INT_Clear]=r1;
000081DC A0 90              		POP r1,r4 FROM [sp];
000081DD 98 9A              	    RETI;         
                            	_IRQ6_TMB2:
000081DE 19 D3 11 70        		[P_INT_Clear]=r1;
000081E0 40 F0 DC 99        		CALL	F_Key_Scan;                                     //扫描键盘
000081E2 A0 90              		POP r1,r4 FROM [sp];
000081E3 98 9A              	    RETI;  
                            	    
                            	//============================================================================================
                            	//汇编格式: 	_Initial_INT
                            	//C语言格式:	void Initial_INT(void)
                            	//实现功能:	初始化中断状态,以通知音频程序,目前已打开的中断情况
                            	//参数:		无
                            	//返回值:		无
                            	//破坏寄存器:	无
                            	//=============================================================================================	
00009A7B                    	.CODE
                            	.DEFINE		P_INT_Ctrl_New			0x702D		// Same as P_INT_Mask
                            	.PUBLIC _Initial_INT
                            	_Initial_INT:
00009A7B 11 93 89 05        		r1 = [R_InterruptStatus]					//在hardware.asm当中定义
00009A7D 12 95 2D 70        		r2 = [P_INT_Ctrl_New]
00009A7F 02 A3              		r1 = r1|r2
00009A80 19 D3 89 05        		[R_InterruptStatus] = r1
00009A82 90 9A              		retf
                            		
                            	
                            	
                            	
0 error(s), 0 warning(s).































































⌨️ 快捷键说明

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