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

📄 task.lis

📁 基于ATmega64的MP3程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module task.c
                        .area data(ram, con, rel)
 0000           _SONG_state::
 0000                   .blkb 1
                        .area idata
 0000 05                .byte 5
                        .area data(ram, con, rel)
 0001                   .dbfile D:\TDDownload\MP3BOA~1.8\task.c
 0001                   .dbsym e SONG_state _SONG_state c
 0001           _disp_state::
 0001                   .blkb 1
                        .area idata
 0001 05                .byte 5
                        .area data(ram, con, rel)
 0002                   .dbfile D:\TDDownload\MP3BOA~1.8\task.c
 0002                   .dbsym e disp_state _disp_state c
 0002           _STA013_INIT::
 0002                   .blkb 1
                        .area idata
 0002 01                .byte 1
                        .area data(ram, con, rel)
 0003                   .dbfile D:\TDDownload\MP3BOA~1.8\task.c
 0003                   .dbsym e STA013_INIT _STA013_INIT c
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\TDDownload\MP3BOA~1.8\task.c
 0000           L2:
 0000                   .blkb 4
 0004           L3:
 0004                   .blkb 2
 0006           L4:
 0006                   .blkb 2
 0008           L5:
 0008                   .blkb 2
 000A           L6:
 000A                   .blkb 1
                        .area text(rom, con, rel)
 0000                   .dbfile D:\TDDownload\MP3BOA~1.8\task.c
 0000                   .dbfunc e SONG_task _SONG_task fV
 0000                   .dbsym s doing1 L6 c
 0000                   .dbsym s file_Clus_sendnumber L5 i
 0000                   .dbsym s file_Clus_allnumber L4 i
 0000                   .dbsym s bytepersec L3 i
 0000                   .dbsym s new_Sec L2 l
 0000           ;          doing -> R10
 0000           ;       FAT_Clus -> y+5
                        .even
 0000           _SONG_task::
 0000 0E940000          xcall push_gset4
 0004 2D97              sbiw R28,13
 0006                   .dbline -1
 0006                   .dbline 34
 0006           ; //ICC-AVR application builder : 2005-11-12 17:11:59
 0006           ; // Target : M16
 0006           ; // Crystal: 8.0000Mhz
 0006           ; // copyright:鲁军波(endylu)
 0006           ; // www.shop34612283.taobao.com
 0006           ; // www.adembed.com
 0006           ; #include <iom16v.h>
 0006           ; #include <macros.h>
 0006           ; #include "main.h"
 0006           ; extern uint8 timer1_over;
 0006           ; extern uint8 key_value;
 0006           ; extern uint8 set_volume;
 0006           ; extern uint8 MP3_all_number;
 0006           ; extern uint8 MP3_current_number;
 0006           ; extern uint8 play_state;   
 0006           ; 
 0006           ; extern MP3_INFO mp3_info;
 0006           ; extern FAT_INFO fat_info;
 0006           ; 
 0006           ; extern uint32 CHINALIB_point;
 0006           ; extern uint32 UNICODE_point;
 0006           ; 
 0006           ; extern uint8 buffer[512];
 0006           ; //extern const uint8 BassTrebleTable[48];
 0006           ; 
 0006           ; uint8 SONG_state=song_over;
 0006           ; uint8 secperclus;      //对下面显示歌词的时间有关
 0006           ; 
 0006           ; uint8 disp_state=5; 
 0006           ; uint8 STA013_INIT=1;
 0006           ; 
 0006           ; //=======================================================================
 0006           ; void SONG_task(void)
 0006           ; {
 0006                   .dbline 46
 0006           ;  static uint32 new_Sec;
 0006           ; 
 0006           ;  static uint16 bytepersec; 
 0006           ;  
 0006           ;  static uint16 file_Clus_allnumber;
 0006           ;  static uint16 file_Clus_sendnumber;
 0006           ;  
 0006           ;  uint32 FAT_Clus;
 0006           ;  uint8 doing;
 0006           ;  static uint8 doing1;
 0006           ;  
 0006           ;  switch(SONG_state)
 0006 A0900000          lds R10,_SONG_state
 000A BB24              clr R11
 000C AA20              tst R10
 000E 19F4              brne X0
 0010 BB20              tst R11
 0012 09F4              brne X4
 0014 69C2              xjmp L8
 0016           X4:
 0016           X0:
 0016 C501              movw R24,R10
 0018 8130              cpi R24,1
 001A E0E0              ldi R30,0
 001C 9E07              cpc R25,R30
 001E A9F0              breq L11
 0020 8230              cpi R24,2
 0022 E0E0              ldi R30,0
 0024 9E07              cpc R25,R30
 0026 09F4              brne X5
 0028 78C0              xjmp L22
 002A           X5:
 002A 8330              cpi R24,3
 002C E0E0              ldi R30,0
 002E 9E07              cpc R25,R30
 0030 09F4              brne X6
 0032 4EC1              xjmp L38
 0034           X6:
 0034 8430              cpi R24,4
 0036 E0E0              ldi R30,0
 0038 9E07              cpc R25,R30
 003A 09F4              brne X7
 003C 90C1              xjmp L41
 003E           X7:
 003E 8530              cpi R24,5
 0040 E0E0              ldi R30,0
 0042 9E07              cpc R25,R30
 0044 09F4              brne X8
 0046 B1C1              xjmp L47
 0048           X8:
 0048 4FC2              xjmp L7
 004A           X1:
 004A                   .dbline 47
 004A           ;  {
 004A                   .dbline 49
 004A           ;   case song_stop:
 004A           ;        {
 004A                   .dbline 51
 004A           ;          
 004A           ;          break;
 004A           L11:
 004A                   .dbline 54
 004A           ;          }
 004A           ;   case song_start:
 004A           ;       {
 004A                   .dbline 55
 004A           ;           file_Clus_allnumber=((mp3_info.DIR_Filesize[0]>>1)+((int)(mp3_info.DIR_Filesize[1])<<7))/(fat_info.BPB_SecPerClus)+1;   //多少簇                                          
 004A 27E0              ldi R18,7
 004C 30E0              ldi R19,0
 004E 00913800          lds R16,_mp3_info+55+1
 0052 1127              clr R17
 0054 0E940000          xcall lsl16
 0058 1801              movw R2,R16
 005A 00913700          lds R16,_mp3_info+55
 005E 1127              clr R17
 0060 1595              asr R17
 0062 0795              ror R16
 0064 020D              add R16,R2
 0066 131D              adc R17,R3
 0068 20910100          lds R18,_fat_info+1
 006C 3327              clr R19
 006E 0E940000          xcall div16s
 0072 C801              movw R24,R16
 0074 0196              adiw R24,1
 0076 90930700          sts L4+1,R25
 007A 80930600          sts L4,R24
 007E                   .dbline 56
 007E           ;         new_Sec=(((long)(mp3_info.DIR_FstClusL[1])<<8)+(mp3_info.DIR_FstClusL[0])-2)*fat_info.BPB_SecPerClus+fat_info.FirstDateSecter; //簇的头扇区号 
 007E 88E0              ldi R24,8
 0080 90E0              ldi R25,0
 0082 20903600          lds R2,_mp3_info+53+1
 0086 3324              clr R3
 0088 4424              clr R4
 008A 5524              clr R5
 008C 8A93              st -y,R24
 008E 8101              movw R16,R2
 0090 9201              movw R18,R4
 0092 0E940000          xcall lsl32
 0096 1801              movw R2,R16
 0098 2901              movw R4,R18
 009A 60903500          lds R6,_mp3_info+53
 009E 7724              clr R7
 00A0 8824              clr R8
 00A2 9924              clr R9
 00A4 260C              add R2,R6
 00A6 371C              adc R3,R7
 00A8 481C              adc R4,R8
 00AA 591C              adc R5,R9
 00AC 42E0              ldi R20,2
 00AE 50E0              ldi R21,0
 00B0 60E0              ldi R22,0
 00B2 70E0              ldi R23,0
 00B4 241A              sub R2,R20
 00B6 350A              sbc R3,R21
 00B8 460A              sbc R4,R22
 00BA 570A              sbc R5,R23
 00BC 60900100          lds R6,_fat_info+1
 00C0 7724              clr R7
 00C2 8824              clr R8
 00C4 9924              clr R9
 00C6 9A92              st -y,R9
 00C8 8A92              st -y,R8
 00CA 7A92              st -y,R7
 00CC 6A92              st -y,R6
 00CE 8101              movw R16,R2
 00D0 9201              movw R18,R4
 00D2 0E940000          xcall empy32s
 00D6 1801              movw R2,R16
 00D8 2901              movw R4,R18
 00DA 60900500          lds R6,_fat_info+5
 00DE 70900600          lds R7,_fat_info+5+1
 00E2 8824              clr R8
 00E4 9924              clr R9
 00E6 260C              add R2,R6
 00E8 371C              adc R3,R7
 00EA 481C              adc R4,R8
 00EC 591C              adc R5,R9
 00EE 30920100          sts L2+1,R3
 00F2 20920000          sts L2,R2
 00F6 50920300          sts L2+2+1,R5
 00FA 40920200          sts L2+2,R4
 00FE                   .dbline 57
 00FE           ;         file_Clus_sendnumber=0;
 00FE 2224              clr R2
 0100 3324              clr R3
 0102 30920900          sts L5+1,R3
 0106 20920800          sts L5,R2
 010A                   .dbline 59
 010A           ;               
 010A           ;               SONG_state=song_read_sector;
 010A 83E0              ldi R24,3
 010C 80930000          sts _SONG_state,R24
 0110                   .dbline 60
 0110           ;               secperclus=fat_info.BPB_SecPerClus;
 0110 20900100          lds R2,_fat_info+1
 0114 2092B900          sts _secperclus,R2
 0118                   .dbline 62
 0118           ;               
 0118           ;           break;
 0118 E7C1              xjmp L8
 011A           L22:
 011A                   .dbline 66
 011A           ;          }
 011A           ;   
 011A           ;   case song_find_newsec:
 011A           ;        {         
 011A                   .dbline 67
 011A           ;                  FAT_Clus=((long)(fat_info.Relative+fat_info.BPB_RsvdSecCnt+mp3_info.DIR_FstClusL[1])<<9)+((int)mp3_info.DIR_FstClusL[0]<<1);
 011A 20900200          lds R2,_fat_info+2
 011E 3324              clr R3
 0120 40900000          lds R4,_fat_info
 0124 5524              clr R5
 0126 420C              add R4,R2
 0128 531C              adc R5,R3
 012A 20903600          lds R2,_mp3_info+53+1
 012E 3324              clr R3
 0130 420C              add R4,R2
 0132 531C              adc R5,R3
 0134 1201              movw R2,R4
 0136 4424              clr R4
 0138 37FC              sbrc R3,7
 013A 4094              com R4
 013C 5524              clr R5
 013E 47FC              sbrc R4,7
 0140 5094              com R5
 0142 89E0              ldi R24,9
 0144 90E0              ldi R25,0
 0146 8A93              st -y,R24
 0148 8101              movw R16,R2
 014A 9201              movw R18,R4
 014C 0E940000          xcall lsl32
 0150 1801              movw R2,R16
 0152 2901              movw R4,R18
 0154 60903500          lds R6,_mp3_info+53
 0158 7724              clr R7
 015A 660C              lsl R6
 015C 771C              rol R7
 015E 8824              clr R8
 0160 77FC              sbrc R7,7
 0162 8094              com R8
 0164 9924              clr R9
 0166 87FC              sbrc R8,7
 0168 9094              com R9
 016A 260C              add R2,R6
 016C 371C              adc R3,R7
 016E 481C              adc R4,R8
 0170 591C              adc R5,R9
 0172 FE01              movw R30,R28
 0174 2582              std z+5,R2
 0176 3682              std z+6,R3
 0178 4782              std z+7,R4
 017A 5086              std z+8,R5
 017C                   .dbline 69
 017C           ; 
 017C           ;                  SD_read_sector2(FAT_Clus,mp3_info.DIR_FstClusL,2);
 017C 82E0              ldi R24,2
 017E 90E0              ldi R25,0
 0180 9B83              std y+3,R25
 0182 8A83              std y+2,R24
 0184 80E0              ldi R24,<_mp3_info+53
 0186 90E0              ldi R25,>_mp3_info+53
 0188 9983              std y+1,R25
 018A 8883              std y+0,R24
 018C FE01              movw R30,R28
 018E 0581              ldd R16,z+5
 0190 1681              ldd R17,z+6
 0192 2781              ldd R18,z+7
 0194 3085              ldd R19,z+8
 0196 0E940000          xcall _SD_read_sector2
 019A                   .dbline 71
 019A           ; 
 019A           ;                                new_Sec=((long)(mp3_info.DIR_FstClusL[1])<<8)+mp3_info.DIR_FstClusL[0];
 019A 88E0              ldi R24,8
 019C 90E0              ldi R25,0
 019E 20903600          lds R2,_mp3_info+53+1
 01A2 3324              clr R3
 01A4 4424              clr R4
 01A6 5524              clr R5
 01A8 8A93              st -y,R24
 01AA 8101              movw R16,R2
 01AC 9201              movw R18,R4
 01AE 0E940000          xcall lsl32
 01B2 1801              movw R2,R16
 01B4 2901              movw R4,R18
 01B6 60903500          lds R6,_mp3_info+53
 01BA 7724              clr R7
 01BC 8824              clr R8
 01BE 9924              clr R9
 01C0 260C              add R2,R6
 01C2 371C              adc R3,R7
 01C4 481C              adc R4,R8
 01C6 591C              adc R5,R9
 01C8 30920100          sts L2+1,R3

⌨️ 快捷键说明

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