📄 inductioncooker050512ver2.lst
字号:
269 00003A ;-------
270 00003A ;参数预设值
271 00003A ;火力
272 E 00000000 Preset120W equ 00h
273 E 00000000 Preset600W equ 00h
274 E 00000000 Preset1000W equ 00h
275 E 00000000 Preset1400W equ 00h
276 E 00000000 Preset1900W equ 00h
277 00003A ;----
278 00003A ;温度
279 E 00000000 Preset120C equ 00h
280 E 00000000 Preset160C equ 00h
281 E 00000000 Preset200C equ 00h
282 E 00000000 Preset270C equ 00h
283 00003A ;----
284 E 00000033 uppervaluel equ 33h
285 E 0000000B uppervalueh equ 0bh ;过压值250v/3.5v
286 00003A
287 E 00000000 lowervaluel equ 00h
288 E 00000008 lowervalueh equ 08h ;欠压值180v/2.5v
289 00003A ;----
290 E 00000066 currentvaluel equ 66h
291 E 0000000E currentvalueh equ 0eh ;过流值10A(1000:1~450Ω)
292 00003A ;----
293 E 00000000 hotestvaluel equ 00h
294 E 00000000 hotestvalueh equ 00h ;锅底温度过热值300℃
295 00003A ;----
296 E 00000010 openvaluel equ 10h
297 E 00000000 openvalueh equ 00h ;传感器开路值
298 00003A
299 E 000000EE shortvaluel equ 0eeh
300 E 0000000F shortvalueh equ 0fh ;传感器短路值
301 00003A ;---------------------
302 00003A ;segment dot
303 E 00000024 frieddishled equ seg3buf.0
304 E 00010024 chaffydishled equ seg3buf.1
305 E 00020024 barbecueled equ seg3buf.2
306 E 00030024 cookingled equ seg3buf.3
307 E 00040024 soupingled equ seg3buf.4
308 E 00050024 warmmilkled equ seg3buf.5
309 E 00060024 boilwaterled equ seg3buf.6
310 00003A ;----
311 E 00000025 keepwarmled equ seg4buf.0 ;120w
312 E 00010025 temp120Cled equ seg4buf.1 ;600w
313 E 00020025 temp160Cled equ seg4buf.2 ;1000w
314 E 00030025 temp200Cled equ seg4buf.3 ;1400w
315 E 00040025 temp270Cled equ seg4buf.4 ;1900w
316 00003A ;------------------------
317 00003A ;故障信息
318 E 00000040 Errorvalue0 equ 01000000b ;E0,电路故障
319 E 00000079 Errorvalue1 equ 01111001b ;E1,无锅具、材料不合、小物件
320 E 00000024 Errorvalue2 equ 00100100b ;E2,IGBT过热
321 E 00000030 Errorvalue3 equ 00110000b ;E3,过压故障
322 E 00000019 Errorvalue4 equ 00011001b ;E4,欠压故障
323 E 00000012 Errorvalue5 equ 00010010b ;E5,温度传感器开路
324 E 00000002 Errorvalue6 equ 00000010b ;E6,温度传感器短路
325 00003A
326 E 00000006 Errorvalue equ 00000110b
327 00003A ;*******************************************************
328 00003A ;**********************Port define**********************
329 00003A ;key input port row6~row0 is port2.6~port2.0
330 00003A ;key output port line3~lin0 is port1.6~port1.3
331 00003A ;-----
332 E 000000D5 line0 equ p5.0
333 E 000100D5 line1 equ p5.1
334 00003A ;-----
335 E 000200D5 ptfan equ p5.2
336 E 000300D5 ptpwm equ p5.3
337 E 000400D5 ptbuzzer equ p5.4
338 E 000500D5 ptcout equ p5.5
339 00003A
340 E 000400D4 ptcom1 equ p4.4
341 E 000500D4 ptcom2 equ p4.5
342 E 000600D4 ptcom3 equ p4.6
343 E 000700D4 ptcom4 equ p4.7
344 E 000000D5 ptcom5 equ p5.0
345 E 000100D5 ptcom6 equ p5.1
346 00003A ;**************************************************
347 00003A ;*****************LCD字符表*************************
348 00003A ;**************************************************
349 00003A
350 00003A
351 00003A ;*********Micro define as following****************
352 00003A ;-----
353 00003A ;bank select:
354 00003A bank0 macro
355 00003A b0bclr frbnks0
356 00003A endm
357 00003A bank1 macro
358 00003A b0bset frbnks0
359 00003A endm
360 00003A wdtc macro
361 00003A mov a,#0x5a
362 00003A mov wdtr,a ; Clear the watchdog timer counter.
363 00003A endm
364 00003A notbit macro bit
365 00003A b0bts0 bit
366 00003A jmp $+3
367 00003A b0bset bit
368 00003A jmp $+2
369 00003A b0bclr bit
370 00003A endm
371 00003A
372 00003A
373 00003A
374 00003A
375 00003A include main.asm
376 00003A ;-----------------------------------------------
377 00003A ;******************Program code segment*********
378 00003A ;-----------------------------------------------
379 000000 .CODE
380 000000
381 000000 ORG 000h ;Code section start
382 000000 8010 jmp Start ;Reset vector
383 000001 ;Address 4 to 7 are reserved
384 000008 ORG 008h
385 000008 8081 jmp InterruptSub ;Interrupt vector
386 000009
387 000010 ORG 010h
388 000010 ;**************************************************
389 000010 ;***************************************************
390 000010 Start:
391 000010 0000 nop
392 000011 0000 nop
393 000012 C078 call Pdelay ;//Power on delay
394 000013 ;-----
395 000013 7F86 b0bts1 fnt0
396 000014 8018 jmp wdtresetsub ;//watch dog reset way,no need initialize
397 000015 ;-----
398 000015 TurnOnInitial:
399 000015 C04D call PortInitial
400 000016 C036 call RAMInitial
401 000017 C05A call SysInitial
402 000018 ;-----
403 000018 wdtresetsub:
404 000018
405 000018 ;**********************************************
406 000018 MainLoop:
407 000018 ;//User need write the main routine Program.
408 000018 0000 nop
409 000019 @RST_WDT ;//User can use Macro instrution REST_WATCHDOG
410 000019 2D5A MOV A, #0x5A
411 00001A 2FCC B0MOV WDTR, A
412 00001B C0C9 call mnintgnd ;//interface between interrupt and main
413 00001C C0ED call mnkey ;//Interface between machine and human
414 00001D C447 call mndisplay ;//显示控制
415 00001E C470 call mntwinkle ;//闪烁控制
416 00001F C15C call mnapp ;//按键、功能控制
417 000020 C383 call poweronsub ;//上电控制
418 000021 C4B0 call mngetdata ;//显示数据控制
419 000022 C402 call mncontroll ;//单片机工作控制
420 000023 C3CE call mcustate ;//单片机的工作状态判定
421 000024 C4EB call mndetect ;//各种参数检测
422 000025 C029 call mnchecktime ;//两小时无键操作控制
423 000026 C5A7 call cookercheck ;//锅具检测
424 000027 C3AC call mnintermission ;//功率在600W以下采用间歇加热控制
425 000028 8018 jmp MainLoop
426 000029 ;*****************************************************
427 000029 ;*****************************************************
428 000029 ;*****************************************************
429 000029 mnchecktime:
430 000029 7727 b0bts0 stoprunflag
431 00002A 8035 jmp mnchecktime90
432 00002B ;----
433 00002B 1E29 mov a,flag3
434 00002C 2A67 and a,#01100111b
435 00002D 7086 b0bts0 fz ;在煮米饭、煲汤功能下无效
436 00002E 8035 jmp mnchecktime90
437 00002F 7B27 b0bts1 t2hflag
438 000030 8035 jmp mnchecktime90
439 000031 ;----
440 000031 4F27 bset stoprunflag ;两小时无操作,自动关机
441 000032 4E28 bset buzzerflag
442 000033 mov_ buzzercnt,#10 ;叫5声
443 000033 2D0A mov a, #10
444 000034 1F0F mov buzzercnt, a
445 000035 ;-----
446 000035 mnchecktime90:
447 000035 0E00 ret
448 000036 include initialize.asm
449 000036 ;**********************************************
450 000036 ;Name :RAMInitial
451 000036 ;Function:clr bank0~bank1
452 000036 ;Input :
453 000036 ;Output :
454 000036 ;Register Used:
455 000036 ;***********************************************
456 000036 RAMInitial:
457 000036 2B84 clr y
458 000037 2D7F mov a,#7fh
459 000038 2F83 b0mov z,a
460 000039 Clrbank0:
461 000039 2BE7 clr @YZ ;Clear @YZ content
462 00003A 2683 decms Z ;z = z - 1 , skip next if z=0
463 00003B 8039 jmp Clrbank0
464 00003C 2BE7 clr @YZ ;Clear address 0x00
465 00003D ;-----
466 00003D ;preset some constant
467 00003D
468 00003D mov_ timer10ms,#20 ;10ms
469 00003D 2D14 mov a, #20
470 00003E 1F02 mov timer10ms, a
471 00003F mov_ timer1s,#100 ;1s
472 00003F 2D64 mov a, #100
473 000040 1F03 mov timer1s, a
474 000041 mov_ timer1m,#60 ;1m
475 000041 2D3C mov a, #60
476 000042 1F04 mov timer1m, a
477 000043 mov_ timer1h,#60 ;1h
478 000043 2D3C mov a, #60
479 000044 1F05 mov timer1h, a
480 000045 mov_ combuf,#11111111b ;set all com high level
481 000045 2DFF mov a, #11111111b
482 000046 1F26 mov combuf, a
483 000047 mov_ pwmpulsebuf,#10 ;set initialize pwm pusle=10/32
484 000047 2D0A mov a, #10
485 000048 1F1F mov pwmpulsebuf, a
486 000049 2D32 mov a,#50 ;set led frequent=0.5s
487 00004A 1F0E mov frequentbuf3,a
488 00004B 1F0B mov ledfrequent,a
489 00004C 0E00 ret
490 00004D ;**********************************************
491 00004D ;Name :PortInitial
492 00004D ;Function:
493 00004D ;Input :
494 00004D ;Output :
495 00004D ;Register Used:
496 00004D ;***********************************************
497 00004D PortInitial:
498 00004D
499 00004D 2DFF mov a,#0ffh
500 00004E 1FC2 mov p2m,a ;set p2 is output port
501 00004F 1FD2 mov p2,a ;set all p2 pin high level
502 000050
503 000050 2DF0 mov a,#11110000b ;set p4.7~p4.4 is output,others is input
504 000051 1FC4 mov p4m,a
505 000052 2DF0 mov a,#11110000b
506 000053 1FD4 mov p4,a
507 000054 2BE4 clr p4ur
508 000055
509 000055 2DFF mov a,#11111111b
510 000056 1FC5 mov p5m,a ;set p5 is output except p5.1
511 000057 2DCB mov a,#11001011b
512 000058 1FD5 mov p5,a
513 000059
514 000059 0E00 ret
515 00005A
516 00005A ;**********************************************
517 00005A ;Name :SysInitial
518 00005A ;Function:
519 00005A ;Input :
520 00005A ;Output :
521 00005A ;Register Used:
522 00005A ;***********************************************
523 00005A SysInitial:
524 00005A ;-----
525 00005A 2BD8 clr t0m ;ftc1=fcpu
526 00005B /*
527 00005B bclr ftc0ien ;dis t0 int
528 00005B bclr ftc0enb ;stop t0 count
529 00005B mov A,#00100100B ;//f0=fcpu/64
530 00005B b0mov Tc0M,A
531 00005B mov A,#100 ;//10ms constant for f0=1mips/64
532 00005B b0mov Tc0C,A
533 00005B b0mov Tc0r,a
534 00005B b0bset FTc0ENB ; Enable TIMER0
535 00005B bset FTc0IEN ; Enable T0 interrupt
536 00005B bclr ftc0irq ; CLEAR TIMER0 INTERRUPT FLAG
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -