📄 inductioncooker050413ver1.lst
字号:
547 000086 ;***********************************************
548 000086
549 000086
550 000086
551 000086 ;***********************************************
552 000086 ;Name :mnintgnd
553 000086 ;Function:interface between interrupt and main
554 000086 ;Input :
555 000086 ;Output :
556 000086 ;Register Used:
557 000086 ;***********************************************
558 000086 mnintgnd:
559 000086 7820 b0bts1 t10msflag
560 000087 809F jmp mnintgnd90
561 000088 ;-----------------------------
562 000088 4020 bclr t10msflag
563 000089 ;----
564 000089 1E06 mov a,buzfrequent
565 00008A 7086 b0bts0 fz
566 00008B 808F jmp mnintgnd10
567 00008C ;----
568 00008C 2606 decms buzfrequent
569 00008D 808F jmp mnintgnd10
570 00008E 4824 bset buzfrequentflag
571 00008F ;------------------------------
572 00008F mnintgnd10:
573 00008F 1E07 mov a,loadfrequent
574 000090 7086 b0bts0 fz
575 000091 8099 jmp mnintgnd20
576 000092 ;----
577 000092 2607 decms loadfrequent
578 000093 8099 jmp mnintgnd20
579 000094 notbit loadfrequentflag
580 000094 7424 b0bts0 loadfrequentflag
581 000095 8098 jmp $+3
582 000096 6C24 b0bset loadfrequentflag
583 000097 8099 jmp $+2
584 000098 6424 b0bclr loadfrequentflag
585 000099 ;------------------------------
586 000099 mnintgnd20:
587 000099 1E08 mov a,ledfrequent
588 00009A 7086 b0bts0 fz
589 00009B 809F jmp mnintgnd30
590 00009C ;----
591 00009C 2608 decms ledfrequent
592 00009D 809F jmp mnintgnd30
593 00009E 4E24 bset ledfrequentflag
594 00009F ;-------------------------------
595 00009F mnintgnd30:
596 00009F
597 00009F mnintgnd90:
598 00009F 0E00 ret
599 0000A0 include keyscan.asm
600 0000A0 ;**********************************************
601 0000A0 ;Name :mnkey
602 0000A0 ;Function:
603 0000A0 ;Input :
604 0000A0 ;Output :
605 0000A0 ;Register Used:
606 0000A0 ;***********************************************
607 0000A0 mnkey:
608 0000A0 C0A4 call keyin
609 0000A1 C0BF call keychk
610 0000A2 C0D1 call keycvt
611 0000A3
612 0000A3 mnkey90:
613 0000A3 0E00 ret
614 0000A4
615 0000A4 ;**********************************************
616 0000A4 ;Name :keyin
617 0000A4 ;Function:keyinbuf.7=0:key on line0,=1:key on line1
618 0000A4 ;Input :
619 0000A4 ;Output :
620 0000A4 ;Register Used:var1
621 0000A4 ;***********************************************
622 0000A4 keyin:
623 0000A4 ;-----
624 0000A4 mov_ var1,p2 ;push p2 value
625 0000A4 1ED2 mov a, p2
626 0000A5 1F2D mov var1, a
627 0000A6 C0F4 call p2input
628 0000A7 2B09 clr keyinbuf
629 0000A8 ;----
630 0000A8 ;start scan key
631 0000A8 ;line0
632 0000A8 40D5 bclr line0
633 0000A9 C1BE call delay_10us
634 0000AA 1ED2 mov a,p2
635 0000AB 2A7F and a,#01111111b
636 0000AC 1F09 mov keyinbuf,a
637 0000AD 1D7F xor a,#01111111b
638 0000AE 7886 b0bts1 fz
639 0000AF 80B9 jmp keyin80 ;line0 上有键按下,退出line1扫描
640 0000B0 ;-----
641 0000B0 ;line1 ;line0 上无键按下,接着扫描line1
642 0000B0 41D5 bclr line1
643 0000B1 C1BE call delay_10us
644 0000B2 1ED2 mov a,p2
645 0000B3 2A7F and a,#01111111b
646 0000B4 1F09 mov keyinbuf,a
647 0000B5 1D7F xor a,#01111111b
648 0000B6 7086 b0bts0 fz
649 0000B7 80B9 jmp keyin80 ;line1 上无键按下
650 0000B8 ;----
651 0000B8 4F09 bset keyinbuf.7 ;line1 上有键按下
652 0000B9 ;------
653 0000B9 keyin80:
654 0000B9 48D5 bset line0
655 0000BA 49D5 bset line1
656 0000BB ;----
657 0000BB C0FA call p2output
658 0000BC mov_ p2,var1 ;pop p2 value
659 0000BC 1E2D mov a, var1
660 0000BD 1FD2 mov p2, a
661 0000BE ;---
662 0000BE keyin90:
663 0000BE 0E00 ret
664 0000BF
665 0000BF ;**********************************************
666 0000BF ;Name :keychk
667 0000BF ;Function:
668 0000BF ;Input :
669 0000BF ;Output :
670 0000BF ;Register Used:
671 0000BF ;***********************************************
672 0000BF keychk:
673 0000BF 1E09 mov a,keyinbuf ;check line0 state
674 0000C0 070A cmprs a,keychkbuf
675 0000C1 80CB jmp keychk10
676 0000C2
677 0000C2 7C20 b0bts1 keystatflag ;check have key push or not?
678 0000C3 80D0 jmp keychk90
679 0000C4
680 0000C4 1E0D mov a,keychat ;banish key's dithering
681 0000C5 7886 b0bts1 fz
682 0000C6 80D0 jmp keychk90
683 0000C7
684 0000C7 1E0A mov a,keychkbuf ;save key value
685 0000C8 1F0B mov keycvtbuf,a
686 0000C9
687 0000C9 4420 bclr keystatflag
688 0000CA 80D0 jmp keychk90
689 0000CB ;---
690 0000CB keychk10:
691 0000CB 1E09 mov a,keyinbuf ;send key state to bufram
692 0000CC 1F0A mov keychkbuf,a
693 0000CD
694 0000CD 4C20 bset keystatflag ;set key push flag
695 0000CE 2D03 mov a,#3 ;3
696 0000CF 1F0D mov keychat,a ;banish key's dithering 30ms
697 0000D0 ;---
698 0000D0 keychk90:
699 0000D0 0E00 ret
700 0000D1
701 0000D1
702 0000D1 ;**********************************************
703 0000D1 ;Name :keycvt
704 0000D1 ;Function:
705 0000D1 ;Input :
706 0000D1 ;Output :
707 0000D1 ;Register Used:var1,var2
708 0000D1 ;***********************************************
709 0000D1 keycvt:
710 0000D1 1E0B mov a,keycvtbuf ;convert key value
711 0000D2 070C cmprs a,keyoldbuf
712 0000D3 80D5 jmp keycvt10
713 0000D4 80F3 jmp keycvt90
714 0000D5 ;-----------------------------------------
715 0000D5 keycvt10:
716 0000D5 770B b0bts0 lineflag ;=0:line0 key,=1:line1 key
717 0000D6 80E5 jmp line1keypush
718 0000D7 ;----
719 0000D7 ;line0 key push
720 0000D7 mov_ var1,keycvtbuf
721 0000D7 1E0B mov a, keycvtbuf
722 0000D8 1F2D mov var1, a
723 0000D9 mov_ var2,#7
724 0000D9 2D07 mov a, #7
725 0000DA 1F2E mov var2, a
726 0000DB ;-----------------------------------------
727 0000DB loopline0:
728 0000DB 4286 bclr fc
729 0000DC 092D rrcm var1
730 0000DD 7A86 b0bts1 fc
731 0000DE 80E2 jmp line0getonekey
732 0000DF 262E decms var2
733 0000E0 80DB jmp loopline0
734 0000E1 0E00 ret
735 0000E2 ;-----
736 0000E2 line0getonekey:
737 0000E2 1E2E mov a,var2
738 0000E3 1F0E mov aplcode,a
739 0000E4 0E00 ret
740 0000E5 ;------------------------------------------
741 0000E5 line1keypush:
742 0000E5 mov_ var1,keycvtbuf
743 0000E5 1E0B mov a, keycvtbuf
744 0000E6 1F2D mov var1, a
745 0000E7 mov_ var2,#5
746 0000E7 2D05 mov a, #5
747 0000E8 1F2E mov var2, a
748 0000E9 loopline1:
749 0000E9 4286 bclr fc
750 0000EA 092D rrcm var1
751 0000EB 7A86 b0bts1 fc
752 0000EC 80F0 jmp line1getonekey
753 0000ED 262E decms var2
754 0000EE 80E9 jmp loopline1
755 0000EF 0E00 ret
756 0000F0 ;-----
757 0000F0 line1getonekey:
758 0000F0 1E2E mov a,var2
759 0000F1 1407 add a,#7
760 0000F2 1F0E mov aplcode,a
761 0000F3 ;-----
762 0000F3 keycvt90:
763 0000F3 0E00 ret
764 0000F4
765 0000F4 ;*******************************************************
766 0000F4 ;*******************************************************
767 0000F4 ;*******************************************************
768 0000F4 p2input:
769 0000F4 2BC2 clr p2m ;set p2 is input
770 0000F5 mov_ p2ur,#0ffh ;set p2 have pull_up
771 0000F5 2DFF mov a, #0ffh
772 0000F6 1FE2 mov p2ur, a
773 0000F7 80F8 jmp $+1
774 0000F8 80F9 jmp $+1
775 0000F9 0E00 ret
776 0000FA ;-----------------
777 0000FA p2output:
778 0000FA mov_ p2m,#0ffh ;set p2 is output
779 0000FA 2DFF mov a, #0ffh
780 0000FB 1FC2 mov p2m, a
781 0000FC 2BE2 clr p2ur ;clr p2 pull_up
782 0000FD 80FE jmp $+1
783 0000FE 80FF jmp $+1
784 0000FF 0E00 ret
785 000100
786 000100
787 000100 include mnapp.asm
788 000100 ;**********************************************
789 000100 ;Name :mnapp
790 000100 ;Function:
791 000100 ;Input :
792 000100 ;Output :
793 000100 ;Register Used:
794 000100 ;***********************************************
795 000100 mnapp:
796 000100 C104 call checkkey
797 000101 C167 call getinitparameter
798 000102 C18B call function
799 000103
800 000103 mnapp90:
801 000103 0E00 ret
802 000104 ;**********************************************
803 000104 ;Name :ensure which key should operate
804 000104 ;Function:
805 000104 ;Input :
806 000104 ;Output :
807 000104 ;Register Used:
808 000104 ;***********************************************
809 000104 checkkey:
810 000104 7123 b0bts0 poweronflag
811 000105 8165 jmp checkkey90 ;刚通电,不响应按键
812 000106 1E0E mov a,aplcode
813 000107 @jmp_a 13
814 000107 13CE add pcl, a
815 000108 8165 jmp checkkey90 ;0
816 000109 812E jmp boilwaterkey ;1,煮水
817 00010A 812B jmp warmmilkkey ;2,热奶
818 00010B 8128 jmp soupingkey ;3,煲汤
819 00010C 8125 jmp cookingkey ;4,煮饭
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -