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

📄 mnapp.asm

📁 应用松翰母体写的一款电磁炉
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;Output	:
;Register Used:
;**********************************************
chaffydishfun:
	b0bts0	stoprunflag
	jmp	chaffydishfun90
	b0bts1	timecomeflag
	jmp	chaffydishfun90
;----
	bset	stoprunflag

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

barbecuefun90:
	ret
;**********************************************
;Name	:cookingfun
;Function:煮饭功能控制
;Input  :
;Output	:
;Register Used:
;**********************************************
cookingfun:
;----
	b0bts0	fourthstepflag
	jmp	fourthstepfun
	b0bts0	thirdstepflag
	jmp	thirdstepfun
	b0bts0	secondstepflag
	jmp	secondstepfun
	b0bts0	firststepflag
	jmp	firststepfun
;----
	b0bts1	t1mflag
	jmp	cookingfun90
	bclr	t1mflag
	decms	timerbuf1
	jmp	cookingfun90
	bset	firststepflag
;------
	mov_	ADCtempbufl,#ADC104CvalueL
	mov_	ADCtempbufh,#ADC104CvalueH
	ret
;**********************************************
firststepfun:
	b0bts1	tempcomeflag
	jmp	cookingfun90
;----
	bclr	tempcomeflag
	bclr	firststepflag
	bset	secondstepflag
	bclr	temp120Cled
;----
	mov_	powervaluel,#ADCvalue3L
	mov_	powervaluem,#ADCvalue3m
	mov_	powervalueh,#ADCvalue3h
	
	mov_	ADCtempbufl,#ADC107CvalueL
	mov_	ADCtempbufh,#ADC107CvalueH
	ret
;**********************************************
secondstepfun:
	b0bts1	tempcomeflag
	jmp	cookingfun90
;----
	bclr	tempcomeflag
	bclr	secondstepflag
	bset	thirdstepflag
	mov_	seg4buf,#0ffh
	bclr	temp120Cled
	bclr	keepwarmled
;----
	mov_	powervaluel,#ADCvalue2L
	mov_	powervaluem,#ADCvalue2m
	mov_	powervalueh,#ADCvalue2h
	
	mov_	ADCtempbufl,#ADC104CvalueL
	mov_	ADCtempbufh,#ADC104CvalueH
;-----
	mov_	timerbuf,#20h		;开始倒计时,20分钟
	bset	timekeyflag
	bset	firstsettimeflag
	bset	intermissionflag
	ret
;**********************************************
thirdstepfun:
	b0bts1	timecomeflag
	jmp	cookingfun90
;-----
	bclr	thirdstepflag
	bset	fourthstepflag
	bset	buzzerflag
	mov_	buzzercnt,#10
;-----
	mov_	ADCtempbufl,#ADC70CvalueL
	mov_	ADCtempbufh,#ADC70CvalueH
;-----
	bclr	stoprunflag
	bclr	t1hflag
	mov_	timerbuf1,#5
	ret
;**********************************************
fourthstepfun:
	b0bts0	stoprunflag
	jmp	cookingfun90		;最后定时到,结束工作
	b0bts1	t1hflag
	jmp	cookingfun90
;-----
	bclr	t1hflag
	decms	timerbuf1
	jmp	cookingfun90
;-----
	bset	stoprunflag

cookingfun90:
	ret
;**********************************************
;Name	:soupingfun
;Function:煲汤功能控制
;Input  :
;Output	:
;Register Used:
;**********************************************
soupingfun:
;----
	b0bts0	fourthstepflag
	jmp	fourthstepfun10
	b0bts0	secondstepflag
	jmp	secondstepfun10
	b0bts0	firststepflag
	jmp	firststepfun10
;**********************************************
	b0bts1	tempcomeflag
	jmp	soupingfun90
	bset	firststepflag
;-----
	mov_	powervaluel,#ADCvalue2L
	mov_	powervaluem,#ADCvalue2m
	mov_	powervalueh,#ADCvalue2h
;-----
	bclr	t1hflag
	mov_	timer1h,#60
	mov_	timerbuf1,#2		;300w 加热2小时
;-----
	mov_	seg4buf,#0ffh
	bclr	temp120Cled
	bclr	keepwarmled
	bset	intermissionflag
	ret
;**********************************************
firststepfun10:
	b0bts1	t1hflag
	jmp	soupingfun90
;-----
	bclr	t1hflag
	decms	timerbuf1
	jmp	soupingfun90
;-----
	bclr	firststepflag
	bset	secondstepflag
;-----
	mov_	powervaluel,#ADCvalue1L
	mov_	powervaluem,#ADCvalue1m
	mov_	powervalueh,#ADCvalue1h
;-----
	bclr	t1hflag
	mov_	timer1h,#60
	mov_	timerbuf1,#2		;300w 加热2小时
	bset	intermissionflag
	ret
;**********************************************
secondstepfun10:
	b0bts1	t1hflag
	jmp	soupingfun90
;-----
	bclr	t1hflag
	decms	timerbuf1
	jmp	soupingfun90
;-----
	bclr	secondstepflag
	bset	fourthstepflag
	bset	twinkleflag
	bset	buzzerflag
	mov_	buzzercnt,#10
;-----
	mov_	ADCtempbufl,#ADC70CvalueL
	mov_	ADCtempbufh,#ADC70CvalueH
;-----
	bclr	t1hflag
	mov_	timer1h,#60
	mov_	timerbuf1,#2		;恒温加热2小时
	bset	intermissionflag
	ret
;**********************************************
fourthstepfun10:
	b0bts1	t1hflag
	jmp	soupingfun90
;-----
	bclr	t1hflag
	decms	timerbuf1
	jmp	soupingfun90
;-----
	bset	buzzerflag
	mov_	buzzercnt,#10
	bset	stoprunflag
;-----	
soupingfun90:
	ret
;**********************************************
;Name	:warmmilkfun
;Function:热奶功能控制
;Input  :
;Output	:
;Register Used:
;**********************************************
warmmilkfun:
;----
	b0bts0	secondstepflag
	jmp	secondstepfun20
	b0bts0	firststepflag
	jmp	firststepfun20
;**********************************************
	b0bts1	overtempflag
	jmp	warmmilkfun90
	b0bts1	t1sflag
	jmp	warmmilkfun90
;----
	bclr	t1sflag
	decms	timerbuf1
	jmp	warmmilkfun90
;----
	bset	firststepflag
	bset	buzzerflag
	mov_	buzzercnt,#20
	bset	twinkleflag
;----
	mov_	ADCtempbufl,#ADC50CvalueL
	mov_	ADCtempbufh,#ADC50CvalueH
;-----
	bclr	timecomeflag
	bclr	t1mflag
	mov_	timer1m,#60
	mov_	timerbuf,#10h		;恒温加热10分钟
	bset	timekeyflag
	bset	intermissionflag
	bclr	statechangeflag
	bset	refurbishflag	
	ret
;**********************************************
firststepfun20:
	b0bts1	timecomeflag
	jmp	warmmilkfun90
;-----
	bclr	firststepflag
	bset	secondstepflag
;-----
	bset	buzzerflag
	mov_	buzzercnt,#10
	bset	stoprunflag
;-----	
secondstepfun20:
warmmilkfun90:
	ret
;**********************************************
;Name	:boilwaterfun
;Function:煮水功能控制
;Input  :
;Output	:
;Register Used:
;**********************************************
boilwaterfun:

boilwaterfun90:
	ret	
;**********************************************
;Name	:poweronsub
;Function:
;Input  :
;Output	:
;Register Used:temp0,temp1
;***********************************************
poweronsub:
	b0bts0	stoprunflag
	jmp	poweronsub90
	b0bts1	poweronflag		;=1:刚通电,初始状态
	jmp	poweronsub90
	b0bts0	settimeflag
	jmp	poweronsub10
;-----------------------
	bset	settimeflag
	bclr	t1sflag
	mov_	timer1s,#100		;定时1s
;----
	mov_	combuf,#11101111b	;点亮所有的LED
	mov	a,#01000000b
	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
;******************************************************
;******************************************************
clearallflag:
	clr	flag1
	clr	flag2
	clr	flag3
	clr	flag4
	clr	flag5
	clr 	flag6		
	clr	flag7		
	clr	flag8	
	clr	flag9		;clear all flag
	ret
;******************************************************
;******************************************************
initparameter:
	mov	a,#01000000b
	mov	seg1buf,a
	mov	seg2buf,a
	mov	a,#0ffh
	mov	seg3buf,a
	mov	seg4buf,a
	clr	timerbuf
	ret
;******************************************************
;******************************************************
mnstopheat:
	bclr	ptcout		;close IGBT
	bclr	fpwm1out
	bclr	ftc1out
	bclr	ftc1enb		;stop t1 pwm
	bclr	fp01ien
	bclr	ptpwm
	ret
;******************************************************
;******************************************************
pushsegvalue:
	mov_	seg1temp,seg1buf
	mov_	seg2temp,seg2buf
	mov_	seg3temp,seg3buf
	ret
;******************************************************
;******************************************************
popsegvalue:
	mov_	seg1buf,seg1temp
	mov_	seg2buf,seg2temp
	mov_	seg3buf,seg3temp
	ret
;******************************************************
;******************************************************
mnintermission:
;600W以下采用间歇加热控制
	b0bts0	stoprunflag
	jmp	mnintermission90
	b0bts1	intermissionflag
	jmp	mnintermission90
;-----
	b0bts0	statechangeflag
	jmp	mnintermission70
;-----
	bset	statechangeflag
	bclr	t1sflag
	mov_	timer1s,#60
	mov_	timerbuf1,#5	;隔5秒加热一次
	ret
;-------------------------------
mnintermission70:
	b0bts1	t1sflag
	jmp	mnintermission90
;----
	bclr	t1sflag
	decms	timerbuf1
	jmp	mnintermission70
	mov_	timerbuf1,#5
	notbit	heatflag
;-----
	b0bts0	heatflag
	jmp	mnintermission80
;-----------------
	bset	Igbtstartupflag
	bset	stopheatflag
	call	mnstopheat
	ret
;----------------
mnintermission80:
	bclr	stopheatflag
	bclr	Igbtstartupflag
	bset	fp01ien
mnintermission90:
	ret
;******************************************************
;******************************************************
mcustate:
;单片机的工作状态判定
	b0bts1	stoprunflag
	jmp	mcustate90
;-----
	b0bts0	changestaflag
	jmp	mcustate80	;散热一分钟
	call	clearallflag
	bset	Igbtstartupflag
	bset	changestaflag
	bset	stoprunflag
	call	mnstopheat
	mov	a,#0ffh
	mov	seg1buf,a
	mov	seg2buf,a
	mov	seg3buf,a
	mov	seg4buf,a
	mov_	timer1m,#60
	ret
;-----------------
mcustate80:
	b0bts1	t1mflag
	jmp	mcustate90
	bclr	ptfan		;关掉风扇
	bclr	buzzerflag
	clr	buzzercnt
;-----
mcustate90:
	ret
;******************************************************
;******************************************************
;******************************************************
;-----
delay_10us:
	jmp	$+1
	jmp	$+1
	jmp	$+1
	ret
;------
delay100us:
	mov_	var3,#100
loop100us00:
	decms	var3
	jmp	loop100us00
	ret

⌨️ 快捷键说明

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