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

📄 fat16.lis

📁 AVR单片机做的MP3
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0568                   .dbline 238
 0568 80910200          lds R24,L59
 056C 90910300          lds R25,L59+1
 0570 0F96              adiw R24,15
 0572 90930300          sts L59+1,R25
 0576 80930200          sts L59,R24
 057A                   .dbline 239
 057A           L81:
 057A                   .dbline 228
 057A 80911300          lds R24,L64
 057E 8E5F              subi R24,254    ; addi 2
 0580 80931300          sts L64,R24
 0584           L83:
 0584                   .dbline 228
 0584 80911300          lds R24,L64
 0588 8031              cpi R24,16
 058A 80F2              brlo L80
 058C                   .dbline 240
 058C           ;     t+=15;
 058C           ;    }
 058C           ;   }
 058C 45C0              rjmp L67
 058E           L66:
 058E                   .dbline 242
 058E           ;   else                        
 058E           ;    {
 058E                   .dbline 243
 058E           ;    t=0;
 058E 2224              clr R2
 0590 3324              clr R3
 0592 30920300          sts L59+1,R3
 0596 20920200          sts L59,R2
 059A                   .dbline 244
 059A           ;    longfileflag=0;
 059A 20920600          sts _longfileflag,R2
 059E                   .dbline 245
 059E           ;    for(r=0;r<16;r+=2)
 059E 30920100          sts L58+1,R3
 05A2 20920000          sts L58,R2
 05A6 30C0              rjmp L89
 05A8           L86:
 05A8                   .dbline 246
 05A8           ;    {
 05A8                   .dbline 247
 05A8           ;     if(r<8)show(fileid.FileName+r,(uint8)t,0);
 05A8 80910000          lds R24,L58
 05AC 90910100          lds R25,L58+1
 05B0 8830              cpi R24,8
 05B2 E0E0              ldi R30,0
 05B4 9E07              cpc R25,R30
 05B6 70F4              brsh L90
 05B8                   .dbline 247
 05B8 2224              clr R2
 05BA 2882              std y+0,R2
 05BC 20910200          lds R18,L59
 05C0 80E0              ldi R24,<_fileid
 05C2 90E0              ldi R25,>_fileid
 05C4 00910000          lds R16,L58
 05C8 10910100          lds R17,L58+1
 05CC 080F              add R16,R24
 05CE 191F              adc R17,R25
 05D0 03D2              rcall _show
 05D2 08C0              rjmp L91
 05D4           L90:
 05D4                   .dbline 248
 05D4           ;       else show(zero,(uint8)t-60,1);
 05D4 81E0              ldi R24,1
 05D6 8883              std y+0,R24
 05D8 20910200          lds R18,L59
 05DC 2C53              subi R18,60
 05DE 00E0              ldi R16,<_zero
 05E0 10E0              ldi R17,>_zero
 05E2 FAD1              rcall _show
 05E4           L91:
 05E4                   .dbline 249
 05E4 80910200          lds R24,L59
 05E8 90910300          lds R25,L59+1
 05EC 0F96              adiw R24,15
 05EE 90930300          sts L59+1,R25
 05F2 80930200          sts L59,R24
 05F6                   .dbline 250
 05F6           L87:
 05F6                   .dbline 245
 05F6 80910000          lds R24,L58
 05FA 90910100          lds R25,L58+1
 05FE 0296              adiw R24,2
 0600 90930100          sts L58+1,R25
 0604 80930000          sts L58,R24
 0608           L89:
 0608                   .dbline 245
 0608 80910000          lds R24,L58
 060C 90910100          lds R25,L58+1
 0610 8031              cpi R24,16
 0612 E0E0              ldi R30,0
 0614 9E07              cpc R25,R30
 0616 40F2              brlo L86
 0618                   .dbline 251
 0618           ;     t+=15;
 0618           ;    }
 0618           ;    }
 0618           L67:
 0618                   .dbline 252
 0618           ;  FileIndex.ClusID=fileid.FilePosit.Start;
 0618 20904800          lds R2,_fileid+26
 061C 30904900          lds R3,_fileid+26+1
 0620 30922500          sts _FileIndex+2+1,R3
 0624 20922400          sts _FileIndex+2,R2
 0628                   .dbline 253
 0628           ;  LBA=ClusConvLBA(FileIndex.ClusID);
 0628 00912400          lds R16,_FileIndex+2
 062C 10912500          lds R17,_FileIndex+2+1
 0630 D8DD              rcall _ClusConvLBA
 0632 FE01              movw R30,R28
 0634 0183              std z+1,R16
 0636 1283              std z+2,R17
 0638 2383              std z+3,R18
 063A 3483              std z+4,R19
 063C                   .dbline 254
 063C           ;  lenth=fileid.FilePosit.Size;
 063C 40904C00          lds R4,_fileid+26+2+2
 0640 50904D00          lds R5,_fileid+26+2+2+1
 0644 20904A00          lds R2,_fileid+26+2
 0648 30904B00          lds R3,_fileid+26+2+1
 064C FE01              movw R30,R28
 064E 258A              std z+21,R2
 0650 368A              std z+22,R3
 0652 478A              std z+23,R4
 0654 508E              std z+24,R5
 0656                   .dbline 256
 0656           ;  
 0656           ;  BytePerClus=BPB_SecPerClus * 512;
 0656 20912100          lds R18,_BPB_SecPerClus
 065A 3327              clr R19
 065C 00E0              ldi R16,512
 065E 12E0              ldi R17,2
 0660 00D0              rcall empy16s
 0662 5801              movw R10,R16
 0664                   .dbline 257
 0664           ;  ClusNum=lenth/BytePerClus+1;
 0664 1501              movw R2,R10
 0666 4424              clr R4
 0668 5524              clr R5
 066A FE01              movw R30,R28
 066C 6588              ldd R6,z+21
 066E 7688              ldd R7,z+22
 0670 8788              ldd R8,z+23
 0672 908C              ldd R9,z+24
 0674 5A92              st -y,R5
 0676 4A92              st -y,R4
 0678 3A92              st -y,R3
 067A 2A92              st -y,R2
 067C 8301              movw R16,R6
 067E 9401              movw R18,R8
 0680 00D0              rcall div32u
 0682 41E0              ldi R20,1
 0684 50E0              ldi R21,0
 0686 60E0              ldi R22,0
 0688 70E0              ldi R23,0
 068A 1801              movw R2,R16
 068C 2901              movw R4,R18
 068E 240E              add R2,R20
 0690 351E              adc R3,R21
 0692 461E              adc R4,R22
 0694 571E              adc R5,R23
 0696 6101              movw R12,R2
 0698                   .dbline 258
 0698           ;  NextClus=FileIndex.ClusID;
 0698 A0902400          lds R10,_FileIndex+2
 069C B0902500          lds R11,_FileIndex+2+1
 06A0                   .dbline 259
 06A0           ;  for(t=0;t<ClusNum;t++)
 06A0 2224              clr R2
 06A2 3324              clr R3
 06A4 30920300          sts L59+1,R3
 06A8 20920200          sts L59,R2
 06AC 4FC1              rjmp L101
 06AE           L98:
 06AE                   .dbline 260
 06AE           ;  {
 06AE                   .dbline 261
 06AE           ;  for(r=0;r<BPB_SecPerClus;r++)
 06AE 2224              clr R2
 06B0 3324              clr R3
 06B2 30920100          sts L58+1,R3
 06B6 20920000          sts L58,R2
 06BA 97C0              rjmp L105
 06BC           L102:
 06BC                   .dbline 262
 06BC           ;   {
 06BC                   .dbline 263
 06BC           ;   SD_SPI_HIGH();
 06BC A3DC              rcall _SD_SPI_HIGH
 06BE                   .dbline 264
 06BE           ;   ReadBlock(LBA+r);
 06BE 20900000          lds R2,L58
 06C2 30900100          lds R3,L58+1
 06C6 4424              clr R4
 06C8 5524              clr R5
 06CA FE01              movw R30,R28
 06CC 6180              ldd R6,z+1
 06CE 7280              ldd R7,z+2
 06D0 8380              ldd R8,z+3
 06D2 9480              ldd R9,z+4
 06D4 620C              add R6,R2
 06D6 731C              adc R7,R3
 06D8 841C              adc R8,R4
 06DA 951C              adc R9,R5
 06DC 8301              movw R16,R6
 06DE 9401              movw R18,R8
 06E0 95DC              rcall _ReadBlock
 06E2 6BC0              rjmp L107
 06E4           L106:
 06E4                   .dbline 266
 06E4           ;   while(pointer<512)
 06E4           ;    {
 06E4                   .dbline 267
 06E4           ;    if(PINB&1)
 06E4 B09B              sbis 0x16,0
 06E6 34C0              rjmp L109
 06E8                   .dbline 268
 06E8           ;     {
 06E8                   .dbline 269
 06E8           ;      for(p=0;p<32;p++)
 06E8 2224              clr R2
 06EA 3324              clr R3
 06EC 30920500          sts L60+1,R3
 06F0 20920400          sts L60,R2
 06F4 1CC0              rjmp L114
 06F6           L111:
 06F6                   .dbline 270
 06F6                   .dbline 271
 06F6 80E0              ldi R24,<_BUFFER
 06F8 90E0              ldi R25,>_BUFFER
 06FA E0912A00          lds R30,L61
 06FE F0912B00          lds R31,L61+1
 0702 E80F              add R30,R24
 0704 F91F              adc R31,R25
 0706 0081              ldd R16,z+0
 0708 00D0              rcall _VS1003B_WriteDAT
 070A                   .dbline 272
 070A 80912A00          lds R24,L61
 070E 90912B00          lds R25,L61+1
 0712 0196              adiw R24,1
 0714 90932B00          sts L61+1,R25
 0718 80932A00          sts L61,R24
 071C                   .dbline 273
 071C           L112:
 071C                   .dbline 269
 071C 80910400          lds R24,L60
 0720 90910500          lds R25,L60+1
 0724 0196              adiw R24,1
 0726 90930500          sts L60+1,R25
 072A 80930400          sts L60,R24
 072E           L114:
 072E                   .dbline 269
 072E 80910400          lds R24,L60
 0732 90910500          lds R25,L60+1
 0736 8032              cpi R24,32
 0738 E0E0              ldi R30,0
 073A 9E07              cpc R25,R30
 073C E0F2              brlo L111
 073E                   .dbline 274
 073E           ;      {
 073E           ;      VS1003B_WriteDAT(BUFFER[pointer]);
 073E           ;      pointer++;
 073E           ;      }
 073E           ;        if(pointer==511) break;
 073E 80912A00          lds R24,L61
 0742 90912B00          lds R25,L61+1
 0746 8F3F              cpi R24,255
 0748 E1E0              ldi R30,1
 074A 9E07              cpc R25,R30
 074C 09F4              brne L115
 074E                   .dbline 274
 074E 3EC0              rjmp L108
 0750           L115:
 0750                   .dbline 275
 0750           ;     }
 0750           L109:
 0750                   .dbline 277
 0750           ;       //按键处理
 0750           ;      if(!(PINA&NEXT)) 
 0750 CF99              sbic 0x19,7
 0752 10C0              rjmp L117
 0754                   .dbline 278
 0754           ;      {
 0754                   .dbline 279
 0754           ;         delay(10);
 0754 0AE0              ldi R16,10
 0756 10E0              ldi R17,0
 0758 00D0              rcall _delay
 075A                   .dbline 280
 075A           ;         if(!(PINA&NEXT)) 
 075A CF99              sbic 0x19,7
 075C 0BC0              rjmp L119
 075E                   .dbline 281
 075E           ;         {  
 075E                   .dbline 282
 075E           ;         lcd_on();
 075E 85B3              in R24,0x15
 0760 8D7F              andi R24,253
 0762 85BB              out 0x15,R24
 0764                   .dbline 283
 0764           ;         keyflag=1;
 0764 81E0              ldi R24,1
 0766 80930500          sts _keyflag,R24
 076A                   .dbline 284
 076A           ;         flag=1;
 076A 80930400          sts _flag,R24
 076E                   .dbline 285
 076E           ;         VS1003B_SoftReset();
 076E 00D0              rcall _VS1003B_SoftReset
 0770                   .dbline 286
 0770           ;       return 5;
 0770 05E0              ldi R16,5
 0772 F5C0              rjmp L57
 0774           L119:
 0774                   .dbline 288
 0774           ;         }
 0774           ;        }
 0774           L117:
 0774                   .dbline 289
 0774           ;        if(!(PINC&PREV))
 0774 9899              sbic 0x13,0
 0776 11C0              rjmp L121
 0778                   .dbline 290
 0778           ;        {
 0778                   .dbline 291
 0778           ;         delay(10);
 0778 0AE0              ldi R16,10
 077A 10E0              ldi R17,0
 077C 00D0              rcall _delay
 077E                   .dbline 292
 077E           ;         if(!(PINC&PREV))
 077E 9899       

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -