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

📄 isr.asm

📁 凌阳单片机的录音,方音程序,用c语言边的,可用性强.
💻 ASM
字号:
//============================================================
//	文件名称:	ISR.asm
//	功能描述:	中断服务程序
//	维护记录:	2006-8-03	v1.0
//	维护说明:	创建
//============================================================
.include .\DVRSystem\spce.inc // by arthur

.external F_ISR_Service_SACM_DVR1600

.public _BREAK
.public _FIQ
.public _IRQ0
.public _IRQ1
.public _IRQ2
.public _IRQ3
.public _IRQ4
.public _IRQ5
.public _IRQ6
.public _IRQ7


.text

//=============================================================
// 语法格式:	void FIQ(void)
// 实现功能:	FIQ中断
// 参数:		无
// 返回值:		无
//=============================================================
_FIQ:
	push R1,R5 to [SP];

	R1 = C_FIQ_TMA;			// 
	test R1,[P_INT_Ctrl];		//
	jne	L_FIQ_TimerA;		// Timer A FIQ entrence 
	R1 = C_FIQ_TMB;			//
	test R1,[P_INT_Ctrl];		//
	jne L_FIQ_TimerB;		// Timer B FIQ entrence	
	
L_FIQ_PWM:	// PWM FIQ entrence
	//------------------------------------------------------------------
	// hook PWM FIQ subroutine here and define it to be external
	//------------------------------------------------------------------
		
	R1 = C_FIQ_PWM;
	[P_INT_Clear] = R1;
	pop R1,R5 from [SP];
        reti;
		
L_FIQ_TimerA:	
	//------------------------------------------------------------------		
	// hook Timer A FIQ subroutine here and define it to be external

	call F_ISR_Service_SACM_DVR1600;
	// -------------------------------------------------------------
	// User interrupt routine must be placed before this line.
	// -------------------------------------------------------------

	R1 = C_FIQ_TMA;
	[P_INT_Clear] = R1;
	pop r1, r5 from [sp]
	reti
        
L_FIQ_TimerB:   
	//------------------------------------------------------------------
	// hook Timer B FIQ subroutine here and define it to be external
	//------------------------------------------------------------------
	R1 = C_FIQ_TMB;
	[P_INT_Clear] = R1;
	pop R1,R5 from [sp];
	reti;

//=============================================================
// 语法格式:	void BREAK(void)
// 实现功能:	BREAK中断
// 参数:		无
// 返回值:		无
//=============================================================
_BREAK:        
		push r1,r4 to [sp];
		
		pop r1,r4 from [sp];
        reti; 
//=============================================================
// 语法格式:	void IRQ0(void)
// 实现功能:	IRQ0中断
// 参数:		无
// 返回值:		无
//=============================================================
_IRQ0:        
		push r1,r4 to [sp];
		
		pop r1,r4 from [sp];
        reti; 
//=============================================================
// 语法格式:	void IRQ1(void)
// 实现功能:	IRQ1中断
// 参数:		无
// 返回值:		无
//=============================================================
_IRQ1:        
		push r1,r4 to [sp];
		
		pop r1,r4 from [sp];
        reti;  
//=============================================================
// 语法格式:	void IRQ2(void)
// 实现功能:	IRQ2中断
// 参数:		无
// 返回值:		无
//=============================================================
_IRQ2:        
		push r1,r4 to [sp];
		
		pop r1,r4 from [sp];
        reti;         
//=============================================================
// 语法格式:	void IRQ3(void)
// 实现功能:	IRQ3中断
// 参数:		无
// 返回值:		无
//=============================================================
_IRQ3:        
		push r1,r4 to [sp];
		
		pop r1,r4 from [sp];
        reti;         
//=============================================================
// 语法格式:	void IRQ4(void)
// 实现功能:	IRQ4中断
// 参数:		无
// 返回值:		无
//=============================================================
.external _KeyScan_ServiceLoop
_IRQ4:        
		push r1,r4 to [sp];
		r1 = C_IRQ4_1KHz
		[P_INT_Clear] = r1
		call _KeyScan_ServiceLoop
		pop r1,r4 from [sp];
        reti;  
//=============================================================
// 语法格式:	void IRQ5(void)
// 实现功能:	IRQ5中断
// 参数:		无
// 返回值:		无
//=============================================================
_IRQ5:        
		push r1 to [sp];
		r1 = C_IRQ5_2Hz
		[P_INT_Clear] = r1
		r1 = 0x0001
		[P_Watchdog_Clear] = r1
		pop r1 from [sp];
        reti;         
//=============================================================
// 语法格式:	void IRQ6(void)
// 实现功能:	IRQ6中断
// 参数:		无
// 返回值:		无
//=============================================================
_IRQ6:        
		push r1,r4 to [sp];
		
		pop r1,r4 from [sp];
        reti;         
//=============================================================
// 语法格式:	void IRQ7(void)
// 实现功能:	IRQ7中断
// 参数:		无
// 返回值:		无
//=============================================================
_IRQ7:        
		push r1,r4 to [sp];
		
		pop r1,r4 from [sp];
        reti;

⌨️ 快捷键说明

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