📄 mnapp.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 ;刚通电,不响应按键
b0bts1 keyokflag
jmp checkkey100
;----
bclr keyokflag
mov a,aplcode
@jmp_a 14
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 inckey ;9
jmp deckey ;10
jmp oneminkey ;11,一分钟
jmp tenminkey ;12,十分钟
jmp canceltimekey ;13,一分钟和十分钟键同时按下
;************************************************
frieddishkey:
;----
call clearallflag
bset frieddishflag
bset operateflag ;开始工作标志
bset parameterflag
bset settimeflag
bset fp01ien
;----
;初始化参数
call initparameter
bclr frieddishled ;light led
bclr temp160cled ;1200w
mov_ stepbuf,#4 ;level_4
;----
bclr t1mflag
mov_ timer1m,#60 ;1 minute set
jmp checkkey90
;************************************************
chaffydishkey:
;----
call clearallflag
bset chaffydishflag
bset operateflag ;开始工作标志
bset parameterflag
bset settimeflag
bset fp01ien
;----
;初始化参数
call initparameter
bclr chaffydishled
mov_ stepbuf,#3 ;level_3
jmp lightled
;************************************************
barbecuekey:
;----
call clearallflag
bset barbecueflag
bset operateflag ;开始工作标志
bset parameterflag
bset settimeflag
bset fp01ien
;----
;初始化参数
call initparameter
bclr barbecueled
bclr temp160Cled
mov_ stepbuf,#4 ;level_4
;----
jmp checkkey90
;************************************************
cookingkey:
;----
call clearallflag
bset cookingflag
bset operateflag ;开始工作标志
bset fp01ien
;----
;初始化参数
call initparameter
bclr cookingled
bclr temp160cled ;1000w led
bclr t1mflag
mov_ timer1m,#60 ;1 minute set
mov_ timerbuf1,#2 ;set 2 minute
;---------------
;初始默认1000w/60℃
mov_ ADCvolbufl,#ADC1000WvalueL
mov_ ADCvolbufh,#ADC1000WvalueH
mov_ ADCcurbufl,#ADCcurvalue4L
mov_ ADCcurbufh,#ADCcurvalue4H
mov_ ADCtempbufl,#ADC60CvalueL
mov_ ADCtempbufh,#ADC60CvalueH
jmp checkkey90
;************************************************
soupingkey:
;----
call clearallflag
bset soupingflag
bset operateflag ;开始工作标志
bset fp01ien
;----
;初始化参数
call initparameter
bclr soupingled
bclr temp160cled ;1000w led
;---------------
;初始默认1000w/80℃
mov_ ADCvolbufl,#ADC1000WvalueL
mov_ ADCvolbufh,#ADC1000WvalueH
mov_ ADCcurbufl,#ADCcurvalue4L
mov_ ADCcurbufh,#ADCcurvalue4H
mov_ ADCtempbufl,#ADC80CvalueL
mov_ ADCtempbufh,#ADC80CvalueH
jmp checkkey90
;************************************************
warmmilkkey:
;----
call clearallflag
bset warmmilkflag
bset operateflag ;开始工作标志
bset fp01ien
;----
;初始化参数
call initparameter
bclr warmmilkled
bclr temp120Cled
bclr keepwarmled
;---------------
;初始默认300w/70℃
mov_ ADCvolbufl,#ADC300WvalueL
mov_ ADCvolbufh,#ADC300WvalueH
mov_ ADCcurbufl,#ADCcurvalue2L
mov_ ADCcurbufh,#ADCcurvalue2H
mov_ ADCtempbufl,#ADC70CvalueL
mov_ ADCtempbufh,#ADC70CvalueH
;-----
bclr t1sflag
mov_ timer1s,#100
mov_ timerbuf1,#10 ;恒温10s
jmp checkkey90
;************************************************
boilwaterkey:
;----
call clearallflag
bset boilwaterflag
bset operateflag ;开始工作标志
bset fp01ien
;----
;初始化参数
call initparameter
bclr boilwaterled
bclr temp200Cled
bclr temp270Cled
;---------------
;初始默认1800w/70℃
mov_ ADCvolbufl,#ADC1900WvalueL
mov_ ADCvolbufh,#ADC1900WvalueH
mov_ ADCcurbufl,#ADCcurvalue6L
mov_ ADCcurbufh,#ADCcurvalue6H
mov_ ADCtempbufl,#ADC70CvalueL ;水沸腾时的温度是?
mov_ ADCtempbufh,#ADC70CvalueH
jmp checkkey90
;************************************************
tenminkey:
;-----
b0bts1 settimeflag
jmp checkkey90 ;在某些功能下无效
;---
bset refurbishflag
bset timekeyflag
mov a,timerbuf
and a,#0f0h
sub a,#90h
b0bts0 fc
jmp turnoffnum1
;-----
mov a,#10h
add timerbuf,a
jmp checkkey90
;---------------------
turnoffnum1:
mov a,#0fh
and timerbuf,a
jmp checkkey90
;************************************************
oneminkey:
;-----
b0bts1 settimeflag
jmp checkkey90 ;在某些功能下无效
;---
bset refurbishflag
bset timekeyflag
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,flag3
and a,#01111000b
b0bts1 fz
jmp checkkey90
;-----
mov a,stepbuf ;0~8
sub a,#8
b0bts0 fc
jmp checkkey90
;----
incms stepbuf
nop
bset parameterflag
bset tempkeyflag
;-------------------
lightled:
b0mov y,#ledtbl$m
b0mov z,#ledtbl$l
mov a,stepbuf
add z,a
mov a,#0
adc y,a
;---
movc
mov seg4buf,a
jmp checkkey90
;************************************************
deckey:
;----
b0bts1 operateflag
jmp checkkey90
;-----
mov a,flag3
and a,#01111000b
b0bts1 fz
jmp checkkey90
;-----
b0bts1 barbecueflag
jmp checkstep50
;---
mov a,stepbuf
cmprs a,#3
jmp stepdec
jmp checkkey90
;-------------
checkstep50:
mov a,stepbuf
b0bts0 fz
jmp checkkey90
;----
stepdec:
decms stepbuf
nop
bset parameterflag
bset tempkeyflag
jmp lightled
;************************************************
offkey:
;----
call clearallflag
bset Igbtstartupflag
bset stoprunflag
bclr ptcout ;close IGBT
bclr fpwm1out
bclr ftc1enb ;stop t1 pwm
bclr fp01ien
mov a,#0ffh
mov seg1buf,a
mov seg2buf,a
mov seg3buf,a
mov seg4buf,a
jmp checkkey90
;*************************************************
canceltimekey:
bclr timekeyflag
mov a,#01000000b
mov seg1buf,a
mov seg2buf,a
clr timerbuf
bclr t1mflag
mov_ timer1m,#60 ;reset 1 minute
;*************************************************
checkkey90:
clr aplcode
;----
;有按键,重新刷新时间
bclr t2hflag
mov_ timer2h,#2 ;两小时定时控制
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 ;温度参数
;----------------------------------------------
mov a,stepbuf
sub a,#3
b0bts1 fc
jmp setintermission ;功率小于600W,采用间歇加热方式
;------
bclr intermissionflag
ret
;------
setintermission:
bset intermissionflag
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:
b0bts0 tempkeyflag
jmp frieddishfun90
b0bts1 t1mflag
jmp frieddishfun90
;------
b0bts0 changestaflag
jmp frieddishfun90
;-----
bset changestaflag
bset buzzerflag
bset loadfrequentflag
bclr buzfrequentflag
mov_ buzzercnt,#1
mov_ frequentbuf1,#20h
mov a,#50
mov frequentbuf2,a
mov loadfrequent,a
;-----
bset parameterflag
mov_ stepbuf,#8
frieddishfun90:
ret
;**********************************************
;Name :chaffydishfun
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -