isr.asm

来自「这是在凌阳单片机,使用超级终端,显示的一个中文输入法.」· 汇编 代码 · 共 126 行

ASM
126
字号
//////////////////////////////////////////////////////////
////levension @SCUT @2007.4.14                       ////
/////////////////////////////////////////////////////////

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

//===================================================================
//                        中断服务程序
//===================================================================

.EXTERNAL _FIQ_Handler
.EXTERNAL _BREAK_Handler
.EXTERNAL _IRQ0_Handler
.EXTERNAL _IRQ1_Handler
.EXTERNAL _IRQ2_Handler
.EXTERNAL _IRQ3_Handler
.EXTERNAL _IRQ4_Handler
.EXTERNAL _IRQ5_Handler
.EXTERNAL _IRQ6_Handler
.EXTERNAL _UART_Handler

.INCLUDE SPCE061A.inc
.DEFINE P_WatchDog_Clear	0x7012
.TEXT

/////////////////////////////////////////////////////////////////////////////////////////
// Function: Fast Interrupt Service routine Area                     
////////////////////////////////////////////////////////////////////////////////////////

_FIQ:                  
        push r1,r4 to [sp]
         r1=0x0001;
        [P_WatchDog_Clear]=r1;
        
        call _FIQ_Handler          

        pop r1,r4 from [sp] 
        reti             
/////////////////////////////////////////////////////////////////////////////////////////
// Function: Interrupt Service routine Area                     
//      Service for     IRQ1 - IRQ7
//      User's IRQ must hook on here                                 
/////////////////////////////////////////////////////////////////////////////////////////        
_BREAK:        
        push r1,r4 to [sp] 
        r1=0x0001;
        [P_WatchDog_Clear]=r1;
        call _BREAK_Handler
        pop r1,r4 from [sp] 
        reti          
// ---------------------------------------------------------------------------
_IRQ0:        
        push r1,r4 to [sp] 
        r1=0x0001;
        [P_WatchDog_Clear]=r1;
        call _IRQ0_Handler
        pop r1,r4 from [sp] 
        reti          
// ---------------------------------------------------------------------------
_IRQ1:        
	push r1,r4 to [sp] 
        r1=0x0001;
        [P_WatchDog_Clear]=r1;
        call _IRQ1_Handler
        pop r1,r4 from [sp] 
        reti   
// ---------------------------------------------------------------------------
_IRQ2:        
        push r1,r4 to [sp] 
        r1=0x0001;
        [P_WatchDog_Clear]=r1;
        call _IRQ2_Handler  
        pop r1,r4 from [sp] 
        reti          
// ---------------------------------------------------------------------------
_IRQ3:        
        push r1,r4 to [sp] 
        r1=0x0001;
        [P_WatchDog_Clear]=r1;
        call _IRQ3_Handler
        pop r1,r4 from [sp] 
        reti          
// ---------------------------------------------------------------------------
_IRQ4:        
        push r1,r4 to [sp] 
        r1=0x0001;
        [P_WatchDog_Clear]=r1;
        call _IRQ4_Handler
        pop r1,r4 from [sp] 
        reti   
// ---------------------------------------------------------------------------
_IRQ5:        
        push r1,r4 to [sp] 
        r1=0x0001;
        [P_WatchDog_Clear]=r1;
        call _IRQ5_Handler
        pop r1,r4 from [sp] 
        reti          
// ---------------------------------------------------------------------------
_IRQ6:        
        push r1,r4 to [sp] 
        r1=0x0001;
        [P_WatchDog_Clear]=r1;
        call _IRQ6_Handler
        pop r1,r4 from [sp] 
        reti          
// ---------------------------------------------------------------------------
_IRQ7:        
        push r1,r4 to [sp] 
        r1=0x0001;
        [P_WatchDog_Clear]=r1;
        call _UART_Handler                     //如果不使用UART,把这段注释掉
        pop r1,r4 from [sp] 
        reti          
// ---------------------------------------------------------------------------
        

⌨️ 快捷键说明

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