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

📄 fat.lis

📁 LED条屏显示程序,但是对初学者
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 01D6                   .dbline 80
 01D6           ;    
 01D6           ;    SD_start_read(mulu_Clus_number++);
 01D6 2980              ldd R2,y+1
 01D8 3A80              ldd R3,y+2
 01DA C101              movw R24,R2
 01DC 0196              adiw R24,1
 01DE 9A83              std y+2,R25
 01E0 8983              std y+1,R24
 01E2 4424              clr R4
 01E4 5524              clr R5
 01E6 8101              movw R16,R2
 01E8 9201              movw R18,R4
 01EA 0E940000          xcall _SD_start_read
 01EE                   .dbline 81
 01EE           ;    Read_number=16;
 01EE 80E1              ldi R24,16
 01F0 A82E              mov R10,R24
 01F2 52C0              xjmp L26
 01F4           L25:
 01F4                   .dbline 83
 01F4           ;    while(Read_number--)
 01F4           ;       {
 01F4                   .dbline 85
 01F4           ;          
 01F4           ;          SD_get_date(buffer,32);  
 01F4 20E2              ldi R18,32
 01F6 30E0              ldi R19,0
 01F8 00E0              ldi R16,<_buffer
 01FA 10E0              ldi R17,>_buffer
 01FC 0E940000          xcall _SD_get_date
 0200                   .dbline 86
 0200           ;        if((buffer[0]!=0XE5)&(buffer[8]==0x4D)&(buffer[9]==0x50)&(buffer[10]==0x33))
 0200 80910000          lds R24,_buffer
 0204 853E              cpi R24,229
 0206 19F0              breq L33
 0208 41E0              ldi R20,1
 020A 50E0              ldi R21,0
 020C 02C0              xjmp L34
 020E           L33:
 020E 4427              clr R20
 0210 5527              clr R21
 0212           L34:
 0212 80910800          lds R24,_buffer+8
 0216 8D34              cpi R24,77
 0218 19F4              brne L35
 021A 61E0              ldi R22,1
 021C 70E0              ldi R23,0
 021E 02C0              xjmp L36
 0220           L35:
 0220 6627              clr R22
 0222 7727              clr R23
 0224           L36:
 0224 80910900          lds R24,_buffer+9
 0228 8035              cpi R24,80
 022A 21F4              brne L37
 022C 81E0              ldi R24,1
 022E 90E0              ldi R25,0
 0230 7C01              movw R14,R24
 0232 02C0              xjmp L38
 0234           L37:
 0234 EE24              clr R14
 0236 FF24              clr R15
 0238           L38:
 0238 80910A00          lds R24,_buffer+10
 023C 8333              cpi R24,51
 023E 21F4              brne L39
 0240 81E0              ldi R24,1
 0242 90E0              ldi R25,0
 0244 6C01              movw R12,R24
 0246 02C0              xjmp L40
 0248           L39:
 0248 CC24              clr R12
 024A DD24              clr R13
 024C           L40:
 024C 1A01              movw R2,R20
 024E 2622              and R2,R22
 0250 3722              and R3,R23
 0252 2E20              and R2,R14
 0254 3F20              and R3,R15
 0256 2C20              and R2,R12
 0258 3D20              and R3,R13
 025A 2220              tst R2
 025C 11F4              brne X0
 025E 3320              tst R3
 0260 31F0              breq L28
 0262           X0:
 0262                   .dbline 87
 0262           ;                {
 0262                   .dbline 89
 0262           ;                  
 0262           ;                 MP3_all_number++;
 0262 80910000          lds R24,_MP3_all_number
 0266 8F5F              subi R24,255    ; addi 1
 0268 80930000          sts _MP3_all_number,R24
 026C                   .dbline 90
 026C           ;                 }
 026C 15C0              xjmp L29
 026E           L28:
 026E                   .dbline 91
 026E           ;          else if(buffer[0]==0)
 026E 20900000          lds R2,_buffer
 0272 2220              tst R2
 0274 89F4              brne L41
 0276                   .dbline 92
 0276           ;            {
 0276 06C0              xjmp L44
 0278           L43:
 0278                   .dbline 94
 0278                   .dbline 96
 0278 20E2              ldi R18,32
 027A 30E0              ldi R19,0
 027C 00E0              ldi R16,<_buffer
 027E 10E0              ldi R17,>_buffer
 0280 0E940000          xcall _SD_get_date
 0284                   .dbline 97
 0284           L44:
 0284                   .dbline 93
 0284           ;                 while(Read_number--)
 0284 2A2C              mov R2,R10
 0286 3324              clr R3
 0288 822D              mov R24,R2
 028A 8150              subi R24,1
 028C A82E              mov R10,R24
 028E 2220              tst R2
 0290 99F7              brne L43
 0292                   .dbline 98
 0292           ;                    {
 0292           ;                         
 0292           ;                         SD_get_date(buffer,32);
 0292           ;                     }
 0292           ;                 counter_over=1;
 0292 0024              clr R0
 0294 0394              inc R0
 0296 0882              std y+0,R0
 0298                   .dbline 99
 0298           ;                 }
 0298           L41:
 0298           L29:
 0298                   .dbline 101
 0298           L26:
 0298                   .dbline 82
 0298 2A2C              mov R2,R10
 029A 3324              clr R3
 029C 822D              mov R24,R2
 029E 8150              subi R24,1
 02A0 A82E              mov R10,R24
 02A2 2220              tst R2
 02A4 09F0              breq X1
 02A6 A6CF              xjmp L25
 02A8           X1:
 02A8                   .dbline 102
 02A8           L23:
 02A8                   .dbline 77
 02A8 0880              ldd R0,y+0
 02AA 0020              tst R0
 02AC 09F4              brne X2
 02AE 93CF              xjmp L22
 02B0           X2:
 02B0                   .dbline -2
 02B0           L20:
 02B0 2396              adiw R28,3
 02B2 0E940000          xcall pop_gset5
 02B6                   .dbline 0 ; func end
 02B6 0895              ret
 02B8                   .dbsym l mulu_Clus_number 1 i
 02B8                   .dbsym l counter_over 0 c
 02B8                   .dbsym r Read_number 10 c
 02B8                   .dbend
 02B8                   .dbfunc e MP3_Directory _MP3_Directory fV
 02B8           ;        counter -> y+12
 02B8           ; mulu_Clus_number -> y+4
 02B8           ;              i -> y+11
 02B8           ;              j -> y+10
 02B8           ;    Read_number -> y+8
 02B8           ;         number -> R10
                        .even
 02B8           _MP3_Directory::
 02B8 0E940000          xcall push_gset5
 02BC A02E              mov R10,R16
 02BE 6197              sbiw R28,17
 02C0                   .dbline -1
 02C0                   .dbline 108
 02C0           ;         
 02C0           ;         }    
 02C0           ;   }
 02C0           ; 
 02C0           ; }
 02C0           ; 
 02C0           ; //=======================================================================
 02C0           ; void MP3_Directory(uint8 number)
 02C0           ; {
 02C0                   .dbline 114
 02C0           ;  uint8 i,j;
 02C0           ;  uint8 counter;
 02C0           ;  uint16 Read_number;
 02C0           ;  uint32 mulu_Clus_number;
 02C0           ;  
 02C0           ;  Read_number=0;
 02C0 0024              clr R0
 02C2 1124              clr R1
 02C4 1986              std y+9,R1
 02C6 0886              std y+8,R0
 02C8                   .dbline 115
 02C8           ;  counter=number;
 02C8 AC86              std y+12,R10
 02CA                   .dbline 116
 02CA           ;  mp3_info.Name_number=0;
 02CA 2224              clr R2
 02CC 20923400          sts _mp3_info+52,R2
 02D0                   .dbline 117
 02D0           ;  mulu_Clus_number=fat_info.Firstgengmulu;
 02D0 20900300          lds R2,_fat_info+3
 02D4 30900400          lds R3,_fat_info+3+1
 02D8 4424              clr R4
 02DA 5524              clr R5
 02DC FE01              movw R30,R28
 02DE 2482              std z+4,R2
 02E0 3582              std z+5,R3
 02E2 4682              std z+6,R4
 02E4 5782              std z+7,R5
 02E6                   .dbline 118
 02E6           ;  mulu_Clus_number=mulu_Clus_number<<9;
 02E6 89E0              ldi R24,9
 02E8 90E0              ldi R25,0
 02EA FE01              movw R30,R28
 02EC 2480              ldd R2,z+4
 02EE 3580              ldd R3,z+5
 02F0 4680              ldd R4,z+6
 02F2 5780              ldd R5,z+7
 02F4 8A93              st -y,R24
 02F6 8101              movw R16,R2
 02F8 9201              movw R18,R4
 02FA 0E940000          xcall lsl32
 02FE FE01              movw R30,R28
 0300 0483              std z+4,R16
 0302 1583              std z+5,R17
 0304 2683              std z+6,R18
 0306 3783              std z+7,R19
 0308 27C3              xjmp L50
 030A           L49:
 030A                   .dbline 122
 030A           ;  
 030A           ;  
 030A           ;  while(counter)
 030A           ;  {
 030A                   .dbline 123
 030A           ;   SD_read_sector2(mulu_Clus_number+((long)(Read_number++)<<5),buffer,32);
 030A 80E2              ldi R24,32
 030C 90E0              ldi R25,0
 030E 9B83              std y+3,R25
 0310 8A83              std y+2,R24
 0312 80E0              ldi R24,<_buffer
 0314 90E0              ldi R25,>_buffer
 0316 9983              std y+1,R25
 0318 8883              std y+0,R24
 031A 2884              ldd R2,y+8
 031C 3984              ldd R3,y+9
 031E C101              movw R24,R2
 0320 0196              adiw R24,1
 0322 9987              std y+9,R25
 0324 8887              std y+8,R24
 0326 85E0              ldi R24,5
 0328 90E0              ldi R25,0
 032A 4424              clr R4
 032C 5524              clr R5
 032E 8A93              st -y,R24
 0330 8101              movw R16,R2
 0332 9201              movw R18,R4
 0334 0E940000          xcall lsl32
 0338 FE01              movw R30,R28
 033A 2480              ldd R2,z+4
 033C 3580              ldd R3,z+5
 033E 4680              ldd R4,z+6
 0340 5780              ldd R5,z+7
 0342 200E              add R2,R16
 0344 311E              adc R3,R17
 0346 421E              adc R4,R18
 0348 531E              adc R5,R19
 034A 8101              movw R16,R2
 034C 9201              movw R18,R4
 034E 0E940000          xcall _SD_read_sector2
 0352                   .dbline 125
 0352           ; 
 0352           ;   if(counter>1)
 0352 81E0              ldi R24,1
 0354 0C84              ldd R0,y+12
 0356 8015              cp R24,R0
 0358 08F0              brlo X10
 035A 3CC0              xjmp L52
 035C           X10:
 035C                   .dbline 126
 035C           ;     {if((buffer[0]!=0XE5)&(buffer[8]==0x4D)&(buffer[9]==0x50)&(buffer[10]==0x33))
 035C                   .dbline 126
 035C 80910000          lds R24,_buffer
 0360 853E              cpi R24,229
 0362 29F0              breq L59
 0364 81E0              ldi R24,1
 0366 90E0              ldi R25,0
 0368 9E87              std y+14,R25
 036A 8D87              std y+13,R24
 036C 04C0              xjmp L60
 036E           L59:
 036E 0024              clr R0
 0370 1124              clr R1
 0372 1E86              std y+14,R1
 0374 0D86              std y+13,R0
 0376           L60:
 0376 80910800          lds R24,_buffer+8
 037A 8D34              cpi R24,77
 037C 21F4              brne L61
 037E 81E0              ldi R24,1
 0380 90E0              ldi R25,0
 0382 7C01              movw R14,R24
 0384 02C0              xjmp L62
 0386           L61:
 0386 EE24              clr R14
 0388 FF24              clr R15
 038A           L62:
 038A 80910900          lds R24,_buffer+9
 038E 8035              cpi R24,80
 0390 21F4              brne L63
 0392 81E0              ldi R24,1
 0394 90E0              ldi R25,0
 0396 6C01              movw R12,R24
 0398 02C0              xjmp L64
 039A           L63:
 039A CC24              clr R12
 039C DD24              clr R13
 039E           L64:
 039E 80910A00          lds R24,_buffer+10
 03A2 8333              cpi R24,51
 03A4 21F4              brne L65
 03A6 81E0              ldi R24,1
 03A8 90E0              ldi R25,0
 03AA 5C01              movw R10,R24
 03AC 02C0              xjmp L66
 03AE           L65:
 03AE AA24              clr R10
 03B0 BB24              clr R11
 03B2           L66:
 03B2 2D84              ldd R2,y+13
 03B4 3E84              ldd R3,y+14
 03B6 2E20              and R2,R14
 03B8 3F20              and R3,R15
 03BA 2C20              and R2,R12
 03BC 3D20              and R3,R13

⌨️ 快捷键说明

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