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

📄 mnapp.asm

📁 应用松翰母体写的一款电磁炉
💻 ASM
字号:
;**********************************************
;Name	:mnapp
;Function:
;Input  :
;Output	:
;Register Used:
;***********************************************
mnapp:
	call	checkkey
	call	getinitparameter
	call	function
	
mnapp90:
	ret
;**********************************************
;Name	:ensure which key should operate
;Function:
;Input  :
;Output	:
;Register Used:
;***********************************************
checkkey:
	b0bts0	poweronflag
	jmp	checkkey90	;刚通电,不响应按键
	mov	a,aplcode
	@jmp_a	13
	jmp	checkkey90	;0
	jmp	boilwaterkey	;1,煮水
	jmp	warmmilkkey	;2,热奶
	jmp	soupingkey	;3,煲汤
	jmp	cookingkey	;4,煮饭
	jmp	barbecuekey    	;5,烧烤
	jmp	chaffydishkey   ;6,火锅
	jmp	frieddishkey    ;7,炒菜
	jmp	offkey		;8
	jmp	deckey		;9
	jmp	inckey		;10
	jmp	oneminkey	;11,一分钟
	jmp	tenminkey    	;12,十分钟	
;************************************************
frieddishkey:
;----
	bset	frieddishflag
	bset	operateflag	;开始工作标志
	bset	parameterflag
	bclr	stoprunflag
;----
;初始化参数
	clr	seg3buf
	bset	frieddishled	;light led
	bset	temp160cled	;1200w
	mov_	stepbuf,#4	;level_4


	jmp	checkkey90
;************************************************
chaffydishkey:
;----
	bset	chaffydishflag
	bclr	stoprunflag

	jmp	checkkey90
;************************************************
barbecuekey:
;----
	bset	barbecueflag
	bclr	stoprunflag
	
	jmp	checkkey90	
;************************************************
cookingkey:
;----
	bset	cookingflag
	bclr	stoprunflag
	
	jmp	checkkey90	
;************************************************
soupingkey:
;----
	bset	soupingflag
	bclr	stoprunflag

	jmp	checkkey90	
;************************************************
warmmilkkey:
;----
	bset	warmmilkflag
	bclr	stoprunflag

	jmp	checkkey90	
;************************************************
boilwaterkey:
;----
	bset	boilwaterflag
	bclr	stoprunflag

	jmp	checkkey90	

;************************************************
tenminkey:
;-----
	b0bts1	settimeflag
	jmp	checkkey90	;在某些功能下无效
;---
	mov	a,timerbuf
	and	a,#0f0h
	sub	a,#90h
	b0bts0	fc
	jmp	turnoffnum1
;-----
	mov	a,#10h
	add	timerbuf,a
	bset	refurbishflag
	jmp	checkkey90
;---------------------
turnoffnum1:
	mov	a,#0fh
	and	timerbuf,a
	mov_	seg1buf,#0ffh
	jmp	checkkey90	
;************************************************
oneminkey:
;-----
	b0bts1	settimeflag
	jmp	checkkey90	;在某些功能下无效
;---
	bset	refurbishflag	
	mov	a,timerbuf
	and	a,#0fh
	sub	a,#9
	b0bts0	fc
	jmp	backzeronum0
;-----
	mov	a,#1
	add	timerbuf,a
	jmp	checkkey90
;-----
backzeronum0:
	mov	a,#0f0h
	and	timerbuf,a
	jmp	checkkey90
;************************************************
inckey:
;----
	b0bts1	operateflag
	jmp	checkkey90
	mov	a,stepbuf	;0~8
	sub	a,#8
	b0bts0	fc
	jmp	checkkey90
;----
	incms	stepbuf
	nop
	jmp	checkkey90	
;************************************************
deckey:
;----
	b0bts1	operateflag
	jmp	checkkey90
	mov	a,stepbuf
	b0bts0	fz
	jmp	checkkey90
;----
	decms	stepbuf
	nop
	jmp	checkkey90	
;************************************************
offkey:
;----
	bclr	operateflag
	bset	stoprunflag
	bclr	settimeflag
	bclr	ptcout		;close IGBT

	jmp	checkkey90	
;*************************************************
checkkey90:
	clr	aplcode
;-----
checkkey100:
	ret
	
;**********************************************
;Name	:getinitparameter
;Function:控制参数获得
;Input  :
;Output	:
;Register Used:
;**********************************************	
getinitparameter:
	b0bts1	operateflag
	jmp	getinitparameter90
	b0bts1	parameterflag
	jmp	getinitparameter90
;-----
	bclr	parameterflag
;---------------------------------------------
	b0mov	y,#steptbl1$m
	b0mov	z,#steptbl1$l
;---
	mov	a,stepbuf
	add	z,a
	mov	a,#0
	adc	y,a
;---
	movc
	mov	ADCvolbufl,a
	mov_	ADCvolbufh,r		;电压参数
;---------------------------------------------
	b0mov	y,#steptbl2$m
	b0mov	z,#steptbl2$l
;---
	mov	a,stepbuf
	add	z,a
	mov	a,#0
	adc	y,a
;---
	movc
	mov	ADCcurbufl,a
	mov_	ADCcurbufh,r		;电流参数
;---------------------------------------------
	b0mov	y,#temptbl$m
	b0mov	z,#temptbl$l
;---
	mov	a,stepbuf
	add	z,a
	mov	a,#0
	adc	y,a
;---
	movc
	mov	ADCtempbufl,a
	mov_	ADCtempbufh,r		;温度参数

getinitparameter90:
	ret

;**********************************************
;Name	:function
;Function:各种功能的切换
;Input  :
;Output	:
;Register Used:
;**********************************************
function:
	jb0	operateflag,function90		;工作状态下,开启功能控制
	jb1	frieddishflag,frieddishfun    	;炒菜功能
	jb1	chaffydishflag,chaffydishfun   	;火锅功能 
	jb1	barbecueflag,barbecuefun  	;烧烤功能 
	jb1	cookingflag,cookingfun		;煮饭功能 
	jb1	soupingflag,soupingfun		;煲汤功能
	jb1	warmmilkflag,warmmilkfun	;热奶功能
	jb1	boilwaterflag,boilwaterfun	;煮水功能
;----
function90:
	ret
;**********************************************
;Name	:frieddishfun
;Function:炒菜功能控制
;Input  :
;Output	:
;Register Used:
;**********************************************
frieddishfun:
	

frieddishfun90:
	ret
;**********************************************
;Name	:chaffydishfun
;Function:火锅功能控制
;Input  :
;Output	:
;Register Used:
;**********************************************
chaffydishfun:

chaffydishfun90:
	ret
;**********************************************
;Name	:barbecuefun
;Function:烧烤功能控制
;Input  :
;Output	:
;Register Used:
;**********************************************
barbecuefun:

barbecuefun90:
	ret
;**********************************************
;Name	:cookingfun
;Function:煮饭功能控制
;Input  :
;Output	:
;Register Used:
;**********************************************
cookingfun:

cookingfun90:
	ret
;**********************************************
;Name	:soupingfun
;Function:煲汤功能控制
;Input  :
;Output	:
;Register Used:
;**********************************************
soupingfun:

soupingfun90:
	ret
;**********************************************
;Name	:warmmilkfun
;Function:热奶功能控制
;Input  :
;Output	:
;Register Used:
;**********************************************
warmmilkfun:

warmmilkfun90:
	ret
;**********************************************
;Name	:boilwaterfun
;Function:煮水功能控制
;Input  :
;Output	:
;Register Used:
;**********************************************
boilwaterfun:

boilwaterfun90:
	ret	
;**********************************************
;Name	:poweronsub
;Function:
;Input  :
;Output	:
;Register Used:temp0,temp1
;***********************************************
poweronsub:
	b0bts1	poweronflag		;=1:刚通电,初始状态
	jmp	poweronsub90
	b0bts0	settimeflag
	jmp	poweronsub10
;-----------------------
	bset	settimeflag
	bclr	t1sflag
	mov_	timer1s,#100		;定时1s
;----
	mov_	combuf,#11101111b	;点亮所有的LED
	mov	a,#00111111b
	mov	seg1buf,a
	mov	seg2buf,a
	clr	seg3buf
	clr	seg4buf
	ret
;------------------------
poweronsub10:
	b0bts1	t1sflag
	jmp	poweronsub90
	bclr	t1sflag			;数码管显示0,其他LED关
	bclr	settimeflag
	bclr	poweronflag
	mov	a,#0ffh
	mov	seg3buf,a
	mov	seg4buf,a	
;----
poweronsub90:	
	ret
	
;******************************************************
;******************************************************
;******************************************************
delay4us:
	jmp	$+1	;2us	
	ret		;2us,2+2=4us
;-----
delay_10us:
	jmp	$+1
	jmp	$+1
	jmp	$+1
	ret
;------
delay100us:
	mov_	var3,#100
loop100us00:
	decms	var3
	jmp	loop100us00
	ret
;--------	
delay2ms:
	mov_	var3,#2
loop2ms00:
	mov_	var4,#0ffh
loop2ms01:
	decms	var4
	jmp	loop2ms01
	decms	var3
	jmp	loop2ms00
	ret
;---------
delay20ms:
	mov_	var3,#15
loop20ms00:
	mov_	var4,#0ffh
loop20ms01:
	decms	var4
	jmp	loop20ms01
	decms	var3
	jmp	loop20ms00
	ret

⌨️ 快捷键说明

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