;[isr.asm]中断处理子程序--------------------------------*
;功能:                                                  *
;    (1)定义中断处理子程序                              *
;-------------------------------------------------------*
    
    INCLUDE 'Includes.inc'    
             
    XDEF  isrDummy             ;定义可以被外部调用的函数       
    XDEF  isrT1Out
    XDEF  isrSCIre
    
    XREF  Flag
    XREF  Time


;_isrDummy:通用中断处理子程序--------------------------*
;功能：对中断不作任何处理                              *
;------------------------------------------------------*
isrDummy:
 RTI
   
;isrT1Out:SCI接收中断处理程序--------------------------*
;功能:从串口接收并发送一个字节                         *
;堆栈深度:5 + 1 = 6                                    *
;内部调用:SCIRe1,SCISend1                              *
;------------------------------------------------------*
isrT1Out:
    SEI
    PSHA
    ;清定时器溢出标志位
    LDA  TPM1SC            ;读取定时器1状态控制寄存器
    BCLR TOFBit,TPM1SC          ;向定时器溢出标志位TOF写0 
    MOV  #$FF,Flag         ;写标志位$FF
    PULA
    CLI                    ;开总中断
 RTI                       ;中断返回   
                  
;isrSCIre:SCI接收中断子程序----------------------------*
;功能:接收3字节基准时分秒放入内存单元Time[0-2]         *
;内部调用:                                             *
;    SCIreN:串行接收N个字节                            *
;------------------------------------------------------*
isrSCIre:
    SEI     ;关总中断
    PSHH    ;保护H
    PSHA
    
    LDA  #3
    LDHX #Time
    JSR  SCIReN    ;接收3字节数据
    
    PULA
    PULH    ;恢复H
    CLI     ;开总中断
 RTI