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

📄 power.asm

📁 应用松翰母体写的一款电磁炉
💻 ASM
字号:
;********************************************************
;  PROJECT NAME : nimh charger				*
;  Author	: borg					*
;  VERSION	: V0.0			      		*
;  BODY		: SN8P2704a				*
;  COMPILER	: 1.99N					*
;  function	:					*
;  input	:					*
;  output	: tempvolt1_l, tempvolt1_h		*
;		  tempvolt2_l, tempvolt2_h		*
;  use register	: data1, data2, tempvolt1_l, tempvolt1_h*
;		  tempvolt2_l, tempvolt2_h		*
;  use flag	: dtemp1_f, dtemp2_f			*
;  run cycles	: 					*
; *******************************************************
;主要是利用p=u*i,通过检测市电电压、电流,计算现时功率与设定功率的差值,调整pwm,调整电流
mnpower:
	b0bts1	power_f
	jmp	mnpower90
	b0bts1	flag4.5
	jmp	mnpower90
	
	mov	a,voltage_l
	mov	multiplier_l,a			;乘数
	mov	a,voltage_h
	mov	multiplier_h,a
	mov	a,current_l
	mov	multiplicand_l,a		;被乘数
	mov	a,current_h
	mov	multiplicand_h,a
	
	call	mul2x2
	
	mov	a,result_l
	mov	power_l,a
	mov	a,result_ml
	mov	power_ml,a
	mov	a,result_mh
	mov	power_mh,a
	mov	a,result_h
	mov	power_h,a
;************************************************	
mnpower10:
	mov	a,power_l
	sub	a,#80h
	b0bts1	fc
	jmp	mnpower20
	jmp	mnpower101
mnpower101:
	mov	a,#0h
	adc	power_ml,a
	jmp	mnpower20
;************************************************
mnpower20:
	mov	a,power_ml
	sub	a,power_set_l
	mov	delta_power_l,a
	mov	a,power_mh
	sbc	a,power_set_h
	mov	delta_power_h,a
	
	b0bts1	fc
	jmp	mnpower201
	jmp	mnpower202
mnpower201:				;功率低于设定值
	bset	power_low_f
	bclr	power_high_f
	mov	a,#0ffh
	xor	delta_power_l,a
	mov	a,#0ffh
	xor	delta_power_h,a
	bset	fc
	mov	a,#0h
	adc	delta_power_l,a
	adc	delta_power_h,a
	jmp	mnpower30
mnpower202:				;功率高于设定值
	b0bts0	fz
	jmp	mnpower203
mnpower204:
	bset 	power_high_f
	bclr	power_low_f
	jmp	mnpower30
mnpower203:
	mov	a,delta_power_l
	sub	a,#10h
	b0bts0	fc
	jmp	mnpower204
	
	bclr	power_high_f
	bclr	power_low_f
	jmp	mnpower90
;************************************************
mnpower30:
	mov	a,delta_power_l
	sub	a,#092h
	mov	a,#09h
	mov	power_temp,a
	mov	a,delta_power_h
	sbc	a,power_temp
	
	b0bts1	fc
	jmp	mnpower301
	jmp	mnpower302
mnpower301:				;低于设定功率200w以内
	mov	a,delta_power_l
	sub	a,#0c9h
	mov	a,#4h
	mov	power_temp,a
	mov	a,delta_power_h
	sbc	a,power_temp
	b0bts1	fc
	jmp	mnpower303
	jmp	mnpower304
;------------------------------------------------
mnpower302:				;低于设定功率200w以外
	b0bts0	power_high_f
	jmp	mnpower302_high
	b0bts0	power_low_f
	jmp	mnpower302_low
	jmp	mnpower90
mnpower302_high:
	mov	a,tc0r_copy
	sub	a,#10
	mov	tc0r,a
	mov	tc0r_copy,a
	jmp	mnpower90
mnpower302_low:
	mov	a,tc0r_copy
	add	a,#10
	mov	tc0r,a
	mov	tc0r_copy,a
	jmp	mnpower90
;------------------------------------------------
mnpower303:				;低于设定功率100w以内
	mov	a,delta_power_l
	sub	a,#064h
	mov	a,#2
	mov	power_temp,a
	mov	a,delta_power_h
	sbc	a,power_temp
	b0bts1	fc
	jmp	mnpower305
	jmp	mnpower306
;------------------------------------------------
mnpower304:				;100w~200w
	b0bts0	power_high_f
	jmp	mnpower304_high
	b0bts0	power_low_f
	jmp	mnpower304_low
	jmp	mnpower90
mnpower304_high:
	mov	a,tc0r_copy
	sub	a,#10
	mov	tc0r,a
	mov	tc0r_copy,a
	jmp	mnpower90
mnpower304_low:
	mov	a,tc0r_copy
	add	a,#10
	mov	tc0r,a
	mov	tc0r_copy,a
	jmp	mnpower90
;------------------------------------------------
mnpower305:				;低于设定功率50w以内
	mov	a,delta_power_l
	sub	a,#0f5h
	mov	a,#0
	mov	power_temp,a
	mov	a,delta_power_h
	sbc	a,power_temp
	b0bts1	fc
	jmp	mnpower307
	jmp	mnpower308
;------------------------------------------------
mnpower306:				;50w~100w
	b0bts0	power_high_f
	jmp	mnpower306_high
	b0bts0	power_low_f
	jmp	mnpower306_low
	jmp	mnpower90
mnpower306_high:
	mov	a,tc0r_copy
	sub	a,#5
	mov	tc0r,a
	mov	tc0r_copy,a
	jmp	mnpower90
mnpower306_low:
	mov	a,tc0r_copy
	add	a,#5
	mov	tc0r,a
	mov	tc0r_copy,a
	jmp	mnpower90
;------------------------------------------------
mnpower307:				;低于设定功率20w以内
	mov	a,delta_power_l
	sub	a,#07ah
	mov	a,#0
	mov	power_temp,a
	mov	a,delta_power_h
	sbc	a,power_temp
	b0bts1	fc
	jmp	mnpower309
	jmp	mnpower300
;------------------------------------------------
mnpower308:				;20w~50w
	b0bts0	power_high_f
	jmp	mnpower308_high
	b0bts0	power_low_f
	jmp	mnpower308_low
	jmp	mnpower90
mnpower308_high:
	mov	a,tc0r_copy
	sub	a,#2
	mov	tc0r,a
	mov	tc0r_copy,a
	jmp	mnpower90
mnpower308_low:
	mov	a,tc0r_copy
	add	a,#2
	mov	tc0r,a
	mov	tc0r_copy,a
	jmp	mnpower90
;------------------------------------------------
mnpower309:				;低于设定功率10w以内
	b0bts0	power_high_f
	jmp	mnpower309_high
	b0bts0	power_low_f
	jmp	mnpower309_low
	jmp	mnpower90
mnpower309_high:
	mov	a,tc0r_copy
	sub	a,#1
	mov	tc0r,a
	mov	tc0r_copy,a
	jmp	mnpower90
mnpower309_low:
	mov	a,tc0r_copy
	add	a,#1
	mov	tc0r,a
	mov	tc0r_copy,a
	jmp	mnpower90
;------------------------------------------------
mnpower300:				;10w~20w
	b0bts0	power_high_f
	jmp	mnpower300_high
	b0bts0	power_low_f
	jmp	mnpower300_low
	jmp	mnpower90
mnpower300_high:
	mov	a,tc0r_copy
	sub	a,#1
	mov	tc0r,a
	mov	tc0r_copy,a
	jmp	mnpower90
mnpower300_low:
	mov	a,tc0r_copy
	add	a,#1
	mov	tc0r,a
	mov	tc0r_copy,a
	jmp	mnpower90
;************************************************
mnpower90:
	mov	a,tc0r_copy
	sub	a,#245
	b0bts1	fc
	jmp	mnpower901
	jmp	mnpower902
mnpower901:
	jmp	mnpower905
mnpower902:
	mov	a,tc0r_copy
	sub	a,#10
	mov	tc0r_copy,a
	jmp	mnpower909
mnpower905:
	mov	a,tc0r_copy
	sub	a,#11
	b0bts1	fc
	jmp	mnpower906
	jmp	mnpower907
mnpower906:
	mov	a,tc0r_copy
	add	a,#10
	mov	tc0r_copy,a
	jmp	mnpower909
mnpower907:
	jmp	mnpower909
mnpower909:
	ret

⌨️ 快捷键说明

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