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

📄 isr.asm

📁 利用SPCE061A实现中文输入,必要时可适当删减
💻 ASM
字号:
.INCLUDE SPCE061A.inc
.INCLUDE Key.inc

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

/////////////////////////////////////////////////////////////////////////////////////////
// Function: Interrupt Service Routine Area
//      Service for     BREAK, FIQ, IRQ0-IRQ7
//      User's ISR must hook on here
/////////////////////////////////////////////////////////////////////////////////////////        
.TEXT

_BREAK:        
	push r1,r5 to [sp]
	/////-----       BREAK User Code     -----/////
	/////-----          BREAK End        -----/////
	pop r1,r5 from [sp] 
reti


_FIQ:
	push r1,r5 to [sp]
?L_FIQ_PWM:
	r1 = C_FIQ_PWM
	test r1, [P_INT_Ctrl]
	jz ?L_FIQ_TimerA
	[P_INT_Clear] = r1
	/////-----     FIQ_PWM User Code     -----/////
	/////-----        FIQ_PWM End        -----/////
?L_FIQ_TimerA:
	r1 = C_FIQ_TMA
	test r1, [P_INT_Ctrl]
	jz ?L_FIQ_TimerB
	[P_INT_Clear] = r1
	/////-----   FIQ_TimerA User Code    -----/////
	/////-----      FIQ_TimerA End       -----/////
?L_FIQ_TimerB:
	r1 = C_FIQ_TMB
	test r1, [P_INT_Ctrl]
	jz ?L_FIQ_Exit
	[P_INT_Clear] = r1
	/////-----   FIQ_TimerB User Code    -----/////
	/////-----      FIQ_TimerB End       -----/////
?L_FIQ_Exit:
	pop r1,r5 from [sp]
reti


_IRQ0:        
	push r1,r5 to [sp]
	r1 = C_IRQ0_PWM
	[P_INT_Clear] = r1
	/////-----     IRQ0_PWM User Code    -----/////
	/////-----        IRQ0_PWM End       -----/////
	pop r1,r5 from [sp] 
reti


_IRQ1:        
	push r1,r5 to [sp]
	r1 = C_IRQ1_TMA
	[P_INT_Clear] = r1
	/////-----   IRQ1_TimerA User Code   -----/////
	/////-----      IRQ1_TimerA End      -----/////
	pop r1,r5 from [sp] 
reti


_IRQ2:        
	push r1,r5 to [sp]
	r1 = C_IRQ2_TMB
	[P_INT_Clear] = r1
	/////-----   IRQ2_TimerB User Code   -----/////
	/////-----      IRQ2_TimerB End      -----/////
	pop r1,r5 from [sp]
reti


_IRQ3:
	push r1,r5 to [sp];
?L_IRQ3_KEY:
	r1 = C_IRQ3_KEY
	test r1,[P_INT_Ctrl]
	jz ?L_IRQ3_EXT1
	[P_INT_Clear] = r1
	/////-----    IRQ3_KEY User Code     -----/////
	/////-----       IRQ3_KEY End        -----/////
?L_IRQ3_EXT1:
	r1 = C_IRQ3_EXT1
	test r1,[P_INT_Ctrl]
	jz ?L_IRQ3_EXT2
	[P_INT_Clear] = r1
	/////-----    IRQ3_EXT1 User Code    -----/////
	/////-----       IRQ3_EXT1 End       -----/////
?L_IRQ3_EXT2:
	r1 = C_IRQ3_EXT2
	test r1,[P_INT_Ctrl]
	jz ?L_IRQ3_Exit
	[P_INT_Clear] = r1
	/////-----    IRQ3_EXT2 User Code    -----/////
	/////-----       IRQ3_EXT2 End       -----/////
?L_IRQ3_Exit:
	pop r1,r5 from [sp]
reti


_IRQ4:        
	push r1,r5 to [sp];
?L_IRQ4_1KHz:
	r1 = C_IRQ4_1KHz
	test r1,[P_INT_Ctrl]
	jz ?L_IRQ4_2KHz
	[P_INT_Clear] = r1
	/////-----    IRQ4_1KHz User Code    -----/////
	/////-----       IRQ4_1KHz End       -----/////
?L_IRQ4_2KHz:
	r1 = C_IRQ4_2KHz
	test r1,[P_INT_Ctrl]
	jz ?L_IRQ4_4KHz
	[P_INT_Clear] = r1
	/////-----    IRQ4_2KHz User Code    -----/////
	/////-----       IRQ4_2KHz End       -----/////
?L_IRQ4_4KHz:
	r1 = C_IRQ4_4KHz
	test r1,[P_INT_Ctrl]
	jz ?L_IRQ4_Exit
	[P_INT_Clear] = r1
	/////-----    IRQ4_4KHz User Code    -----/////
	/////-----       IRQ4_4KHz End       -----/////
?L_IRQ4_Exit:
	pop r1,r5 from [sp]
reti


_IRQ5:
	push r1,r5 to [sp];
?L_IRQ5_2Hz:
	r1 = C_IRQ5_2Hz
	test r1,[P_INT_Ctrl]
	jz ?L_IRQ5_4Hz
	[P_INT_Clear] = r1
	/////-----     IRQ5_2Hz User Code    -----/////
	/////-----       IRQ5_2Hz End        -----/////
?L_IRQ5_4Hz:
	r1 = C_IRQ5_4Hz
	test r1,[P_INT_Ctrl]
	jz ?L_IRQ5_Exit
	[P_INT_Clear] = r1
	/////-----     IRQ5_4Hz User Code    -----/////
	/////-----       IRQ5_4Hz End        -----/////
?L_IRQ5_Exit:
	pop r1,r5 from [sp]
reti


_IRQ6:
	push r1,r5 to [sp];
?L_IRQ6_TMB1:
	r1 = C_IRQ6_TMB1
	test r1,[P_INT_Ctrl]
	jz ?L_IRQ6_TMB2
	[P_INT_Clear] = r1
	/////-----    IRQ6_TMB1 User Code    -----/////
	/////-----      IRQ6_TMB1 End        -----/////
?L_IRQ6_TMB2:
	r1 = C_IRQ6_TMB2
	test r1,[P_INT_Ctrl]
	jz ?L_IRQ6_Exit
	[P_INT_Clear] = r1
	/////-----    IRQ6_TMB2 User Code    -----/////
	call F_Key_Scan										// 按键扫描中断服务程序
	/////-----      IRQ6_TMB2 End        -----/////
?L_IRQ6_Exit:
	pop r1,r5 from [sp]
reti


_IRQ7:        
	push r1,r5 to [sp]
	/////-----       IRQ7_UART User Code     -----/////
	/////-----          IRQ7_UART End        -----/////
	pop r1,r5 from [sp] 
reti

//========================================================================================        
// End of isr.asm
//========================================================================================

⌨️ 快捷键说明

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