📄 inductioncooker050524ver2.lst
字号:
268 00004B
269 E 000000C0 ADCvalue6L equ 0c0h
270 E 00000014 ADCvalue6M equ 14h
271 E 0000006C ADCvalue6H equ 6ch ;1900w
272 00004B
273 00004B /*
274 00004B ADCvalue5L equ 80h
275 00004B ADCvalue5M equ 0a3h
276 00004B ADCvalue5H equ 4fh ;1400w
277 00004B
278 00004B ADCvalue6L equ 0a0h
279 00004B ADCvalue6M equ 3ch
280 00004B ADCvalue6H equ 69h ;1900w
281 00004B */
282 00004B ;-----
283 00004B ;无锅时的电流参数
284 00004B ;// ADCnocookerl equ 0c2h
285 00004B ;// ADCnocookerh equ 01h ;0.55v
286 E 000000EB ADCnocookerl equ 0ebh
287 E 00000001 ADCnocookerh equ 01h ;0.60v
288 00004B ;-------
289 00004B ;锅底温度参数
290 E 00000047 ADC40CvalueL equ 47h
291 E 00000001 ADC40CvalueH equ 01h
292 00004B
293 E 000000DB ADC50CvalueL equ 0dbh
294 E 00000001 ADC50CvalueH equ 01h
295 00004B
296 E 00000087 ADC60CvalueL equ 87h
297 E 00000002 ADC60CvalueH equ 02h
298 00004B
299 E 00000053 ADC70CvalueL equ 53h
300 E 00000003 ADC70CvalueH equ 03h
301 00004B
302 E 00000049 ADC80CvalueL equ 49h
303 E 00000004 ADC80CvalueH equ 04h
304 00004B
305 E 00000058 ADC90CvalueL equ 58h
306 E 00000005 ADC90CvalueH equ 05h
307 00004B
308 E 00000076 ADC100CvalueL equ 76h
309 E 00000006 ADC100CvalueH equ 06h
310 00004B
311 E 000000E9 ADC104CvalueL equ 0e9h
312 E 00000006 ADC104CvalueH equ 06h
313 00004B
314 E 0000003B ADC107CvalueL equ 3bh
315 E 00000007 ADC107CvalueH equ 07h
316 00004B ;---
317 00004B ;IGBT温度参数
318 00004B ;// ADCIGBTvalueL equ 87h
319 00004B ;// ADCIGBTvalueH equ 02h ;IGBT过热温度点60℃
320 00004B ;// ADCIGBTvalueL equ 53h
321 00004B ;// ADCIGBTvalueH equ 03h ;IGBT过热温度点70℃
322 E 00000049 ADCIGBTvalueL equ 49h
323 E 00000004 ADCIGBTvalueH equ 04h ;IGBT过热温度点80℃
324 00004B ;----
325 E 00000033 uppervaluel equ 33h
326 E 0000000B uppervalueh equ 0bh ;过压值250v/3.5v
327 00004B
328 E 00000000 lowervaluel equ 00h
329 E 00000008 lowervalueh equ 08h ;欠压值180v/2.5v
330 00004B ;----
331 E 00000093 currentvaluel equ 93h
332 E 0000000C currentvalueh equ 0ch ;过流值10A(1000:1~350Ω)
333 00004B ;----
334 E 00000080 hotestvaluel equ 80h
335 E 0000000F hotestvalueh equ 0fh ;锅底温度过热值300℃
336 00004B ;----
337 E 00000010 openvaluel equ 10h
338 E 00000000 openvalueh equ 00h ;传感器开路值
339 00004B
340 E 000000EE shortvaluel equ 0eeh
341 E 0000000F shortvalueh equ 0fh ;传感器短路值
342 00004B ;----
343 E 00000023 cookerpwmvalue equ 35
344 E 0000000F initpwmvalue equ 15
345 00004B ;---------------------
346 00004B ;segment dot
347 E 00000030 frieddishled equ seg3buf.0
348 E 00010030 chaffydishled equ seg3buf.1
349 E 00020030 barbecueled equ seg3buf.2
350 E 00030030 cookingled equ seg3buf.3
351 E 00040030 soupingled equ seg3buf.4
352 E 00050030 warmmilkled equ seg3buf.5
353 E 00060030 boilwaterled equ seg3buf.6
354 00004B ;----
355 E 00000031 keepwarmled equ seg4buf.0 ;120w
356 E 00010031 temp120Cled equ seg4buf.1 ;600w
357 E 00020031 temp160Cled equ seg4buf.2 ;1000w
358 E 00030031 temp200Cled equ seg4buf.3 ;1400w
359 E 00040031 temp270Cled equ seg4buf.4 ;1900w
360 00004B ;------------------------
361 00004B ;故障信息
362 E 00000040 Errorvalue0 equ 01000000b ;E0,电路故障
363 E 00000079 Errorvalue1 equ 01111001b ;E1,无锅具、材料不合、小物件
364 E 00000024 Errorvalue2 equ 00100100b ;E2,IGBT过热
365 E 00000030 Errorvalue3 equ 00110000b ;E3,过压故障
366 E 00000019 Errorvalue4 equ 00011001b ;E4,欠压故障
367 E 00000012 Errorvalue5 equ 00010010b ;E5,温度传感器开路
368 E 00000002 Errorvalue6 equ 00000010b ;E6,温度传感器短路
369 00004B
370 E 00000006 Errorvalue equ 00000110b
371 00004B ;*******************************************************
372 00004B ;**********************Port define**********************
373 00004B ;key input port row6~row0 is port2.6~port2.0
374 00004B ;key output port line3~lin0 is port1.6~port1.3
375 00004B ;-----
376 E 000000D5 line0 equ p5.0
377 E 000100D5 line1 equ p5.1
378 00004B ;-----
379 E 000200D5 ptfan equ p5.2
380 E 000300D5 ptpwm equ p5.3
381 E 000400D5 ptbuzzer equ p5.4
382 E 000500D5 ptcout equ p5.5
383 00004B
384 E 000400D4 ptcom1 equ p4.4
385 E 000500D4 ptcom2 equ p4.5
386 E 000600D4 ptcom3 equ p4.6
387 E 000700D4 ptcom4 equ p4.7
388 E 000000D5 ptcom5 equ p5.0
389 E 000100D5 ptcom6 equ p5.1
390 00004B ;**************************************************
391 00004B ;*****************LCD字符表*************************
392 00004B ;**************************************************
393 00004B
394 00004B
395 00004B ;*********Micro define as following****************
396 00004B ;-----
397 00004B ;bank select:
398 00004B bank0 macro
399 00004B b0bclr frbnks0
400 00004B endm
401 00004B bank1 macro
402 00004B b0bset frbnks0
403 00004B endm
404 00004B wdtc macro
405 00004B mov a,#0x5a
406 00004B mov wdtr,a ; Clear the watchdog timer counter.
407 00004B endm
408 00004B notbit macro bit
409 00004B b0bts0 bit
410 00004B jmp $+3
411 00004B b0bset bit
412 00004B jmp $+2
413 00004B b0bclr bit
414 00004B endm
415 00004B
416 00004B
417 00004B
418 00004B
419 00004B include main.asm
420 00004B ;-----------------------------------------------
421 00004B ;******************Program code segment*********
422 00004B ;-----------------------------------------------
423 000000 .CODE
424 000000
425 000000 ORG 000h ;Code section start
426 000000 8010 jmp Start ;Reset vector
427 000001 ;Address 4 to 7 are reserved
428 000008 ORG 008h
429 000008 8084 jmp InterruptSub ;Interrupt vector
430 000009
431 000010 ORG 010h
432 000010 ;**************************************************
433 000010 ;***************************************************
434 000010 Start:
435 000010 0000 nop
436 000011 0000 nop
437 000012 C07B call Pdelay ;//Power on delay
438 000013 ;-----
439 000013 7F86 b0bts1 fnt0
440 000014 8018 jmp wdtresetsub ;//watch dog reset way,no need initialize
441 000015 ;-----
442 000015 TurnOnInitial:
443 000015 C04F call PortInitial
444 000016 C036 call RAMInitial
445 000017 C05C call SysInitial
446 000018 ;-----
447 000018 wdtresetsub:
448 000018 ;------
449 000018 ;------
450 000018 ;**********************************************
451 000018 MainLoop:
452 000018 ;//User need write the main routine Program.
453 000018 0000 nop
454 000019 @RST_WDT ;//User can use Macro instrution REST_WATCHDOG
455 000019 2D5A MOV A, #0x5A
456 00001A 2FCC B0MOV WDTR, A
457 00001B C0DC call mnintgnd ;//interface between interrupt and main
458 00001C C0FD call mnkey ;//Interface between machine and human
459 00001D C49E call mntwinkle ;//闪烁控制
460 00001E C16C call mnapp ;//按键、功能控制
461 00001F C399 call poweronsub ;//上电控制
462 000020 C4E6 call mngetdata ;//显示数据控制
463 000021 C475 call mndisplay ;//显示控制
464 000022 C432 call mncontroll ;//单片机工作控制
465 000023 C3FE call mcustate ;//单片机的工作状态判定
466 000024 C52D call mndetect ;//各种参数检测
467 000025 C029 call mnchecktime ;//两小时无键操作控制
468 000026 C5F2 call cookercheck ;//锅具检测
469 000027 C3DB call mnintermission ;//功率在600W以下采用间歇加热控制
470 000028 8018 jmp MainLoop
471 000029 ;*****************************************************
472 000029 ;*****************************************************
473 000029 ;*****************************************************
474 000029 mnchecktime:
475 000029 7736 b0bts0 stoprunflag
476 00002A 8035 jmp mnchecktime90
477 00002B ;----
478 00002B 1E38 mov a,flag3
479 00002C 2A67 and a,#01100111b
480 00002D 7086 b0bts0 fz ;在煮米饭、煲汤功能下无效
481 00002E 8035 jmp mnchecktime90
482 00002F 7B36 b0bts1 t2hflag
483 000030 8035 jmp mnchecktime90
484 000031 ;----
485 000031 4F36 bset stoprunflag ;两小时无操作,自动关机
486 000032 4E37 bset buzzerflag
487 000033 mov_ buzzercnt,#10 ;叫5声
488 000033 2D0A mov a, #10
489 000034 1F13 mov buzzercnt, a
490 000035 ;-----
491 000035 mnchecktime90:
492 000035 0E00 ret
493 000036 include initialize.asm
494 000036 ;**********************************************
495 000036 ;Name :RAMInitial
496 000036 ;Function:clr bank0~bank1
497 000036 ;Input :
498 000036 ;Output :
499 000036 ;Register Used:
500 000036 ;***********************************************
501 000036 RAMInitial:
502 000036 2B84 clr y
503 000037 2D7F mov a,#7fh
504 000038 2F83 b0mov z,a
505 000039 Clrbank0:
506 000039 2BE7 clr @YZ ;Clear @YZ content
507 00003A 2683 decms Z ;z = z - 1 , skip next if z=0
508 00003B 8039 jmp Clrbank0
509 00003C 2BE7 clr @YZ ;Clear address 0x00
510 00003D ;-----
511 00003D ;preset some constant
512 00003D
513 00003D mov_ timer10ms,#20 ;10ms
514 00003D 2D14 mov a, #20
515 00003E 1F02 mov timer10ms, a
516 00003F mov_ timer200ms,#20 ;200ms
517 00003F 2D14 mov a, #20
518 000040 1F04 mov timer200ms, a
519 000041 mov_ timer1s,#100 ;1s
520 000041 2D64 mov a, #100
521 000042 1F05 mov timer1s, a
522 000043 mov_ timer1m,#60 ;1m
523 000043 2D3C mov a, #60
524 000044 1F06 mov timer1m, a
525 000045 mov_ timer1h,#60 ;1h
526 000045 2D3C mov a, #60
527 000046 1F07 mov timer1h, a
528 000047 mov_ displaytimer,#2
529 000047 2D02 mov a, #2
530 000048 1F0C mov displaytimer, a
531 000049 mov_ combuf,#11111111b ;set all com high level
532 000049 2DFF mov a, #11111111b
533 00004A 1F32 mov combuf, a
534 00004B 2D32 mov a,#50 ;set led frequent=0.5s
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -