📄 mp3.lis
字号:
0216 ; vol=vol-((uint)(2<<8)+2);
0216 80910000 lds R24,_vol
021A 90910100 lds R25,_vol+1
021E 8250 subi R24,2
0220 9240 sbci R25,2
0222 90930100 sts _vol+1,R25
0226 80930000 sts _vol,R24
022A .dbline 98
022A ; if(vol<=0x0505) vol=0x0505;
022A 85E0 ldi R24,1285
022C 95E0 ldi R25,5
022E 20900000 lds R2,_vol
0232 30900100 lds R3,_vol+1
0236 8215 cp R24,R2
0238 9305 cpc R25,R3
023A 28F0 brlo L37
023C .dbline 98
023C 90930100 sts _vol+1,R25
0240 80930000 sts _vol,R24
0244 07C0 xjmp L38
0246 L37:
0246 .dbline 99
0246 ; else vs1003_cmd_write(0x0b,vol); //每次左右声道VOL加2
0246 20910000 lds R18,_vol
024A 30910100 lds R19,_vol+1
024E 0BE0 ldi R16,11
0250 0E940000 xcall _vs1003_cmd_write
0254 L38:
0254 .dbline 100
0254 ; }
0254 L35:
0254 .dbline 101
0254 ; }
0254 L33:
0254 .dbline 103
0254 ; //NEXT键按下
0254 ; if(!(PINE&NEXTSONG))
0254 0B99 sbic 0x1,3
0256 23C0 rjmp L39
0258 .dbline 104
0258 ; {
0258 .dbline 105
0258 ; delay_nus(250);delay_nus(250);delay_nus(250);delay_nus(250);
0258 0AEF ldi R16,250
025A 10E0 ldi R17,0
025C 0E940000 xcall _delay_nus
0260 .dbline 105
0260 0AEF ldi R16,250
0262 10E0 ldi R17,0
0264 0E940000 xcall _delay_nus
0268 .dbline 105
0268 0AEF ldi R16,250
026A 10E0 ldi R17,0
026C 0E940000 xcall _delay_nus
0270 .dbline 105
0270 0AEF ldi R16,250
0272 10E0 ldi R17,0
0274 0E940000 xcall _delay_nus
0278 .dbline 106
0278 ; delay_nus(250);delay_nus(250);delay_nus(250);delay_nus(250);
0278 0AEF ldi R16,250
027A 10E0 ldi R17,0
027C 0E940000 xcall _delay_nus
0280 .dbline 106
0280 0AEF ldi R16,250
0282 10E0 ldi R17,0
0284 0E940000 xcall _delay_nus
0288 .dbline 106
0288 0AEF ldi R16,250
028A 10E0 ldi R17,0
028C 0E940000 xcall _delay_nus
0290 .dbline 106
0290 0AEF ldi R16,250
0292 10E0 ldi R17,0
0294 0E940000 xcall _delay_nus
0298 .dbline 107
0298 ; if(!(PINE&NEXTSONG)) goto NEXT; //跳到下一首歌曲
0298 0B99 sbic 0x1,3
029A 01C0 rjmp L41
029C .dbline 107
029C 72C0 xjmp L43
029E L41:
029E .dbline 108
029E ; }
029E L39:
029E .dbline 110
029E ; //PREV键按下
029E ; if(!(PINE&PREVSONG))
029E 0A99 sbic 0x1,2
02A0 1CC0 rjmp L44
02A2 .dbline 111
02A2 ; {
02A2 .dbline 112
02A2 ; delay_nus(250);delay_nus(250);delay_nus(250);delay_nus(250);
02A2 0AEF ldi R16,250
02A4 10E0 ldi R17,0
02A6 0E940000 xcall _delay_nus
02AA .dbline 112
02AA 0AEF ldi R16,250
02AC 10E0 ldi R17,0
02AE 0E940000 xcall _delay_nus
02B2 .dbline 112
02B2 0AEF ldi R16,250
02B4 10E0 ldi R17,0
02B6 0E940000 xcall _delay_nus
02BA .dbline 112
02BA 0AEF ldi R16,250
02BC 10E0 ldi R17,0
02BE 0E940000 xcall _delay_nus
02C2 .dbline 113
02C2 ; if(!(PINE&PREVSONG))
02C2 0A99 sbic 0x1,2
02C4 0AC0 rjmp L46
02C6 .dbline 114
02C6 ; {
02C6 .dbline 115
02C6 ; t=t-2;goto NEXT; //返回前一首歌曲
02C6 80910000 lds R24,_t
02CA 90910100 lds R25,_t+1
02CE 0297 sbiw R24,2
02D0 90930100 sts _t+1,R25
02D4 80930000 sts _t,R24
02D8 .dbline 115
02D8 54C0 xjmp L43
02DA L46:
02DA .dbline 117
02DA ; }
02DA ; }
02DA L44:
02DA .dbline 120
02DA ;
02DA ;
02DA ; data_pointer=0;
02DA CC24 clr R12
02DC DD24 clr R13
02DE 19C0 xjmp L49
02E0 L48:
02E0 .dbline 122
02E0 ; while(data_pointer<512)
02E0 ; {
02E0 .dbline 123
02E0 ; if(PINB&MP3_DATA_REQ)
02E0 B69B sbis 0x16,6
02E2 11C0 rjmp L51
02E4 .dbline 124
02E4 ; {
02E4 .dbline 125
02E4 ; for(n=0;n<32;n++)
02E4 EE24 clr R14
02E6 0CC0 xjmp L56
02E8 L53:
02E8 .dbline 126
02E8 .dbline 127
02E8 80E0 ldi R24,<_BUFFER
02EA 90E0 ldi R25,>_BUFFER
02EC F601 movw R30,R12
02EE E80F add R30,R24
02F0 F91F adc R31,R25
02F2 0081 ldd R16,z+0
02F4 0E940000 xcall _vs1003_data_write
02F8 .dbline 128
02F8 C601 movw R24,R12
02FA 0196 adiw R24,1
02FC 6C01 movw R12,R24
02FE .dbline 129
02FE L54:
02FE .dbline 125
02FE E394 inc R14
0300 L56:
0300 .dbline 125
0300 8E2D mov R24,R14
0302 8032 cpi R24,32
0304 88F3 brlo L53
0306 .dbline 130
0306 ; {
0306 ; vs1003_data_write(BUFFER[data_pointer]);
0306 ; data_pointer++;
0306 ; }
0306 ; }
0306 L51:
0306 .dbline 131
0306 ; if (data_pointer==511) break; //如果现在的数据不够了,则跳出来
0306 C601 movw R24,R12
0308 8F3F cpi R24,255
030A E1E0 ldi R30,1
030C 9E07 cpc R25,R30
030E 09F4 brne L57
0310 .dbline 131
0310 05C0 xjmp L50
0312 L57:
0312 .dbline 132
0312 L49:
0312 .dbline 121
0312 C601 movw R24,R12
0314 8030 cpi R24,0
0316 E2E0 ldi R30,2
0318 9E07 cpc R25,R30
031A 10F3 brlo L48
031C L50:
031C .dbline 133
031C L18:
031C .dbline 66
031C C501 movw R24,R10
031E 0196 adiw R24,1
0320 5C01 movw R10,R24
0322 L20:
0322 .dbline 66
0322 20900000 lds R2,_SectorsPerCluster
0326 30900100 lds R3,_SectorsPerCluster+1
032A A214 cp R10,R2
032C B304 cpc R11,R3
032E 08F4 brsh X1
0330 08CF xjmp L17
0332 X1:
0332 .dbline 134
0332 ; }
0332 ; }
0332 ; NextCluster = fatNextCluster(NextCluster);
0332 FE01 movw R30,R28
0334 0481 ldd R16,z+4
0336 1581 ldd R17,z+5
0338 2681 ldd R18,z+6
033A 3781 ldd R19,z+7
033C 0E940000 xcall _fatNextCluster
0340 FE01 movw R30,R28
0342 0483 std z+4,R16
0344 1583 std z+5,R17
0346 2683 std z+6,R18
0348 3783 std z+7,R19
034A .dbline 135
034A ; if (NextCluster >=(CLUST_RSRVD&FAT_MASK))break;
034A 46EF ldi R20,246
034C 5FEF ldi R21,255
034E 6FEF ldi R22,255
0350 7FEF ldi R23,255
0352 40900500 lds R4,_FAT_MASK+2
0356 50900600 lds R5,_FAT_MASK+2+1
035A 20900300 lds R2,_FAT_MASK
035E 30900400 lds R3,_FAT_MASK+1
0362 2422 and R2,R20
0364 3522 and R3,R21
0366 4622 and R4,R22
0368 5722 and R5,R23
036A FE01 movw R30,R28
036C 6480 ldd R6,z+4
036E 7580 ldd R7,z+5
0370 8680 ldd R8,z+6
0372 9780 ldd R9,z+7
0374 6214 cp R6,R2
0376 7304 cpc R7,R3
0378 8404 cpc R8,R4
037A 9504 cpc R9,R5
037C 08F0 brlo L59
037E .dbline 135
037E 01C0 xjmp L16
0380 L59:
0380 .dbline 136
0380 L15:
0380 .dbline 63
0380 D1CE xjmp L14
0382 L16:
0382 L43:
0382 .dbline 137
0382 ; }
0382 ; NEXT: delay_nus(1); /* 下一首歌曲*/
0382 01E0 ldi R16,1
0384 10E0 ldi R17,0
0386 0E940000 xcall _delay_nus
038A .dbline -2
038A L13:
038A 2896 adiw R28,8
038C 0E940000 xcall pop_gset5
0390 2496 adiw R28,4
0392 .dbline 0 ; func end
0392 0895 ret
0394 .dbsym l t1 1 c
0394 .dbsym l rate 1 i
0394 .dbsym l NextCluster 4 l
0394 .dbsym l LBA 0 l
0394 .dbsym r i 10 i
0394 .dbsym r n 14 c
0394 .dbsym r data_pointer 12 i
0394 .dbsym l FirstClust 18 l
0394 .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\V3U~1\sd\M64-SD卡MP3程序\mp3.c
0000 _t::
0000 .blkb 2
0002 .dbfile E:\V3U~1\sd\M64-SD卡MP3程序/mp3.h
0002 .dbsym e t _t i
0002 _true::
0002 .blkb 1
0003 .dbsym e true _true c
0003 _FAT_MASK::
0003 .blkb 4
0007 .dbsym e FAT_MASK _FAT_MASK l
.area data(ram, con, rel)
00C3 .dbfile E:\V3U~1\sd\M64-SD卡MP3程序/mp3.h
00C3 L3:
00C3 .blkb 15
.area idata
00C3 4D45474136344C202020204D503300 .byte 'M,'E,'G,'A,54,52,'L,32,32,32,32,'M,'P,51,0
.area data(ram, con, rel)
00D2 .dbfile E:\V3U~1\sd\M64-SD卡MP3程序/mp3.h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -