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

📄 key.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	: 					*
; *******************************************************
mnkey:
	mov	a,p1
	mov	led_p1_d,a
	mov	a,p1m
	mov	led_p1_m,a
	mov	a,p5
	mov	led_p5_d,a
	mov	a,p5m
	mov	led_p5_m,a

keyscan50:
	MOV	A,#00H
	MOV	P1,A
	MOV	A,#0FcH
	MOV	P1M,A
	AND	A,#10H
	MOV	P5M,A
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
keyscan60:	
	b0BTS0	KEY_DOWN_f
	JMP	keyscan10

	MOV	A,P5
	AND	A,#00001111b
	mov	key_buffer1,a
	
	bmov	key_buffer1.4,fp10
	bmov	key_buffer1.5,fp11
	mov	a,key_buffer1
	CMPRS	A,#03FH
	JMP	keyscan20
	BCLR	KEY_UP_f
	BCLR	KEY_DOWN_f
	CLR	key_TEMP
	JMP	KEYSCAN90
keyscan20:
	BSET	KEY_DOWN_f
	MOV	key_BUFFER,A	
keyscan10:
	b0bts0	key_up_f
	jmp	keyscan70	
	INCMS	key_TEMP
	NOP
	MOV	A,key_TEMP
	CMPRS	A,#20
	JMP	KEYSCAN90
	clr	key_temp

	MOV	A,P5
	AND	A,#00001111b
	mov	key_buffer1,a
	bmov	key_buffer1.4,fp10
	bmov	key_buffer1.5,fp11
	mov	a,key_buffer1
	CMPRS	A,key_BUFFER
	JMP	keyscan30
	JMP	keyscan40
keyscan30:
	BCLR	KEY_DOWN_f
	JMP	KEYSCAN90
keyscan40:
	bset 	key_up_f
	JMP	KEYScan90
keyscan70:
	mov	a,p5
	AND	A,#00001111b
	mov	key_buffer1,a
	bmov	key_buffer1.4,fp10
	bmov	key_buffer1.5,fp11
	mov	a,key_buffer1
	sub	a,#03fh
	b0bts1	fz
	jmp	keyscan90
	
	bset	buzzer_active_f
	bset	buzzer_active_sf
	mov	a,#1
	mov	buzzer_count,a
	jmp	keyscan80
	
keyscan80:
	bclr	key_down_f
	bclr	key_up_f
	nop
keyscan801:
	b0BTS0	KEY_buffer.0		;KEY_POWER----P5.0
	jmp	keyscan800
	bset	POWER_key_f
	JMP	KEYSCAN90
keyscan800:
	b0bts1	warning_f
	jmp	keyscan802
	jmp	keyscan90
keyscan802:
	b0BTS0	KEY_buffer.1		;KEY_FUNCTION----P5.1
	jmp	keyscan803
	bset 	FUNCTION_key_f
	JMP	KEYSCAN806
keyscan803:
	b0BTS0	KEY_buffer.2		;KEY_FIREPOWER----P5.2
	jmp	keyscan804
	bset	FIREPOWER_key_f
	JMP	KEYSCAN806
keyscan804:
	b0BTS0	KEY_buffer.3		;KEY_TIMER----P5.3
	JMP	KEYSCAN805
	bset	TIMER_key_f
	JMP	KEYSCAN806
keyscan805:
	b0bts0	key_buffer.4
	jmp	keyscan807
	bset	fire_down_f
	jmp	keyscan806
keyscan807:
	b0bts0	key_buffer.5
	jmp	keyscan90
	bset	pwm_f
	jmp	keyscan806
keyscan806:
	b0bts0	power_f
	jmp	keyscan90
	bclr	buzzer_active_f
	bclr	buzzer_active_sf
	mov	a,#1
	mov	buzzer_count,a
	jmp	keyscan90
keyscan90:
	mov	a,led_p1_d
	mov	p1,a
	mov	a,led_p1_m
	mov	p1m,a
	mov	a,led_p5_d
	mov	p5,a
	mov	a,led_p5_m
	mov	p5m,a
;------------------------------------------------	
keyout:
	nop
keyout10:
	b0bts1	POWER_key_f
	jmp	keyout20
	bclr	power_key_f
	call	powerdw
	jmp	keyout90
keyout20:
	b0bts1	FUNCTION_key_f
	jmp	keyout30
	bclr	function_key_f
	call	FUNCTIONdw
	jmp	keyout90
keyout30:
	b0bts1	FIREPOWER_key_f
	jmp	keyout40
	bclr	FIREPOWER_key_f
	call	FIREPOWERdw
	jmp	keyout90
keyout40:
	b0bts1	timer_key_f
	jmp	keyout50
	bclr	timer_key_f
	call	timerdw
	jmp	keyout90
keyout50:
	b0bts1	fire_down_f
	jmp	keyout60
	bclr	fire_down_f
	call	firedown
	jmp	keyout90
keyout60:
	b0bts1	pwm_f
	jmp	keyout90
	bclr	pwm_f
	decms	tc0r_copy
	nop
	mov	a,tc0r_copy
	mov	tc0r,a
	jmp	keyout90
keyout90:
	ret

;--------------------------------------------------
TIMERDW:
	INCMS	TCOUNTER		;TIMER----0 MINUTES
	NOP
	
	MOV	A,#10
	MUL	A,TCOUNTER
	MOV	timer_MINUTE,A
	
	MOV	A,TCOUNTER
	SUB	A,#10
	b0BTS1	FC
	JMP	TIMERDW80
	
	CLR	TCOUNTER
	CLR	timer_MINUTE

	mov	a,#60
	mov	tc1count2,a
	jmp	TIMERDW90
TIMERDW80:
	bset	timer_f
	bset	ftc1enb
	mov	a,#60
	mov	tc1count2,a
TIMERDW90:
	ret
;------------------------------------------------	
POWERDW:
	NOTBIT	POWER_f
	b0bts1	power_f
	jmp	powerdw10
	jmp	powerdw20
powerdw10:
	bclr	first_f
	bclr	nopan_check_f
	bclr	ft0enb
	clr	t0count1
	clr	t0count2
	jmp	powerdw90
powerdw20:
	bset	nopan_check_f
	bset 	ft0enb
	jmp	powerdw90
POWERDW90:
	ret
;------------------------------------------------
FUNCTIONDW:
	INCMS	FCOUNTER
	NOP
	MOV	A,FCOUNTER
	CMPRS	A,#5
	JMP	FUNCTIONDW90
	CLR	FCOUNTER
FUNCTIONDW90:
	ret
;------------------------------------------------
FIREPOWERDW:
	INCMS	RCOUNTER
	NOP
	mov	a,#092h
	mov	multiplicand_l,a
	MOV	A,#09h
	mov	multiplicand_h,a
	mov	a,rcounter
	mov	multiplier_l,a
	clr	multiplier_h
	
	call	mul2x2
	
	mov	a,result_l
	add	power_set_l,a
	mov	a,result_ml
	adc	power_set_h,a

	MOV	A,RCOUNTER
	SUB	A,#9
	b0BTS1	FC
	JMP	FIREPOWERDW90
	MOV	A,#00H
	MOV	RCOUNTER,A
	MOV	A,#090h
	mov	power_set_l,a
	mov	a,#01ch
	mov	power_set_h,a
	
FIREPOWERDW90:
	ret
;------------------------------------------------
firedown:
	mov	a,rcounter
	b0bts0	fz
	jmp	firedown90
	
	decms	rcounter
	nop
	mov	a,#092h
	mov	multiplicand_l,a
	MOV	A,#09h
	mov	multiplicand_h,a
	mov	a,rcounter
	mov	multiplier_l,a
	clr	multiplier_h
	
	call	mul2x2
	
	mov	a,result_l
	add	power_set_l,a
	mov	a,result_ml
	adc	power_set_h,a
	
firedown90:
	ret

⌨️ 快捷键说明

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