📄 inductioncooker050524ver2.lst
字号:
802 0000DC 7836 b0bts1 t10msflag
803 0000DD 80FC jmp mnintgnd90
804 0000DE ;-----------------------------
805 0000DE 4036 bclr t10msflag
806 0000DF ;------------------------------
807 0000DF mnintgnd10:
808 0000DF ;----
809 0000DF 260E decms loadfrequent
810 0000E0 80EE jmp mnintgnd20
811 0000E1 mov_ loadfrequent,#50
812 0000E1 2D32 mov a, #50
813 0000E2 1F0E mov loadfrequent, a
814 0000E3 ;-----
815 0000E3 1E13 mov a,buzzercnt
816 0000E4 7086 b0bts0 fz
817 0000E5 80EE jmp mnintgnd20
818 0000E6 ;---
819 0000E6 notbit buzzerflag
820 0000E6 7637 b0bts0 buzzerflag
821 0000E7 80EA jmp $+3
822 0000E8 6E37 b0bset buzzerflag
823 0000E9 80EB jmp $+2
824 0000EA 6637 b0bclr buzzerflag
825 0000EB 2613 decms buzzercnt
826 0000EC 80EE jmp mnintgnd20
827 0000ED 4637 bclr buzzerflag
828 0000EE ;------------------------------
829 0000EE mnintgnd20:
830 0000EE ;----
831 0000EE 260F decms ledfrequent
832 0000EF 80F3 jmp mnintgnd30
833 0000F0 4E3A bset ledfrequentflag
834 0000F1 mov_ ledfrequent,#50
835 0000F1 2D32 mov a, #50
836 0000F2 1F0F mov ledfrequent, a
837 0000F3 ;-------------------------------
838 0000F3 mnintgnd30:
839 0000F3 2604 decms timer200ms
840 0000F4 80FC jmp mnintgnd90
841 0000F5 notbit heattimeflag
842 0000F5 713E b0bts0 heattimeflag
843 0000F6 80F9 jmp $+3
844 0000F7 693E b0bset heattimeflag
845 0000F8 80FA jmp $+2
846 0000F9 613E b0bclr heattimeflag
847 0000FA mov_ timer200ms,#20
848 0000FA 2D14 mov a, #20
849 0000FB 1F04 mov timer200ms, a
850 0000FC mnintgnd90:
851 0000FC 0E00 ret
852 0000FD include keyscan.asm
853 0000FD ;**********************************************
854 0000FD ;Name :mnkey
855 0000FD ;Function:
856 0000FD ;Input :
857 0000FD ;Output :
858 0000FD ;Register Used:
859 0000FD ;***********************************************
860 0000FD mnkey:
861 0000FD C101 call keyin
862 0000FE C11E call keychk
863 0000FF C130 call keycvt
864 000100
865 000100 mnkey90:
866 000100 0E00 ret
867 000101
868 000101 ;**********************************************
869 000101 ;Name :keyin
870 000101 ;Function:keyinbuf.7=0:key on line0,=1:key on line1
871 000101 ;Input :
872 000101 ;Output :
873 000101 ;Register Used:var1,var2
874 000101 ;***********************************************
875 000101 keyin:
876 000101 ;-----
877 000101 mov_ var1,p2 ;push p2 value
878 000101 1ED2 mov a, p2
879 000102 1F47 mov var1, a
880 000103 2DF0 mov a,#11110000b
881 000104 19D4 or p4,a
882 000105 C160 call p2input
883 000106 2B14 clr keyinbuf
884 000107 ;----
885 000107 ;start scan key
886 000107 ;line0
887 000107 40D5 bclr line0
888 000108 C417 call delay_10us
889 000109 1ED2 mov a,p2
890 00010A 2A7F and a,#01111111b
891 00010B 1F14 mov keyinbuf,a
892 00010C 1D7F xor a,#01111111b
893 00010D 7886 b0bts1 fz
894 00010E 8118 jmp keyin80 ;line0 上有键按下,退出line1扫描
895 00010F ;-----
896 00010F ;line1 ;line0 上无键按下,接着扫描line1
897 00010F 41D5 bclr line1
898 000110 C417 call delay_10us
899 000111 1ED2 mov a,p2
900 000112 2A7F and a,#01111111b
901 000113 1F14 mov keyinbuf,a
902 000114 1D7F xor a,#01111111b
903 000115 7086 b0bts0 fz
904 000116 8118 jmp keyin80 ;line1 上无键按下
905 000117 ;----
906 000117 4F14 bset keyinbuf.7 ;line1 上有键按下
907 000118 ;------
908 000118 keyin80:
909 000118 48D5 bset line0
910 000119 49D5 bset line1
911 00011A ;----
912 00011A C166 call p2output
913 00011B mov_ p2,var1 ;pop p2 value
914 00011B 1E47 mov a, var1
915 00011C 1FD2 mov p2, a
916 00011D ;---
917 00011D keyin90:
918 00011D 0E00 ret
919 00011E
920 00011E ;**********************************************
921 00011E ;Name :keychk
922 00011E ;Function:
923 00011E ;Input :
924 00011E ;Output :
925 00011E ;Register Used:
926 00011E ;***********************************************
927 00011E keychk:
928 00011E 1E14 mov a,keyinbuf ;check line0 state
929 00011F 0715 cmprs a,keychkbuf
930 000120 812A jmp keychk10
931 000121
932 000121 7C36 b0bts1 keystatflag ;check have key push or not?
933 000122 812F jmp keychk90
934 000123
935 000123 1E18 mov a,keychat ;banish key's dithering
936 000124 7886 b0bts1 fz
937 000125 812F jmp keychk90
938 000126
939 000126 1E15 mov a,keychkbuf ;save key value
940 000127 1F16 mov keycvtbuf,a
941 000128
942 000128 4436 bclr keystatflag
943 000129 812F jmp keychk90
944 00012A ;---
945 00012A keychk10:
946 00012A 1E14 mov a,keyinbuf ;send key state to bufram
947 00012B 1F15 mov keychkbuf,a
948 00012C
949 00012C 4C36 bset keystatflag ;set key push flag
950 00012D 2D03 mov a,#3 ;3
951 00012E 1F18 mov keychat,a ;banish key's dithering 30ms
952 00012F ;---
953 00012F keychk90:
954 00012F 0E00 ret
955 000130
956 000130
957 000130 ;**********************************************
958 000130 ;Name :keycvt
959 000130 ;Function:
960 000130 ;Input :
961 000130 ;Output :
962 000130 ;Register Used:temp3,temp4
963 000130 ;***********************************************
964 000130 keycvt:
965 000130 1E16 mov a,keycvtbuf ;convert key value
966 000131 0717 cmprs a,keyoldbuf
967 000132 8134 jmp keycvt10
968 000133 815F jmp keycvt90
969 000134 ;-----------------------------------------
970 000134 keycvt10:
971 000134 7716 b0bts0 lineflag ;=0:line0 key,=1:line1 key
972 000135 8147 jmp line1keypush
973 000136 ;----
974 000136 ;line0 key push
975 000136 1E16 mov a,keycvtbuf
976 000137 1F17 mov keyoldbuf,a
977 000138 1A80 or a,#10000000b
978 000139 1F42 mov temp3,a
979 00013A mov_ temp4,#7
980 00013A 2D07 mov a, #7
981 00013B 1F43 mov temp4, a
982 00013C ;-----------------------------------------
983 00013C loopline0:
984 00013C 4286 bclr fc
985 00013D 0942 rrcm temp3
986 00013E 7A86 b0bts1 fc
987 00013F 8144 jmp line0getonekey
988 000140 2643 decms temp4
989 000141 813C jmp loopline0
990 000142 ;-----
991 000142 493B bset keyokflag
992 000143 0E00 ret
993 000144 ;-----
994 000144 line0getonekey:
995 000144 1E43 mov a,temp4
996 000145 1F19 mov aplcode,a
997 000146 0E00 ret
998 000147 ;------------------------------------------
999 000147 line1keypush:
1000 000147 1E16 mov a,keycvtbuf
1001 000148 1F17 mov keyoldbuf,a
1002 000149 1A80 or a,#10000000b
1003 00014A 1F42 mov temp3,a
1004 00014B ;----
1005 00014B 2A03 and a,#00000011b
1006 00014C 7086 b0bts0 fz
1007 00014D 815C jmp twokeypush
1008 00014E mov_ temp4,#5
1009 00014E 2D05 mov a, #5
1010 00014F 1F43 mov temp4, a
1011 000150 loopline1:
1012 000150 4286 bclr fc
1013 000151 0942 rrcm temp3
1014 000152 7A86 b0bts1 fc
1015 000153 8158 jmp line1getonekey
1016 000154 2643 decms temp4
1017 000155 8150 jmp loopline1
1018 000156 ;-----
1019 000156 493B bset keyokflag
1020 000157 0E00 ret
1021 000158 ;-----
1022 000158 line1getonekey:
1023 000158 1E43 mov a,temp4
1024 000159 1407 add a,#7
1025 00015A 1F19 mov aplcode,a
1026 00015B 0E00 ret
1027 00015C ;----
1028 00015C twokeypush:
1029 00015C 2D0D mov a,#13
1030 00015D 1F19 mov aplcode,a
1031 00015E 493B bset keyokflag
1032 00015F ;-----
1033 00015F keycvt90:
1034 00015F 0E00 ret
1035 000160
1036 000160 ;*******************************************************
1037 000160 ;*******************************************************
1038 000160 ;*******************************************************
1039 000160 p2input:
1040 000160 2BC2 clr p2m ;set p2 is input
1041 000161 mov_ p2ur,#0ffh ;set p2 have pull_up
1042 000161 2DFF mov a, #0ffh
1043 000162 1FE2 mov p2ur, a
1044 000163 8164 jmp $+1
1045 000164 8165 jmp $+1
1046 000165 0E00 ret
1047 000166 ;-----------------
1048 000166 p2output:
1049 000166 mov_ p2m,#0ffh ;set p2 is output
1050 000166 2DFF mov a, #0ffh
1051 000167 1FC2 mov p2m, a
1052 000168 2BE2 clr p2ur ;clr p2 pull_up
1053 000169 816A jmp $+1
1054 00016A 816B jmp $+1
1055 00016B 0E00 ret
1056 00016C
1057 00016C
1058 00016C include mnapp.asm
1059 00016C ;**********************************************
1060 00016C ;Name :mnapp
1061 00016C ;Function:
1062 00016C ;Input :
1063 00016C ;Output :
1064 00016C ;Register Used:
1065 00016C ;***********************************************
1066 00016C mnapp:
1067 00016C C170 call checkkey
1068 00016D C267 call getinitparameter ;某些功能下,不需要
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -