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