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

📄 fat.lis

📁 AVR单片机系统开发经典实例部分源程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0464                   .dbline 113
 0464           ;               break;
 0464 95C4              xjmp L62
 0466           L66:
 0466                   .dbline 116
 0466           ;       }
 0466           ;       
 0466           ;       if((Fat_Buffer[tem] != 0xe5) && (Fat_Buffer[tem] != 0x05))                         //文件没有删除   
 0466 80E0              ldi R24,<_Fat_Buffer
 0468 90E0              ldi R25,>_Fat_Buffer
 046A FE01              movw R30,R28
 046C AF93              push R26
 046E BF93              push R27
 0470 A281              ldd R26,z+2
 0472 B381              ldd R27,z+3
 0474 FD01              movw R30,R26
 0476 BF91              pop R27
 0478 AF91              pop R26
 047A E80F              add R30,R24
 047C F91F              adc R31,R25
 047E 2080              ldd R2,z+0
 0480 3324              clr R3
 0482 822D              mov R24,R2
 0484 853E              cpi R24,229
 0486 09F4              brne X5
 0488 70C4              xjmp L68
 048A           X5:
 048A 8530              cpi R24,5
 048C 09F4              brne X6
 048E 6DC4              xjmp L68
 0490           X6:
 0490                   .dbline 117
 0490           ;     {
 0490                   .dbline 118
 0490           ;               if(Fat_Buffer[tem+11]!= 0x0F)              //文件不为长文件名的一部分
 0490 4BE0              ldi R20,11
 0492 50E0              ldi R21,0
 0494 60E0              ldi R22,0
 0496 70E0              ldi R23,0
 0498 FE01              movw R30,R28
 049A 2280              ldd R2,z+2
 049C 3380              ldd R3,z+3
 049E 4480              ldd R4,z+4
 04A0 5580              ldd R5,z+5
 04A2 240E              add R2,R20
 04A4 351E              adc R3,R21
 04A6 461E              adc R4,R22
 04A8 571E              adc R5,R23
 04AA F101              movw R30,R2
 04AC 80E0              ldi R24,<_Fat_Buffer
 04AE 90E0              ldi R25,>_Fat_Buffer
 04B0 E80F              add R30,R24
 04B2 F91F              adc R31,R25
 04B4 8081              ldd R24,z+0
 04B6 8F30              cpi R24,15
 04B8 09F4              brne X7
 04BA C5C1              xjmp L70
 04BC           X7:
 04BC                   .dbline 119
 04BC           ;               {
 04BC                   .dbline 120
 04BC           ;                       for(i=0;i<3;i++)                   //读取该文件的扩展名
 04BC 0024              clr R0
 04BE 1124              clr R1
 04C0 188E              std y+24,R1
 04C2 0F8A              std y+23,R0
 04C4 26C0              xjmp L75
 04C6           L72:
 04C6                   .dbline 121
 04C6                   .dbline 122
 04C6 48E0              ldi R20,8
 04C8 50E0              ldi R21,0
 04CA 60E0              ldi R22,0
 04CC 70E0              ldi R23,0
 04CE FE01              movw R30,R28
 04D0 2280              ldd R2,z+2
 04D2 3380              ldd R3,z+3
 04D4 4480              ldd R4,z+4
 04D6 5580              ldd R5,z+5
 04D8 240E              add R2,R20
 04DA 351E              adc R3,R21
 04DC 461E              adc R4,R22
 04DE 571E              adc R5,R23
 04E0 6F88              ldd R6,y+23
 04E2 788C              ldd R7,y+24
 04E4 8824              clr R8
 04E6 9924              clr R9
 04E8 260C              add R2,R6
 04EA 371C              adc R3,R7
 04EC 481C              adc R4,R8
 04EE 591C              adc R5,R9
 04F0 F101              movw R30,R2
 04F2 80E0              ldi R24,<_Fat_Buffer
 04F4 90E0              ldi R25,>_Fat_Buffer
 04F6 E80F              add R30,R24
 04F8 F91F              adc R31,R25
 04FA 2080              ldd R2,z+0
 04FC CE01              movw R24,R28
 04FE 4296              adiw R24,18
 0500 F301              movw R30,R6
 0502 E80F              add R30,R24
 0504 F91F              adc R31,R25
 0506 2082              std z+0,R2
 0508                   .dbline 124
 0508           L73:
 0508                   .dbline 120
 0508 8F89              ldd R24,y+23
 050A 988D              ldd R25,y+24
 050C 0196              adiw R24,1
 050E 988F              std y+24,R25
 0510 8F8B              std y+23,R24
 0512           L75:
 0512                   .dbline 120
 0512 8F89              ldd R24,y+23
 0514 988D              ldd R25,y+24
 0516 8330              cpi R24,3
 0518 E0E0              ldi R30,0
 051A 9E07              cpc R25,R30
 051C A0F2              brlo L72
 051E                   .dbline 126
 051E           ;                       {
 051E           ;                         FileExt[i] = Fat_Buffer[tem+8+i];   
 051E           ;                         
 051E           ;                   }
 051E           ;                           
 051E           ;                       if(FileExt_Compare(FileExt,"MP3"))   //如果该文件是MP3
 051E 20E0              ldi R18,<L78
 0520 30E0              ldi R19,>L78
 0522 8E01              movw R16,R28
 0524 0E5E              subi R16,238  ; offset = 18
 0526 1F4F              sbci R17,255
 0528 02DF              xcall _FileExt_Compare
 052A 0023              tst R16
 052C 09F4              brne X8
 052E 1DC4              xjmp L71
 0530           X8:
 0530                   .dbline 127
 0530           ;                       {
 0530                   .dbline 128
 0530           ;                         for(i=0;;i++)          //将文件名赋值给音乐列表的文件名项
 0530 0024              clr R0
 0532 1124              clr R1
 0534 188E              std y+24,R1
 0536 0F8A              std y+23,R0
 0538           L79:
 0538                   .dbline 129
 0538           ;                 {
 0538                   .dbline 130
 0538           ;                            if(Fat_Buffer[tem+i] == 0x20 || i>=8)
 0538 2F88              ldd R2,y+23
 053A 388C              ldd R3,y+24
 053C 4424              clr R4
 053E 5524              clr R5
 0540 FE01              movw R30,R28
 0542 6280              ldd R6,z+2
 0544 7380              ldd R7,z+3
 0546 8480              ldd R8,z+4
 0548 9580              ldd R9,z+5
 054A 620C              add R6,R2
 054C 731C              adc R7,R3
 054E 841C              adc R8,R4
 0550 951C              adc R9,R5
 0552 F301              movw R30,R6
 0554 80E0              ldi R24,<_Fat_Buffer
 0556 90E0              ldi R25,>_Fat_Buffer
 0558 E80F              add R30,R24
 055A F91F              adc R31,R25
 055C 8081              ldd R24,z+0
 055E 8032              cpi R24,32
 0560 31F0              breq L85
 0562 C101              movw R24,R2
 0564 8830              cpi R24,8
 0566 E0E0              ldi R30,0
 0568 9E07              cpc R25,R30
 056A 08F4              brsh X9
 056C 48C0              xjmp L83
 056E           X9:
 056E           L85:
 056E                   .dbline 131
 056E           ;                                {
 056E                   .dbline 132
 056E           ;                                  MusicInfoList[LocalOfMusic].FileName[i] = '.';
 056E 09E2              ldi R16,41
 0570 10E0              ldi R17,0
 0572 2B8D              ldd R18,y+27
 0574 3C8D              ldd R19,y+28
 0576 0E940000          xcall empy16s
 057A 1801              movw R2,R16
 057C 80E0              ldi R24,<_MusicInfoList
 057E 90E0              ldi R25,>_MusicInfoList
 0580 280E              add R2,R24
 0582 391E              adc R3,R25
 0584 EF89              ldd R30,y+23
 0586 F88D              ldd R31,y+24
 0588 E20D              add R30,R2
 058A F31D              adc R31,R3
 058C 8EE2              ldi R24,46
 058E 8083              std z+0,R24
 0590                   .dbline 133
 0590           ;                                  MusicInfoList[LocalOfMusic].FileName[i+1] = 'm';
 0590 09E2              ldi R16,41
 0592 10E0              ldi R17,0
 0594 2B8D              ldd R18,y+27
 0596 3C8D              ldd R19,y+28
 0598 0E940000          xcall empy16s
 059C 1801              movw R2,R16
 059E 80E0              ldi R24,<_MusicInfoList
 05A0 90E0              ldi R25,>_MusicInfoList
 05A2 280E              add R2,R24
 05A4 391E              adc R3,R25
 05A6 EF89              ldd R30,y+23
 05A8 F88D              ldd R31,y+24
 05AA 3196              adiw R30,1
 05AC E20D              add R30,R2
 05AE F31D              adc R31,R3
 05B0 8DE6              ldi R24,109
 05B2 8083              std z+0,R24
 05B4                   .dbline 134
 05B4           ;                                  MusicInfoList[LocalOfMusic].FileName[i+2] = 'p';
 05B4 09E2              ldi R16,41
 05B6 10E0              ldi R17,0
 05B8 2B8D              ldd R18,y+27
 05BA 3C8D              ldd R19,y+28
 05BC 0E940000          xcall empy16s
 05C0 1801              movw R2,R16
 05C2 80E0              ldi R24,<_MusicInfoList
 05C4 90E0              ldi R25,>_MusicInfoList
 05C6 280E              add R2,R24
 05C8 391E              adc R3,R25
 05CA EF89              ldd R30,y+23
 05CC F88D              ldd R31,y+24
 05CE 3296              adiw R30,2
 05D0 E20D              add R30,R2
 05D2 F31D              adc R31,R3
 05D4 80E7              ldi R24,112
 05D6 8083              std z+0,R24
 05D8                   .dbline 135
 05D8           ;                                  MusicInfoList[LocalOfMusic].FileName[i+3] = '3';
 05D8 09E2              ldi R16,41
 05DA 10E0              ldi R17,0
 05DC 2B8D              ldd R18,y+27
 05DE 3C8D              ldd R19,y+28
 05E0 0E940000          xcall empy16s
 05E4 1801              movw R2,R16
 05E6 80E0              ldi R24,<_MusicInfoList
 05E8 90E0              ldi R25,>_MusicInfoList
 05EA 280E              add R2,R24
 05EC 391E              adc R3,R25
 05EE EF89              ldd R30,y+23
 05F0 F88D              ldd R31,y+24
 05F2 3396              adiw R30,3
 05F4 E20D              add R30,R2
 05F6 F31D              adc R31,R3
 05F8 83E3              ldi R24,51
 05FA 8083              std z+0,R24
 05FC                   .dbline 136
 05FC           ;                                  break;
 05FC 2AC0              xjmp L81
 05FE           L83:
 05FE                   .dbline 138
 05FE 09E2              ldi R16,41
 0600 10E0              ldi R17,0
 0602 2B8D              ldd R18,y+27
 0604 3C8D              ldd R19,y+28
 0606 0E940000          xcall empy16s
 060A 1801              movw R2,R16
 060C 80E0              ldi R24,<_MusicInfoList
 060E 90E0              ldi R25,>_MusicInfoList
 0610 280E              add R2,R24
 0612 391E              adc R3,R25
 0614 EF89              ldd R30,y+23
 0616 F88D              ldd R31,y+24
 0618 E20D              add R30,R2
 061A F31D              adc R31,R3
 061C 2F88              ldd R2,y+23
 061E 388C              ldd R3,y+24
 0620 4424              clr R4
 0622 5524              clr R5
 0624 DE01              movw R26,R28
 0626 1296              adiw R26,2
 0628 6D90              ld R6,x+
 062A 7D90              ld R7,x+
 062C 8D90              ld R8,x+
 062E 9C90              ld R9,x
 0630 620C              add R6,R2
 0632 731C              adc R7,R3
 0634 841C              adc R8,R4
 0636 951C              adc R9,R5
 0638 D301              movw R26,R6
 063A 80E0              ldi R24,<_Fat_Buffer
 063C 90E0              ldi R25,>_Fat_Buffer
 063E A80F              add R26,R24
 0640 B91F              adc R27,R25
 0642 2C90              ld R2,x
 0644 2082              std z+0,R2
 0646                   .dbline 139
 0646           L80:
 0646                   .dbline 128
 0646 8F89              ldd R24,y+23
 0648 988D              ldd R25,y+24
 064A 0196              adiw R24,1
 064C 988F              std y+24,R25
 064E 8F8B              std y+23,R24
 0650                   .dbline 128
 0650 73CF              xjmp L79
 0652           L81:
 0652                   .dbline 141
 0652           ;                                }
 0652           ;                            MusicInfoList[LocalOfMusic].FileName[i]=Fat_Buffer[tem+i];
 0652           ;                         }
 0652           ;                         //将文件的起始簇号赋值给音乐列表的起始簇号项
 0652           ;                         MusicInfoList[LocalOfMusic].FileStartClustor = Fat_Buffer[tem+0x1A]|Fat_Buffer[tem+0x1B]<<8|((uint32)Fat_Buffer[tem+0x14]<<16) | ((uint32)Fat_Buffer[tem+0x15]<<24) ;
 0652 4BE1              ldi R20,27
 0654 50E0              ldi R21,0
 0656 60E0              ldi R22,0
 0658 70E0              ldi R23,0
 065A FE01              movw R30,R28
 065C 2280              ldd R2,z+2
 065E 3380              ldd R3,z+3
 0660 4480              ldd R4,z+4
 0662 5580              ldd R5,z+5
 0664 240E              add R2,R20
 0666 351E              adc R3,R21
 0668 461E              adc R4,R22
 066A 571E              adc R5,R23
 066C F101              movw R30,R2
 066E 80E0              ldi R24,<_Fat_Buffer
 0670 90E0              ldi R25,>_Fat_Buffer
 0672 E80F              add R30,R24
 0674 F91F              adc R31,R25
 0676 2080              ldd R2,z+0
 0678 3324              clr R3
 067A 322C              mov R3,R2
 067C 2224              clr R2
 067E 4AE1              ldi R20,26
 0680 50E0              ldi R21,0
 0682 60E0              ldi R22,0
 0684 70E0              ldi R23,0
 0686 FE01              movw R30,R28

⌨️ 快捷键说明

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