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

📄 playedit.s

📁 mega128+VS1003做的mp3的程序 可以用WINAVR编译
💻 S
📖 第 1 页 / 共 5 页
字号:
	adiw R24,16
	add R30,R24
	adc R31,R25
	ldd R24,z+0
	cpi R24,92
	breq X20
	xjmp L153
X20:
	.dbline 201
; 						 	    mp3_play(&FILE[active[day+2]].filename[0],0);
	clr R18
	clr R19
	movw R24,R28
	adiw R24,10
	mov R30,R22
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,32
	mul R24,R2
	movw R16,R0
	movw R24,R28
	adiw R24,16
	add R16,R24
	adc R17,R25
	xcall _mp3_play
	.dbline 202
; 								break;
	xjmp L153
L168:
	.dbline 203
; 						 case 3:if(FILE[active[day+3]].filename[0] == 0x5c)
	movw R24,R28
	adiw R24,11
	mov R30,R22
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,32
	mul R24,R2
	movw R30,R0
	movw R24,R28
	adiw R24,16
	add R30,R24
	adc R31,R25
	ldd R24,z+0
	cpi R24,92
	brne L153
	.dbline 204
; 						        mp3_play(&FILE[active[day+3]].filename[0],0);
	clr R18
	clr R19
	movw R24,R28
	adiw R24,11
	mov R30,R22
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,32
	mul R24,R2
	movw R16,R0
	movw R24,R28
	adiw R24,16
	add R16,R24
	adc R17,R25
	xcall _mp3_play
	.dbline 205
; 								break;
L152:
L153:
	.dbline 209
L100:
	.dbline 151
	xjmp L99
L101:
	.dbline -2
L87:
	adiw R28,63
	adiw R28,63
	adiw R28,63
	adiw R28,63
	adiw R28,22  ; offset = 274
	xcall pop_gset5
	.dbline 0 ; func end
	ret
	.dbsym l point 272 i
	.dbsym r move 14 c
	.dbsym l FILE 16 A[256:8]X
	.dbsym r temp 20 c
	.dbsym l active 8 A[8:8]c
	.dbsym r day 22 c
	.dbsym r data 20 c
	.dbend
	.dbfunc e show_name _show_name fV
;             ps -> R20,R21
;             ii -> R22
;           temp -> R10,R11
;           type -> R12
;           page -> R14
;             pt -> y+18
	.even
_show_name::
	xcall push_arg4
	xcall push_gset5
	mov R14,R18
	sbiw R28,8
	ldd R12,y+22
	.dbline -1
	.dbline 213
; 			            }
; 			
; 						
;  }
; 
; }
; void show_name(struct fileinfor *pt,uchar page,uchar type)
; {
	.dbline 217
;  uchar *ps;
;  uchar ii;
;  uint  temp;
;  ii=0;
	clr R22
	.dbline 218
;  ps = &pt->filename[0];
	ldd R20,y+18
	ldd R21,y+19
	xjmp L175
L174:
	.dbline 219
	.dbline 220
	movw R30,R20
	ld R10,Z+
	movw R20,R30
	clr R11
	.dbline 221
	movw R24,R10
	sbiw R24,32
	.dbline 222
	ldi R16,16
	ldi R17,0
	movw R18,R24
	xcall empy16s
	movw R10,R16
	.dbline 223
	mov R2,R12
	clr R3
	std y+7,R3
	std y+6,R2
	ldi R24,<_nAsciiDot
	ldi R25,>_nAsciiDot
	movw R2,R10
	add R2,R24
	adc R3,R25
	std y+5,R3
	std y+4,R2
	ldi R24,2
	ldi R25,0
	std y+3,R25
	std y+2,R24
	ldi R24,8
	std y+1,R25
	std y+0,R24
	mov R18,R22
	clr R19
	mov R16,R14
	clr R17
	xcall _show_lcd
	.dbline 224
	subi R22,248    ; addi 8
	.dbline 225
L175:
	.dbline 219
;  while(*ps != 0){
	movw R30,R20
	ldd R2,z+0
	tst R2
	brne L174
	.dbline 226
;  		   	  	 temp = *ps++;
; 				 temp -= 32;
; 				 temp *= 16;
; 				 show_lcd(page, ii, 8, 2, &nAsciiDot[temp],type);   
; 				 ii += 8;		 
;  		        }
;  ii = 129;				
	ldi R22,129
	.dbline 227
;  temp = pt->hour;
	ldd R30,y+18
	ldd R31,y+19
	ldd R10,z+29
	clr R11
	.dbline 228
;  temp >>= 4;
	movw R2,R10
	lsr R3
	ror R2
	lsr R3
	ror R2
	lsr R3
	ror R2
	lsr R3
	ror R2
	.dbline 229
;  temp &= 0x000f;
	movw R24,R2
	andi R24,15
	andi R25,0
	.dbline 230
;  temp += '0';
	adiw R24,48
	.dbline 231
;  temp -= 32;
	sbiw R24,32
	.dbline 232
;  temp *= 16;
	ldi R16,16
	ldi R17,0
	movw R18,R24
	xcall empy16s
	movw R10,R16
	.dbline 233
;  show_lcd(page, ii, 8, 2, &nAsciiDot[temp],type);
	mov R2,R12
	clr R3
	std y+7,R3
	std y+6,R2
	ldi R24,<_nAsciiDot
	ldi R25,>_nAsciiDot
	movw R2,R10
	add R2,R24
	adc R3,R25
	std y+5,R3
	std y+4,R2
	ldi R24,2
	ldi R25,0
	std y+3,R25
	std y+2,R24
	ldi R24,8
	std y+1,R25
	std y+0,R24
	mov R18,R22
	clr R19
	mov R16,R14
	clr R17
	xcall _show_lcd
	.dbline 234
;  ii += 8;		 
	subi R22,248    ; addi 8
	.dbline 236
;  
;  temp = pt->hour;
	ldd R30,y+18
	ldd R31,y+19
	ldd R10,z+29
	clr R11
	.dbline 237
;  temp &= 0x000f;
	movw R24,R10
	andi R24,15
	andi R25,0
	.dbline 238
;  temp += '0';
	adiw R24,48
	.dbline 239
;  temp -= 32;
	sbiw R24,32
	.dbline 240
;  temp *= 16;
	ldi R16,16
	ldi R17,0
	movw R18,R24
	xcall empy16s
	movw R10,R16
	.dbline 241
;  show_lcd(page, ii, 8, 2, &nAsciiDot[temp],type);
	mov R2,R12
	clr R3
	std y+7,R3
	std y+6,R2
	ldi R24,<_nAsciiDot
	ldi R25,>_nAsciiDot
	movw R2,R10
	add R2,R24
	adc R3,R25
	std y+5,R3
	std y+4,R2
	ldi R24,2
	ldi R25,0
	std y+3,R25
	std y+2,R24
	ldi R24,8
	std y+1,R25
	std y+0,R24
	mov R18,R22
	clr R19
	mov R16,R14
	clr R17
	xcall _show_lcd
	.dbline 242
;  ii += 8;
	subi R22,248    ; addi 8
	.dbline 244
;  
;  temp = ':';
	ldi R24,58
	ldi R25,0
	.dbline 245
;  temp -= 32;
	sbiw R24,32
	.dbline 246
;  temp *= 16;
	ldi R16,16
	ldi R17,0
	movw R18,R24
	xcall empy16s
	movw R10,R16
	.dbline 247
;  show_lcd(page, ii, 8, 2, &nAsciiDot[temp],type);
	mov R2,R12
	clr R3
	std y+7,R3
	std y+6,R2
	ldi R24,<_nAsciiDot
	ldi R25,>_nAsciiDot
	movw R2,R10
	add R2,R24
	adc R3,R25
	std y+5,R3
	std y+4,R2
	ldi R24,2
	ldi R25,0
	std y+3,R25
	std y+2,R24
	ldi R24,8
	std y+1,R25
	std y+0,R24
	mov R18,R22
	clr R19
	mov R16,R14
	clr R17
	xcall _show_lcd
	.dbline 248
;  ii += 8;
	subi R22,248    ; addi 8
	.dbline 250
;  
;  temp = pt->min;
	ldd R30,y+18
	ldd R31,y+19
	ldd R10,z+30
	clr R11
	.dbline 251
;  temp >>= 4;
	movw R2,R10
	lsr R3
	ror R2
	lsr R3
	ror R2
	lsr R3
	ror R2
	lsr R3
	ror R2
	.dbline 252
;  temp &= 0x000f;
	movw R24,R2
	andi R24,15
	andi R25,0
	.dbline 253
;  temp += '0';
	adiw R24,48
	.dbline 254
;  temp -= 32;
	sbiw R24,32
	.dbline 255
;  temp *= 16;
	ldi R16,16
	ldi R17,0
	movw R18,R24
	xcall empy16s
	movw R10,R16
	.dbline 256
;  show_lcd(page, ii, 8, 2, &nAsciiDot[temp],type);
	mov R2,R12
	clr R3
	std y+7,R3
	std y+6,R2
	ldi R24,<_nAsciiDot
	ldi R25,>_nAsciiDot
	movw R2,R10
	add R2,R24
	adc R3,R25
	std y+5,R3
	std y+4,R2
	ldi R24,2
	ldi R25,0
	std y+3,R25
	std y+2,R24
	ldi R24,8
	std y+1,R25
	std y+0,R24
	mov R18,R22
	clr R19
	mov R16,R14
	clr R17
	xcall _show_lcd
	.dbline 257
;  ii += 8;		 
	subi R22,248    ; addi 8
	.dbline 259
;  
;  temp = pt->min;
	ldd R30,y+18
	ldd R31,y+19
	ldd R10,z+30
	clr R11
	.dbline 260
;  temp &= 0x000f;
	movw R24,R10
	andi R24,15
	andi R25,0
	.dbline 261
;  temp += '0';
	adiw R24,48
	.dbline 262
;  temp -= 32;
	sbiw R24,32
	.dbline 263
;  temp *= 16;
	ldi R16,16
	ldi R17,0
	movw R18,R24
	xcall empy16s
	movw R10,R16
	.dbline 264
;  show_lcd(page, ii, 8, 2, &nAsciiDot[temp],type);
	mov R2,R12
	clr R3
	std y+7,R3
	std y+6,R2
	ldi R24,<_nAsciiDot
	ldi R25,>_nAsciiDot
	movw R2,R10
	add R2,R24
	adc R3,R25
	std y+5,R3
	std y+4,R2
	ldi R24,2
	ldi R25,0
	std y+3,R25
	std y+2,R24
	ldi R24,8
	std y+1,R25
	std y+0,R24
	mov R18,R22
	clr R19
	mov R16,R14
	clr R17
	xcall _show_lcd
	.dbline 265
;  ii += 8;
	subi R22,248    ; addi 8
	.dbline 267
;  
;  temp = ':';
	ldi R24,58
	ldi R25,0
	.dbline 268
;  temp -= 32;
	sbiw R24,32
	.dbline 269
;  temp *= 16;
	ldi R16,16
	ldi R17,0
	movw R18,R24
	xcall empy16s
	movw R10,R16
	.dbline 270
;  show_lcd(page, ii, 8, 2, &nAsciiDot[temp],type);
	mov R2,R12
	clr R3
	std y+7,R3
	std y+6,R2
	ldi R24,<_nAsciiDot
	ldi R25,>_nAsciiDot
	movw R2,R10
	add R2,R24
	adc R3,R25
	std y+5,R3
	std y+4,R2
	ldi R24,2
	ldi R25,0
	std y+3,R25
	std y+2,R24
	ldi R24,8
	std y+1,R25
	std y+0,R24
	mov R18,R22
	clr R19
	mov R16,R14
	clr R17
	xcall _show_lcd
	.dbline 271
;  ii += 8;
	subi R22,248    ; addi 8
	.dbline 273
;  
;  temp = pt->sec;
	ldd R30,y+18
	ldd R31,y+19
	ldd R10,z+31
	clr R11
	.dbline 274
;  temp >>= 4;
	movw R2,R10
	lsr R3
	ror R2
	lsr R3
	ror R2
	lsr R3
	ror R2
	lsr R3
	ror R2
	.dbline 275
;  temp &= 0x000f;
	movw R24,R2
	andi R24,15
	andi R25,0
	.dbline 276
;  temp += '0';
	adiw R24,48
	.dbline 277
;  temp -= 32;
	sbiw R24,32
	.dbline 278
;  temp *= 16;
	ldi R16,16
	ldi R17,0
	movw R18,R24
	xcall empy16s
	movw R10,R16
	.dbline 279
;  show_lcd(page, ii, 8, 2, &nAsciiDot[temp],type);
	mov R2,R12
	clr R3
	std y+7,R3
	std y+6,R2
	ldi R24,<_nAsciiDot
	ldi R25,>_nAsciiDot
	movw R2,R10
	add R2,R24
	adc R3,R25
	std y+5,R3
	std y+4,R2
	ldi R24,2
	ldi R25,0
	std y+3,R25
	std y+2,R24
	ldi R24,8
	std y+1,R25
	std y+0,R24
	mov R18,R22
	clr R19
	mov R16,R14
	clr R17
	xcall _show_lcd
	.dbline 280
;  ii += 8;		 
	subi R22,248    ; addi 8
	.dbline 282
;  
;  temp = pt->sec;
	ldd R30,y+18
	ldd R31,y+19
	ldd R10,z+31
	clr R11
	.dbline 283
;  temp &= 0x000f;
	movw R24,R10
	andi R24,15
	andi R25,0
	.dbline 284
;  temp += '0';
	adiw R24,48
	.dbline 285
;  temp -= 32;
	sbiw R24,32
	.dbline 286
;  temp *= 16;
	ldi R16,16
	ldi R17,0
	movw R18,R24
	xcall empy16s
	movw R10,R16
	.dbline 287
;  show_lcd(page, ii, 8, 2, &nAsciiDot[temp],type);
	mov R2,R12
	clr R3
	std y+7,R3
	std y+6,R2
	ldi R24,<_nAsciiDot
	ldi R25,>_nAsciiDot
	movw R2,R10
	add R2,R24
	adc R3,R25
	std y+5,R3
	std y+4,R2
	ldi R24,2
	ldi R25,0
	std y+3,R25
	std y+2,R24
	ldi R24,8
	std y+1,R25
	std y+0,R24
	mov R18,R22
	clr R19
	mov R16,R14
	clr R17
	xcall _show_lcd
	.dbline 288
;  ii = 112;				
	ldi R22,112
	.dbline -2
L173:
	adiw R28,8
	xcall pop_gset5
	adiw R28,4
	.dbline 0 ; func end
	ret
	.dbsym r ps 20 pc
	.dbsym r ii 22 c
	.dbsym r temp 10 i
	.dbsym r type 12 c
	.dbsym r page 14 c
	.dbsym l pt 18 pX
	.dbend
	.dbfunc e Edit_add _Edit_add fV
;       playtime -> y+50
;           path -> y+40
;          point -> R20,R21
;            day -> R22
;           FILE -> y+8
;           data -> R22
	.even
_Edit_add::
	xcall push_gset2
	mov R22,R16
	sbiw R28,53
	.dbline -1
	.dbline 296
; }
; 
; /*
; *添加一条新的记录
; */
; extern uchar Filename[40];	  	   //保持选择的文件名称
; void Edit_add(uchar data)
; {
	.dbline 303
;  struct time playtime;
;  struct fileinfor FILE;
;  uchar path[10];
;  uint point;
;  uchar day;
;  //检查空间
;  point = 0;
	clr R20
	clr R21
	.dbline 304
;  point += 8*data*sizeof(FILE);
	ldi R24,8
	mul R24,R22
	ldi R24,32
	mul R24,R0
	add R20,R0
	adc R21,R1
	.dbline 305
;  day = 0;
	clr R22
	xjmp L179
X21:
	.dbline 306
;  while(1){ 
L181:
	.dbline 307
;  while(1){
	.dbline 308
;  		  get_sys_path(&path[0]);
	movw R16,R28
	subi R16,216  ; offset = 40
	sbci R17,255
	xcall _get_sys_path
	.dbline 309
; 		  Print_str("选择工作目录=");
	ldi R16,<L184
	ldi R17,>L184
	xcall _Print_str
	.dbline 310
; 		  Print_str(&path[0]);
	movw R16,R28
	subi R16,216  ; offset = 40
	sbci R17,255
	xcall _Print_str
	.dbline 311
;  		  Print_str("\r\n");
	ldi R16,<L185
	ldi R17,>L185
	xcall _Print_str
	.dbline 312
; 		  if(path[0] == 0x00) {return;}
	ldd R2,y+40
	tst R2
	brne L186
	.dbline 312
	.dbline 312
	xjmp L177
L186:
	.dbline 313
; 		  if(keybuf == K_ESC) return;
	lds R24,_keybuf
	cpi R24,5
	brne L188
	.dbline 313
	xjmp L177
L188:
	.dbline 314
; 		  if(keybuf == K_ENTER) break;
	lds R24,_keybuf
	cpi R24,4
	brne L190
	.dbline 314
	xjmp L193
L190:
	.dbline 315
L182:
	.dbline 307
	xjmp L181
X22:
	.dbline 317
;  }
;  while(1)
;  {
	.dbline 318
;     for(;day<8; day++)
L195:
	.dbline 319
;     {
	.dbline 320
; 	 point += sizeof(FILE); //下一个
	subi R20,224  ; offset = 32
	sbci R21,255
	.dbline 321
; 	 EEPROMReadBytes(point,&FILE,sizeof(FILE));
	ldi R24,32
	ldi R25,0
	std y+1,R25
	std y+0,R24
	movw R18,R28
	subi R18,248  ; offset = 8
	sbci R19,255
	movw R16,R20
	xcall _EEPROMReadBytes
	.dbline 322
;      if(FILE.active != 0x55) {day++; break;}
	ldd R24,y+36
	cpi R24,85
	breq L199
	.dbline 322
	.dbline 322
	inc R22
	.dbline 322
	xjmp L197
L199:
	.dbline 323
L196:
	.dbline 318
	inc R22
L198:
	.dbline 318
	cpi R22,8
	brlo L195
L197:
	.dbline 324
;     } 
;  if(day == 8){
	cpi R22,8
	brne L202
	.dbline 324
	.dbline 325
;  		      show_lcd(2, 0, 192, 4, &full[0],0);
	clr R2
	clr R3
	std y+7,R3
	std y+6,R2
	ldi R24,<_full
	ldi R25,>_full
	std y+5,R25
	std y+4,R24
	ldi R24,4
	ldi R25,0
	std y+3,R25
	std y+2,R24
	ldi R24,192
	std y+1,R25
	std y+0,R24
	clr R18
	clr R19
	ldi R16,2
	ldi R17,0
	xcall _show_lcd
	.dbline 326
; 			  delay_1s();
	xcall _delay_1s
	.dbline 327
; 			  delay_1s();
	xcall _delay_1s
	.dbline 328
; 			  break;//无空间了
	xjmp L194
L202:
	.dbline 330
; 			 } 	
;  playtime.hour = 0x01;
	ldi R24,1
	std y+52,R24
	.dbline 331
;  playtime.min  = 0x01;
	std y+51,R24
	.dbline 332
;  playtime.sec  = 0x01;
	std y+50,R24
	xjmp L207

⌨️ 快捷键说明

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