📄 inductioncooker050524ver2.lst
字号:
535 00004C 1F0F mov ledfrequent,a
536 00004D 1F0E mov loadfrequent,a
537 00004E 0E00 ret
538 00004F ;**********************************************
539 00004F ;Name :PortInitial
540 00004F ;Function:
541 00004F ;Input :
542 00004F ;Output :
543 00004F ;Register Used:
544 00004F ;***********************************************
545 00004F PortInitial:
546 00004F
547 00004F 2DFF mov a,#0ffh
548 000050 1FC2 mov p2m,a ;set p2 is output port
549 000051 1FD2 mov p2,a ;set all p2 pin high level
550 000052
551 000052 2DF0 mov a,#11110000b ;set p4.7~p4.4 is output,others is input
552 000053 1FC4 mov p4m,a
553 000054 2DF0 mov a,#11110000b
554 000055 1FD4 mov p4,a
555 000056 2BE4 clr p4ur
556 000057
557 000057 2DFF mov a,#11111111b
558 000058 1FC5 mov p5m,a ;set p5 is output except p5.1
559 000059 2DCB mov a,#11001011b
560 00005A 1FD5 mov p5,a
561 00005B
562 00005B 0E00 ret
563 00005C
564 00005C ;**********************************************
565 00005C ;Name :SysInitial
566 00005C ;Function:
567 00005C ;Input :
568 00005C ;Output :
569 00005C ;Register Used:
570 00005C ;***********************************************
571 00005C SysInitial:
572 00005C ;-----
573 00005C 2BD8 clr t0m ;ftc1=fcpu
574 00005D
575 00005D 45C9 bclr ftc0ien ;dis t0 int
576 00005E 47DA bclr ftc0enb ;stop t0 count
577 00005F 2D64 mov A,#01100100B ;//f0=fcpu/4
578 000060 ;// mov A,#01010100B ;//f0=fcpu/4
579 000060 2FDA b0mov Tc0M,A
580 000061 2D83 mov A,#131 ;//0.5ms constant for f0=1mips/64
581 000062 ;// mov A,#194 ;0.25ms
582 000062 2FDB b0mov Tc0C,A
583 000063 2FCD b0mov Tc0r,a
584 000064 6FDA b0bset FTc0ENB ; Enable TIMER0
585 000065 4DC9 bset FTc0IEN ; Enable T0 interrupt
586 000066 45C8 bclr ftc0irq ; CLEAR TIMER0 INTERRUPT FLAG
587 000067 ;----
588 000067 ;初始化pwm
589 000067 46C9 bclr ftc1ien ;dis t1 int
590 000068 2BDD clr tc1c
591 000069 ;// mov a,#01100100b
592 000069 2D62 mov a,#01100010b
593 00006A 2FDC b0mov tc1m,a ;set pwm=32 duty fpwm=62.5k
594 00006B 41DC bclr ftc1out
595 00006C 40DC bclr fpwm1out
596 00006D 47DC bclr ftc1enb ;stop t1 count
597 00006E 43D5 bclr ptpwm
598 00006F ;----
599 00006F 2BB1 clr ADM
600 000070 6FB1 b0bset FADENB ;enable adc
601 000071 mov_ ADR,#01010000b ;select 12 bit ADC,Fcpu/2=128us
602 000071 2D50 mov a, #01010000b
603 000072 1FB3 mov ADR, a
604 000073 ;----
605 000073 40C8 bclr fp00irq
606 000074 mov_ pedge,#10h ;p00 falling edge
607 000074 2D10 mov a, #10h
608 000075 1FBF mov pedge, a
609 000076 48C9 bset fp00ien
610 000077
611 000077 41C8 bclr fp01irq ;p01 falling edge
612 000078 ;// bset fp01ien
613 000078 ;----
614 000078 4939 bset poweronflag ;通电标志
615 000079 6FDF b0bset FGIE ;//enable Interrupt gain
616 00007A 0E00 ret
617 00007B
618 00007B ;**********************************************
619 00007B ;Name :Pdelay
620 00007B ;Function:
621 00007B ;Input :
622 00007B ;Output :
623 00007B ;Register Used:
624 00007B ;***********************************************
625 00007B Pdelay:
626 00007B 2DFF mov a,#0ffh
627 00007C 1F47 mov var1,a
628 00007D loop10:
629 00007D 2DFF mov a,#0ffh
630 00007E 1F48 mov var2,a
631 00007F loop11:
632 00007F 2648 decms var2
633 000080 807F jmp loop11 ;power on delay
634 000081 2647 decms var1
635 000082 807D jmp loop10
636 000083 0E00 ret
637 000084 include intserver.asm
638 000084 ;************************************************
639 000084 ;Name :InterruptSub
640 000084 ;Function:
641 000084 ;Input :
642 000084 ;Output :
643 000084 ;Register Used:
644 000084 ;*************************************************
645 000084 InterruptSub:
646 000084 2C00 XCH A,AccBuf
647 000085 2C86 XCH A,PFLAG
648 000086 2F01 B0MOV PflagBuf,A
649 000087
650 000087 75C8 b0bts0 FTc0IRQ ;//Analyse the Interrupt resourc
651 000088 8091 jmp Tc0INTR
652 000089
653 000089 70C8 b0bts0 FP00IRQ ;//P00 interrupt
654 00008A 80BF jmp P00INTR
655 00008B
656 00008B 71C8 b0bts0 FP01IRQ ;//P01 interrupt
657 00008C 80C1 jmp P01INTR
658 00008D
659 00008D Interrup90:
660 00008D
661 00008D 2C01 XCH A,PflagBuf
662 00008E 2F86 B0MOV PFLAG,A
663 00008F 2C00 XCH A,AccBuf ;//For release the Acc And Pflag
664 000090
665 000090 0F00 RETI
666 000091
667 000091 ;--------------------------------------------------------
668 000091 Tc0INTR:
669 000091 ;//User can add interrupt program
670 000091 ;----
671 000091 7E37 b0bts1 buzzerflag
672 000092 8098 jmp TC0INTR60
673 000093 notbit ptbuzzer ;buzzer frequent=1k~2khz
674 000093 74D5 b0bts0 ptbuzzer
675 000094 8097 jmp $+3
676 000095 6CD5 b0bset ptbuzzer
677 000096 8098 jmp $+2
678 000097 64D5 b0bclr ptbuzzer
679 000098 ;-----
680 000098 TC0INTR60:
681 000098
682 000098 ;----
683 000098 TC0INTR30:
684 000098 2602 decms timer10ms
685 000099 80BD jmp TC0INTR90
686 00009A 4836 bset t10msflag
687 00009B mov_ timer10ms,#20
688 00009B 2D14 mov a, #20
689 00009C 1F02 mov timer10ms, a
690 00009D
691 00009D 1E03 mov a,timer20ms
692 00009E 7086 b0bts0 fz
693 00009F 80A2 jmp TC0INTR50
694 0000A0 2603 decms timer20ms
695 0000A1 0000 nop
696 0000A2 ;-----
697 0000A2 TC0INTR50:
698 0000A2 1E18 mov a,keychat
699 0000A3 7086 b0bts0 fz
700 0000A4 80A7 jmp TC0INTR10
701 0000A5
702 0000A5 2618 decms keychat
703 0000A6 0000 nop
704 0000A7 ;-----
705 0000A7 TC0INTR10:
706 0000A7 2605 decms timer1s
707 0000A8 80BD jmp TC0INTR90
708 0000A9 4936 bset t1sflag
709 0000AA mov_ timer1s,#100
710 0000AA 2D64 mov a, #100
711 0000AB 1F05 mov timer1s, a
712 0000AC ;-----
713 0000AC TC0INTR20:
714 0000AC 2606 decms timer1m
715 0000AD 80BD jmp TC0INTR90
716 0000AE mov_ timer1m,#60
717 0000AE 2D3C mov a, #60
718 0000AF 1F06 mov timer1m, a
719 0000B0 4A36 bset t1mflag
720 0000B1 4F3B bset oneminuteflag
721 0000B2 ;-----
722 0000B2 TC0INTR40:
723 0000B2 2607 decms timer1h
724 0000B3 80BD jmp TC0INTR90
725 0000B4 mov_ timer1h,#60
726 0000B4 2D3C mov a, #60
727 0000B5 1F07 mov timer1h, a
728 0000B6 4B3A bset t1hflag
729 0000B7 ;-----
730 0000B7 1E08 mov a,timer2h
731 0000B8 7086 b0bts0 fz
732 0000B9 80BD jmp TC0INTR90
733 0000BA 2608 decms timer2h
734 0000BB 80BD jmp TC0INTR90
735 0000BC 4B36 bset t2hflag
736 0000BD ;-----
737 0000BD TC0INTR90:
738 0000BD 65C8 b0bclr FTc0IRQ
739 0000BE 808D jmp Interrup90
740 0000BF
741 0000BF ;--------------------------------------------------------
742 0000BF P00INTR:
743 0000BF ;//User can add interrupt program
744 0000BF ;--------------------------------------------------------
745 0000BF ;-----
746 0000BF P00INTR90:
747 0000BF 60C8 b0bclr FP00IRQ
748 0000C0 808D jmp Interrup90
749 0000C1 ;--------------------------------------------------------
750 0000C1 P01INTR:
751 0000C1 ;//User can add interrupt program,过零
752 0000C1 ;--------------------------------------------------------
753 0000C1
754 0000C1 7D37 b0bts1 operateflag
755 0000C2 80DA jmp P01INTR90 ;//启动信号
756 0000C3 ;-----
757 0000C3 7C3C b0bts1 havecookerflag
758 0000C4 80CF jmp P01INTR80
759 0000C5 7739 b0bts0 Igbtstartupflag
760 0000C6 80DA jmp P01INTR90
761 0000C7 ;-----
762 0000C7 4F39 bset Igbtstartupflag
763 0000C8 4DD5 bset ptcout
764 0000C9 48DC bset fpwm1out
765 0000CA 49DC bset ftc1out
766 0000CB 4FDC bset ftc1enb
767 0000CC mov_ tc1r,pwmpulsebuf
768 0000CC 1E2C mov a, pwmpulsebuf
769 0000CD 1FDE mov tc1r, a
770 0000CE 80DA jmp P01INTR90
771 0000CF ;------------------------
772 0000CF P01INTR80:
773 0000CF 733E b0bts0 noneedflag
774 0000D0 80DA jmp P01INTR90 ;检测到有锅开始加热后,不在需要发送PWM试探信号
775 0000D1 753C b0bts0 checkingflag
776 0000D2 80DA jmp P01INTR90
777 0000D3 ;-----
778 0000D3 4D3C bset checkingflag
779 0000D4 4DD5 bset ptcout
780 0000D5 48DC bset fpwm1out
781 0000D6 49DC bset ftc1out
782 0000D7 4FDC bset ftc1enb
783 0000D8 mov_ tc1r,#cookerpwmvalue
784 0000D8 2D23 mov a, #cookerpwmvalue
785 0000D9 1FDE mov tc1r, a
786 0000DA ;-----
787 0000DA P01INTR90:
788 0000DA 61C8 b0bclr FP01IRQ
789 0000DB 808D jmp Interrup90
790 0000DC ;***********************************************
791 0000DC
792 0000DC
793 0000DC
794 0000DC ;***********************************************
795 0000DC ;Name :mnintgnd
796 0000DC ;Function:interface between interrupt and main
797 0000DC ;Input :
798 0000DC ;Output :
799 0000DC ;Register Used:
800 0000DC ;***********************************************
801 0000DC mnintgnd:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -