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

📄 interrupt.asm

📁 以&#1049307 &#1049319 &#1049287 &#1049289 &#1049317 &#1049301 &#1049288 &#1049283 为核心设计的&#1049320 &#1
💻 ASM
字号:


;======================================================================
ISR_TMR1:   ;timer1 interrupt interval  is  21.845333333ms
	M_PUSH
  
        snz          F_CH1_100msFg
        JMP          L_CH1_Skip100Ms
        
        sdz          M_CH1_100msTime
        JMP          L_CH1_Skip100Ms
        CLR          F_CH1_100msFg
L_CH1_Skip100Ms:

;-----------------------------------------------------------------------
        snz          F_CH2_100msFg
        JMP          L_CH2_Skip100Ms
        
        sdz          M_CH2_100msTime
        JMP          L_CH2_Skip100Ms
        CLR          F_CH2_100msFg
L_CH2_Skip100Ms:




;------------------------------------------------------------------------         
        SDZ          M_DIV_01S
        JMP          L_NotArrive_01s  
        MOV          A,10
        MOV          M_DIV_01S,A
        
        SET          F_RefreshUsbData
        SET          F_UsbPowerDown01s
L_NotArrive_01s:
;------------------------------------------------------------------------         




;------------------------------------------------------------------------         
        SDZ          M_DIV_1S
        JMP          L_NotArrive1s  
        MOV          A,45
        MOV          M_DIV_1S,A
        SET          F_CH1_Decharge1s
        SET          F_CH2_Decharge1s
;------------------------------------------------------------------------         
        SNZ          F_CH1_5sEnFg
        JMP          L_CH1_End5SecTime
        SDZ          M_CH1_5SecTime
        JMP          L_CH1_End5SecTime

        MOV          A,C_Charge5s
        MOV          M_CH1_5SecTime,A  

        clr          F_CH1_5sEnFg
        SET          F_CH1_5sOkFg
L_CH1_End5SecTime:
;---------------------------------------------------




;---------------------------------------------------
        SNZ          F_CH2_5sEnFg
        JMP          L_CH2_End5SecTime
        SDZ          M_CH2_5SecTime
        JMP          L_CH2_End5SecTime
        MOV          A,C_Charge5s
        MOV          M_CH2_5SecTime,A 
         
        clr          F_CH2_5sEnFg
        SET          F_CH2_5sOkFg
L_CH2_End5SecTime:
;---------------------------------------------------
L_NotArrive5s:





;CH1--- n-hour Timer...
;-------------------------------------------------------------------------
        SNZ          F_CH1StartCharge
        JMP          L_CH1_EndTime
   
        SZ           M_CH1ChargeSec
        JMP          L_CH1SecNot0  
        JMP          L_CH1CheckMin
L_CH1SecNot0:
        DEC          M_CH1ChargeSec
        JMP          L_CH1_EndTime
;-------------------------------------------------
L_CH1CheckMin:
        SZ           M_CH1ChargeMin
        JMP          L_CH1MinNot0  
        JMP          L_CH1CheckHour
L_CH1MinNot0:
        DEC          M_CH1ChargeMin
        
        MOV          A,M_CH1ChargeMin
        OR           A,M_CH1ChargeHour
        SZ           Z
        JMP          L_CH1Timeover

        mov          a,59 ;60
        MOV          M_CH1ChargeSec,A
        JMP          L_CH1_EndTime
;-------------------------------------------------
L_CH1CheckHour:
        SZ           M_CH1ChargeHour
        JMP          L_CH1HourNot0  
        JMP          L_CH1Timeover
L_CH1HourNot0:
        DEC          M_CH1ChargeHour
        mov          a,59         ;60
        MOV          M_CH1ChargeSec,A
        mov          a,59
        MOV          M_CH1ChargeMin,A
        JMP          L_CH1_EndTime
;-------------------------------------------------
L_CH1Timeover:

        SET           F_CH1_MaxTimer_Ok 

L_CH1_EndTime:        
;-------------------------------------------------------------------------
;-------------------------------------------------------------------------






;CH2--- n-hour Timer...
;-------------------------------------------------------------------------
;-------------------------------------------------------------------------
        SNZ          F_CH2StartCharge
        JMP          L_CH2_EndTime
   
        SZ           M_CH2ChargeSec
        JMP          L_CH2SecNot0  
        JMP          L_CH2CheckMin
L_CH2SecNot0:
        DEC          M_CH2ChargeSec
        JMP          L_CH2_EndTime
;-------------------------------------------------
L_CH2CheckMin:
        SZ           M_CH2ChargeMin
        JMP          L_CH2MinNot0  
        JMP          L_CH2CheckHour
L_CH2MinNot0:
        DEC          M_CH2ChargeMin

        MOV          A,M_CH2ChargeMin
        OR           A,M_CH2ChargeHour
        SZ           Z
        JMP          L_CH2Timeover

        mov          a,59                 ;60
        MOV          M_CH2ChargeSec,A
        JMP          L_CH2_EndTime
;-------------------------------------------------
L_CH2CheckHour:
        SZ           M_CH2ChargeHour
        JMP          L_CH2HourNot0  
        JMP          L_CH2Timeover
L_CH2HourNot0:
        DEC          M_CH2ChargeHour
        mov          a,59               ;60
        MOV          M_CH2ChargeSec,A
        mov          a,59
        MOV          M_CH2ChargeMin,A
        JMP          L_CH2_EndTime
;-------------------------------------------------
L_CH2Timeover:

        SET           F_CH2_MaxTimer_Ok 

L_CH2_EndTime:        
;-------------------------------------------------------------------------
;-------------------------------------------------------------------------
        
L_NotArrive1s:

	M_POP
	RETI
;;---------------------------------------------------------





;;---------------------------------------------------------
;; ISR_AD       AD INTRRUPT SERVICE
;; description	LOAD AD SEND TO PC
;; input	NULL
;; onput	NULL
;; stack use	NULL
;;---------------------------------------------------------
ISR_AD:
 	 M_PUSH
         CLR      ADF

  	 MOV     A,ADRH
         MOV     M_Adrh_Buf,A
         MOV     A,ADRL
         MOV     M_Adrl_Buf,A

         MOV     A,6 
L_GoOnRightMove:
         CLR    C
         RRC    M_AdrH_Buf
         RRC    M_AdrL_Buf
         SDZ    ACC
         JMP    L_GoOnRightMove 


        MOV     A,ADCR
        AND     A,00000111B
        XOR     A,00000000B
        SZ      Z
        JMP     L_Channel0Intrrupt

        MOV     A,ADCR
        AND     A,00000111B
        XOR     A,00000001B
        SZ      Z
        JMP     L_Channel1Intrrupt

        MOV     A,ADCR
        AND     A,00000111B
        XOR     A,00000010B
        SZ      Z
        JMP     L_Channel2Intrrupt


        MOV     A,ADCR
        AND     A,00000111B
        XOR     A,00000011B
        SZ      Z
        JMP     L_Channel3Intrrupt


        MOV     A,ADCR
        AND     A,00000111B
        XOR     A,00000100B
        SZ      Z
        JMP     L_Channel4Intrrupt


        ;MOV     A,ADCR
        ;AND     A,00000111B
        ;XOR     A,00000101B
        ;SZ      Z
        JMP      L_Channel5Intrrupt


L_Channel0Intrrupt:
 	 MOV	 A,M_Adrh_Buf
         MOV     M_Ch0AdcBufH,A

	 MOV	 A,M_Adrl_Buf
         MOV     M_Ch0AdcBufL,A

         Set     F_ADC0_OK
         
         select_chanel_1
         JMP     L_ADCStart


L_Channel1Intrrupt:
 	 MOV	 A,M_Adrh_Buf
         MOV     M_Ch1AdcBufH,A

	 MOV	 A,M_Adrl_Buf
         MOV     M_Ch1AdcBufL,A

         Set     F_ADC1_OK
         select_chanel_2
         JMP     L_ADCStart


L_Channel2Intrrupt:
 	 MOV	 A,M_Adrh_Buf
         MOV     M_Ch2AdcBufH,A

	 MOV	 A,M_Adrl_Buf
         MOV     M_Ch2AdcBufL,A

         Set     F_ADC2_OK
         select_chanel_3
         JMP     L_ADCStart


L_Channel3Intrrupt:
 	 MOV	 A,M_Adrh_Buf
         MOV     M_Ch3AdcBufH,A

	 MOV	 A,M_Adrl_Buf
         MOV     M_Ch3AdcBufL,A
         
         Set     F_ADC3_OK
         select_chanel_4
         JMP     L_ADCStart


L_Channel4Intrrupt:
 	 MOV	 A,M_Adrh_Buf
         MOV     M_Ch4AdcBufH,A

	 MOV	 A,M_Adrl_Buf
         MOV     M_Ch4AdcBufL,A

         Set     F_ADC4_OK
         select_chanel_5
         JMP     L_ADCStart


L_Channel5Intrrupt:
 	 MOV	 A,M_Adrh_Buf
         MOV     M_Ch5AdcBufH,A

	 MOV	 A,M_Adrl_Buf
         MOV     M_Ch5AdcBufL,A

         Set     F_ADC5_OK
         select_chanel_0

L_ADCStart:
         Adc_start


L_Adc_Interrupt_Exit:


 	 M_POP
	 RETI
;======================================================================







⌨️ 快捷键说明

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