📄 main.asm
字号:
;---------------------------------------------------------------------------
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 + -