isr.asm

来自「spce061单片机的一些程序!C语言和汇编语言都有」· 汇编 代码 · 共 100 行

ASM
100
字号
//========================================================
//	文件名称:	isr.asm
//	功能描述:	中断程序
//	维护记录:	2005-10-14	v1.0
//========================================================
.INCLUDE    SPCE061A.inc				
.EXTERNAL	F_Key_Scan;
.TEXT
.PUBLIC _BREAK;
.PUBLIC _FIQ;
.PUBLIC _IRQ0;
.PUBLIC _IRQ1;
.PUBLIC _IRQ2;
.PUBLIC _IRQ3;
.PUBLIC _IRQ4;
.PUBLIC _IRQ5;
.PUBLIC _IRQ6;
.PUBLIC _IRQ7;

//============================================================================================
//汇编格式: 	_FIQ,_IRQ0,_IRQ1,_IRQ2,_IRQ3,_IRQ4,_IRQ5,_IRQ6,_IRQ7
//实现功能:	中断服务子程序
//参数:		无
//返回值:		无
//破坏寄存器:	无
//=============================================================================================               
_FIQ:
    PUSH r1,r5 TO [sp];
    r1 = C_FIQ_PWM;
    TEST r1,[P_INT_Ctrl];
    JNE    L_FIQ_PWM;
    r1 = C_FIQ_TMA;
    TEST r1,[P_INT_Ctrl];
    JNE L_FIQ_TimerA;
L_FIQ_TimerB:
    POP r1,r5 FROM[sp];
    RETI;
L_FIQ_PWM:                                     
   [P_INT_Clear] = r1;
   POP r1,r5 FROM[sp];
   RETI;
L_FIQ_TimerA:
   [P_INT_Clear] = r1;
   POP r1,r5 FROM[sp];
   RETI;

_BREAK:        
    PUSH r1,r4 TO [sp];
    POP r1,r4 FROM[sp];
    RETI;
_IRQ0:        
    PUSH r1,r4 TO [sp];
    POP r1,r4 FROM[sp];
    RETI;
_IRQ1:        
    PUSH r1,r4 TO [sp];
    POP r1,r4 FROM[sp];
    RETI;
_IRQ2:        
    PUSH r1,r5 TO [sp];
    
    [P_INT_Clear] = r1;
    POP r1,r5 FROM[sp];
    RETI;
_IRQ3:
    PUSH r1,r4 TO [sp];
    POP r1,r4 FROM[sp];
    RETI;
_IRQ4:        
    PUSH r1,r1 TO [sp];
    [P_INT_Clear] = r1;
    POP r1,r1 FROM[sp];
    RETI;
_IRQ5:        
    PUSH r1,r4 TO [sp];
    POP r1,r4 FROM[sp];
    RETI;
_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;  
_IRQ7:        
    PUSH r1,r4 TO [sp];
    POP r1,r4 FROM[sp];
    RETI;
//========================================================================================        
//  isr.asm结束
//========================================================================================
      

⌨️ 快捷键说明

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