📄 charging current.asm
字号:
;;; (C_time+1) * 2 min
c_time equ 180
fast_current equ 12
include ht46r47.inc
a0 equ 00h
a1 equ 01h
a2 equ 02h
ch3 equ 00011000b
t1_8 equ 0101b
mmov macro a1,b1
mov a,b1
mov a1,a
endm
push macro
mov acc_stack,a
mov a,status
mov status_stack,a
endm
pop macro
mov a,status_stack
mov status,a
mov a,acc_stack
reti
endm
;;; if b1<>c1 then d1
mjneq macro b1,c1,d1
mov a,b1
xor a,c1
snz z
jmp d1
endm
;;; if b1==c1 then d1
mjeq macro b1,c1,d1
mov a,b1
xor a,c1
sz z
jmp d1
endm
;;; if b1<c1 then d1
mjles macro b1,c1,d1
mov a,b1
sub a,c1
snz c
jmp d1
endm
mclear_ram macro
LOCAL temp
mmov mp0,040h+80h
temp:
clr r0
inc mp0
mov a,mp0
xor a,080h
snz z
jmp temp
endm
;;; macro for comple bit
mcplb macro temp
local lab1,lab2
snz temp
jmp lab1
clr temp
jmp lab2
lab1:
set temp
lab2:
endm
mpolling_eoc macro
local bat0_300ma_polling_eoc
clr emi
clr start
set start
clr start
bat0_300ma_polling_eoc:
sz eoc
jmp bat0_300ma_polling_eoc
set emi
clr wdt2
endm
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
data_sec .section at 040h 'data'
acc_stack db ?
status_stack db ?
buf0 db ?
buf1 db ?
buf2 db ?
time_4ms db ?
time_1s db ?
time_1min db ?
charging_cx db ?
charging_time_min db ?
zx db ?
led_cx db ?
one_min_flag dbit
led_1s db ?
ram_last db ?
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mrled_on macro
set pa.3
endm
mrled_off macro
clr pa.3
endm
mgled_on macro
set pa.2
endm
mgled_off macro
clr pa.2
endm
mther macro
local abc
call ad_ch2
mov a,adrh
and a,0fch
xor a,0fch
sz z
jmp abc
mjles 207,adrh, ther_fail
mjles adrh, 77, ther_fail
abc:
endm
.listinclude
int_code .SECTION at 00h 'CODE'
org 000h
nop
jmp ap
ORG 004h
nop
reti
ORG 008h
nop
jmp timer_isr
ORG 00ch
reti
ap:
call cinitial
mther
jmp li_battery_main
ther_fail:
mrled_off
mgled_off
clr pwm
clr pd.0
ther_fail_lp:
mcplb pa.2
clr wdt2
call delay05s
call ad_ch2
mjles 207-1,adrh, ther_fail_lp
mjles adrh, 77+1, ther_fail_lp
clr pa.2
halt
jmp $-1
ad_ch0:
mmov adcr,ch3+a0
call madcon_macro_sub
ret
ad_ch1:
mmov adcr,ch3+a1
call madcon_macro_sub
ret
ad_ch2:
mmov adcr,ch3+a2
call madcon_macro_sub
ret
stop_charging:
clr pwm
clr pd
ret
include sub.asm
include li_main.asm
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -