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

📄 charger.asm

📁 铅酸电池充电器
💻 ASM
📖 第 1 页 / 共 4 页
字号:
; line   363
$DGL	0,24
	clr1	_mode_change_flag				;[INF] 3, 6
; line   364
$DGL	0,25
	mov	_duty_pwm,#064H	; 100 				;[INF] 3, 6
; line   365
$DGL	0,26
	mov	_mode,a						;[INF] 2, 4
; line   366
$DGL	0,27
	nop							;[INF] 1, 2
??eb02_timer_1s:
?L0122:
; line   369
$DGL	0,30
	movw	ax,_second					;[INF] 2, 6
	cmpw	ax,#01C20H	; 7200 				;[INF] 3, 6
	bc	$?L0124						;[INF] 2, 6
	bz	$?L0124						;[INF] 2, 6
; line   370
$DGL	0,31
??bb03_timer_1s:
; line   371
$DGL	0,32
	set1	_mode_change_flag				;[INF] 3, 6
; line   372
$DGL	0,33
	movw	ax,#00H	; 0 					;[INF] 3, 6
	movw	_second,ax					;[INF] 2, 8
??eb03_timer_1s:
?L0124:
??eb00_timer_1s:
; line   375
$DGL	0,36
??ef_timer_1s:
	pop	ax						;[INF] 1, 6
	reti							;[INF] 1, 8
??ee_timer_1s:
; line   380
_normal_work:
$DGL	1,245
??bf_normal_work:
; line   382
$DGL	0,3
	set1	_current_check_start				;[INF] 3, 6
; line   384
$DGL	0,5
	mov	a,!_U1						;[INF] 3, 8
	xch	a,x						;[INF] 1, 4
	xor	a,a						;[INF] 2, 4
	call	!_AD_convert					;[INF] 3, 6
; line   385
$DGL	0,6
	mov	a,!_U2						;[INF] 3, 8
	xch	a,x						;[INF] 1, 4
	xor	a,a						;[INF] 2, 4
	call	!_AD_convert					;[INF] 3, 6
; line   386
$DGL	0,7
	movw	ax,_ADCR_U2					;[INF] 2, 6
	cmp	a,_ADCR_U1+1					;[INF] 2, 4
	bnz	$?L0130						;[INF] 2, 6
	xch	a,x						;[INF] 1, 4
	cmp	a,_ADCR_U1					;[INF] 2, 4
?L0130:
	bnc	$?L0128						;[INF] 2, 6
; line   387
$DGL	0,8
??bb00_normal_work:
; line   388
$DGL	0,9
	movw	ax,_ADCR_U1					;[INF] 2, 6
	xch	a,x						;[INF] 1, 4
	sub	a,_ADCR_U2					;[INF] 2, 4
	xch	a,x						;[INF] 1, 4
	subc	a,_ADCR_U2+1					;[INF] 2, 4
	movw	_@RTARG0,ax					;[INF] 2, 8
	movw	ax,_bit_current					;[INF] 2, 6
	call	!@@iumul					;[INF] 3, 6
	movw	_current1,ax					;[INF] 2, 8
; line   389
$DGL	0,10
	mov	c,#0AH	; 10 					;[INF] 3, 6
	callt	[@@divuw]					;[INF] 1, 8
	movw	_current1,ax					;[INF] 2, 8
??eb00_normal_work:
?L0128:
; line   392
$DGL	0,13
	movw	ax,#032H	; 50 				;[INF] 3, 6
	call	!_delay						;[INF] 3, 6
; line   394
$DGL	0,15
	mov	a,!_U1						;[INF] 3, 8
	xch	a,x						;[INF] 1, 4
	xor	a,a						;[INF] 2, 4
	call	!_AD_convert					;[INF] 3, 6
; line   395
$DGL	0,16
	mov	a,!_U2						;[INF] 3, 8
	xch	a,x						;[INF] 1, 4
	xor	a,a						;[INF] 2, 4
	call	!_AD_convert					;[INF] 3, 6
; line   396
$DGL	0,17
	movw	ax,_ADCR_U2					;[INF] 2, 6
	cmp	a,_ADCR_U1+1					;[INF] 2, 4
	bnz	$?L0133						;[INF] 2, 6
	xch	a,x						;[INF] 1, 4
	cmp	a,_ADCR_U1					;[INF] 2, 4
?L0133:
	bnc	$?L0131						;[INF] 2, 6
; line   397
$DGL	0,18
??bb01_normal_work:
; line   398
$DGL	0,19
	movw	ax,_ADCR_U1					;[INF] 2, 6
	xch	a,x						;[INF] 1, 4
	sub	a,_ADCR_U2					;[INF] 2, 4
	xch	a,x						;[INF] 1, 4
	subc	a,_ADCR_U2+1					;[INF] 2, 4
	movw	_@RTARG0,ax					;[INF] 2, 8
	movw	ax,_bit_current					;[INF] 2, 6
	call	!@@iumul					;[INF] 3, 6
	movw	_current2,ax					;[INF] 2, 8
; line   399
$DGL	0,20
	mov	c,#0AH	; 10 					;[INF] 3, 6
	callt	[@@divuw]					;[INF] 1, 8
	movw	_current2,ax					;[INF] 2, 8
??eb01_normal_work:
?L0131:
; line   402
$DGL	0,23
	movw	ax,_current1					;[INF] 2, 6
	clr1	CY						;[INF] 1, 2
	rorc	a,1						;[INF] 1, 2
	xch	a,x						;[INF] 1, 4
	rorc	a,1						;[INF] 1, 2
	xch	a,x						;[INF] 1, 4
	movw	bc,ax						;[INF] 1, 4
	movw	ax,_current2					;[INF] 2, 6
	clr1	CY						;[INF] 1, 2
	rorc	a,1						;[INF] 1, 2
	xch	a,x						;[INF] 1, 4
	rorc	a,1						;[INF] 1, 2
	add	a,c						;[INF] 2, 4
	xch	a,x						;[INF] 1, 4
	addc	a,b						;[INF] 2, 4
	movw	_current,ax					;[INF] 2, 8
; line   404
$DGL	0,25
	clr1	_current_check_start				;[INF] 3, 6
; line   406
$DGL	0,27
	call	!_pwm_stop					;[INF] 3, 6
; line   408
$DGL	0,29
	movw	ax,#01388H	; 5000 				;[INF] 3, 6
	call	!_delay						;[INF] 3, 6
; line   409
$DGL	0,30
	mov	a,!_U1						;[INF] 3, 8
	xch	a,x						;[INF] 1, 4
	xor	a,a						;[INF] 2, 4
	call	!_AD_convert					;[INF] 3, 6
; line   410
$DGL	0,31
	movw	ax,#0104H	; 260 				;[INF] 3, 6
	sub	a,_battery_U1					;[INF] 2, 4
	xch	a,x						;[INF] 1, 4
	subc	a,_battery_U1+1					;[INF] 2, 4
	movw	_@RTARG0,ax					;[INF] 2, 8
	movw	ax,_bit_voltage					;[INF] 2, 6
	call	!@@iumul					;[INF] 3, 6
	movw	_V_battery,ax					;[INF] 2, 8
; line   411
$DGL	0,32
	mov	c,#0AH	; 10 					;[INF] 3, 6
	callt	[@@divuw]					;[INF] 1, 8
	movw	_V_battery,ax					;[INF] 2, 8
; line   413
$DGL	0,34
	movw	ax,_ADCR_U1					;[INF] 2, 6
	cmpw	ax,#0FAH	; 250 				;[INF] 3, 6
	bnc	$?L0134						;[INF] 2, 6
; line   414
$DGL	0,35
??bb02_normal_work:
; line   415
$DGL	0,36
	set1	_work_flag					;[INF] 3, 6
; line   416
$DGL	0,37
	set1	_second_10_start				;[INF] 3, 6
??eb02_normal_work:
	br	$?L0142						;[INF] 2, 6
?L0134:
; line   419
$DGL	0,40
??bb03_normal_work:
; line   420
$DGL	0,41
	bt	_mode_change_flag,$?L0136			;[INF] 4,10
; line   421
$DGL	0,42
??bb04_normal_work:
; line   422
$DGL	0,43
	movw	ax,_V_battery					;[INF] 2, 6
	cmpw	ax,#0ABFH	; 2751 				;[INF] 3, 6
	bnc	$?L0138						;[INF] 2, 6
	mov	_mode,#01H	; 1 				;[INF] 3, 6
	br	$?L0137						;[INF] 2, 6
?L0138:
; line   423
$DGL	0,44
	movw	ax,_V_battery					;[INF] 2, 6
	cmpw	ax,#0B23H	; 2851 				;[INF] 3, 6
	bnc	$?L0140						;[INF] 2, 6
	mov	_mode,#02H	; 2 				;[INF] 3, 6
	br	$?L0137						;[INF] 2, 6
?L0140:
; line   424
$DGL	0,45
	mov	_mode,#03H	; 3 				;[INF] 3, 6
??eb04_normal_work:
	br	$?L0137						;[INF] 2, 6
?L0136:
; line   426
$DGL	0,47
	mov	_mode,#03H	; 3 				;[INF] 3, 6
?L0137:
; line   428
$DGL	0,49
	mov	a,_mode						;[INF] 2, 4
	cmp	a,#03H	; 3 					;[INF] 2, 4
	bz	$?L0145						;[INF] 2, 6
	cmp	a,#02H	; 2 					;[INF] 2, 4
	bz	$?L0144						;[INF] 2, 6
	cmp	a,#01H	; 1 					;[INF] 2, 4
	bnz	$?L0146						;[INF] 2, 6
; line   429
$DGL	0,50
??bb05_normal_work:
; line   430
$DGL	0,51
	call	!_fast_charging_handle				;[INF] 3, 6
; line   431
$DGL	0,52
	br	$?L0142						;[INF] 2, 6
; line   432
$DGL	0,53
?L0144:
	call	!_variable_charging_handle			;[INF] 3, 6
; line   433
$DGL	0,54
	br	$?L0142						;[INF] 2, 6
; line   434
$DGL	0,55
?L0145:
	call	!_fix_100mA_handle				;[INF] 3, 6
; line   435
$DGL	0,56
	br	$?L0142						;[INF] 2, 6
; line   436
$DGL	0,57
?L0146:
	nop							;[INF] 1, 2
; line   437
$DGL	0,58
??eb05_normal_work:
; line   438
$DGL	0,59
?L0142:
??eb03_normal_work:
; line   440
$DGL	0,61
??ef_normal_work:
	ret							;[INF] 1, 6
??ee_normal_work:
; line   445
_testing:
$DGL	1,275
??bf_testing:
; line   446
$DGL	0,2
	mov	CMP11,#0C8H	; 200 				;[INF] 3, 6
; line   447
$DGL	0,3
	nop							;[INF] 1, 2
; line   448
$DGL	0,4
	call	!_pwm_start					;[INF] 3, 6
; line   449
$DGL	0,5
	set1	_current_check_start				;[INF] 3, 6
; line   450
$DGL	0,6
	movw	ax,#01388H	; 5000 				;[INF] 3, 6
	call	!_delay						;[INF] 3, 6
; line   451
$DGL	0,7
	mov	a,!_U1						;[INF] 3, 8
	xch	a,x						;[INF] 1, 4
	xor	a,a						;[INF] 2, 4
	call	!_AD_convert					;[INF] 3, 6
; line   452
$DGL	0,8
	clr1	_current_check_start				;[INF] 3, 6
; line   454
$DGL	0,10
	movw	ax,_ADCR_U1					;[INF] 2, 6
	cmpw	ax,#0FAH	; 250 				;[INF] 3, 6
	bnc	$?L0149						;[INF] 2, 6
; line   455
$DGL	0,11
??bb00_testing:
; line   456
$DGL	0,12
	set1	_work_flag					;[INF] 3, 6
; line   457
$DGL	0,13
	call	!_pwm_stop					;[INF] 3, 6
??eb00_testing:
	br	$?L0150						;[INF] 2, 6
?L0149:
; line   459
$DGL	0,15
??bb01_testing:
; line   460
$DGL	0,16
	clr1	_work_flag					;[INF] 3, 6
; line   461
$DGL	0,17
	clr1	_second_10_start				;[INF] 3, 6
; line   462
$DGL	0,18
	mov	_second_10,#00H	; 0 				;[INF] 3, 6
??eb01_testing:
?L0150:
; line   465
$DGL	0,21
??ef_testing:
	ret							;[INF] 1, 6
??ee_testing:

@@VECT0E	CSEG	AT    000EH
_@vect0e:
	DW	_timer_1s
	END


; *** Code Information ***
;
; $FILE E:\my_project\compex_charger\v1.52\V1.52_WDT\charger.c
;
; $FUNC hardware_init(75)
;	void=(void)
;	CODE SIZE= 102 bytes, CLOCK_SIZE= 212 clocks, STACK_SIZE= 0 bytes
;
; $FUNC main(120)
;	void=(void)
;	CODE SIZE= 159 bytes, CLOCK_SIZE= 360 clocks, STACK_SIZE= 2 bytes
;
; $CALL hardware_init(121)
;	void=(void)
;
; $CALL learning(135)
;	void=(void)
;
; $CALL delay(153)
;	void=(unsigned int:ax)
;
; $CALL pwm_stop(154)
;	void=(void)
;
; $CALL delay(158)
;	void=(unsigned int:ax)
;
; $CALL testing(163)
;	void=(void)
;
; $CALL normal_work(164)
;	void=(void)
;
; $FUNC AD_convert(175)
;	void=(unsigned char chn:x)
;	CODE SIZE= 244 bytes, CLOCK_SIZE= 784 clocks, STACK_SIZE= 8 bytes
;
; $FUNC no_battery_handle(222)
;	void=(void)
;	CODE SIZE= 4 bytes, CLOCK_SIZE= 12 clocks, STACK_SIZE= 2 bytes
;
; $CALL pwm_stop(223)
;	void=(void)
;
; $FUNC fast_charging_handle(228)
;	void=(void)
;	CODE SIZE= 86 bytes, CLOCK_SIZE= 208 clocks, STACK_SIZE= 2 bytes
;
; $CALL pwm_start(254)
;	void=(void)
;
; $FUNC variable_charging_handle(260)
;	void=(void)
;	CODE SIZE= 104 bytes, CLOCK_SIZE= 264 clocks, STACK_SIZE= 2 bytes
;
; $CALL pwm_start(282)
;	void=(void)
;
; $FUNC fix_100mA_handle(289)
;	void=(void)
;	CODE SIZE= 77 bytes, CLOCK_SIZE= 184 clocks, STACK_SIZE= 2 bytes
;
; $CALL pwm_start(310)
;	void=(void)
;
; $FUNC pwm_start(321)
;	void=(void)
;	CODE SIZE= 4 bytes, CLOCK_SIZE= 12 clocks, STACK_SIZE= 0 bytes
;
; $FUNC pwm_stop(327)
;	void=(void)
;	CODE SIZE= 4 bytes, CLOCK_SIZE= 12 clocks, STACK_SIZE= 0 bytes
;
; $FUNC delay(333)
;	void=(unsigned int delay_number:ax)
;	CODE SIZE= 40 bytes, CLOCK_SIZE= 152 clocks, STACK_SIZE= 8 bytes
;
; $FUNC timer_1s(340)
;	void=(void)
;	CODE SIZE= 93 bytes, CLOCK_SIZE= 232 clocks, STACK_SIZE= 2 bytes
;
; $FUNC normal_work(380)
;	void=(void)
;	CODE SIZE= 260 bytes, CLOCK_SIZE= 686 clocks, STACK_SIZE= 2 bytes
;
; $CALL AD_convert(384)
;	void=(int:ax)
;
; $CALL AD_convert(385)
;	void=(int:ax)
;
; $CALL delay(392)
;	void=(unsigned int:ax)
;
; $CALL AD_convert(394)
;	void=(int:ax)
;
; $CALL AD_convert(395)
;	void=(int:ax)
;
; $CALL pwm_stop(406)
;	void=(void)
;
; $CALL delay(408)
;	void=(unsigned int:ax)
;
; $CALL AD_convert(409)
;	void=(int:ax)
;
; $CALL fast_charging_handle(430)
;	void=(void)
;
; $CALL variable_charging_handle(432)
;	void=(void)
;
; $CALL fix_100mA_handle(434)
;	void=(void)
;
; $FUNC testing(445)
;	void=(void)
;	CODE SIZE= 53 bytes, CLOCK_SIZE= 120 clocks, STACK_SIZE= 2 bytes
;
; $CALL pwm_start(448)
;	void=(void)
;
; $CALL delay(450)
;	void=(unsigned int:ax)
;
; $CALL AD_convert(451)
;	void=(int:ax)
;
; $CALL pwm_stop(457)
;	void=(void)

; Target chip : uPD78F9202
; Device file : V3.00 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -