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

📄 isr.asm

📁 凌阳61单片机实现的多功能电子琴源程序代码
💻 ASM
字号:
//========================================================
//	文件名称:	isr.asm
//	功能描述:	中断程序
//	维护记录:	2005-10-17	v1.0
//========================================================
.TEXT
.INCLUDE	hardware.inc
.INCLUDE	S480.inc
.INCLUDE	Key.inc
//============================================================================================
//汇编格式:	_FIQ
//实现功能:	中断服务子程序,在FIQ_TMA中断中调用F_FIQ_Service_SACM_S480函数解码并播放
//参数:		无
//返回值:		无	
//破坏寄存器:	无
//=============================================================================================
.PUBLIC	_FIQ;
_FIQ:
	PUSH	r1,r4 to [sp];
	r1=0x2000;
	test r1,[P_INT_Ctrl];
	jnz L_FIQ_TimerA;
	r1=0x0800;
	test r1,[P_INT_Ctrl];
	jnz L_FIQ_TimerB;
L_FIQ_PWM:
	r1=C_FIQ_PWM;
	[P_INT_Clear]=r1;
	POP R1,R4 from[sp];
	reti;
L_FIQ_TimerA:
	[P_INT_Clear]=r1;
	call F_FIQ_Service_SACM_S480;         //调用F_FIQ_Service_SACM_S480解码
	pop r1,r4 from [sp];
	reti;
L_FIQ_TimerB:
	[P_INT_Clear]=r1;
	pop r1,r4 from [sp];
	reti;

//============================================================================================
//汇编格式:	_IRQ6
//实现功能:	中断服务子程序,在IRQ6的TMB2 128Hz中断当中调用扫键程序
//参数:		无
//返回值:		无
//破坏寄存器:	无
//=============================================================================================	
.PUBLIC _IRQ6
_IRQ6:        
   	PUSH r1,r4 to [sp];
	r1=0x0001;
	TEST r1,[P_INT_Ctrl];
	JNZ  _IRQ6_TMB2;
	r1=0x0002;
	[P_INT_Clear]=r1;
	POP r1,r4 FROM [sp];
    RETI;         
_IRQ6_TMB2:
	[P_INT_Clear]=r1;
	CALL	F_Key_Scan;                                     //扫描键盘
	POP r1,r4 FROM [sp];
    RETI;  
    
//============================================================================================
//汇编格式: 	_Initial_INT
//C语言格式:	void Initial_INT(void)
//实现功能:	初始化中断状态,以通知音频程序,目前已打开的中断情况
//参数:		无
//返回值:		无
//破坏寄存器:	无
//=============================================================================================	
.CODE
.DEFINE		P_INT_Ctrl_New			0x702D		// Same as P_INT_Mask
.PUBLIC _Initial_INT
_Initial_INT:
	r1 = [R_InterruptStatus]					//在hardware.asm当中定义
	r2 = [P_INT_Ctrl_New]
	r1 = r1|r2
	[R_InterruptStatus] = r1
	retf
	



⌨️ 快捷键说明

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