?? ir_yinyue.ls1
字號:
0021 656 ?C0049:
657 ; delay4_5ms(); //延時4.5毫秒避開4.5毫秒的結果碼
658 ; SOURCE LINE # 142
0021 120000 F 659 LCALL delay4_5ms
660 ;
661 ;
662 ; /********************************************
663 ; //26位的用戶碼,前13位數據碼,后13位數據反碼
664 ; *********************************************/
665 ; for(j=1;j<=26;j++)//每組數據為26位
666 ; SOURCE LINE # 148
667 ;---- Variable 'j?553' assigned to Register 'R2' ----
0024 7A01 668 MOV R2,#01H
0026 669 ?C0050:
670 ; {
671 ; SOURCE LINE # 149
0026 672 ?C0053:
673 ; while(IR==0); //
674 ; SOURCE LINE # 150
0026 30B2FD 675 JNB IR,?C0053
0029 676 ?C0054:
677 ; delay0_9ms();
678 ; SOURCE LINE # 151
0029 120000 F 679 LCALL delay0_9ms
680 ; if(IR==1)
681 ; SOURCE LINE # 152
002C 30B20E 682 JNB IR,?C0055
683 ; {
684 ; SOURCE LINE # 153
685 ; delay1ms();
686 ; SOURCE LINE # 154
002F 120000 F 687 LCALL delay1ms
688 ; dm=dm|0x2000000; //因為是26位,一個"1",后面25個"0",轉化二進制即為"1000000"
689 ; SOURCE LINE # 155
0032 850000 F 690 MOV dm,dm
691 ; if(j<26) dm=dm>>1; //數據"1",右移一個"1",一共25次
692 ; SOURCE LINE # 156
0035 EA 693 MOV A,R2
0036 C3 694 CLR C
0037 941A 695 SUBB A,#01AH
0039 500E 696 JNC ?C0052
697 ; }
698 ; SOURCE LINE # 157
003B 8006 699 SJMP ?C0110
003D 700 ?C0055:
701 ; else if(j<26) dm=dm>>1; //數據"0",一共25次
702 ; SOURCE LINE # 158
003D EA 703 MOV A,R2
003E C3 704 CLR C
003F 941A 705 SUBB A,#01AH
0041 5006 706 JNC ?C0052
0043 707 ?C0110:
0043 E500 F 708 MOV A,dm
0045 C3 709 CLR C
0046 13 710 RRC A
0047 F500 F 711 MOV dm,A
712 ; }
A51 MACRO ASSEMBLER IR_YINYUE 10/24/2006 16:41:18 PAGE 12
713 ; SOURCE LINE # 159
0049 714 ?C0052:
0049 0A 715 INC R2
004A BA1BD9 716 CJNE R2,#01BH,?C0050
004D 717 ?C0051:
718 ; bb=dm;
719 ; SOURCE LINE # 160
004D E4 720 CLR A
004E 850000 F 721 MOV bb+03H,dm
0051 F500 F 722 MOV bb+02H,A
0053 F500 F 723 MOV bb+01H,A
0055 F500 F 724 MOV bb,A
725 ; dm=0;
726 ; SOURCE LINE # 161
0057 F500 F 727 MOV dm,A
728 ;
729 ;
730 ;
731 ; /***************************************************
732 ; //16位的用戶碼,前8位數據碼,后8位數據反碼
733 ; ****************************************************/
734 ;
735 ; for(i=0;i<2;i++)
736 ; SOURCE LINE # 169
737 ;---- Variable 'i?552' assigned to Register 'R5' ----
0059 FD 738 MOV R5,A
005A 739 ?C0059:
740 ; {
741 ; SOURCE LINE # 170
742 ; for(j=1;j<=8;j++)//每組數據為26位
743 ; SOURCE LINE # 171
005A 7A01 744 MOV R2,#01H
005C 745 ?C0062:
746 ; {
747 ; SOURCE LINE # 172
005C 748 ?C0065:
749 ; while(IR==0); //
750 ; SOURCE LINE # 173
005C 30B2FD 751 JNB IR,?C0065
005F 752 ?C0066:
753 ; delay0_9ms();
754 ; SOURCE LINE # 174
005F 120000 F 755 LCALL delay0_9ms
756 ; if(IR==1)
757 ; SOURCE LINE # 175
0062 30B20E 758 JNB IR,?C0067
759 ; {
760 ; SOURCE LINE # 176
761 ; delay1ms();
762 ; SOURCE LINE # 177
0065 120000 F 763 LCALL delay1ms
764 ; dm=dm|0x80;
765 ; SOURCE LINE # 178
0068 430080 F 766 ORL dm,#080H
767 ; if(j<8) dm=dm>>1; //數據"1",右移一個"1",一共7次
768 ; SOURCE LINE # 179
006B EA 769 MOV A,R2
006C C3 770 CLR C
006D 9408 771 SUBB A,#08H
006F 500E 772 JNC ?C0064
773 ; }
774 ; SOURCE LINE # 180
0071 8006 775 SJMP ?C0111
0073 776 ?C0067:
777 ; else if(j<8) dm=dm>>1; //數據"0",一共7次
778 ; SOURCE LINE # 181
A51 MACRO ASSEMBLER IR_YINYUE 10/24/2006 16:41:18 PAGE 13
0073 EA 779 MOV A,R2
0074 C3 780 CLR C
0075 9408 781 SUBB A,#08H
0077 5006 782 JNC ?C0064
0079 783 ?C0111:
0079 E500 F 784 MOV A,dm
007B C3 785 CLR C
007C 13 786 RRC A
007D F500 F 787 MOV dm,A
788 ; }
789 ; SOURCE LINE # 182
007F 790 ?C0064:
007F 0A 791 INC R2
0080 BA09D9 792 CJNE R2,#09H,?C0062
0083 793 ?C0063:
794 ; aa[i]=dm;
795 ; SOURCE LINE # 183
0083 7400 F 796 MOV A,#LOW (aa)
0085 2D 797 ADD A,R5
0086 F8 798 MOV R0,A
0087 A600 F 799 MOV @R0,dm
800 ; dm=0;
801 ; SOURCE LINE # 184
0089 750000 F 802 MOV dm,#00H
803 ; }
804 ; SOURCE LINE # 185
008C 0D 805 INC R5
008D BD02CA 806 CJNE R5,#02H,?C0059
0090 807 ?C0060:
808 ;
809 ; /***************************************************
810 ; //顯示部分
811 ; ****************************************************/
812 ; if(aa[0]==~aa[1]) //驗證成功
813 ; SOURCE LINE # 190
0090 E500 F 814 MOV A,aa+01H
0092 F4 815 CPL A
0093 B50009 F 816 CJNE A,aa,?C0044
817 ; {
818 ; SOURCE LINE # 191
819 ; IR_OK=1;
820 ; SOURCE LINE # 192
0096 D200 F 821 SETB IR_OK
822 ; sound=0;
823 ; SOURCE LINE # 193
0098 C2B3 824 CLR sound
825 ; delay100ms();
826 ; SOURCE LINE # 194
009A 120000 F 827 LCALL delay100ms
828 ; // P1=0x00;
829 ; // P2=aa[0];
830 ; sound=1;
831 ; SOURCE LINE # 197
009D D2B3 832 SETB sound
833 ; }
834 ; SOURCE LINE # 198
835 ;
836 ; } //bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
837 ; SOURCE LINE # 200
838 ; } //aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
839 ; SOURCE LINE # 201
009F 840 ?C0044:
009F 0B 841 INC R3
00A0 EB 842 MOV A,R3
00A1 C3 843 CLR C
00A2 940A 844 SUBB A,#0AH
A51 MACRO ASSEMBLER IR_YINYUE 10/24/2006 16:41:18 PAGE 14
00A4 5003 845 JNC $ + 5H
00A6 020000 F 846 LJMP ?C0042
00A9 847 ?C0043:
848 ; EA=1;
849 ; SOURCE LINE # 202
00A9 D2AF 850 SETB EA
851 ; }
852 ; SOURCE LINE # 203
00AB D0D0 853 POP PSW
00AD D0E0 854 POP ACC
00AF 32 855 RETI
856 ; END OF t0
857
---- 858 CSEG AT 0000BH
000B 020000 F 859 LJMP timer0
860
861 ;
862 ;
863 ; /*每個音符的發聲*/
864 ; void timer0() interrupt 1 using 1 //定時器T0
865
---- 866 RSEG ?PR?timer0?IR_YINYUE
867 USING 1
0000 868 timer0:
0000 C0E0 869 PUSH ACC
0002 C083 870 PUSH DPH
0004 C082 871 PUSH DPL
0006 C0D0 872 PUSH PSW
873 ; SOURCE LINE # 207
874 ; {
875 ; TH0=yin[2*l];
876 ; SOURCE LINE # 209
0008 E500 F 877 MOV A,l
000A 25E0 878 ADD A,ACC
000C 2400 F 879 ADD A,#LOW (yin)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -