📄 key.ls1
字号:
526 ; SOURCE LINE # 116
527 ;---- Variable 'c?344' assigned to Register 'R7' ----
0000 E4 528 CLR A
0001 FF 529 MOV R7,A
530 ;
531 ; for (i = 0; i < 8; i++) {
532 ; SOURCE LINE # 118
533 ;---- Variable 'i?343' assigned to Register 'R6' ----
0002 FE 534 MOV R6,A
0003 535 ?C0045:
536 ; c >>= 1;
537 ; SOURCE LINE # 119
0003 EF 538 MOV A,R7
0004 C3 539 CLR C
0005 13 540 RRC A
0006 FF 541 MOV R7,A
542 ; if (!wait_for_pin(1, DAT_LOW_MIN>>8, DAT_LOW_MAX>>8))
543 ; SOURCE LINE # 120
0007 D200 F 544 SETB ?wait_for_pin?BIT
0009 750001 F 545 MOV ?wait_for_pin?BYTE,#01H
000C 750003 F 546 MOV ?wait_for_pin?BYTE+01H,#03H
000F 120000 F 547 LCALL wait_for_pin
0012 4003 548 JC ?C0048
549 ; return 0x55;
550 ; SOURCE LINE # 121
0014 7F55 551 MOV R7,#055H
0016 22 552 RET
0017 553 ?C0048:
554 ; if (!wait_for_pin(0, DAT_HIGH_MIN>>8, DAT_HIGH_MAX>>8))
555 ; SOURCE LINE # 122
0017 C200 F 556 CLR ?wait_for_pin?BIT
0019 E4 557 CLR A
001A F500 F 558 MOV ?wait_for_pin?BYTE,A
001C 750006 F 559 MOV ?wait_for_pin?BYTE+01H,#06H
001F 120000 F 560 LCALL wait_for_pin
0022 4003 561 JC ?C0050
562 ; return 0x55;
563 ; SOURCE LINE # 123
0024 7F55 564 MOV R7,#055H
0026 22 565 RET
0027 566 ?C0050:
567 ;
568 ; if (TH1 >= (ONE_HIGH_MIN>>8)) {
569 ; SOURCE LINE # 125
0027 E58D 570 MOV A,TH1
0029 C3 571 CLR C
002A 9403 572 SUBB A,#03H
002C 4005 573 JC ?C0051
574 ; c |= 0x80;
575 ; SOURCE LINE # 126
002E 430780 576 ORL AR7,#080H
577 ; } else if (TH1 > (ZERO_HIGH_MAX>>8)) {
578 ; SOURCE LINE # 127
0031 800A 579 SJMP ?C0047
0033 580 ?C0051:
0033 E58D 581 MOV A,TH1
0035 D3 582 SETB C
0036 9402 583 SUBB A,#02H
0038 4003 584 JC ?C0047
585 ; return 0x55;
586 ; SOURCE LINE # 128
A51 MACRO ASSEMBLER KEY 12/27/2003 22:39:17 PAGE 10
003A 7F55 587 MOV R7,#055H
003C 22 588 RET
589 ; }
590 ; SOURCE LINE # 129
591 ; }
592 ; SOURCE LINE # 130
003D 593 ?C0047:
003D 0E 594 INC R6
003E BE08C2 595 CJNE R6,#08H,?C0045
0041 596 ?C0046:
597 ; return c;
598 ; SOURCE LINE # 131
599 ; }
600 ; SOURCE LINE # 132
0041 601 ?C0049:
0041 22 602 RET
603 ; END OF decode_byte
604
605 ;
606 ; extern bit use_timer1;
607 ;
608 ; void key_bh(void)
609
---- 610 RSEG ?PR?key_bh?KEY
0000 611 key_bh:
612 USING 0
613 ; SOURCE LINE # 136
614 ; {
615 ; SOURCE LINE # 137
616 ; unsigned char c;
617 ;
618 ; TMOD = 0x11;
619 ; SOURCE LINE # 140
0000 758911 620 MOV TMOD,#011H
621 ; if (key_on)
622 ; SOURCE LINE # 141
0003 300003 F 623 JNB key_on,$ + 6H
0006 020000 F 624 LJMP ?key_bh?out
625 ; goto out;
626 ; SOURCE LINE # 142
0009 627 ?C0054:
628 ;
629 ; if (!decode_lead()) {
630 ; SOURCE LINE # 144
0009 120000 F 631 LCALL decode_lead
000C 4002 632 JC ?C0056
633 ; key_last = KEY_INVALID;
634 ; SOURCE LINE # 145
635 ; goto out;
636 ; SOURCE LINE # 146
000E 8039 637 SJMP ?C0080
638 ; }
639 ; SOURCE LINE # 147
0010 640 ?C0056:
641 ; if (TH1 < (REP_HIGH_MAX>>8)) {
642 ; SOURCE LINE # 148
0010 E58D 643 MOV A,TH1
0012 C3 644 CLR C
0013 940A 645 SUBB A,#0AH
0015 500F 646 JNC ?C0057
647 ; if (key_last != KEY_INVALID && key_last != KEY_POWER)
648 ; SOURCE LINE # 149
0017 E500 F 649 MOV A,key_last
0019 F4 650 CPL A
001A 607A 651 JZ ?key_bh?out
001C E500 F 652 MOV A,key_last
A51 MACRO ASSEMBLER KEY 12/27/2003 22:39:17 PAGE 11
001E 6404 653 XRL A,#04H
0020 6074 654 JZ ?key_bh?out
655 ; key_on = 1;
656 ; SOURCE LINE # 150
0022 D200 F 657 SETB key_on
658 ; goto out;
659 ; SOURCE LINE # 151
0024 8070 660 SJMP ?key_bh?out
661 ; }
662 ; SOURCE LINE # 152
0026 663 ?C0057:
664 ;
665 ; if (decode_byte() != 0) {
666 ; SOURCE LINE # 154
0026 120000 F 667 LCALL decode_byte
0029 EF 668 MOV A,R7
002A 6002 669 JZ ?C0059
670 ; key_last = KEY_INVALID;
671 ; SOURCE LINE # 155
002C 672 ?C0077:
673 ; goto out;
674 ; SOURCE LINE # 156
002C 801B 675 SJMP ?C0080
676 ; }
677 ; SOURCE LINE # 157
002E 678 ?C0059:
679 ; if (decode_byte() != 0xff) {
680 ; SOURCE LINE # 158
002E 120000 F 681 LCALL decode_byte
0031 EF 682 MOV A,R7
0032 F4 683 CPL A
0033 6002 684 JZ ?C0060
685 ; key_last = KEY_INVALID;
686 ; SOURCE LINE # 159
0035 687 ?C0078:
688 ; goto out;
689 ; SOURCE LINE # 160
0035 8012 690 SJMP ?C0080
691 ; }
692 ; SOURCE LINE # 161
0037 693 ?C0060:
694 ; c = decode_byte();
695 ; SOURCE LINE # 162
0037 120000 F 696 LCALL decode_byte
697 ;---- Variable 'c?445' assigned to Register 'R5' ----
003A AD07 698 MOV R5,AR7
699 ; if (c == 0x55) {
700 ; SOURCE LINE # 163
003C BD5502 701 CJNE R5,#055H,?C0061
702 ; key_last = KEY_INVALID;
703 ; SOURCE LINE # 164
003F 704 ?C0079:
705 ; goto out;
706 ; SOURCE LINE # 165
003F 8008 707 SJMP ?C0080
708 ; }
709 ; SOURCE LINE # 166
0041 710 ?C0061:
711 ; if (decode_byte() != ~c) {
712 ; SOURCE LINE # 167
0041 120000 F 713 LCALL decode_byte
0044 ED 714 MOV A,R5
0045 F4 715 CPL A
0046 6F 716 XRL A,R7
0047 6005 717 JZ ?C0062
718 ; key_last = KEY_INVALID;
A51 MACRO ASSEMBLER KEY 12/27/2003 22:39:17 PAGE 12
719 ; SOURCE LINE # 168
0049 720 ?C0080:
0049 7500FF F 721 MOV key_last,#0FFH
722 ; goto out;
723 ; SOURCE LINE # 169
004C 8048 724 SJMP ?key_bh?out
725 ; }
726 ; SOURCE LINE # 170
004E 727 ?C0062:
728 ;
729 ; switch (c) {
730 ; SOURCE LINE # 172
004E ED 731 MOV A,R5
004F 24F7 732 ADD A,#0F7H
0051 602A 733 JZ ?C0067
0053 24FC 734 ADD A,#0FCH
0055 601C 735 JZ ?C0065
0057 24FD 736 ADD A,#0FDH
0059 601D 737 JZ ?C0066
005B 24FE 738 ADD A,#0FEH
005D 6032 739 JZ ?C0071
005F 24FC 740 ADD A,#0FCH
0061 6024 741 JZ ?C0069
0063 14 742 DEC A
0064 6026 743 JZ ?C0070
0066 24CB 744 ADD A,#0CBH
0068 6018 745 JZ ?C0068
006A 242F 746 ADD A,#02FH
006C 7028 747 JNZ ?key_bh?out
748 ; case 0x1d:
749 ; SOURCE LINE # 173
006E 750 ?C0064:
751 ; key_last = KEY_POWER;
752 ; SOURCE LINE # 174
006E 750004 F 753 MOV key_last,#04H
754 ; break;
755 ; SOURCE LINE # 175
0071 8021 756 SJMP ?C0063
757 ; case 0x0d:
758 ; SOURCE LINE # 176
0073 759 ?C0065:
760 ; key_last = KEY_MENU;
761 ; SOURCE LINE # 177
0073 750003 F 762 MOV key_last,#03H
763 ; break;
764 ; SOURCE LINE # 178
0076 801C 765 SJMP ?C0063
766 ; case 0x10:
767 ; SOURCE LINE # 179
0078 768 ?C0066:
769 ; key_last = KEY_INC;
770 ; SOURCE LINE # 180
0078 750001 F 771 MOV key_last,#01H
772 ; break;
773 ; SOURCE LINE # 181
007B 8017 774 SJMP ?C0063
775 ; case 0x09:
776 ; SOURCE LINE # 182
007D 777 ?C0067:
778 ; key_last = KEY_DEC;
779 ; SOURCE LINE # 183
007D 750002 F 780 MOV key_last,#02H
781 ; break;
782 ; SOURCE LINE # 184
0080 8012 783 SJMP ?C0063
784 ; case 0x4c:
A51 MACRO ASSEMBLER KEY 12/27/2003 22:39:17 PAGE 13
785 ; SOURCE LINE # 185
0082 786 ?C0068:
787 ; key_last = KEY_BRIINC;
788 ; SOURCE LINE # 186
0082 750008 F 789 MOV key_last,#08H
790 ; break;
791 ; SOURCE LINE # 187
0085 800D 792 SJMP ?C0063
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -