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

📄 playedit.lis

📁 mega128+VS1003做的mp3的程序 可以用WINAVR编译
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module playedit.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\software\MP3程序\PlayEdit\playedit.c
 0000                   .dbfunc e Del_Edit _Del_Edit fV
 0000           ;           move -> R14
 0000           ;          point -> R22,R23
 0000           ;           temp -> y+272
 0000           ;           FILE -> y+16
 0000           ;         active -> y+8
 0000           ;            day -> R10
 0000           ;           data -> R20
                        .even
 0000           _Del_Edit::
 0000 0E940000          xcall push_gset5
 0004 402F              mov R20,R16
 0006 EF97              sbiw R28,63
 0008 EF97              sbiw R28,63
 000A EF97              sbiw R28,63
 000C EF97              sbiw R28,63
 000E 6797              sbiw R28,23  ; offset = 275
 0010                   .dbline -1
 0010                   .dbline 27
 0010           ; #include <iom64v.h>
 0010           ; #include <macros.h>
 0010           ; #include <string.h>
 0010           ; #include <stdio.h>
 0010           ; #include "../Vs1003/vs1003.h"
 0010           ; #include "../Ch375b/375interface.h"
 0010           ; #include "../Keyboard/key.h"
 0010           ; #include "../Ds1302/ds1302.h"
 0010           ; #include <eeprom.h>
 0010           ; extern uchar keybuf;
 0010           ; extern uchar const nAsciiDot[];
 0010           ; extern uchar const please_time[];
 0010           ; extern unsigned char const full[];
 0010           ; extern unsigned char const show_main[];
 0010           ; 
 0010           ; typedef struct fileinfor{             //当前时间的数据结构
 0010           ;               uchar filename[28]; //文件名
 0010           ;               uchar active;           //有效标志
 0010           ;               uchar hour;             /*时*/
 0010           ;               uchar min;      /*分*/
 0010           ;         uchar sec;    /*秒*/
 0010           ; };
 0010           ; /*
 0010           ; 删除文件
 0010           ; */                                    
 0010           ; void Del_Edit(uchar data)
 0010           ; {
 0010           L2:
 0010                   .dbline 36
 0010           ;  uchar day;
 0010           ;  uchar temp;
 0010           ;  uchar active[8];
 0010           ;  uchar move;
 0010           ;  struct fileinfor FILE[8];
 0010           ;  uint point;
 0010           ;  //检查空间
 0010           ;  RELOAD:
 0010           ;  point = 0;
 0010 6627              clr R22
 0012 7727              clr R23
 0014                   .dbline 37
 0014           ;  point += 8*data*sizeof(FILE[0]);
 0014 88E0              ldi R24,8
 0016 849F              mul R24,R20
 0018 80E2              ldi R24,32
 001A 809D              mul R24,R0
 001C 600D              add R22,R0
 001E 711D              adc R23,R1
 0020                   .dbline 39
 0020           ;  
 0020           ;  for(day=0; day<8; day++)
 0020 AA24              clr R10
 0022 10C0              xjmp L6
 0024           L3:
 0024                   .dbline 40
 0024                   .dbline 41
 0024 605E              subi R22,224  ; offset = 32
 0026 7F4F              sbci R23,255
 0028                   .dbline 42
 0028 80E2              ldi R24,32
 002A 90E0              ldi R25,0
 002C 9983              std y+1,R25
 002E 8883              std y+0,R24
 0030 8A9D              mul R24,R10
 0032 9001              movw R18,R0
 0034 CE01              movw R24,R28
 0036 4096              adiw R24,16
 0038 280F              add R18,R24
 003A 391F              adc R19,R25
 003C 8B01              movw R16,R22
 003E 0E940000          xcall _EEPROMReadBytes
 0042                   .dbline 43
 0042           L4:
 0042                   .dbline 39
 0042 A394              inc R10
 0044           L6:
 0044                   .dbline 39
 0044 8A2D              mov R24,R10
 0046 8830              cpi R24,8
 0048 68F3              brlo L3
 004A                   .dbline 44
 004A           ;     {
 004A           ;        point += sizeof(FILE[day]);
 004A           ;        EEPROMReadBytes(point,&FILE[day],sizeof(FILE[day]));
 004A           ;     } 
 004A           ;  day = 0;
 004A AA24              clr R10
 004C                   .dbline 45
 004C           ;  for(temp=0; temp<8; temp++)
 004C 0024              clr R0
 004E FE01              movw R30,R28
 0050 E05F              subi R30,240  ; addi 272
 0052 FE4F              sbci R31,254
 0054 0082              std z+0,R0
 0056 23C0              xjmp L10
 0058           L7:
 0058                   .dbline 46
 0058           ;  {
 0058                   .dbline 47
 0058           ;   if(FILE[temp].active == 0x55) {active[day] = temp;day++;} 
 0058 80E2              ldi R24,32
 005A FE01              movw R30,R28
 005C E05F              subi R30,240  ; addi 272
 005E FE4F              sbci R31,254
 0060 0080              ldd R0,z+0
 0062 809D              mul R24,R0
 0064 F001              movw R30,R0
 0066 CE01              movw R24,R28
 0068 8C96              adiw R24,44
 006A E80F              add R30,R24
 006C F91F              adc R31,R25
 006E 8081              ldd R24,z+0
 0070 8535              cpi R24,85
 0072 61F4              brne L11
 0074                   .dbline 47
 0074                   .dbline 47
 0074 CE01              movw R24,R28
 0076 0896              adiw R24,8
 0078 EA2D              mov R30,R10
 007A FF27              clr R31
 007C E80F              add R30,R24
 007E F91F              adc R31,R25
 0080 DE01              movw R26,R28
 0082 A05F              subi R26,240  ; addi 272
 0084 BE4F              sbci R27,254
 0086 0C90              ld R0,x
 0088 0082              std z+0,R0
 008A                   .dbline 47
 008A A394              inc R10
 008C                   .dbline 47
 008C           L11:
 008C                   .dbline 48
 008C           L8:
 008C                   .dbline 45
 008C FE01              movw R30,R28
 008E E05F              subi R30,240  ; addi 272
 0090 FE4F              sbci R31,254
 0092 0080              ldd R0,z+0
 0094 0394              inc R0
 0096 FE01              movw R30,R28
 0098 E05F              subi R30,240  ; addi 272
 009A FE4F              sbci R31,254
 009C 0082              std z+0,R0
 009E           L10:
 009E                   .dbline 45
 009E FE01              movw R30,R28
 00A0 E05F              subi R30,240  ; addi 272
 00A2 FE4F              sbci R31,254
 00A4 8081              ldd R24,z+0
 00A6 8830              cpi R24,8
 00A8 B8F2              brlo L7
 00AA                   .dbline 49
 00AA           ;  } 
 00AA           ;  active[day] = 0xff;
 00AA CE01              movw R24,R28
 00AC 0896              adiw R24,8
 00AE EA2D              mov R30,R10
 00B0 FF27              clr R31
 00B2 E80F              add R30,R24
 00B4 F91F              adc R31,R25
 00B6 8FEF              ldi R24,255
 00B8 8083              std z+0,R24
 00BA                   .dbline 50
 00BA           ;  Print_val(day);
 00BA 0A2D              mov R16,R10
 00BC 1127              clr R17
 00BE 0E940000          xcall _Print_val
 00C2                   .dbline 51
 00C2           ;  day = 0;
 00C2 AA24              clr R10
 00C4                   .dbline 52
 00C4           ;  temp = 0;
 00C4 0024              clr R0
 00C6 FE01              movw R30,R28
 00C8 E05F              subi R30,240  ; addi 272
 00CA FE4F              sbci R31,254
 00CC 0082              std z+0,R0
 00CE 25C2              xjmp L15
 00D0           L14:
 00D0                   .dbline 53
 00D0           ;  while(1){ //显示出来
 00D0                   .dbline 54
 00D0           ;                   show_clear();
 00D0 0E940000          xcall _show_clear
 00D4                   .dbline 55
 00D4           ;                       show_lcd(0, 0, 192, 2, &show_main[0],0);
 00D4 2224              clr R2
 00D6 3324              clr R3
 00D8 3F82              std y+7,R3
 00DA 2E82              std y+6,R2
 00DC 80E0              ldi R24,<_show_main
 00DE 90E0              ldi R25,>_show_main
 00E0 9D83              std y+5,R25
 00E2 8C83              std y+4,R24
 00E4 82E0              ldi R24,2
 00E6 90E0              ldi R25,0
 00E8 9B83              std y+3,R25
 00EA 8A83              std y+2,R24
 00EC 80EC              ldi R24,192
 00EE 9983              std y+1,R25
 00F0 8883              std y+0,R24
 00F2 2227              clr R18
 00F4 3327              clr R19
 00F6 0027              clr R16
 00F8 1127              clr R17
 00FA 0E940000          xcall _show_lcd
 00FE                   .dbline 56
 00FE           ;                       move = 0;
 00FE EE24              clr R14
 0100                   .dbline 57
 0100           ;                                    if(active[day]   == 0xff) goto NEXT; 
 0100 CE01              movw R24,R28
 0102 0896              adiw R24,8
 0104 EA2D              mov R30,R10
 0106 FF27              clr R31
 0108 E80F              add R30,R24
 010A F91F              adc R31,R25
 010C 8081              ldd R24,z+0
 010E 8F3F              cpi R24,255
 0110 09F4              brne L17
 0112                   .dbline 57
 0112 71C0              xjmp L19
 0114           L17:
 0114                   .dbline 58
 0114           ;                                if(active[day]   != 0xff){move += 1; 
 0114 CE01              movw R24,R28
 0116 0896              adiw R24,8
 0118 EA2D              mov R30,R10
 011A FF27              clr R31
 011C E80F              add R30,R24
 011E F91F              adc R31,R25
 0120 8081              ldd R24,z+0
 0122 8F3F              cpi R24,255
 0124 B1F0              breq L20
 0126                   .dbline 58
 0126                   .dbline 58
 0126 E394              inc R14
 0128                   .dbline 59
 0128           ;                                                                                     show_name(&FILE[active[day]],2,0);
 0128 2224              clr R2
 012A 3324              clr R3
 012C 3982              std y+1,R3
 012E 2882              std y+0,R2
 0130 22E0              ldi R18,2
 0132 30E0              ldi R19,0
 0134 CE01              movw R24,R28
 0136 0896              adiw R24,8
 0138 EA2D              mov R30,R10
 013A FF27              clr R31
 013C E80F              add R30,R24
 013E F91F              adc R31,R25
 0140 2080              ldd R2,z+0
 0142 80E2              ldi R24,32
 0144 829D              mul R24,R2
 0146 8001              movw R16,R0
 0148 CE01              movw R24,R28
 014A 4096              adiw R24,16
 014C 080F              add R16,R24
 014E 191F              adc R17,R25
 0150 1CD4              xcall _show_name
 0152                   .dbline 60
 0152           ;                                                                                        }
 0152           L20:
 0152                   .dbline 61
 0152           ;                                    if(active[day+1]   == 0xff) goto NEXT;                                                                                                                              
 0152 CE01              movw R24,R28
 0154 0996              adiw R24,9
 0156 EA2D              mov R30,R10
 0158 FF27              clr R31
 015A E80F              add R30,R24
 015C F91F              adc R31,R25
 015E 8081              ldd R24,z+0
 0160 8F3F              cpi R24,255
 0162 09F4              brne L22
 0164                   .dbline 61
 0164 48C0              xjmp L19
 0166           L22:
 0166                   .dbline 62
 0166           ;                                        if(active[day+1] != 0xff) {move += 1;
 0166 CE01              movw R24,R28
 0168 0996              adiw R24,9
 016A EA2D              mov R30,R10
 016C FF27              clr R31
 016E E80F              add R30,R24
 0170 F91F              adc R31,R25
 0172 8081              ldd R24,z+0
 0174 8F3F              cpi R24,255
 0176 B1F0              breq L25
 0178                   .dbline 62
 0178                   .dbline 62
 0178 E394              inc R14
 017A                   .dbline 63
 017A           ;                                                                 show_name(&FILE[active[day+1]],4,0);
 017A 2224              clr R2
 017C 3324              clr R3
 017E 3982              std y+1,R3
 0180 2882              std y+0,R2
 0182 24E0              ldi R18,4
 0184 30E0              ldi R19,0
 0186 CE01              movw R24,R28
 0188 0996              adiw R24,9
 018A EA2D              mov R30,R10
 018C FF27              clr R31

⌨️ 快捷键说明

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