⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ir_yinyue.ls1

📁 Keil C51单片机基础实验源程序
💻 LS1
📖 第 1 页 / 共 5 页
字号:
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 + -