📄 key.ls1
字号:
001B FC 259 MOV R4,A
001C 120000 F 260 LCALL ?C?SLDIV
001F 8F00 F 261 MOV count_POWER,R7
0021 200005 F 262 JB key_on,?C0010
0024 750004 F 263 MOV key_last,#04H
0027 D200 F 264 SETB key_on
0029 265 ?C0010:
266 ; CHK_KEY(MENU);
267 ; SOURCE LINE # 44
0029 308105 268 JNB PIN_KEY_MENU,?C0011
002C 750005 F 269 MOV count_MENU,#05H
002F 8021 270 SJMP ?C0017
0031 271 ?C0011:
0031 E500 F 272 MOV A,count_MENU
0033 601D 273 JZ ?C0017
0035 D5001A F 274 DJNZ count_MENU,?C0017
0038 AF00 F 275 MOV R7,rephz_MENU
003A AB07 276 MOV R3,AR7
003C E4 277 CLR A
003D FA 278 MOV R2,A
003E F9 279 MOV R1,A
003F F8 280 MOV R0,A
0040 7F64 281 MOV R7,#064H
0042 FE 282 MOV R6,A
0043 FD 283 MOV R5,A
0044 FC 284 MOV R4,A
0045 120000 F 285 LCALL ?C?SLDIV
0048 8F00 F 286 MOV count_MENU,R7
004A 200005 F 287 JB key_on,?C0017
004D 750003 F 288 MOV key_last,#03H
0050 D200 F 289 SETB key_on
0052 290 ?C0017:
291 ; CHK_KEY(INC);
292 ; SOURCE LINE # 45
0052 308305 293 JNB PIN_KEY_INC,?C0018
0055 750005 F 294 MOV count_INC,#05H
0058 8021 295 SJMP ?C0024
005A 296 ?C0018:
005A E500 F 297 MOV A,count_INC
005C 601D 298 JZ ?C0024
005E D5001A F 299 DJNZ count_INC,?C0024
0061 AF00 F 300 MOV R7,rephz_INC
0063 AB07 301 MOV R3,AR7
0065 E4 302 CLR A
0066 FA 303 MOV R2,A
0067 F9 304 MOV R1,A
0068 F8 305 MOV R0,A
0069 7F64 306 MOV R7,#064H
006B FE 307 MOV R6,A
006C FD 308 MOV R5,A
006D FC 309 MOV R4,A
006E 120000 F 310 LCALL ?C?SLDIV
0071 8F00 F 311 MOV count_INC,R7
0073 200005 F 312 JB key_on,?C0024
0076 750001 F 313 MOV key_last,#01H
0079 D200 F 314 SETB key_on
007B 315 ?C0024:
316 ; CHK_KEY(DEC);
317 ; SOURCE LINE # 46
007B 308205 318 JNB PIN_KEY_DEC,?C0025
007E 750005 F 319 MOV count_DEC,#05H
0081 8021 320 SJMP ?C0031
0083 321 ?C0025:
0083 E500 F 322 MOV A,count_DEC
A51 MACRO ASSEMBLER KEY 12/27/2003 22:39:17 PAGE 6
0085 601D 323 JZ ?C0031
0087 D5001A F 324 DJNZ count_DEC,?C0031
008A AF00 F 325 MOV R7,rephz_DEC
008C AB07 326 MOV R3,AR7
008E E4 327 CLR A
008F FA 328 MOV R2,A
0090 F9 329 MOV R1,A
0091 F8 330 MOV R0,A
0092 7F64 331 MOV R7,#064H
0094 FE 332 MOV R6,A
0095 FD 333 MOV R5,A
0096 FC 334 MOV R4,A
0097 120000 F 335 LCALL ?C?SLDIV
009A 8F00 F 336 MOV count_DEC,R7
009C 200005 F 337 JB key_on,?C0031
009F 750002 F 338 MOV key_last,#02H
00A2 D200 F 339 SETB key_on
00A4 340 ?C0031:
341 ; CHK_KEY(MUTE);
342 ; SOURCE LINE # 47
00A4 308404 343 JNB PIN_KEY_MUTE,?C0032
00A7 750005 F 344 MOV count_MUTE,#05H
00AA 22 345 RET
00AB 346 ?C0032:
00AB E500 F 347 MOV A,count_MUTE
00AD 601D 348 JZ ?C0036
00AF D5001A F 349 DJNZ count_MUTE,?C0036
00B2 AF00 F 350 MOV R7,rephz_MUTE
00B4 AB07 351 MOV R3,AR7
00B6 E4 352 CLR A
00B7 FA 353 MOV R2,A
00B8 F9 354 MOV R1,A
00B9 F8 355 MOV R0,A
00BA 7F64 356 MOV R7,#064H
00BC FE 357 MOV R6,A
00BD FD 358 MOV R5,A
00BE FC 359 MOV R4,A
00BF 120000 F 360 LCALL ?C?SLDIV
00C2 8F00 F 361 MOV count_MUTE,R7
00C4 200005 F 362 JB key_on,?C0036
00C7 75000C F 363 MOV key_last,#0CH
00CA D200 F 364 SETB key_on
365 ;
366 ; // timer.expires = get_jiffies()+HZ/100;
367 ; // add_timer(&timer);
368 ; }
369 ; SOURCE LINE # 51
00CC 370 ?C0036:
00CC 22 371 RET
372 ; END OF _?check_key
373
374 ;
375 ; sbit IRDA_DAT = P3 ^ 2;
376 ; bit keybh_pending = 0;
377 ;
378 ; #pragma asm
379
380 EXTRN CODE (soft_interrupt)
---- 381 CSEG AT 00003H
0003 120000 F 382 LCALL int0_interrupt
0006 020000 F 383 LJMP soft_interrupt
384
385 ?PR?int0_interrupt?KEY SEGMENT CODE
386
---- 387 RSEG ?PR?int0_interrupt?KEY
388 USING 0
A51 MACRO ASSEMBLER KEY 12/27/2003 22:39:17 PAGE 7
0000 389 int0_interrupt:
0000 C2A8 390 CLR EX0
0002 D200 F 391 SETB keybh_pending
0004 32 392 RETI
393
394 ; #pragma endasm
395 ;
396 ; #define INIT_T0 (65536L - (F_OSC/12)/HZ)
397 ; #define LEAD_LOW_MIN ( 40*((F_OSC/12)/10000))
398 ; #define LEAD_LOW_MAX (120*((F_OSC/12)/10000))
399 ; #define REP_HIGH_MIN ( 20*((F_OSC/12)/10000))
400 ; #define REP_HIGH_MAX ( 35*((F_OSC/12)/10000))
401 ; #define LEAD_HIGH_MIN REP_HIGH_MIN
402 ; #define LEAD_HIGH_MAX ( 60*((F_OSC/12)/10000))
403 ; #define DAT_LOW_MIN ( 4*((F_OSC/12)/10000))
404 ; #define DAT_LOW_MAX ( 10*((F_OSC/12)/10000))
405 ; #define ONE_HIGH_MIN ( 12*((F_OSC/12)/10000))
406 ; #define ONE_HIGH_MAX ( 20*((F_OSC/12)/10000))
407 ; #define ZERO_HIGH_MIN ( 3*((F_OSC/12)/10000))
408 ; #define ZERO_HIGH_MAX ( 8*((F_OSC/12)/10000))
409 ; #define DAT_HIGH_MIN ZERO_HIGH_MIN
410 ; #define DAT_HIGH_MAX ONE_HIGH_MAX
411 ;
412 ; static bit wait_for_pin(bit level, unsigned char min, unsigned char max)
413
---- 414 RSEG ?PR?wait_for_pin?KEY
0000 415 wait_for_pin:
416 ; SOURCE LINE # 90
417 ; {
418 ; SOURCE LINE # 91
419 ; TR1 = 0;
420 ; SOURCE LINE # 92
0000 C28E 421 CLR TR1
422 ; TH1 = TL1 = TF1 = 0;
423 ; SOURCE LINE # 93
0002 C28F 424 CLR TF1
0004 E4 425 CLR A
0005 F58B 426 MOV TL1,A
0007 F58D 427 MOV TH1,A
428 ; TR1 = 1;
429 ; SOURCE LINE # 94
0009 D28E 430 SETB TR1
000B 431 ?C0037:
432 ; while (IRDA_DAT != level && TF1 == 0);
433 ; SOURCE LINE # 95
000B A2B2 434 MOV C,IRDA_DAT
000D 300001 F 435 JNB level?140,?C0075
0010 B3 436 CPL C
0011 437 ?C0075:
0011 5003 438 JNC ?C0038
0013 308FF5 439 JNB TF1,?C0037
0016 440 ?C0038:
441 ; TR1 = 0;
442 ; SOURCE LINE # 96
0016 C28E 443 CLR TR1
444 ; if (IRDA_DAT == level) {
445 ; SOURCE LINE # 97
0018 A2B2 446 MOV C,IRDA_DAT
001A 300001 F 447 JNB level?140,?C0076
001D B3 448 CPL C
001E 449 ?C0076:
001E 400E 450 JC ?C0039
451 ; if (TH1 >= min && TH1 <= max) {
452 ; SOURCE LINE # 98
0020 E58D 453 MOV A,TH1
0022 9500 F 454 SUBB A,min?141
A51 MACRO ASSEMBLER KEY 12/27/2003 22:39:17 PAGE 8
0024 4008 455 JC ?C0039
0026 E58D 456 MOV A,TH1
0028 D3 457 SETB C
0029 9500 F 458 SUBB A,max?142
002B 5001 459 JNC ?C0039
460 ; return 1;
461 ; SOURCE LINE # 99
002D 22 462 RET
463 ; }
464 ; SOURCE LINE # 100
465 ; }
466 ; SOURCE LINE # 101
002E 467 ?C0039:
468 ; return 0;
469 ; SOURCE LINE # 102
002E C3 470 CLR C
471 ; }
472 ; SOURCE LINE # 103
002F 473 ?C0041:
002F 22 474 RET
475 ; END OF wait_for_pin
476
477 ;
478 ; bit decode_lead(void)
479
---- 480 RSEG ?PR?decode_lead?KEY
0000 481 decode_lead:
482 ; SOURCE LINE # 105
483 ; {
484 ; SOURCE LINE # 106
485 ; if (!wait_for_pin(1, LEAD_LOW_MIN>>8, LEAD_LOW_MAX>>8))
486 ; SOURCE LINE # 107
0000 D200 F 487 SETB ?wait_for_pin?BIT
0002 75000C F 488 MOV ?wait_for_pin?BYTE,#0CH
0005 750025 F 489 MOV ?wait_for_pin?BYTE+01H,#025H
0008 120000 F 490 LCALL wait_for_pin
000B 4001 491 JC ?C0042
492 ; return 0;
493 ; SOURCE LINE # 108
000D 22 494 RET
000E 495 ?C0042:
496 ; if (!wait_for_pin(0, LEAD_HIGH_MIN>>8, LEAD_HIGH_MAX>>8))
497 ; SOURCE LINE # 109
000E C200 F 498 CLR ?wait_for_pin?BIT
0010 750006 F 499 MOV ?wait_for_pin?BYTE,#06H
0013 750012 F 500 MOV ?wait_for_pin?BYTE+01H,#012H
0016 120000 F 501 LCALL wait_for_pin
0019 4001 502 JC ?C0044
503 ; return 0;
504 ; SOURCE LINE # 110
001B 22 505 RET
001C 506 ?C0044:
507 ; return 1;
508 ; SOURCE LINE # 111
001C D3 509 SETB C
510 ; }
511 ; SOURCE LINE # 112
001D 512 ?C0043:
001D 22 513 RET
514 ; END OF decode_lead
515
516 ;
517 ; unsigned char decode_byte(void)
518
---- 519 RSEG ?PR?decode_byte?KEY
0000 520 decode_byte:
A51 MACRO ASSEMBLER KEY 12/27/2003 22:39:17 PAGE 9
521 USING 0
522 ; SOURCE LINE # 114
523 ; {
524 ; SOURCE LINE # 115
525 ; unsigned char i,c = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -