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

📄 li_main.asm

📁 HT46R46 之应用-锂电池充电器
💻 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 + -