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

📄 key.asm

📁 这是一个完整的除湿机方案!另包含SCH原理图。希望对用松翰单片机的朋友有帮助!
💻 ASM
字号:
;**********************************************
;Name	:mnkey
;Function:
;Input  :
;Output	:
;Register Used:
;***********************************************
mnkey:
	b0bts1	t20msflag
	jmp	mnkey90
	b0bclr	t20msflag
	b0bts0	ptan2		;按键AN2
	jmp	mnkey10
	b0bclr	ptan2firsf	
	b0bts0	keyerrflag1
	jmp	mnkey19
	incms	countan1
	nop
	mov	a,countan1
	cmprs	a,#50
	jmp	mnkey20
	clr	countan1
	incms	countan1add
	nop
	mov	a,countan1add
	sub	a,#3
	b0bts1	fc
	jmp	mnkey5
	b0bset	offflag		;大于3秒关机
mnkey5:
	mov	a,countan1add
	sub	a,#5
	b0bts1	fc
	jmp	mnkey20
	b0bset	testmodef	;大于5秒检测
	b0bset	keyerrflag1
	jmp	mnkey19

mnkey10:
	b0bclr	keyerrflag1	;高电平时设置按键标志
	b0bts0	ptan2firsf
	jmp	mnkey10add
	b0bset	ptan2firsf
	clr	t5s
	b0bclr	t5sflag
mnkey10add:
	mov	a,countan1add
	sub	a,#3
	b0bts1	fc
	jmp	mnkey16
	b0bset	offflag		;关机
	jmp	mnkey19
mnkey16:
	mov	a,countan1add
	b0bts1	fz
	jmp	mnkey17
	mov	a,countan1
	sub	a,#3
	b0bts1	fc
	jmp	mnkey19
mnkey17:			;切换
	b0bset	keyflag

	mov	a,keycode
	sub	a,#11
	b0bts1	fc
	jmp	mnkey18
	clr	keycode
	notbit	hightolflag
mnkey18:
	incms	keycode
	nop

mnkey19:
	clr	countan1add
	clr	countan1
mnkey20:			;按键AN1
	b0bts0	ptan1
	jmp	mnkey28	
	b0bts0	keyerrflag2
	jmp	mnkey29
	incms	countan2
	nop
	mov	a,countan2
	sub	a,#6
	b0bts1	fc
	jmp	mnkey30
	b0bset	an1flag
	b0bset	keyerrflag2
	jmp	mnkey29

mnkey28:
	b0bclr	keyerrflag2
	mov	a,countan2
	sub	a,#4
	b0bts1	fc
	jmp	mnkey29
	b0bset	an1flag

mnkey29:
	clr	countan2
mnkey30:			;按键TEST

	b0bts0	pttest
	jmp	mnkey38	
	b0bts0	keyerrflag3
	jmp	mnkey39
	incms	counttest
	nop
	mov	a,counttest
	sub	a,#8
	b0bts1	fc
	jmp	mnkey40
	b0bset	testflag
	b0bset	keyerrflag3
	jmp	mnkey39

mnkey38:
	b0bclr	keyerrflag3
	b0bclr	testflag
mnkey39:
	clr	counttest
mnkey40:			;按键LIND
	b0bts0	ptlind
	jmp	mnkey46	
	b0bts0	keyerrflag4
	jmp	mnkey49
	incms	countlind
	nop
	b0bts0	lindfirflag
	jmp	mnkey40add
	mov	a,countlind
	sub	a,#10
	b0bts1	fc
	jmp	mnkey40add
	b0bset	lindflag
	b0bset	lindfirflag
mnkey40add:
	mov	a,countlind
	cmprs	a,#50
	jmp	mnkey50
	clr	countlind
	incms	countlindadd
	nop
	mov	a,countlindadd
	sub	a,#120
	b0bts1	fc
	jmp	mnkey50
	b0bset	lindwarflag
	b0bset	keyerrflag4
	jmp	mnkey49

mnkey46:
	b0bclr	keyerrflag4
	b0bclr	lindwarflag
	b0bclr	lindfirflag
;	mov	a,countlindadd
;	b0bts1	fz
;	jmp	mnkey47
;	mov	a,countlind
;	sub	a,#10
;	b0bts1	fc
;	jmp	mnkey49
;mnkey47:
;	b0bset	lindflag
mnkey49:
	clr	countlind
	clr	countlindadd
mnkey50:			;按键TOP

	mov	a,p2
	and	a,#00010000b
	mov	p2buf,a
	mov	a,#00010000b
	mov	p2ur,a
	b0bclr	p2m.4	
	jmp	$+1
	jmp	$+1
	jmp	$+1
	nop
	b0bts1	pttop123
	jmp	mnkey60
	mov	a,#0
	mov	p2ur,a
	b0bset	p2m.4
;	jmp	$+1
	nop
	mov	a,p2buf
	b0bts1	fz
	jmp	mnkey53
	b0bclr	pttop123
	jmp	mnkey55
mnkey53:
	b0bset	pttop123
mnkey55:
	b0bts0	keyerrflag5
	jmp	mnkey69
	incms	counttop
	nop
	mov	a,counttop
	sub	a,#8
	b0bts1	fc
	jmp	mnkey90
	b0bset	topflag
	b0bset	keyerrflag5
	jmp	mnkey69
mnkey60:
	mov	a,#0
	mov	p2ur,a
	b0bset	p2m.4
;	jmp	$+1
	nop
	mov	a,p2buf
	b0bts1	fz
	jmp	mnkey63
	b0bclr	pttop123
	jmp	mnkey65
mnkey63:
	b0bset	pttop123
mnkey65:
	b0bclr	keyerrflag5
	b0bclr	topflag
mnkey69:
	clr	counttop


mnkey90:
	ret
	


⌨️ 快捷键说明

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