📄 inductioncooker050512ver2.lst
字号:
805 0000ED ;**********************************************
806 0000ED ;Name :mnkey
807 0000ED ;Function:
808 0000ED ;Input :
809 0000ED ;Output :
810 0000ED ;Register Used:
811 0000ED ;***********************************************
812 0000ED mnkey:
813 0000ED C0F1 call keyin
814 0000EE C10E call keychk
815 0000EF C120 call keycvt
816 0000F0
817 0000F0 mnkey90:
818 0000F0 0E00 ret
819 0000F1
820 0000F1 ;**********************************************
821 0000F1 ;Name :keyin
822 0000F1 ;Function:keyinbuf.7=0:key on line0,=1:key on line1
823 0000F1 ;Input :
824 0000F1 ;Output :
825 0000F1 ;Register Used:var1,var2
826 0000F1 ;***********************************************
827 0000F1 keyin:
828 0000F1 ;-----
829 0000F1 mov_ var1,p2 ;push p2 value
830 0000F1 1ED2 mov a, p2
831 0000F2 1F36 mov var1, a
832 0000F3 ;// mov_ var2,p4
833 0000F3 2DF0 mov a,#11110000b
834 0000F4 19D4 or p4,a
835 0000F5 C150 call p2input
836 0000F6 2B10 clr keyinbuf
837 0000F7 ;----
838 0000F7 ;start scan key
839 0000F7 ;line0
840 0000F7 40D5 bclr line0
841 0000F8 C3E7 call delay_10us
842 0000F9 1ED2 mov a,p2
843 0000FA 2A7F and a,#01111111b
844 0000FB 1F10 mov keyinbuf,a
845 0000FC 1D7F xor a,#01111111b
846 0000FD 7886 b0bts1 fz
847 0000FE 8108 jmp keyin80 ;line0 上有键按下,退出line1扫描
848 0000FF ;-----
849 0000FF ;line1 ;line0 上无键按下,接着扫描line1
850 0000FF 41D5 bclr line1
851 000100 C3E7 call delay_10us
852 000101 1ED2 mov a,p2
853 000102 2A7F and a,#01111111b
854 000103 1F10 mov keyinbuf,a
855 000104 1D7F xor a,#01111111b
856 000105 7086 b0bts0 fz
857 000106 8108 jmp keyin80 ;line1 上无键按下
858 000107 ;----
859 000107 4F10 bset keyinbuf.7 ;line1 上有键按下
860 000108 ;------
861 000108 keyin80:
862 000108 48D5 bset line0
863 000109 49D5 bset line1
864 00010A ;----
865 00010A C156 call p2output
866 00010B mov_ p2,var1 ;pop p2 value
867 00010B 1E36 mov a, var1
868 00010C 1FD2 mov p2, a
869 00010D ;// mov_ p4,var2
870 00010D ;---
871 00010D keyin90:
872 00010D 0E00 ret
873 00010E
874 00010E ;**********************************************
875 00010E ;Name :keychk
876 00010E ;Function:
877 00010E ;Input :
878 00010E ;Output :
879 00010E ;Register Used:
880 00010E ;***********************************************
881 00010E keychk:
882 00010E 1E10 mov a,keyinbuf ;check line0 state
883 00010F 0711 cmprs a,keychkbuf
884 000110 811A jmp keychk10
885 000111
886 000111 7C27 b0bts1 keystatflag ;check have key push or not?
887 000112 811F jmp keychk90
888 000113
889 000113 1E14 mov a,keychat ;banish key's dithering
890 000114 7886 b0bts1 fz
891 000115 811F jmp keychk90
892 000116
893 000116 1E11 mov a,keychkbuf ;save key value
894 000117 1F12 mov keycvtbuf,a
895 000118
896 000118 4427 bclr keystatflag
897 000119 811F jmp keychk90
898 00011A ;---
899 00011A keychk10:
900 00011A 1E10 mov a,keyinbuf ;send key state to bufram
901 00011B 1F11 mov keychkbuf,a
902 00011C
903 00011C 4C27 bset keystatflag ;set key push flag
904 00011D 2D03 mov a,#3 ;3
905 00011E 1F14 mov keychat,a ;banish key's dithering 30ms
906 00011F ;---
907 00011F keychk90:
908 00011F 0E00 ret
909 000120
910 000120
911 000120 ;**********************************************
912 000120 ;Name :keycvt
913 000120 ;Function:
914 000120 ;Input :
915 000120 ;Output :
916 000120 ;Register Used:temp3,temp4
917 000120 ;***********************************************
918 000120 keycvt:
919 000120 1E12 mov a,keycvtbuf ;convert key value
920 000121 0713 cmprs a,keyoldbuf
921 000122 8124 jmp keycvt10
922 000123 814F jmp keycvt90
923 000124 ;-----------------------------------------
924 000124 keycvt10:
925 000124 7712 b0bts0 lineflag ;=0:line0 key,=1:line1 key
926 000125 8137 jmp line1keypush
927 000126 ;----
928 000126 ;line0 key push
929 000126 1E12 mov a,keycvtbuf
930 000127 1F13 mov keyoldbuf,a
931 000128 1A80 or a,#10000000b
932 000129 1F31 mov temp3,a
933 00012A mov_ temp4,#7
934 00012A 2D07 mov a, #7
935 00012B 1F32 mov temp4, a
936 00012C ;-----------------------------------------
937 00012C loopline0:
938 00012C 4286 bclr fc
939 00012D 0931 rrcm temp3
940 00012E 7A86 b0bts1 fc
941 00012F 8134 jmp line0getonekey
942 000130 2632 decms temp4
943 000131 812C jmp loopline0
944 000132 ;-----
945 000132 492C bset keyokflag
946 000133 0E00 ret
947 000134 ;-----
948 000134 line0getonekey:
949 000134 1E32 mov a,temp4
950 000135 1F15 mov aplcode,a
951 000136 0E00 ret
952 000137 ;------------------------------------------
953 000137 line1keypush:
954 000137 1E12 mov a,keycvtbuf
955 000138 1F13 mov keyoldbuf,a
956 000139 1A80 or a,#10000000b
957 00013A 1F31 mov temp3,a
958 00013B ;----
959 00013B 2A03 and a,#00000011b
960 00013C 7086 b0bts0 fz
961 00013D 814C jmp twokeypush
962 00013E mov_ temp4,#5
963 00013E 2D05 mov a, #5
964 00013F 1F32 mov temp4, a
965 000140 loopline1:
966 000140 4286 bclr fc
967 000141 0931 rrcm temp3
968 000142 7A86 b0bts1 fc
969 000143 8148 jmp line1getonekey
970 000144 2632 decms temp4
971 000145 8140 jmp loopline1
972 000146 ;-----
973 000146 492C bset keyokflag
974 000147 0E00 ret
975 000148 ;-----
976 000148 line1getonekey:
977 000148 1E32 mov a,temp4
978 000149 1407 add a,#7
979 00014A 1F15 mov aplcode,a
980 00014B 0E00 ret
981 00014C ;----
982 00014C twokeypush:
983 00014C 2D0D mov a,#13
984 00014D 1F15 mov aplcode,a
985 00014E 492C bset keyokflag
986 00014F ;-----
987 00014F keycvt90:
988 00014F 0E00 ret
989 000150
990 000150 ;*******************************************************
991 000150 ;*******************************************************
992 000150 ;*******************************************************
993 000150 p2input:
994 000150 2BC2 clr p2m ;set p2 is input
995 000151 mov_ p2ur,#0ffh ;set p2 have pull_up
996 000151 2DFF mov a, #0ffh
997 000152 1FE2 mov p2ur, a
998 000153 8154 jmp $+1
999 000154 8155 jmp $+1
1000 000155 0E00 ret
1001 000156 ;-----------------
1002 000156 p2output:
1003 000156 mov_ p2m,#0ffh ;set p2 is output
1004 000156 2DFF mov a, #0ffh
1005 000157 1FC2 mov p2m, a
1006 000158 2BE2 clr p2ur ;clr p2 pull_up
1007 000159 815A jmp $+1
1008 00015A 815B jmp $+1
1009 00015B 0E00 ret
1010 00015C
1011 00015C
1012 00015C ;// include scankey.asm
1013 00015C include mnapp.asm
1014 00015C ;**********************************************
1015 00015C ;Name :mnapp
1016 00015C ;Function:
1017 00015C ;Input :
1018 00015C ;Output :
1019 00015C ;Register Used:
1020 00015C ;***********************************************
1021 00015C mnapp:
1022 00015C C160 call checkkey
1023 00015D C25A call getinitparameter ;某些功能下,不需要
1024 00015E C285 call function
1025 00015F
1026 00015F mnapp90:
1027 00015F 0E00 ret
1028 000160 ;**********************************************
1029 000160 ;Name :ensure which key should operate
1030 000160 ;Function:
1031 000160 ;Input :
1032 000160 ;Output :
1033 000160 ;Register Used:
1034 000160 ;***********************************************
1035 000160 checkkey:
1036 000160 712A b0bts0 poweronflag
1037 000161 8255 jmp checkkey90 ;刚通电,不响应按键
1038 000162 792C b0bts1 keyokflag
1039 000163 8259 jmp checkkey100
1040 000164 ;----
1041 000164 412C bclr keyokflag
1042 000165 1E15 mov a,aplcode
1043 000166 @jmp_a 14
1044 000166 13CE add pcl, a
1045 000167 8255 jmp checkkey90 ;0
1046 000168 81E2 jmp boilwaterkey ;1,煮水
1047 000169 81C8 jmp warmmilkkey ;2,热奶
1048 00016A 81B4 jmp soupingkey ;3,煲汤
1049 00016B 819B jmp cookingkey ;4,煮饭,可定时
1050 00016C 818F jmp barbecuekey ;5,烧烤,可定时
1051 00016D 8184 jmp chaffydishkey ;6,火锅
1052 00016E 8175 jmp frieddishkey ;7,炒菜
1053 00016F 8240 jmp offkey ;8
1054 000170 8215 jmp inckey ;9
1055 000171 822C jmp deckey ;10
1056 000172 8206 jmp oneminkey ;11,一分钟
1057 000173 81F7 jmp tenminkey ;12,十分钟
1058 000174 824D jmp canceltimekey ;13,一分钟和十分钟键同时按下
1059 000175 ;************************************************
1060 000175 frieddishkey:
1061 000175 ;----
1062 000175 C39C call clearallflag
1063 000176 4829 bset frieddishflag
1064 000177 4D28 bset operateflag ;开始工作标志
1065 000178 492B bset parameterflag
1066 000179 4D2A bset settimeflag
1067 00017A 49C9 bset fp01ien
1068 00017B ;----
1069 00017B ;初始化参数
1070 00017B C3A4 call initparameter
1071 00017C 4024 bclr frieddishled ;light led
1072 00017D 4225 bclr temp160cled ;1200w
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -