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