📄 mnapp.asm
字号:
;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 + -