📄 main.lst
字号:
823 0000CF RF_remotedata_set1:
824 0000CF mov_ RF_remotecountH,RF_bit1_Hval
825 0000CF 2D04 mov a, RF_bit1_Hval
826 0000D0 1F01 mov RF_remotecountH, a
827 0000D1 mov_ RF_remotecountL,RF_bit1_Lval
828 0000D1 2D04 mov a, RF_bit1_Lval
829 0000D2 1F02 mov RF_remotecountL, a
830 0000D3 RF_remotedata_setting90:
831 0000D3 0E00 ret
832 0000D4 ;-------------------------------------------
833 0000D4 include keyscan.asm ; Key scanning
834 0000D4 ;.data
835 0000D4 ; @key_num equ xx ; the xx < 9, otherwise you must repair the routine
836 0000D4 ; @debounce_num equ #xx ; debounce time = xx * Systime base
837 0000D4 ; @keystate_set equ xx ; 0: Low voltage detect ; 1: High voltage detect
838 0000D4 ; @key_power_set equ xx ; 0: Don't care power ; 1 : care power
839 0000D4 ;@keyinbuf ds 1 ; store the temp key state when scanning
840 0000D4 ;@keychkbuf ds 1 ; store the key state
841 0000D4 ;@keycvtbuf ds 1
842 0000D4 ;@keyoldbuf ds 1
843 0000D4 ;@keyflag ds 1
844 0000D4 ; @keydown_f equ @keyflag.0
845 0000D4 ;@keychat ds 1
846 0000D4 ;@aplcode ds 1
847 0000D4
848 0000D4
849 0000D4 ; @key1_p equ px.x ; add at ram.asm
850 0000D4 ; @key1m_p equ pxm.x ; |
851 0000D4 ; @key2_p equ px.x ; |
852 0000D4 ; @key2m_p equ pxm.x ; |
853 0000D4 ; @key3_p equ px.x ; |
854 0000D4 ; @key3m_p equ pxm.x ; |
855 0000D4 ; @key4_p equ px.x ; |
856 0000D4 ; @key4m_p equ pxm.x ; |
857 0000D4 ; @key5_p equ px.x ; |
858 0000D4 ; @key5m_p equ pxm.x ; |
859 0000D4 ; @key6_p equ px.x ; |
860 0000D4 ; @key6m_p equ pxm.x ; |
861 0000D4 ; @key7_p equ px.x ; |
862 0000D4 ; @key7m_p equ pxm.x ; |
863 0000D4 ; @key8_p equ px.x ; |
864 0000D4 ; @key8m_p equ pxm.x ; add at ram.asm
865 0000D4
866 0000D4 ;*******************************************************************************
867 0000D4 ; call Usage: chip support: ALL purpose: get key value *
868 0000D4 ; @@key_init: call at @@premain(if clear ram at com.asm, you can delete them)*
869 0000D4 ; @@mnkey: call at @@main *
870 0000D4 ; @@deckeychat: call at @@Intface5ms *
871 0000D4 ; @@Keyappl: call at @@main(key application, can add in Sys.asm) *
872 0000D4 ; @@key_powerdown: call at powerdown subroutine *
873 0000D4 ;Note: If detect Long time and short time key, you can set debounce time=long -*
874 0000D4 ; time, and wrtie a special routine to check short time key. *
875 0000D4 ;*******************************************************************************
876 0000D4
877 0000D4 ;.code
878 0000D4 ;***********************************************
879 0000D4 ; Key scan data Initial *
880 0000D4 ;***********************************************
881 0000D4 @@key_init:
882 0000D4 2B08 clr @keyinbuf
883 0000D5 2B09 clr @keychkbuf
884 0000D6 2B0A clr @keycvtbuf
885 0000D7 2B0B clr @keyoldbuf
886 0000D8 2B0C clr @keyflag
887 0000D9 2B0D clr @keychat
888 0000DA 2B0E clr @aplcode
889 0000DB 0E00 ret
890 0000DC
891 0000DC ;**********************************
892 0000DC ; key board scan *
893 0000DC ;**********************************
894 0000DC @@mnkey:
895 0000DC C0E0 call @@keyin ; read into @keyinbuf
896 0000DD C0FA call @@keychk ; read into checkbuf
897 0000DE C10E call @@keycvt ; read into convertbuf
898 0000DF 0E00 ret
899 0000E0 ;**********************************
900 0000E0 ; read into @keyinbuf *
901 0000E0 ;**********************************
902 0000E0 @@keyin:
903 0000E0 2B08 clr @keyinbuf
904 0000E1 60C2 b0bclr @key1m_p ; |
905 0000E2 78D2 b0bts1 @key1_p ; |
906 0000E3 6808 b0bset @keyinbuf.0 ; |
907 0000E4 61C2 b0bclr @key2m_p ; |
908 0000E5 79D2 b0bts1 @key2_p ; |
909 0000E6 6908 b0bset @keyinbuf.1 ; |
910 0000E7 62C2 b0bclr @key3m_p ; |
911 0000E8 7AD2 b0bts1 @key3_p ; |
912 0000E9 6A08 b0bset @keyinbuf.2 ; |
913 0000EA 63C2 b0bclr @key4m_p ; |
914 0000EB 7BD2 b0bts1 @key4_p ; |
915 0000EC 6B08 b0bset @keyinbuf.3 ; |
916 0000ED 64C2 b0bclr @key5m_p ; |
917 0000EE 7CD2 b0bts1 @key5_p ; |
918 0000EF 6C08 b0bset @keyinbuf.4 ; |
919 0000F0 65C2 b0bclr @key6m_p ; |
920 0000F1 7DD2 b0bts1 @key6_p ; |
921 0000F2 6D08 b0bset @keyinbuf.5 ; |
922 0000F3 66C2 b0bclr @key7m_p ; |
923 0000F4 7ED2 b0bts1 @key7_p ; |
924 0000F5 6E08 b0bset @keyinbuf.6 ; |
925 0000F6 67C2 b0bclr @key8m_p ; |
926 0000F7 7FD2 b0bts1 @key8_p ; |
927 0000F8 6F08 b0bset @keyinbuf.7 ; |
928 0000F9 0E00 ret
929 0000FA ;********************************************
930 0000FA ; check @keyinbuf and @keychkbuf *
931 0000FA ;********************************************
932 0000FA @@keychk:
933 0000FA 1E08 mov a,@keyinbuf
934 0000FB 1B09 xor a,@keychkbuf
935 0000FC jnz @@keychk10 ; jmp if not same
936 0000FC 7886 b0bts1 FZ
937 0000FD 8107 jmp @@keychk10
938 0000FE ; same
939 0000FE 580C bts1 @keydown_f
940 0000FF 810D jmp @@keychk90 ; end
941 000100 ; wait chatter
942 000100 1E0D mov a,@keychat
943 000101 jnz @@keychk90
944 000101 7886 b0bts1 FZ
945 000102 810D jmp @@keychk90
946 000103 ; key bounce time = 0 , copy chk buf into cvt buf
947 000103 mov_ @keycvtbuf,@keychkbuf
948 000103 1E09 mov a, @keychkbuf
949 000104 1F0A mov @keycvtbuf, a
950 000105 400C bclr @keydown_f ; clr @keyflag
951 000106 810D jmp @@keychk90
952 000107 ; different
953 000107 @@keychk10:
954 000107 410C bclr have_key /////add
955 000108 mov_ @keychkbuf,@keyinbuf
956 000108 1E08 mov a, @keyinbuf
957 000109 1F09 mov @keychkbuf, a
958 00010A 480C bset @keydown_f ; set @keyflag.0
959 00010B mov_ @keychat,@debounce_num
960 00010B 2D05 mov a, @debounce_num
961 00010C 1F0D mov @keychat, a
962 00010D @@keychk90:
963 00010D 0E00 ret
964 00010E ;****************************************************************
965 00010E ; compare @@keycvt and keyold and find the difference *
966 00010E ;****************************************************************
967 00010E @@keycvt:
968 00010E 1E0A mov a,@keycvtbuf
969 00010F 070B cmprs a,@keyoldbuf
970 000110 8112 jmp @@keycvt00
971 000111 8119 jmp @@keycvt90 ; same, exit
972 000112 ; check the new pressed key from table
973 000112 @@keycvt00:
974 000112 mov_ @keyoldbuf,@keycvtbuf
975 000112 1E0A mov a, @keycvtbuf
976 000113 1F0B mov @keyoldbuf, a
977 000114 ;----------------------------------------------------------------
978 000114 1F0E mov @aplcode,a
979 000115 0600 cmprs a,#0
980 000116 8118 jmp $+2
981 000117 8119 jmp @@keycvt90
982 000118 490C bset have_key
983 000119 @@keycvt90:
984 000119 0E00 ret
985 00011A ;**********************************
986 00011A ; key debounce check *
987 00011A ;**********************************
988 00011A @@deckeychat:
989 00011A 580C bts1 @keydown_f
990 00011B 8121 jmp @@deckeychat90
991 00011C 1E0D mov a,@keychat
992 00011D jz @@deckeychat90
993 00011D 7086 b0bts0 FZ
994 00011E 8121 jmp @@deckeychat90
995 00011F 260D decms @keychat ; @keychat--
996 000120 8121 jmp @@deckeychat90
997 000121 @@deckeychat90:
998 000121 0E00 ret
999 000122 ;**********************************
1000 000122 ; Key application *
1001 000122 ;**********************************
1002 000122 @@Keyappl:
1003 000122 590C bts1 have_key
1004 000123 8151 jmp @@keyappl70
1005 000124
1006 000124 1E0E mov a,@aplcode
1007 000125 2A1E and a,#00011110b
1008 000126 jz @f
1009 000126 7086 b0bts0 FZ
1010 000127 8134 jmp @f
1011 000128 0602 cmprs a,#00000010b
1012 000129 812B jmp $+2
1013 00012A 8160 jmp fast_forward_process
1014 00012B 0604 cmprs a,#00000100b
1015 00012C 812E jmp $+2
1016 00012D 8162 jmp forward_process
1017 00012E 0608 cmprs a,#00001000b
1018 00012F 8131 jmp $+2
1019 000130 8164 jmp low_backward_process
1020 000131 0610 cmprs a,#00010000b
1021 000132 8134 jmp $+2
1022 000133 8166 jmp backward_process
1023 000134 2D00 @@: mov a,#0
1024 000135 @@Keyappl10:
1025 000135 1F00 mov remote_rambuf,a
1026 000136 1E0E mov a,@aplcode
1027 000137 2A21 and a,#00100001b
1028 000138 0601 cmprs a,#00000001b
1029 000139 813B jmp $+2
1030 00013A 815A jmp left_process
1031 00013B 0620 cmprs a,#00100000b
1032 00013C 813E jmp $+2
1033 00013D 815D jmp right_process
1034 00013E 2D00 mov a,#0
1035 00013F 1800 or a,remote_rambuf
1036 000140 @@keyappl20:
1037 000140 1F00 mov remote_rambuf,a
1038 000141 1E0E mov a,@aplcode
1039 000142 2A3F and a,#00111111b
1040 000143 jnz @@keyappl30
1041 000143 7886 b0bts1 FZ
1042 000144 814D jmp @@keyappl30
1043 000145 1E0E mov a,@aplcode
1044 000146 2AC0 and a,#11000000b
1045 000147 0640 cmprs a,#01000000b
1046 000148 814A jmp $+2
1047 000149 8154 jmp up_process
1048 00014A 0680 cmprs a,#10000000b
1049 00014B 814D jmp $+2
1050 00014C 8157 jmp down_process
1051 00014D ; jmp @@keyappl30
1052 00014D @@keyappl30:
1053 00014D 2DC0 mov a,ID_code_val
1054 00014E 2AC0 and a,#11000000b
1055 00014F 1900 or remote_rambuf,a
1056 000150 8153 jmp @@keyappl90
1057 000151 @@keyappl70:
1058 000151 2B0E clr @aplcode
1059 000152 2B00 clr remote_rambuf
1060 000153 @@keyappl90:
1061 000153 0E00 ret
1062 000154
1063 000154 up_process:
1064 000154 mov_ remote_rambuf,#00011000b
1065 000154 2D18 mov a, #00011000b
1066 000155 1F00 mov remote_rambuf, a
1067 000156 814D jmp @@Keyappl30
1068 000157 down_process:
1069 000157 mov_ remote_rambuf,#00100000b
1070 000157 2D20 mov a, #00100000b
1071 000158 1F00 mov remote_rambuf, a
1072 000159 814D jmp @@Keyappl30
1073 00015A left_process:
1074 00015A 2D08 mov a,#00001000b
1075 00015B 1900 or remote_rambuf,a
1076 00015C 814D jmp @@Keyappl30
1077 00015D right_process:
1078 00015D 2D10 mov a,#00010000b
1079 00015E 1900 or remote_rambuf,a
1080 00015F 814D jmp @@Keyappl30
1081 000160 fast_forward_process:
1082 000160 2D02 mov a,#00000010b
1083 000161 8135 jmp @@Keyappl10
1084 000162 forward_process:
1085 000162 2D01 mov a,#00000001b
1086 000163 8135 jmp @@Keyappl10
1087 000164 low_backward_process:
1088 000164 2D03 mov a,#00000011b
1089 000165 8135 jmp @@Keyappl10
1090 000166 backward_process:
1091 000166 2D04 mov a,#00000100b
1092 000167 8135 jmp @@Keyappl10
1093 000168 endp ; End of Compiler
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -