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

📄 main.asm

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

;-----------------------------------------------------
         MOV    A,M_CH1_NOW_L
         MOV    M_CH1_BatValueL,A
         MOV    A,M_CH1_NOW_H
         MOV    M_CH1_BatValueH,A

         MOV     A,6 
L_CH1_DechargeMove:
         CLR    C
         RLC    M_CH1_BatValueL
         RLC    M_CH1_BatValueH
         SDZ    ACC
         JMP    L_CH1_DechargeMove 
;-----------------------------------------------------






;check if need to decharge...
         SZ       M_CH1_NOW_H
         JMP      L_CH1_GoOnDeCharge

         MOV      A,M_CH1_NOW_L
         SUB      A,163                       ;0.8V
         SNZ      C
         JMP      L_CH1_DeChargeOk

L_CH1_GoOnDeCharge:
         MOV      A,11 
         MOV      CH1_TestMode,A 
         JMP      L_CH1_EndTestMode  

L_CH1_DeChargeOk:
         CH1_DechargeOff

         set      F_CH1_DisChargeOk

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

L_CH1_DechargeCom:
          MOV      A,M_Ch0AdcBufL
          SUB      A,10
          MOV      A,00
          MOV      M_TEMP,A
          MOV      A,M_Ch0AdcBufH
          SBC      A,M_TEMP
          SZ       C
          JMP      L_CH1_EndTestMode1  
          
          INC      M_CH1_DisChargeTimes
          MOV      A,M_CH1_DisChargeTimes
          SUB      A,200
          SNZ      C
          JMP      L_CH1_EndTestMode  
          CLR      M_CH1_DisChargeTimes
          JMP      L_CH1_AA_AAA_NoBat
;----------------------------------------------------------------------
L_CH1_EndTestMode1:
          CLR      M_CH1_DisChargeTimes
L_CH1_EndTestMode:  


;          RET 
;=================================================================================







;----------------------------------------------------------
;        CALL     L_CH2CheckVoltageProc 
;----------------------------------------------------------
L_CH2CheckVoltageProc:
;first part    voltage check..........
;=================================================================================
;       CH2  Test voltage...
;=================================================================================
        SZ      F_CH2_AA                  ;If is AA Not Check AAA...
        JMP     L_CH2_checkdischarge
        SZ      F_CH2_AAA                  ;If is AA Not Check AAA...
        JMP     L_CH2_checkdischarge
        JMP     L_CH2_TestModeCom         ; 
L_CH2_checkdischarge:
        SZ       PA.7                      ;
        JMP      L_CH2_IsChargeIng

        MOV      A,CH2_TestMode
        SUB      A,11
        SZ       C
        JMP      L_CH2_TestModeCom          

        sz       F_CH2_DisChargeOk
        JMP      L_CH2_TestModeCom          

        SZ       F_CH2_NoBat               
        JMP      L_CH2_TestModeCom         ; 


;        CLR       M_CH2_0Delta_Times
;        CLR       M_CH2_NDelta_Times


        CLR      M_CH2_DisChargeTimes

        CLR       M_CH2_AA_NoBatTimes
        CLR       M_CH2_AAA_NoBatTimes

        CLR      M_CH2_CurrentState        ;Cal charge time... 
        CLR      M_CH2_Volume

        CLR      M_CH2_NoChargeBatCount


        CLR      F_CH2ChargeOver
        CLR      M_CH2_NoChargeBatTime       ;


        CLR      M_CH2ChargeSec
        CLR      M_CH2ChargeMin
        CLR      M_CH2ChargeHour
        CLR      F_CH2StartCharge
        CLR      M_CH2_Volume

        CLR      M_CH2_BatValueH           ;Clear voltage..
        CLR      M_CH2_BatValueL


        SET      F_CH2_DisChargeing         
        CLR      F_CH2_BatReverse          
        CLR      F_CH2_NoChargeBat         
        CLR      F_CH2_Chargeing           
        CLR      F_CH2_NoBat               

        MOV      A,11  
        MOV      CH2_TestMode,A
        JMP      L_CH2_TestModeCom 
;-----------------------------------------------------
L_CH2_IsChargeIng:
        MOV      A,CH2_TestMode
        SUB      A,11
        SNZ      C
        JMP      L_CH2_TestModeCom          

        MOV      A,0  
        MOV      CH2_TestMode,A
        JMP      L_CH2_TestModeCom 
;-----------------------------------------------------


;-----------------------------------------------------
L_CH2_TestModeCom:
        MOV     A,CH2_TestMode
        XOR     A,0
        SZ      Z
        JMP     L_CH2_TestMode_0
        
        MOV     A,CH2_TestMode
        XOR     A,1 
        SZ      Z
        JMP     L_CH2_TestMode_1

        MOV     A,CH2_TestMode
        XOR     A,2
        SZ      Z
        JMP     L_CH2_TestMode_2

        MOV     A,CH2_TestMode
        XOR     A,3
        SZ      Z
        JMP     L_CH2_TestMode_3
        
        MOV     A,CH2_TestMode
        XOR     A,4
        SZ      Z
        JMP     L_CH2_TestMode_4
        
        MOV     A,CH2_TestMode
        XOR     A,5
        SZ      Z
        JMP     L_CH2_TestMode_5
        
        MOV     A,CH2_TestMode
        XOR     A,6
        SZ      Z
        JMP     L_CH2_TestMode_6
        
        MOV     A,CH2_TestMode
        XOR     A,7
        SZ      Z
        JMP     L_CH2_TestMode_7


        MOV     A,CH2_TestMode
        XOR     A,8
        SZ      Z
        JMP     L_CH2_TestMode_8
        
        MOV     A,CH2_TestMode
        XOR     A,9
        SZ      Z
        JMP     L_CH2_TestMode_9
        

        MOV     A,CH2_TestMode
        XOR     A,10
        SZ      Z
        JMP     L_CH2_TestMode_10

        MOV     A,CH2_TestMode
        XOR     A,11
        SZ      Z
        JMP     L_CH2_TestMode_11

        MOV     A,CH2_TestMode
        XOR     A,12
        SZ      Z
        JMP     L_CH2_TestMode_12

        MOV     A,CH2_TestMode
        XOR     A,13
        SZ      Z
        JMP     L_CH2_TestMode_13

        MOV     A,CH2_TestMode
        XOR     A,14
        SZ      Z
        JMP     L_CH2_TestMode_14

;        MOV     A,CH2_TestMode
;        XOR     A,15
;        SZ      Z
;        JMP     L_CH2_TestMode_15

        JMP     L_CH2_EndTestMode  
;----------------------------------------------------------------------

;============================================================================
;---------------------------------------------------------------------------
L_CH2_TestMode_0:
         ;CH2_Charge2_On
         
         CH2_DeChargeOFF
         CH2_PWM_ON

         MOV      A,C_CH12_50mA           ;
         MOV      PWM1,A                  ;1

         SET      F_CH2_100msFg           ;SET  Delay 5ms  Time...
         mov      a,1                     ;1
         MOV      M_CH2_100msTime,a

         MOV      A,01
         MOV      CH2_TestMode,A
         JMP      L_CH2_EndTestMode  
;---------------------------------------------------------------------------



;---------------------------------------------------------------------------
L_CH2_TestMode_1:
         SZ        M_CH2_100msTime
         JMP       L_CH2_EndTestMode  

         MOV 	   A,4                     ;6
         MOV  	   M_CH2_Csample_Num,A
         MOV       A,OFFSET  M_Ch4AdcBufH
         MOV       MP1,A
         MOV       MP1_BUF2,A

         MOV       A,02
         MOV       CH2_TestMode,A
         JMP       L_CH2_EndTestMode  
;---------------------------------------------------------------------------




;---------------------------------------------------------------------------
L_CH2_TestMode_2:
         SNZ       F_ADC4_OK                  ;CH2 is AA  current channel 
         JMP       L_CH2_EndTestMode  
         CLR       F_ADC4_OK

         MOV       A,MP1_BUF2
         MOV       MP1,A
         CALL      L_CH2_ComSampleProc;2
         MOV       A,MP1
         MOV       MP1_BUF2,A

         SNZ       F_CH2_ConeCircleOk
         JMP       L_CH2_EndTestMode  
         CLR       F_CH2_ConeCircleOk

;----------------------------------------------------
         SZ        M_CH2_Cnow_H
         JMP       L_CH2_AA_Ok  
         MOV       A,M_CH2_Cnow_L
         SUB       A,C_AA_Data
         SNZ       C
         JMP       L_CH2_Not_AA 

         CLR       M_CH2_AA_NoBatTimes

         INC       M_CH2_AA_BATMoveCount       ;M_CH2_BATCHECK_AA_TIMES
         MOV       A,M_CH2_AA_BATMoveCount     ;M_CH2_BATCHECK_AA_TIMES
         SUB       A,10
         SZ        C
         JMP       L_CH2_AA_Ok

         MOV       A,00
         MOV       CH2_TestMode,A
         JMP       L_CH2_EndTestMode  
;------------------------------------------------------
L_CH2_Not_AA:                                   ;no bat to 03 mode 
         CLR       M_CH2_AA_BATMoveCount        ;M_CH2_BATCHECK_AA_TIMES

         SNZ      F_CH2_AA                       ;If is AA Not Check AAA...
         JMP      L_CH2_Not_AA1

         INC       M_CH2_AA_NoBatTimes
         MOV       A,M_CH2_AA_NoBatTimes
         SUB       A,10
         SZ        C
         JMP       L_CH2_Not_AA1
         JMP       L_CH2_AA_Ok 
          
L_CH2_Not_AA1:
         MOV       A,03
         MOV       CH2_TestMode,A
         JMP       L_CH2_EndTestMode  
;------------------------------------------------------
         
         

;------------------------------------------------------
L_CH2_AA_Ok:  

         SET       F_CH2_AA                  ;If is AA Not Check AAA...
         CLR       F_CH2_AAA
;------------------------------------------------------
        CH2_PWM_OFF

        SZ      F_CH2_BatReverse               
        JMP     L_CH2_AANowBatReverseCharge  

        SZ      F_CH2ChargeOver
        JMP     L_CH2_AANowChargeOver

        SZ      F_CH2_NoChargeBat
        JMP     L_CH2_AANowNoChargeBat
;---------------------------------------



;---------------------------------------
        SZ      F_CH1_AA                   ;If is AA Not Check AAA...
        JMP     L_CH2_AA_SET_250ma   
        SZ      F_CH1_AAA                  ;If is AA Not Check AAA...
        JMP     L_CH2_AA_SET_250ma   

;---------------------------------------
        MOV     A,M_CH2_CurrentState
        XOR     A,0
        SZ      Z
        JMP     L_CH2AA_Current500maState0

        MOV     A,M_CH2_CurrentState
        XOR     A,1
        SZ      Z
        JMP     L_CH2AA_Current500maState1

        MOV     A,M_CH2_CurrentState
        XOR     A,2
        SZ      Z
        JMP     L_CH2AA_Current500maState2
;---------------------------------------
L_CH2AA_Current500maState0:                    ;From 0 to 500ma 
        MOV     A,2 
        MOV     M_CH2_CurrentState,A
   
        SET     F_CH2_CurrentTo500mA 
        JMP     L_CH2AA_Current500maStateCom
;---------------------------------------
L_CH2AA_Current500maState1:                    ;From 250ma to 500ma 
        MOV     A,2 
        MOV     M_CH2_CurrentState,A
   
        SET     F_CH2_CurrentTo500mA 
        JMP     L_CH2AA_Current500maStateCom
;---------------------------------------
L_CH2AA_Current500maState2:                    ;keep 500ma, no change..

        ;JMP     L_CH2AA_Current500maStateCom
;---------------------------------------

           
;---------------------------------------
L_CH2AA_Current500maStateCom:
        MOV      A,C_CH2_500mA
        MOV      M_CH2mA_Buf,A  
        JMP      L_CH2_AA_CHECK_2_BAT
;==========================================================================        


;==========================================================================        
L_CH2_AA_SET_250ma:        
;---------------------------------------
        MOV     A,M_CH2_CurrentState
        XOR     A,0
        SZ      Z
        JMP     L_CH2AA_Current250maState0

        MOV     A,M_CH2_CurrentState
        XOR     A,1
        SZ      Z
        JMP     L_CH2AA_Current250maState1

        MOV     A,M_CH2_CurrentState
        XOR     A,2
        SZ      Z
        JMP     L_CH2AA_Current250maState2
;---------------------------------------
L_CH2AA_Current250maState0:                    ;From 0 to 500ma 
        MOV     A,1 
        MOV     M_CH2_CurrentState,A
   
        SET     F_CH2_CurrentTo250mA 
        JMP     L_CH2AA_Current250maStateCom
;---------------------------------------
L_CH2AA_Current250maState1:                    ;keep 250ma, no change.. 

        JMP     L_CH2AA_Current250maStateCom
;---------------------------------------
L_CH2AA_Current250maState2:                   ;From 500ma t

⌨️ 快捷键说明

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