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

📄 sub.asm

📁 NiMH充电的原代码,汇编格式,居于holtek MCU的,已量产5K以上
💻 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 + -