📄 li_main.asm
字号:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
li_battery_main:
set pa.7
set pa.6
set pa.5
set pa.4
mrled_on
mgled_off
call stop_charging
mmov zx,30
call delay0
li_battery_main_lp:
clr wdt2
clr led_cx
mther
call ad_ch1
mjles 175,adrh,li_battery_short
mjles adrh,1,li_battery_main
sdz zx
jmp li_battery_main_lp
mrled_on
mgled_off
clr one_min_flag
clr led_1s
clr time_4ms
clr charging_time_min
jmp li_charging
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
li_battery_short:
mrled_off
mgled_off
clr pwm
clr pd.0
li_battery_short_lp:
mcplb pa.2
clr wdt2
call delay05s
call ad_ch1
mjles 175,adrh,li_battery_short_lp
jmp li_battery_main
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
li_charging:
mrled_on
mgled_on
mmov zx,30
clr pwm
set pd.0
fast_charging_sub_lp:
ch3_lp0:
clr wdt2
inc pwm
mjeq pwm,250, fix_voltage
ch3_lp1:
call delay0
mther
mjles c_time,charging_time_min,li_charging_ok
call ad_ch0
mmov led_cx,01h
mjles adrh,fast_current,ch3_lp0
mjles fast_current*3,adrh,li_battery_short
mjles fast_current+1,adrh,ch3_lp2
clr wdt2
jmp ch3_lp1
ch3_lp2:
dec pwm
clr wdt2
jmp ch3_lp1
ch3_lp3:
clr wdt2
jmp ch3_lp1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
fix_voltage:
call rev_charge_check_first
fix_voltage_lp:
mmov zx,30
fix_voltage_1:
clr wdt2
mther
mjles c_time,charging_time_min,li_charging_ok
call AD_ch1
call rev_charge_check
call AD_ch0
mjles adrh,1,fix_voltage_ok
mjles fast_current*3,adrh,li_battery_short
jmp fix_voltage_lp
fix_voltage_ok:
sdz zx
jmp fix_voltage_1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
li_charging_ok:
mmov led_cx,05h
clr pwm
clr pd.0
mmov zx,3
call delay0
li_charging_ok_lp:
mrled_off
mgled_on
clr wdt2
call stop_charging
mther
call ad_ch1
mjles adrh,1,exit_li_charging_ok
mjles 128,adrh,exit_li_charging_ok
jmp li_charging_ok
exit_li_charging_ok:
sdz zx
jmp li_charging_ok_lp
jmp li_battery_main
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
rev_charge_check_first:
clr one_min_flag
clr led_1s
mjles 11-3,adrh,rev_01_ok
inc led_cx
clr pa.4
mjles 9-3,adrh,rev_01_ok
inc led_cx
clr pa.5
mjles 4,adrh,rev_01_ok
inc led_cx
clr pa.6
mjles 2,adrh,rev_01_ok
inc led_cx
clr pa.7
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
rev_charge_check:
snz one_min_flag
ret
mov a,led_cx
and a,07h
addm a,pcl
jmp rev_00
jmp rev_01
jmp rev_02
jmp rev_03
jmp rev_04
jmp rev_05
jmp rev_05
jmp rev_05
rev_00:
clr one_min_flag
clr led_1s
inc led_cx
ret
rev_01:
mjles 11-3,adrh,rev_01_ok
inc led_cx
clr pa.4
clr one_min_flag
clr led_1s
ret
rev_01_ok:
clr one_min_flag
ret
rev_02:
mjles 9-3,adrh,rev_01_ok
inc led_cx
clr pa.5
clr one_min_flag
clr led_1s
ret
rev_03:
mjles 4,adrh,rev_01_ok
inc led_cx
clr pa.6
clr one_min_flag
clr led_1s
ret
rev_04:
mjles 2,adrh,rev_01_ok
inc led_cx
clr pa.7
clr one_min_flag
clr led_1s
ret
rev_05:
clr one_min_flag
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -