📄 sub.asm
字号:
bat_main_sub:
call stop_charging
call madc_on_sub
snz ch0_old
call show_bat0_led
call delay1s
ret
cinitial:
mmov pa,00000011b
mmov pac,080h
set pbc
clr pb
clr pdc
clr pd
mmov acsr,02h
mmov adcr,ch3+a0
clr pwm0
mclear_ram
call stop_charging
mmov intc0,00000101b
mmov tmr0l,(256-250)
mmov tmrc, timer_mode+timer_on+t1_16
set led0_on_flag
set led1_on_flag
clr led2_on_flag
clr led3_on_flag
clr common_flag
call delay1s
call lcd_initial
call delay1s
ret
timer_isr:
push
mov a,pa
xor a,01000000b
snz acc.led_com
clr common_flag
sz acc.led_com
set common_flag
mov pa,a
sz acc.led_com
jmp pa6_1
pa6_0:
clr pa.5
sz led3_on_flag
set pa.5
clr pa.4
sz led0_on_flag
set pa.4
jmp timer_isr_ap
pa6_1:
set pa.5
sz led2_on_flag
clr pa.5
set pa.4
sz led1_on_flag
clr pa.4
jmp timer_isr_ap
timer_isr_ap:
inc time_4ms
inc charging_cx
mjneq time_4ms,250,timer_isr_exit
clr wdt1
clr time_4ms
inc time_1s
inc Vpeak_cx
mjneq time_1s,90,timer_isr_exit
clr time_1s
inc time_1min
inc total_time
timer_isr_exit:
pop
bat0_flag_initial:
clr Vpeak_cx
clr bat0_Vpeak_charging_ok
clr time_1min
mmov pwm0,010h
clr time_4ms
clr time_1s
ret
bat0_charging_initial:
call ad_4_data
call ad_4_data
call ad_4_data
call ad_4_data
call ad_4_data
call ad_4_data
call ad_4_data
call ad_4_data
mmov Vbat0l_old,Vbat0l
mov Vbat0l_peak,a
mmov Vbat0h_old,Vbat0h
mov Vbat0h_peak,a
ret
madcon_macro_sub:
madcon_temp_lp:
clr emi
clr start
set start
clr start
madcon_label:
sz eoc
jmp madcon_label
set emi
clr wdt2
ret
madc_on_sub:
clr wdt2
mmov Vbat0l_old,Vbat0l
mmov Vbat0h_old,Vbat0h
call adc_on
mmov mp0,offset bat0_voltage_low
call adc_9bit_conver
call check_battery0_status
ret
adc_on:
adc_on_again:
call stop_charging
adc_on_a0:
call delay10ms
mmov adcr,ch3+a0
call madcon_macro_sub
mmov bat0_low,adrl
mmov bat0_high,adrh
mov a,bat0_low
mov bat0_voltage_low,a
mov a,bat0_high
mov bat0_voltage_high,a
ret
a0_discharging:
clr pd.0
mov a,pa
and a,11110011b
or a,00000111b
mov pa,a
ret
a0_charging:
mov a,pa
and a,11110001b
or a,00000001b
mov pa,a
set pd.0
ret
stop_charging:
clr pd.0
mov a,pa
and a,11110011b
or a,00000011b
mov pa,a
ret
delay10ms:
mmov buf0,00
mmov buf1,2
delay10ms_lp:
sdz buf0
jmp delay10ms_lp
sdz buf1
jmp delay10ms_lp
ret
;;; macro for
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -