📄 new0001.l
字号:
894 0107 E6 D8 02 ld TCNTSEL,#02H
895 010A E6 D4 18 ld CLKCON,#00011000B
896 010D E6 D0 2E ld TCCON,#00101110B ;fxx/8
897 0110 E6 D2 C8 ld TCDATA,#0C8H ;8/8=1US 1*200=200US
898 0113 0C A0 ld R0,#0A0H
899 0115 CLR_RAM:
900 0115 00 C0 dec R0
901 0117 B1 C0 clr @R0
902 0119 A6 C0 00 cp R0,#00H
903 011C EB F7 jr NE,CLR_RAM
904 011E F6 01 91 call IO_INIT
905 0121 9F EI
906 0122 E6 35 44 ld EQ_RAM,#044H
907 0125 E6 21 20 ld volume_val,#20H
908 0128 E6 43 14 ld PT2258_VOL,#14H
909 <01> SET_REMOTE
910 012B 46 E3 02 OR P3,#02H
911 <01> .ENDM
912 [01] .ifdef TEXT_40K
913 <01> CLR_REMOTE
914 012E 56 E3 FD AND P3,#0FDH
915 <01> .ENDM
916 <01> SET_POWER
917 0131 46 E0 02 OR P0,#02H
918 <01> .ENDM
919 [00] .endif
920 0134 E6 3D 01 ld FUNCTION_STAT,#Function_Vcd
921 0137 F6 03 EA call DELAY_200MS
922
923 013A MAIN:
924 ;*********************************************************
925 ; invalid when current_key is 0ffh
926 ;*********************************************************
927 ;POWER_IS_LOW
928 ;jp Z,no_delay_150ms
929 [01] .ifdef TEXT_40K
930 013A F6 08 81 call Send_40K
931
932 ;call DELAY_200MS
933 ;CLR_POP
934 013D 8D 01 3A jp MAIN
935
936 0140 no_delay_150ms:
937
938 [00] .endif
939 0140 F6 03 2E call Get_Key
940 0143 F6 02 C0 call power_key_par
941 0146 F6 07 80 call EQ_key_par
942 0149 F6 01 B9 call volume_key_par
943 014C A6 3D 01 cp FUNCTION_STAT,#Function_Vcd
944 014F ED 01 3A jp NE,MAIN
945 <01> KEY_VALID_IS_LOW
946 0152 76 00 20 TM STATE_ALL,#00100000B
947 <01> .ENDM
948 0155 6D 01 3A jp Z,MAIN
949 0158 E4 39 3B ld ACC_SEN_VAL,Current_Key
950 015B F6 08 55 call REMOTE_SEND_CODE
951 015E 8D 01 3A jp MAIN
952
953
954
955
956
957 ; 时间C溢出中断
958 ;****************************************************************
959 0161 TIMER1_INIT:
960
961 0161 20 0E inc DELAY_200US_VAL
962 0163 20 03 inc time_count
963 0165 20 42 inc KEY_DELAY1
964 0167 A6 42 7D cp KEY_DELAY1,#125
965 016A 7D 01 71 jp ULT,next_even1
966 016D B0 42 clr KEY_DELAY1
967 016F 20 40 inc KEY_DELAY
968 0171 next_even1:
969 0171 20 09 inc time_delay
970 0173 A6 09 1E cp time_delay,#1EH
971 0176 7D 01 8D jp ULT,return_t_int
972 0179 20 0A inc time_delay1
973 017B B0 09 clr time_delay
974 017D A6 0A 12 cp time_delay1,#12H
975 0180 7D 01 8D jp ULT,return_t_int
976 0183 B0 0A clr time_delay1
977 0185 B0 09 clr time_delay
978 0187 56 00 FC and STATE_ALL,#0FCH
979 <01> CLR_IR_KEY_IS_DOWN
980 018A 56 00 F7 AND STATE_ALL,#11110111B
981 <01> .ENDM
982 018D return_t_int:
983
984 018D 56 D0 FE and TCCON,#0FEH
985 0190 BF IRET
986 ;****************************************************************
987 ; 中断结束
988 ;****************************************************************
989
990
991
992
993
994 [01] .IF 0
995 IO_INIT PROC
996 [00] .ENDIF
997 0191 IO_INIT:
998 0191 E6 E0 00 ld P0,#00H
999 0194 E6 E6 2A ld P0CON,#00101010B
1000 0197 B0 E1 clr P1
1001 0199 E6 E8 AF ld P1CONH,#10101111B
1002 019C E6 E9 F8 ld P1CONL,#11111000B
1003
1004
1005 019F E6 E7 08 ld P1INT,#00001000B ;ENABLE INT1 INT0
1006
1007 [01] .ifdef TEXT_40K
1008 01A2 E6 E9 F9 ld P1CONL,#11111001B
1009
1010 01A5 E6 E7 0C ld P1INT,#00001100B
1011 [00] .endif
1012 01A8 B0 E2 clr P2
1013 01AA E6 EA A8 ld P2CONH,#10101000B
1014 01AD E6 EB AA ld P2CONL,#10101010B
1015 01B0 B0 E3 clr P3
1016 01B2 E6 E3 00 ld P3,#00H
1017 01B5 E6 EC AA ld P3CON,#10101010B
1018 ;A/D
1019 ;ld ADCON,#00100010B
1020
1021
1022
1023 01B8 AF RET
1024 [01] .IF 0
1025 IO_INIT ENDP
1026 [00] .ENDIF
1027
1028
1029
1030
1031
1032 ;*********************************************************
1033 [01] .IF 0
1034 volume_key_par proc
1035 [00] .ENDIF
1036 01B9 volume_key_par:
1037 <01> POWER_IS_LOW
1038 01B9 76 E0 02 TM P0,#02H
1039 <01> .ENDM
1040 01BC 6D 02 24 jp Z,vol_ret
1041
1042 <01> KEY_VALID_IS_LOW
1043 01BF 76 00 20 TM STATE_ALL,#00100000B
1044 <01> .ENDM
1045 01C2 6D 02 24 jp Z,vol_ret
1046
1047 01C5 A6 39 14 cp Current_Key,#IR_VOL_DEC_KEY
1048 01C8 ED 01 D6 jp NE,vol_dec_ir_fun
1049 01CB vol_inc_fun:
1050 ;音量加
1051 01CB A6 43 3C cp PT2258_VOL,#3cH
1052 01CE FD 02 15 jp UGE,show_volu
1053 01D1 20 43 inc PT2258_VOL
1054 01D3 8D 02 02 jp vol_fun
1055 01D6 vol_dec_ir_fun:
1056 01D6 A6 39 10 cp Current_Key,#IR_VOL_INC_KEY
1057 01D9 6D 01 FA jp Z,vol_dec_fun
1058 ;clr show_volume
1059 01DC vol_mute:
1060 01DC A6 39 56 cp Current_Key,#IR_MUTE_KEY
1061 01DF 6D 01 E3 jp Z,vol_mute_fun
1062 01E2 AF RET
1063 01E3 vol_mute_fun:
1064 <01> XOR_MUTE
1065 01E3 B6 E0 01 XOR P0,#01H
1066 <01> .ENDM
1067 <01> CLR_KEY_VALID
1068 01E6 56 00 DF AND STATE_ALL,#11011111B
1069 <01> .ENDM
1070 <01> MUTE_IS_LOW
1071 01E9 76 E0 01 TM P0,#01H
1072 <01> .ENDM
1073 01EC 6D 01 F6 jp Z,noshow_mute_icon
1074 01EF F6 03 EA call DELAY_200MS
1075 01F2 F6 06 86 call PT2314_MUTE
1076 01F5 AF RET
1077 01F6 noshow_mute_icon:
1078 01F6 F6 06 79 call PT2314_NOMUTE
1079 01F9 mute_ret:
1080 01F9 AF RET
1081 01FA vol_dec_fun:
1082 ;音量减
1083 01FA A6 43 00 cp PT2258_VOL,#00H
1084 01FD 6D 02 15 jp Z,show_volu
1085 0200 00 43 dec PT2258_VOL
1086 0202 vol_fun:
1087 0202 B0 44 clr PT2314_REP
1088 0204 con_send_2258:
1089 0204 A6 44 0A cp PT2314_REP,#10
1090 0207 FD 02 15 jp uge,show_volu
1091 020A 20 44 inc PT2314_REP
1092 020C F6 08 01 call Pt2258_Send
1093 020F A6 3C 00 cp ACC_RET_VAL,#00h
1094 0212 6D 02 04 jp z,con_send_2258
1095 0215 show_volu:
1096 <01> MUTE_IS_LOW
1097 0215 76 E0 01 TM P0,#01H
1098 <01> .ENDM
1099 0218 6D 02 24 jp Z,vol_ret
1100 021B F6 06 79 call PT2314_NOMUTE
1101 <01> CLR_MUTE
1102 021E 56 E0 FE AND P0,#0FEH
1103 <01> .ENDM
1104 <01> CLR_KEY_VALID
1105 0221 56 00 DF AND STATE_ALL,#11011111B
1106 <01> .ENDM
1107 0224 vol_ret:
1108 0224 AF RET
1109 ;*********************************************************
1110
1111
1112
1113 ;*********************************************************
1114 [01] .IF 0
1115 Check_Channel proc
1116 [00] .ENDIF
1117 0225 Check_Channel:
1118 <01> POWER_IS_LOW
1119 0225 76 E0 02 TM P0,#02H
1120 <01> .ENDM
1121 0228 6D 02 BF jp Z,set_volume_ret
1122
1123 <01> SET_MUTE
1124 022B 46 E0 01 OR P0,#01H
1125 <01> .ENDM
1126 022E E6 3B 01 ld ACC_SEN_VAL,#1
1127 0231 F6 03 C9 call Delay_50ms
1128
1129 <01> CLR_TAPE
1130 0234 56 E2 FE AND P2,#0FEH
1131 <01> .ENDM
1132 <01> CLR_CD
1133 0237 56 E2 FD AND P2,#0FDH
1134 <01> .ENDM
1135 <01> CLR_RADIO
1136 023A 56 E2 FB AND P2,#0FBH
1137 <01> .ENDM
1138 <01> CLR_AUX
1139 023D 56 E2 F7 AND P2,#0F7H
1140 <01> .ENDM
1141
1142
1143 0240 A6 3D 02 cp FUNCTION_STAT,#Function_Radio
1144 0243 ED 02 4F jp NE,sel_tape_channel
1145 0246 56 35 FC and EQ_RAM,#0FCH
1146 <01> SET_RADIO
1147 0249 46 E2 04 OR P2,#04H
1148 <01> .ENDM
1149
1150 024C 8D 02 88 jp sel_channel
1151 024F sel_tape_channel:
1152 024F A6 3D 03 cp FUNCTION_STAT,#Function_Tape
1153 0252 ED 02 61 jp NE,sel_vcd_channel
1154 0255 56 35 FC and EQ_RAM,#0FCH
1155 0258 46 35 02 or EQ_RAM,#02H
1156 <01> SET_TAPE
1157 025B 46 E2 01 OR P2,#01H
1158 <01> .ENDM
1159
1160 025E 8D 02 88 jp sel_channel
1161 0261 sel_vcd_channel:
1162 0261 A6 3D 01 cp FUNCTION_STAT,#Function_Vcd
1163 0264 ED 02 79 jp NE,sel_aux_channel
1164 0267 56 35 FC and EQ_RAM,#0FCH
1165 026A 46 35 01 or EQ_RAM,#01H
1166 <01> SET_CD
1167 026D 46 E2 02 OR P2,#02H
1168 <01> .ENDM
1169
1170 0270 E6 3B 0A ld ACC_SEN_VAL,#10
1171 0273 F6 03 C9 call Delay_50ms
1172 0276 8D 02 88 jp sel_channel
1173 0279 sel_aux_channel:
1174 0279 A6 3D 04 cp FUNCTION_STAT,#Function_Aux
1175 027C ED 02 88 jp ne,sel_channel
1176 <01> SET_AUX
1177 027F 46 E2 08 OR P2,#08H
1178 <01> .ENDM
1179
1180 0282 56 35 FC and EQ_RAM,#0fch
1181 0285 46 35 03 or EQ_RAM,#03h
1182 0288 sel_channel:
1183
1184 0288 B0 44 clr PT2314_REP
1185 028A con_send:
1186 028A E6 3B 0A ld ACC_SEN_VAL,#10
1187 028D F6 03 C9 call Delay_50ms
1188
1189 0290 E6 3B C0 ld ACC_SEN_VAL,#0C0H
1190 0293 F6 07 21 call PT2314_SEND
1191 0296 20 44 inc PT2314_REP
1192 0298 A6 3C 00 cp ACC_RET_VAL,#0
1193 029B ED 02 A4 jp ne,send_next
1194 029E A6 44 0A cp PT2314_REP,#10
1195 02A1 7D 02 8A jp ult,con_send
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -