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

📄 mp3player.lis

📁 diy硬盘mp3的程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
                        .module MP3Player.c
                        .area data(ram, con, rel)
 0000           _Key::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile C:\DATA\MP3\Player\Code2\MP3Player.c
 0001                   .dbsym e Key _Key c
 0001           _IsPlaying::
 0001                   .blkb 1
                        .area idata
 0001 00                .byte 0
                        .area data(ram, con, rel)
 0002                   .dbfile C:\DATA\MP3\Player\Code2\MP3Player.c
 0002                   .dbsym e IsPlaying _IsPlaying c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\DATA\MP3\Player\Code2\MP3Player.c
 0000                   .dbfunc e main _main fV
                        .even
 0000           _main::
 0000                   .dbline -1
 0000                   .dbline 25
 0000           ; #include <iom128v.h>
 0000           ; #include "fat.h"
 0000           ; #include "ata.h"
 0000           ; #include "vs1001.h"
 0000           ; #include "remote.h"
 0000           ; #include "main.h"
 0000           ; #include "generic.h"
 0000           ; #include "usb.h"
 0000           ; #include <string.h>
 0000           ; #include <stdio.h>
 0000           ; #include <macros.h>
 0000           ; 
 0000           ; //******************************************************************
 0000           ; //*   MAIN Global Variable
 0000           ; //******************************************************************
 0000           ; unsigned char SectorBuffer[512];
 0000           ; unsigned char RemoteTextLine[5][40];
 0000           ; volatile unsigned char Key = 0;
 0000           ; volatile unsigned char IsPlaying = FALSE;
 0000           ; 
 0000           ; //*************************************
 0000           ; // void main(void)
 0000           ; //*************************************
 0000           ; void main(void)
 0000           ; {
 0000                   .dbline 26
 0000           ; InitRemote();
 0000 0E940000          xcall _InitRemote
 0004                   .dbline 27
 0004           ; InitUSB();
 0004 0E940000          xcall _InitUSB
 0008                   .dbline 28
 0008           ; WDR();
 0008 A895              wdr
 000A                   .dbline 29
 000A           ; WDTCR = 0x0f; // Watch Dog enable
 000A 8FE0              ldi R24,15
 000C 81BD              out 0x21,R24
 000E                   .dbline 30
 000E           ; VS1001Init(HARD);
 000E 01E0              ldi R16,1
 0010 0E940000          xcall _VS1001Init
 0014                   .dbline 31
 0014           ; init_ata(0);
 0014 0027              clr R16
 0016 0E940000          xcall _init_ata
 001A                   .dbline 32
 001A           ; Reg_Test();
 001A 0E940000          xcall _Reg_Test
 001E                   .dbline 33
 001E           ; InitFat();
 001E 0E940000          xcall _InitFat
 0022                   .dbline 34
 0022           ; VS1001_SetVolume(50,50);
 0022 22E3              ldi R18,50
 0024 02E3              ldi R16,50
 0026 0E940000          xcall _VS1001_SetVolume
 002A                   .dbline 35
 002A           ; Sine_Sweep();
 002A 0E940000          xcall _Sine_Sweep
 002E                   .dbline 36
 002E           ; SEI();
 002E 7894              sei
 0030                   .dbline 38
 0030           ; 
 0030           ; DirBrowser(2);
 0030 02E0              ldi R16,2
 0032 10E0              ldi R17,0
 0034 20E0              ldi R18,0
 0036 30E0              ldi R19,0
 0038                   .dbline -2
 0038                   .dbline 39
 0038           ; }
 0038           L1:
 0038                   .dbline 0 ; func end
 0038 00C0              xjmp _DirBrowser
 003A                   .dbend
 003A                   .dbfunc e DirBrowser _DirBrowser fV
 003A           ;             ch -> <dead>
 003A           ;    LastCluster -> y+6
 003A           ;        MaxFile -> R14,R15
 003A           ;           Page -> R12,R13
 003A           ;        FilePtr -> R10,R11
 003A           ;        Cluster -> y+20
                        .even
 003A           _DirBrowser::
 003A 0E940000          xcall push_arg4
 003E 0E940000          xcall push_gset5
 0042 2A97              sbiw R28,10
 0044                   .dbline -1
 0044                   .dbline 45
 0044           ; 
 0044           ; //*************************************
 0044           ; // void DirBrowser(unsigned long Cluster)
 0044           ; //*************************************
 0044           ; void DirBrowser(unsigned long Cluster)
 0044           ; {
 0044                   .dbline 51
 0044           ; extern unsigned char text[255];
 0044           ; extern struct FileInfo File;
 0044           ; unsigned long LastCluster;
 0044           ; unsigned char ch;
 0044           ; unsigned int MaxFile;
 0044           ; int FilePtr = 0;
 0044 AA24              clr R10
 0046 BB24              clr R11
 0048                   .dbline 52
 0048           ; int Page = 0;
 0048 CC24              clr R12
 004A DD24              clr R13
 004C                   .dbline 54
 004C           ; 
 004C           ; Key = 0xff;
 004C 8FEF              ldi R24,255
 004E 80930000          sts _Key,R24
 0052                   .dbline 55
 0052           ; FilePtr = 0;
 0052                   .dbline 56
 0052           ; Page = 99;
 0052 83E6              ldi R24,99
 0054 90E0              ldi R25,0
 0056 6C01              movw R12,R24
 0058                   .dbline 57
 0058           ; MaxFile = GetDir(Cluster,FilePtr,999,FALSE);
 0058 2224              clr R2
 005A 3324              clr R3
 005C 3D82              std y+5,R3
 005E 2C82              std y+4,R2
 0060 87EE              ldi R24,999
 0062 93E0              ldi R25,3
 0064 9B83              std y+3,R25
 0066 8A83              std y+2,R24
 0068 B982              std y+1,R11
 006A A882              std y+0,R10
 006C FE01              movw R30,R28
 006E 0489              ldd R16,z+20
 0070 1589              ldd R17,z+21
 0072 2689              ldd R18,z+22
 0074 3789              ldd R19,z+23
 0076 0E940000          xcall _GetDir
 007A 7801              movw R14,R16
 007C B0C1              xjmp L4
 007E           X0:
 007E                   .dbline 60
 007E           ; 
 007E           ; while(1)
 007E           ;               {
 007E           L6:
 007E                   .dbline 62
 007E                   .dbline 63
 007E A895              wdr
 0080                   .dbline 64
 0080 0E940000          xcall __StackCheck
 0084                   .dbline 65
 0084 2224              clr R2
 0086 20920100          sts _IsPlaying,R2
 008A                   .dbline 66
 008A           L7:
 008A                   .dbline 61
 008A           ;               while (Key == 0) 
 008A 20900000          lds R2,_Key
 008E 2220              tst R2
 0090 B1F3              breq L6
 0092                   .dbline 68
 0092           ;                         {
 0092           ;                         WDR();
 0092           ;                         _StackCheck();
 0092           ;                         IsPlaying = FALSE;
 0092           ;                         }
 0092           ;               
 0092           ;               IsPlaying = TRUE;
 0092 81E0              ldi R24,1
 0094 80930100          sts _IsPlaying,R24
 0098                   .dbline 71
 0098           ;               // Down
 0098           ;       
 0098           ;               if ((Key == 0x01) || (Key == 0x81) || (Key == 0xff))
 0098 80910000          lds R24,_Key
 009C 8130              cpi R24,1
 009E 49F0              breq L12
 00A0 80910000          lds R24,_Key
 00A4 8138              cpi R24,129
 00A6 29F0              breq L12
 00A8 80910000          lds R24,_Key
 00AC 8F3F              cpi R24,255
 00AE 09F0              breq X2
 00B0 4BC0              xjmp L9
 00B2           X2:
 00B2           L12:
 00B2                   .dbline 72
 00B2           ;                  {
 00B2                   .dbline 73
 00B2           ;                  if (Key == 0x01) FilePtr++;
 00B2 80910000          lds R24,_Key
 00B6 8130              cpi R24,1
 00B8 19F4              brne L13
 00BA                   .dbline 73
 00BA C501              movw R24,R10
 00BC 0196              adiw R24,1
 00BE 5C01              movw R10,R24
 00C0           L13:
 00C0                   .dbline 74
 00C0           ;            if (Key == 0x81) FilePtr += SONGPAGE;
 00C0 80910000          lds R24,_Key
 00C4 8138              cpi R24,129
 00C6 19F4              brne L15
 00C8                   .dbline 74
 00C8 C501              movw R24,R10
 00CA 0596              adiw R24,5
 00CC 5C01              movw R10,R24
 00CE           L15:
 00CE                   .dbline 75
 00CE           ;                  if (FilePtr >= MaxFile) FilePtr--;
 00CE AE14              cp R10,R14
 00D0 BF04              cpc R11,R15
 00D2 18F0              brlo L17
 00D4                   .dbline 75
 00D4 C501              movw R24,R10
 00D6 0197              sbiw R24,1
 00D8 5C01              movw R10,R24
 00DA           L17:
 00DA                   .dbline 76
 00DA           ;                  if ((FilePtr / SONGPAGE) != Page)
 00DA 25E0              ldi R18,5
 00DC 30E0              ldi R19,0
 00DE 8501              movw R16,R10
 00E0 0E940000          xcall div16s
 00E4 0C15              cp R16,R12
 00E6 1D05              cpc R17,R13
 00E8 29F1              breq L19
 00EA                   .dbline 77
 00EA           ;                 {
 00EA                   .dbline 78
 00EA           ;                               Page = FilePtr / SONGPAGE;
 00EA 25E0              ldi R18,5
 00EC 30E0              ldi R19,0
 00EE 8501              movw R16,R10
 00F0 0E940000          xcall div16s
 00F4 6801              movw R12,R16
 00F6                   .dbline 79
 00F6           ;                 GetDir(Cluster,Page*SONGPAGE,SONGPAGE,TRUE); 
 00F6 81E0              ldi R24,1
 00F8 90E0              ldi R25,0
 00FA 9D83              std y+5,R25
 00FC 8C83              std y+4,R24
 00FE 85E0              ldi R24,5
 0100 9B83              std y+3,R25
 0102 8A83              std y+2,R24
 0104 05E0              ldi R16,5
 0106 10E0              ldi R17,0
 0108 9601              movw R18,R12
 010A 0E940000          xcall empy16s
 010E 1983              std y+1,R17
 0110 0883              std y+0,R16
 0112 FE01              movw R30,R28
 0114 0489              ldd R16,z+20
 0116 1589              ldd R17,z+21
 0118 2689              ldd R18,z+22
 011A 3789              ldd R19,z+23
 011C 0E940000          xcall _GetDir
 0120                   .dbline 80
 0120           ;                               RemoteSendScreen(DIR,(FilePtr%SONGPAGE));
 0120 25E0              ldi R18,5
 0122 30E0              ldi R19,0
 0124 8501              movw R16,R10
 0126 0E940000          xcall mod16s
 012A 202F              mov R18,R16
 012C 01E0              ldi R16,1
 012E 0E940000          xcall _RemoteSendScreen
 0132                   .dbline 81
 0132           ;                               }
 0132 07C0              xjmp L20
 0134           L19:
 0134                   .dbline 83
 0134           ;                  else
 0134           ;                 {
 0134                   .dbline 84
 0134           ;                               RemoteSendLine((FilePtr%SONGPAGE));
 0134 25E0              ldi R18,5
 0136 30E0              ldi R19,0
 0138 8501              movw R16,R10
 013A 0E940000          xcall mod16s
 013E 0E940000          xcall _RemoteSendLine
 0142                   .dbline 85
 0142           ;                 }
 0142           L20:
 0142                   .dbline 86
 0142           ;                       Key = 0;
 0142 2224              clr R2

⌨️ 快捷键说明

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