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

📄 charging current.asm

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