📄 radio.l
字号:
1136 00 FD VFD_TRON_KEY EQU 0FDH
1137 00 FD VFD_TROFF_KEY EQU 0FDH
1138 00 FD VFD_SLEEP_KEY EQU 0FDH
1139
1140
1141
1142 00 FD IR_POWER_KEY EQU 0FDH
1143 ;EQ KEY
1144 00 FD IR_JAZZ_KEY EQU 0FDH
1145 00 FD IR_FLAT_KEY EQU 0FDH
1146 00 FD IR_CLASSIC_KEY EQU 0FDH
1147 00 FD IR_ROCK_KEY EQU 0FDH
1148 00 FD IR_CHANGE_EQ_KEY EQU 0FDH
1149
1150 ;FUNCTION KEY
1151 00 FD IR_VCD_KEY EQU 0FDH
1152 00 FD IR_TAPE_KEY EQU 0FDH
1153 00 FD IR_AUX_KEY EQU 0FDH
1154 00 FD IR_RADIO_KEY EQU 0FDH
1155 00 FD IR_CHANGE_FUN_KEY EQU 0FDH
1156
1157 ;VOLUME KEY
1158 00 FD IR_VOL_INC_KEY EQU 0FDH
1159 00 FD IR_VOL_DEC_KEY EQU 0FDH
1160 00 FD IR_MUTE_KEY EQU 0FDH
1161
1162 ;TIME KEY
1163 00 FD IR_TRON_ON_KEY EQU 0FDH
1164 00 FD IR_TROFF_ON_KEY EQU 0FDH
1165 00 FD IR_SLEEP_ON_KEY EQU 0FDH
1166 00 FD IR_TRON_KEY EQU 0FDH
1167 00 FD IR_TROFF_KEY EQU 0FDH
1168 00 FD IR_SLEEP_KEY EQU 0FDH
1169 00 FD IR_TRTIME_KEY EQU 0FDH
1170 00 FD IR_TRTIME_ON_KEY EQU 0FDH
1171
1172 ;VCD KEY
1173 00 FD IR_MEM_NEXT_KEY EQU 0FDH
1174 00 FD IR_MEM_PREV_KEY EQU 0FDH
1175 00 FD IR_MEM_KEY EQU 0FDH
1176 00 FD IR_FF_KEY EQU 0FDH
1177 00 FD IR_FB_KEY EQU 0FDH
1178 00 FD IR_REPEAT_KEY EQU 0FDH
1179
1180
1181 ;DIGITAL KEY
1182 00 FD IR_0_KEY EQU 0FDH
1183 00 FD IR_1_KEY EQU 0FDH
1184 00 FD IR_2_KEY EQU 0FDH
1185 00 FD IR_3_KEY EQU 0FDH
1186 00 FD IR_4_KEY EQU 0FDH
1187 00 FD IR_5_KEY EQU 0FDH
1188 00 FD IR_6_KEY EQU 0FDH
1189 00 FD IR_7_KEY EQU 0FDH
1190 00 FD IR_8_KEY EQU 0FDH
1191 00 FD IR_9_KEY EQU 0FDH
1192 00 FD IR_10_KEY EQU 0FDH
1193
1194
1195
1196
1197 0000 ORG 0000H
1198 0000 00 02 VECTOR 00H,INIT_9498
1199 0002 INIT_9498:
1200
1201 0002 66 E7 01 TCM P1INT,#01H ;判断是否是外部中断0
1202 0005 6D 00 15 JP Z,I_INT0 ;外部中断0
1203 0008 66 E7 02 TCM P1INT,#02H ;判断是否是外部中断1
1204 000B 6D 00 87 JP Z,I_INT1 ;执行外部中断1
1205 000E 66 D0 01 TCM TCCON,#01H
1206 0011 6D 02 A8 JP Z,TIMER1_INIT ;时间溢出中断C
1207 0014 BF IRET
1208 ;****************************************************************
1209 ; 外部中断0
1210 ;****************************************************************
1211 0015 I_INT0:
1212 0015 B0 09 CLR time_delay
1213 0017 B0 0A CLR time_delay1
1214 <01> IS_STATE_FIRST_9M
1215 0019 66 00 01 TCM STATE_ALL,#01H
1216 <01> .ENDM
1217 001C 6D 00 40 JP Z,state_first
1218 <01> IS_STATE_SECN_2M
1219 001F 66 00 02 TCM STATE_ALL,#02H
1220 <01> .ENDM
1221 0022 6D 00 58 JP Z,state_third
1222 <01> SET_FIRST_9M
1223 0025 46 00 01 OR STATE_ALL,#00000001B
1224 <01> .ENDM
1225 0028 8D 00 81 jp ex_int_ret
1226
1227 003C ORG 003CH
1228 003C FF DB 0FFH
1229 003D FF DB 0FFH ;
1230 003E C7 DB 0C7H ;
1231 003F FE DB 0FEH ;
1232
1233
1234 0040 state_first:
1235 0040 A6 03 55 CP time_count,#55H
1236 0043 BD 00 7B JP UGT,error_return
1237 0046 A6 03 32 CP time_count,#32H
1238 0049 7D 00 7B JP ULT,error_return
1239 <01> SET_SECN_2M
1240 004C 46 00 02 OR STATE_ALL,#00000010B
1241 <01> .ENDM
1242 <01> CLR_FIRST_9M
1243 004F 56 00 FE AND STATE_ALL,#11111110B
1244 <01> .ENDM
1245 0052 E6 04 20 LD remote_bit_count,#20H
1246 0055 8D 00 81 jp ex_int_ret
1247 0058 state_third:
1248 0058 A6 03 12 CP time_count,#12H
1249 005B BD 00 7B JP UGT,error_return
1250 005E A6 03 02 CP time_count,#02H
1251 0061 7D 00 7B JP ULT,error_return
1252 0064 26 03 08 SUB time_count,#08H
1253 0067 C0 05 rrc remote_cmd_code1
1254 0069 C0 06 rrc remote_cmd_code0
1255 006B C0 07 rrc remote_sys_code1
1256 006D C0 08 rrc remote_sys_code0
1257 006F 26 04 01 SUB remote_bit_count,#01H
1258 0072 6D 00 78 JP Z,set_ok
1259 0075 8D 00 81 jp ex_int_ret
1260 0078 set_ok:
1261 <01> SET_DATA_OK
1262 0078 46 00 04 OR STATE_ALL,#00000100B
1263 <01> .ENDM
1264 ;set remote_key_is_down
1265 007B error_return:
1266 <01> CLR_SECN_2M
1267 007B 56 00 FD AND STATE_ALL,#11111101B
1268 <01> .ENDM
1269 <01> SET_FIRST_9M
1270 007E 46 00 01 OR STATE_ALL,#00000001B
1271 <01> .ENDM
1272 0081 ex_int_ret:
1273 0081 B0 03 CLR time_count
1274 0083 56 E7 FE AND P1INT,#11111110B
1275 0086 BF IRET
1276 ;****************************************************
1277 ;---------------ext int end----------------
1278 ;****************************************************
1279
1280
1281
1282
1283 ;****************************************************************
1284 ; 外部中断1
1285 ;****************************************************************
1286 0087 I_INT1:
1287
1288 ;****************************************************
1289 0087 t1_int:
1290 <01> VCD_CS_IS_HIGH
1291 0087 66 E3 08 TCM P3,#08H
1292 <01> .ENDM
1293 008A 6D 00 DA JP z,err_ret
1294 <01> INT2_START_IS_HIGH
1295 008D 66 00 10 TCM STATE_ALL,#00010000B
1296 <01> .ENDM
1297 0090 6D 00 C8 JP Z,int_val
1298 0093 E0 0B RR pulse_data0
1299 0095 46 0B 80 OR pulse_data0,#80H
1300 <01> VCD_DATA_IS_HIGH
1301 0098 66 E3 10 TCM P3,#10H
1302 <01> .ENDM
1303 009B 8D 00 A1 JP no_clr_pulse0
1304 009E 56 0B 7F AND pulse_data0,#7FH
1305 00A1 no_clr_pulse0:
1306 00A1 26 0D 01 SUB pulse_count,#1H
1307 00A4 ED 00 DF JP NE,int1_ret
1308 00A7 int1_data_ok:
1309 00A7 A6 0B FF CP pulse_data0,#0FFH
1310 00AA ED 00 B2 JP NE,mov_val_to_vcd_ram
1311 00AD clr_pulse_addr:
1312 00AD B0 0C CLR pulse_addr ;pulse_addr val reset ffh
1313 00AF 8D 00 DF JP int1_ret
1314 00B2 mov_val_to_vcd_ram:
1315 00B2 A6 0C 15 CP pulse_addr,#15H
1316 00B5 BD 00 DF JP UGT,int1_ret
1317 00B8 FC 69 LD R15,#VCD_SHOW_BYTE_ADDR
1318 00BA 04 0C CF ADD R15,pulse_addr
1319 00BD F5 0B CF LD @R15,pulse_data0
1320 00C0 20 0C INC pulse_addr
1321 <01> SET_INT2_START
1322 00C2 46 00 10 OR STATE_ALL,#00010000B
1323 <01> .ENDM
1324 00C5 8D 00 DF JP int1_ret
1325 00C8 int_val:
1326 ;CLR pulse_data0
1327 00C8 46 0B 80 OR pulse_data0,#80H
1328 <01> INT2_START_IS_HIGH
1329 00CB 66 00 10 TCM STATE_ALL,#00010000B
1330 <01> .ENDM
1331 00CE 6D 00 D4 JP Z,no_clr_pulse07
1332 00D1 56 0B 7F AND pulse_data0,#7FH
1333 00D4 no_clr_pulse07:
1334 00D4 E6 0D 07 LD pulse_count,#07H
1335 00D7 8D 00 DF jp int1_ret
1336 00DA err_ret:
1337 <01> SET_INT2_START
1338 00DA 46 00 10 OR STATE_ALL,#00010000B
1339 <01> .ENDM
1340 00DD B0 0D CLR pulse_count
1341 ;clr pulse_data0
1342 ;jp int1_ret
1343 00DF int1_ret:
1344
1345 00DF 56 E7 FD AND P1INT,#11111101B
1346 00E2 BF IRET
1347 ;****************************************************************
1348
1349
1350 0100 ORG 0100H
1351 0100 RESET:
1352 0100 8F DI
1353 0101 E6 DC A3 LD BTCON,#10100011b ; Disable Watch-dog
1354 0104 E6 D9 C0 LD SP,#0C0H
1355 0107 E6 D8 02 LD TCNTSEL,#02H
1356 010A E6 D4 18 LD CLKCON,#00011000B
1357 010D E6 D0 2E LD TCCON,#00101110B ;fxx/8
1358 0110 E6 D2 C8 LD TCDATA,#0c8H ;8/8=1US 1*200=200US
1359 0113 F6 02 EE CALL IO_INIT
1360 0116 0C A0 LD R0,#0A0H
1361 0118 CLR_RAM:
1362 0118 00 C0 DEC R0
1363 011A B1 C0 CLR @R0
1364 011C A6 C0 00 CP R0,#00H
1365 011F ED 01 18 JP NE,CLR_RAM
1366 0122 9F EI
1367 <01> SET_POWER
1368 0123 46 E0 02 OR P0,#00000010B
1369 <01> .ENDM
1370 0126 E6 82 0A LD ACC_SEN_VAL,#0AH
1371 0129 F6 05 61 CALL VFD_WriteLed
1372
1373 012C E6 82 12 LD ACC_SEN_VAL,#012H
1374 012F F6 06 5E CALL REMOTE_DELAY_200uS
1375 0132 F6 04 4F call VFD_INIT
1376 ;CALL VFD_Refresh_Byte
1377 0135 F6 10 E5 call CLR_VFD_RAM
1378
1379
1380 0138 MAIN:
1381
1382
1383 ;*********************************************************
1384 ; invalid when current_key is 0ffh
1385 ;*********************************************************
1386 0138 E6 82 14 LD ACC_SEN_VAL,#CHAR_K
1387 013B B0 81 CLR VAL_VFD_ADDR
1388 013D F6 05 DF CALL VFD_SHOW_CHAR
1389 <01> CLR_KEY_VALID
1390 0140 56 00 DF AND STATE_ALL,#11011111B
1391 <01> .ENDM
1392 ;LD PREVIOUS_KEY,Current_Key
1393 ;call GET_REMOTE_KEY
1394 ;CP Current_Key,#0FFH
1395 ;JP NE,remote_key_valid
1396 0143 F6 04 9D call VFD_Read_K ;high 7 is 1
1397 0146 A6 7F FF CP Current_Key,#0FFH
1398 0149 ED 01 52 JP NE,remote_key_valid
1399 <01> CLR_KEY_VALID
1400 014C 56 00 DF AND STATE_ALL,#11011111B
1401 <01> .ENDM
1402 014F 8D 01 55 jp vfd_key_invalid
1403 0152 remote_key_valid:
1404 <01> SET_KEY_VALID
1405 0152 46 00 20 OR STATE_ALL,#00100000B
1406 <01> .ENDM
1407 0155 vfd_key_invalid:
1408 ;@@@@@@@@@@@@@@@@@@@@@@@@@TEST VFD KEY @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
1409 <01> KEY_VALID_IS_LOW
1410 0155 76 00 20 TM STATE_ALL,#00100000B
1411 <01> .ENDM
1412 0158 6D 02 A2 JP Z,last_even
1413 015B E4 7F 82 LD ACC_SEN_VAL,Current_Key
1414 015E E6 2A 02 LD VFD_SHOW_DATA_ADDR,#02H
1415 0161 F6 11 59 CALL VFD_SHOW_DATA
1416 0164 8D 02 A2 JP last_even
1417
1418 ; jp MAIN
1419 ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
1420
1421 0167 F6 09 EA CALL SAME_VFD_KEY_TO_IR_KEY
1422 016A F6 0E 0F CALL TURN_ON_OFF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -