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

📄 main.asm

📁 以&#1049307 &#1049319 &#1049287 &#1049289 &#1049317 &#1049301 &#1049288 &#1049283 为核心设计的&#1049320 &#1
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;---------------------------------------------------------------------------
L_CH1_TestMode_0:
         ;CH1_Charge1_On
        
         CH1_DechargeOFF
         CH1_PWM_ON              


         MOV      A,C_CH12_50mA
         MOV      PWM0,A                  ;1
         MOV      M_CH1mA_Buf,A           ;1

         SET      F_CH1_100msFg           ;SET  Delay 5ms  Time...
         mov      a,1                     ;3
         MOV      M_CH1_100msTime,a

         MOV      A,01
         MOV      CH1_TestMode,A
         JMP      L_CH1_EndTestMode  
;---------------------------------------------------------------------------



;---------------------------------------------------------------------------
L_CH1_TestMode_1:
         SZ        M_CH1_100msTime
         JMP       L_CH1_EndTestMode  

         MOV 	   A,4;6
         MOV  	   M_CH1_Csample_Num,A
         
         MOV       A,OFFSET  M_Ch1AdcBufH
         MOV       MP1,A
         MOV       MP1_BUF1,A

         MOV       A,02
         MOV       CH1_TestMode,A
         JMP       L_CH1_EndTestMode  
;---------------------------------------------------------------------------




;---------------------------------------------------------------------------
L_CH1_TestMode_2:
         SNZ      F_ADC1_OK                  ;CH1 is AA  current channel 
         JMP      L_CH1_EndTestMode  
         CLR      F_ADC1_OK

         MOV       A,MP1_BUF1
         MOV       MP1,A
         CALL      L_CH1_ComSampleProc       ;2
         MOV       A,MP1
         MOV       MP1_BUF1,A

         SNZ       F_CH1_ConeCircleOk
         JMP       L_CH1_EndTestMode  
         CLR       F_CH1_ConeCircleOk

;----------------------------------------------------
         SZ        M_CH1_Cnow_H
         JMP       L_CH1_AA_Ok  
         MOV       A,M_CH1_Cnow_L
         SUB       A,C_AA_Data
         SNZ       C
         JMP       L_CH1_Not_AA 

         CLR       M_CH1_AA_NoBatTimes

         INC       M_CH1_AA_BATMoveCount       ;M_CH1_BATCHECK_AA_TIMES
         MOV       A,M_CH1_AA_BATMoveCount     ;M_CH1_BATCHECK_AA_TIMES
         SUB       A,10
         SZ        C
         JMP       L_CH1_AA_Ok

         MOV       A,00
         MOV       CH1_TestMode,A
         JMP       L_CH1_EndTestMode  
;----------------------------------------------------
         
         
;----------------------------------------------------
L_CH1_Not_AA:    ;no bat to 03 mode
         CLR       M_CH1_AA_BATMoveCount     ;M_CH1_BATCHECK_AA_TIMES

         SNZ      F_CH1_AA                   ;If is AA Not Check AAA...
         JMP      L_CH1_Not_AA1

         INC       M_CH1_AA_NoBatTimes
         MOV       A,M_CH1_AA_NoBatTimes
         SUB       A,10
         SZ        C
         JMP       L_CH1_Not_AA1
         JMP       L_CH1_AA_Ok
          
L_CH1_Not_AA1:
         MOV       A,03
         MOV       CH1_TestMode,A
         JMP       L_CH1_EndTestMode  
;---------------------------------------------------------------------------
         

L_CH1_AA_Ok:
         SET       F_CH1_AA                  ;If is AA Not Check AAA...
         CLR       F_CH1_AAA
;------------------------------------------------------
 
        CH1_PWM_OFF                           ;PWM0_OFF  

        SZ      F_CH1_BatReverse              ;baterry  reverse
        JMP     L_CH1_AA_NowBatReverseCharge  

        SZ      F_CH1ChargeOver
        JMP     L_CH1_AA_NowChargeOver

        SZ      F_CH1_NoChargeBat
        JMP     L_CH1_AA_NowNoChargeBat


;---------------------------------------
        SZ      F_CH2_AA                  ;If is AA Not Check AAA...
        JMP     L_CH1_AA_SET_250ma   
        SZ      F_CH2_AAA                  ;If is AA Not Check AAA...
        JMP     L_CH1_AA_SET_250ma   
;---------------------------------------


;---------------------------------------
        MOV     A,M_CH1_CurrentState
        XOR     A,0
        SZ      Z
        JMP     L_CH1AA_Current500maState0
        MOV     A,M_CH1_CurrentState
        XOR     A,1
        SZ      Z
        JMP     L_CH1AA_Current500maState1
        MOV     A,M_CH1_CurrentState
        XOR     A,2
        SZ      Z
        JMP     L_CH1AA_Current500maState2
;---------------------------------------
L_CH1AA_Current500maState0:                    ;From 0 to 500ma 
        MOV     A,2 
        MOV     M_CH1_CurrentState,A
   
        SET     F_CH1_CurrentTo500mA 
        JMP     L_CH1AA_Current500maStateCom
;---------------------------------------
L_CH1AA_Current500maState1:                    ;From 250ma to 500ma 
        MOV     A,2 
        MOV     M_CH1_CurrentState,A
   
        SET     F_CH1_CurrentTo500mA 
        JMP     L_CH1AA_Current500maStateCom
;---------------------------------------
L_CH1AA_Current500maState2:                    ;keep 500ma, no change..

        ;JMP     L_CH1AA_Current500maStateCom
;---------------------------------------

           
;---------------------------------------
L_CH1AA_Current500maStateCom:
        MOV      A,C_CH1_500mA
        MOV      M_CH1mA_Buf,A  
        JMP      L_CH1_AA_CHECK_2_BAT
;==========================================================================        


;==========================================================================        
L_CH1_AA_SET_250ma:        
;---------------------------------------
        MOV     A,M_CH1_CurrentState
        XOR     A,0
        SZ      Z
        JMP     L_CH1AA_Current250maState0
        MOV     A,M_CH1_CurrentState
        XOR     A,1
        SZ      Z
        JMP     L_CH1AA_Current250maState1
        MOV     A,M_CH1_CurrentState
        XOR     A,2
        SZ      Z
        JMP     L_CH1AA_Current250maState2
;---------------------------------------
L_CH1AA_Current250maState0:                    ;From 0 to 500ma 
        MOV     A,1 
        MOV     M_CH1_CurrentState,A
   
        SET     F_CH1_CurrentTo250mA 
        JMP     L_CH1AA_Current250maStateCom
;---------------------------------------
L_CH1AA_Current250maState1:                    ;keep 250ma, no change.. 

        JMP     L_CH1AA_Current250maStateCom
;---------------------------------------
L_CH1AA_Current250maState2:                   ;From 500ma to 250ma
        MOV     A,1 
        MOV     M_CH1_CurrentState,A
   
        SET     F_CH1_CurrentTo250mA 
        JMP     L_CH1AA_Current250maStateCom
;---------------------------------------

           
;---------------------------------------
L_CH1AA_Current250maStateCom:
        MOV      A,C_CH1_250mA
        MOV      M_CH1mA_Buf,A  

      ;  MOV      A,7
      ;  MOV      PWM0,A
      ;  SNZ      F_CH2_DisChargeing
      ;  MOV      PWM1,A

        MOV      A,C_CH2_250mA
        MOV      M_CH2mA_Buf,A  
;==========================================================================        
        










;==========================================================================        
L_CH1_AA_CHECK_2_BAT:

L_CH1_AASkipSetTime:

        CLR      F_CH1_DisChargeing        ;decharge.. 
        CLR      F_CH1_BatReverse          ;BatReverse...
        CLR      F_CH1_NoChargeBat         ;NoChargeBat...
        SET      F_CH1_Chargeing           ;now is charging...
        CLR      F_CH1_NoBat               ;no bat. 

        MOV      A,06
        MOV      CH1_TestMode,A
        JMP      L_CH1_EndTestMode  
;------------------------------------------------------

L_CH1_AA_NowBatReverseCharge:  
L_CH1_AA_NowChargeOver:
L_CH1_AA_NowNoChargeBat:
        MOV      A,00
        MOV      CH1_TestMode,A
        JMP      L_CH1_EndTestMode  
;------------------------------------------------------



;===========================================================================

;---------------------------------------------------------------------------
L_CH1_TestMode_3:
         SET       F_CH1_100msFg           ;SET  Delay 5ms  Time...
         mov       a,1;5                   ;3
         MOV       M_CH1_100msTime,a

         MOV       A,04
         MOV       CH1_TestMode,A
         JMP       L_CH1_EndTestMode  
;---------------------------------------------------------------------------


;Check          AAA...
;---------------------------------------------------------------------------
L_CH1_TestMode_4:
        SZ          M_CH1_100msTime  
        JMP         L_CH1_EndTestMode  

        CLR         F_CH1_ConeCircleOk
        MOV         A,OFFSET  M_Ch2AdcBufH
        MOV         MP1,A
        MOV         MP1_BUF1,A

        MOV 	    A,4;6
        MOV  	    M_CH1_Csample_Num,A

        MOV         A,05
        MOV         CH1_TestMode,A
        JMP         L_CH1_EndTestMode  
;---------------------------------------------------------------------------


;---------------------------------------------------------------------------
L_CH1_TestMode_5:
         SNZ      F_ADC2_OK                  ;CH1 is AAA  current channel 
         JMP      L_CH1_EndTestMode  
         CLR      F_ADC2_OK

         MOV       A,MP1_BUF1
         MOV       MP1,A

         CALL      L_CH1_ComSampleProc      ;2
         MOV       A,MP1
         MOV       MP1_BUF1,A
         
         SNZ       F_CH1_ConeCircleOk
         JMP       L_CH1_EndTestMode  
         CLR       F_CH1_ConeCircleOk


         SZ        M_CH1_Cnow_H            ;CH1 AAA Current Check...
         JMP       L_CH1_AAA_Ok
         MOV       A,M_CH1_Cnow_L
         SUB       A,C_AA_Data
         SNZ       C
         JMP       L_CH1_AAA_NoBat

;Have AAA bat
         CLR       M_CH1_AAA_NoBatTimes

         INC       M_CH1_AAA_BATMoveCount       ;M_CH1_BATCHECK_AAA_TIMES
         MOV       A,M_CH1_AAA_BATMoveCount     ;M_CH1_BATCHECK_AAA_TIMES
         SUB       A,10
         SZ        C
         JMP       L_CH1_AAA_Ok

         MOV       A,03
         MOV       CH1_TestMode,A
         JMP       L_CH1_EndTestMode  
         
;---------------------------------------------------------------         
;No AAA bat
L_CH1_AAA_NoBat:           
         CLR       M_CH1_AAA_BATMoveCount      ;M_CH1_BATCHECK_AAA_TIMES

         SNZ      F_CH1_AAA                  ;If is AA Not Check AAA...
         JMP      L_CH1_Not_AAA1

         INC       M_CH1_AAA_NoBatTimes
         MOV       A,M_CH1_AAA_NoBatTimes
         SUB       A,10
         SZ        C
         JMP       L_CH1_Not_AAA1
         JMP       L_CH1_AAA_Ok  
          
L_CH1_Not_AAA1:
         JMP      L_CH1_AA_AAA_NoBat         
;------------------------------------------------------------------------         

L_CH1_AAA_Ok:
         SET       F_CH1_AAA 
         CLR       F_CH1_AA                 ;If is AA Not Check AAA...
;------------------------------------------------------
        CH1_PWM_OFF                          ;PWM0_OFF  

        SZ      F_CH1_BatReverse             ;battery reverse..
        JMP     L_CH1_AAANowBatReverseCharge  

        SZ      F_CH1ChargeOver
        JMP     L_CH1_AAANowChargeOver

        SZ      F_CH1_NoChargeBat
        JMP     L_CH1_AAANowNoChargeBat


;---------------------------------------
        SZ      F_CH2_AA                   ;If is AA Not Check AAA...
        JMP     L_CH1_AAA_SET_250ma   
        SZ      F_CH2_AAA                  ;If is AA Not Check AAA...
        JMP     L_CH1_AAA_SET_250ma   
;---------------------------------------


;---------------------------------------
        MOV     A,M_CH1_CurrentState
        XOR     A,0
        SZ      Z
        JMP     L_CH1AAA_Current500maState0
        MOV     A,M_CH1_CurrentState
        XOR     A,1
        SZ      Z
        JMP     L_CH1AAA_Current500maState1
        MOV     A,M_CH1_CurrentState
        XOR     A,2
        SZ      Z
        JMP     L_CH1AAA_Current500maState2
;---------------------------------------
L_CH1AAA_Current500maState0:                    ;From 0 to 500ma 
        MOV     A,2 
        MOV     M_CH1_CurrentState,A
   
        SET     F_CH1_CurrentTo500mA 
        JMP     L_CH1AAA_Current500maStateCom
;---------------------------------------
L_CH1AAA_Current500maState1:                    ;From 250ma to 500ma 
        MOV     A,2 
        MOV     M_CH1_CurrentState,A
   
        SET     F_CH1_CurrentTo500mA 
        JMP     L_CH1AAA_Current500maStateCom
;---------------------------------------
L_CH1AAA_Current500maState2:                   ;keep 500ma, no change..

        ;JMP     L_CH1AAA_Current500maStateCom
;---------------------------------------

           
;---------------------------------------
L_CH1AAA_Current500maStateCom:
        MOV      A,C_CH1_500mA
        MOV      M_CH1mA_Buf,A  
        JMP      L_CH1_AAA_CHECK_2_BAT
;==========================================================================        
        


;==========================================================================        
L_CH1_AAA_SET_250ma:        
;---------------------------------------
        MOV     A,M_CH1_CurrentState
        XOR     A,0
        SZ      Z
        JMP     L_CH1AAA_Current250maState0
        MOV     A,M_CH1_CurrentState
        XOR     A,1
        SZ      Z
        JMP     L_CH1AAA_Current250maState1
        MOV     A,M_CH1_CurrentState
        XOR     A,2
        SZ      Z
        JMP     L_CH1AAA_Current250maState2
;---------------------------------------
L_CH1AAA_Current250maState0:                    ;From 0 to 500ma 
        MOV     A,1 
        MOV     M_CH1_CurrentState,A
   
        SET     F_CH1_CurrentTo250mA 
        JMP     L_CH1AAA_Current250maStateCom
;---------------------------------------
L_CH1AAA_Current250maState1:                    ;keep 250ma, no change.. 

        JMP     L_CH1AAA_Current250maStateCom
;---------------------------------------
L_CH1AAA_Current250maState2:                   ;From 500ma to 250ma
        MOV     A,1 
        MOV     M_CH1_CurrentState,A
   
        SET     F_CH1_CurrentTo250mA 

⌨️ 快捷键说明

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