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

📄 playedit.s

📁 mega128+VS1003做的mp3的程序 可以用WINAVR编译
💻 S
📖 第 1 页 / 共 5 页
字号:
	movw R24,R28
	adiw R24,10
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,32
	mul R24,R2
	add R22,R0
	adc R23,R1
	.dbline 109
; 								EEPROMWriteBytes(point,&FILE[active[day+2]],sizeof(FILE[0]));
	clr R25
	std y+1,R25
	std y+0,R24
	movw R24,R28
	adiw R24,10
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,32
	mul R24,R2
	movw R18,R0
	movw R24,R28
	adiw R24,16
	add R18,R24
	adc R19,R25
	movw R16,R22
	xcall _EEPROMWriteBytes
	.dbline 110
; 								break;
	xjmp L2
L82:
	.dbline 111
	movw R24,R28
	adiw R24,11
	mov R30,R10
	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,44
	add R30,R24
	adc R31,R25
	ldi R24,255
	std z+0,R24
	.dbline 112
	movw R24,R28
	adiw R24,11
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,32
	mul R24,R2
	add R22,R0
	adc R23,R1
	.dbline 113
	clr R25
	std y+1,R25
	std y+0,R24
	movw R24,R28
	adiw R24,11
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,32
	mul R24,R2
	movw R18,R0
	movw R24,R28
	adiw R24,16
	add R18,R24
	adc R19,R25
	movw R16,R22
	xcall _EEPROMWriteBytes
	.dbline 114
	.dbline 116
	xjmp L2
L15:
	.dbline 53
	xjmp L14
L16:
	.dbline -2
L1:
	adiw R28,63
	adiw R28,63
	adiw R28,63
	adiw R28,63
	adiw R28,23  ; offset = 275
	xcall pop_gset5
	.dbline 0 ; func end
	ret
	.dbsym r move 14 c
	.dbsym r point 22 i
	.dbsym l temp 272 c
	.dbsym l FILE 16 A[256:8]X
	.dbsym l active 8 A[8:8]c
	.dbsym r day 10 c
	.dbsym r data 20 c
	.dbend
	.dbfunc e Play_Edit _Play_Edit fV
;          point -> y+272
;           move -> R14
;           FILE -> y+16
;           temp -> R20
;         active -> y+8
;            day -> R22
;           data -> R20
	.even
_Play_Edit::
	xcall push_gset5
	mov R20,R16
	sbiw R28,63
	sbiw R28,63
	sbiw R28,63
	sbiw R28,63
	sbiw R28,22  ; offset = 274
	.dbline -1
	.dbline 125
; 						 case 3:FILE[active[day+3]].active = 0xff;
; 						        point += active[day+3]*sizeof(FILE[0]);	
; 								EEPROMWriteBytes(point,&FILE[active[day+3]],sizeof(FILE[0]));
; 						 	    break;
; 			            }
; 			goto  RELOAD;
; 						
;  }
; 
; }
; /*
; 编辑
; */					
; void Play_Edit(uchar data)
; {
	.dbline 134
;  uchar day;
;  uchar temp;
;  uchar active[8];
;  uchar move;
;  struct fileinfor FILE[8];
;  uint point;
;  //检查空间
; 
;  point = 0;
	clr R0
	clr R1
	movw R30,R28
	subi R30,240  ; addi 272
	sbci R31,254
	std z+1,R1
	std z+0,R0
	.dbline 135
;  point += 8*data*sizeof(FILE[0]);
	ldi R24,8
	mul R24,R20
	ldi R24,32
	mul R24,R0
	movw R30,R28
	subi R30,240  ; addi 272
	sbci R31,254
	ldd R16,z+0
	ldd R17,z+1
	add R16,R0
	adc R17,R1
	movw R30,R28
	subi R30,240  ; addi 272
	sbci R31,254
	std z+1,R17
	std z+0,R16
	.dbline 137
;  
;  for(day=0; day<8; day++)
	clr R22
	xjmp L91
L88:
	.dbline 138
	.dbline 139
	movw R30,R28
	subi R30,240  ; addi 272
	sbci R31,254
	ldd R24,z+0
	ldd R25,z+1
	adiw R24,32
	movw R30,R28
	subi R30,240  ; addi 272
	sbci R31,254
	std z+1,R25
	std z+0,R24
	.dbline 140
	ldi R24,32
	ldi R25,0
	std y+1,R25
	std y+0,R24
	mul R24,R22
	movw R18,R0
	movw R24,R28
	adiw R24,16
	add R18,R24
	adc R19,R25
	movw R30,R28
	subi R30,240  ; addi 272
	sbci R31,254
	ldd R16,z+0
	ldd R17,z+1
	xcall _EEPROMReadBytes
	.dbline 141
L89:
	.dbline 137
	inc R22
L91:
	.dbline 137
	cpi R22,8
	brlo L88
	.dbline 142
;     {
;  	 point += sizeof(FILE[day]);
; 	 EEPROMReadBytes(point,&FILE[day],sizeof(FILE[day]));
;     } 
;  day = 0;
	clr R22
	.dbline 143
;  for(temp=0; temp<8; temp++)
	clr R20
	xjmp L95
L92:
	.dbline 144
;  {
	.dbline 145
;   if(FILE[temp].active == 0x55) {active[day] = temp;day++;} 
	ldi R24,32
	mul R24,R20
	movw R30,R0
	movw R24,R28
	adiw R24,44
	add R30,R24
	adc R31,R25
	ldd R24,z+0
	cpi R24,85
	brne L96
	.dbline 145
	.dbline 145
	movw R24,R28
	adiw R24,8
	mov R30,R22
	clr R31
	add R30,R24
	adc R31,R25
	std z+0,R20
	.dbline 145
	inc R22
	.dbline 145
L96:
	.dbline 146
L93:
	.dbline 143
	inc R20
L95:
	.dbline 143
	cpi R20,8
	brlo L92
	.dbline 147
;  } 
;  active[day] = 0xff;
	movw R24,R28
	adiw R24,8
	mov R30,R22
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,255
	std z+0,R24
	.dbline 148
;  Print_val(day);
	mov R16,R22
	clr R17
	xcall _Print_val
	.dbline 149
;  day = 0;
	clr R22
	.dbline 150
;  temp = 0;
	clr R20
	xjmp L100
L99:
	.dbline 151
;  while(1){ //显示出来
	.dbline 152
;  		    show_clear();
	xcall _show_clear
	.dbline 153
; 			show_lcd(0, 0, 192, 2, &show_main[0],0);
	clr R2
	clr R3
	std y+7,R3
	std y+6,R2
	ldi R24,<_show_main
	ldi R25,>_show_main
	std y+5,R25
	std y+4,R24
	ldi R24,2
	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
	clr R16
	clr R17
	xcall _show_lcd
	.dbline 154
; 			move = 0;
	clr R14
	.dbline 155
; 				     if(active[day]   == 0xff) goto NEXT; 
	movw R24,R28
	adiw R24,8
	mov R30,R22
	clr R31
	add R30,R24
	adc R31,R25
	ldd R24,z+0
	cpi R24,255
	brne L102
	.dbline 155
	xjmp L104
L102:
	.dbline 156
; 			         if(active[day]   != 0xff){move += 1; 
	movw R24,R28
	adiw R24,8
	mov R30,R22
	clr R31
	add R30,R24
	adc R31,R25
	ldd R24,z+0
	cpi R24,255
	breq L105
	.dbline 156
	.dbline 156
	inc R14
	.dbline 157
; 					 					      show_name(&FILE[active[day]],2,0);
	clr R2
	clr R3
	std y+1,R3
	std y+0,R2
	ldi R18,2
	ldi R19,0
	movw R24,R28
	adiw R24,8
	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 _show_name
	.dbline 158
; 											 }
L105:
	.dbline 159
; 				     if(active[day+1]   == 0xff) goto NEXT;							 									 
	movw R24,R28
	adiw R24,9
	mov R30,R22
	clr R31
	add R30,R24
	adc R31,R25
	ldd R24,z+0
	cpi R24,255
	brne L107
	.dbline 159
	xjmp L104
L107:
	.dbline 160
; 					 if(active[day+1] != 0xff) {move += 1;
	movw R24,R28
	adiw R24,9
	mov R30,R22
	clr R31
	add R30,R24
	adc R31,R25
	ldd R24,z+0
	cpi R24,255
	breq L110
	.dbline 160
	.dbline 160
	inc R14
	.dbline 161
; 					                          show_name(&FILE[active[day+1]],4,0);
	clr R2
	clr R3
	std y+1,R3
	std y+0,R2
	ldi R18,4
	ldi R19,0
	movw R24,R28
	adiw R24,9
	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 _show_name
	.dbline 162
; 											 } 
L110:
	.dbline 163
; 					 if(active[day+2]   == 0xff) goto NEXT;
	movw R24,R28
	adiw R24,10
	mov R30,R22
	clr R31
	add R30,R24
	adc R31,R25
	ldd R24,z+0
	cpi R24,255
	brne L114
	.dbline 163
	xjmp L104
L114:
	.dbline 164
; 				     if(active[day+2] != 0xff) {move += 1;
	movw R24,R28
	adiw R24,10
	mov R30,R22
	clr R31
	add R30,R24
	adc R31,R25
	ldd R24,z+0
	cpi R24,255
	breq L117
	.dbline 164
	.dbline 164
	inc R14
	.dbline 165
; 					                          show_name(&FILE[active[day+2]],6,0);
	clr R2
	clr R3
	std y+1,R3
	std y+0,R2
	ldi R18,6
	ldi R19,0
	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 _show_name
	.dbline 166
; 											 }
L117:
L104:
	.dbline 168
; 	        NEXT:										 
;             if(move != 0){											   
	tst R14
	brne X13
	xjmp L121
X13:
	.dbline 168
	.dbline 169
	mov R12,R20
	clr R13
	tst R12
	brne X9
	tst R13
	breq L126
X9:
	movw R24,R12
	cpi R24,1
	ldi R30,0
	cpc R25,R30
	breq L127
	cpi R24,2
	ldi R30,0
	cpc R25,R30
	brne X14
	xjmp L129
X14:
	xjmp L123
X10:
	.dbline 169
; 						switch(temp){
L126:
	.dbline 170
; 									 case 0:show_name(&FILE[active[day]],2,1);break;
	ldi R24,1
	ldi R25,0
	std y+1,R25
	std y+0,R24
	ldi R18,2
	ldi R19,0
	movw R24,R28
	adiw R24,8
	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 _show_name
	.dbline 170
	xjmp L124
L127:
	.dbline 171
; 									 case 1:show_name(&FILE[active[day+1]],4,1);break;
	ldi R24,1
	ldi R25,0
	std y+1,R25
	std y+0,R24
	ldi R18,4
	ldi R19,0
	movw R24,R28
	adiw R24,9
	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 _show_name
	.dbline 171
	xjmp L124
L129:
	.dbline 172
; 									 case 2:show_name(&FILE[active[day+2]],6,1);break;
	ldi R24,1
	ldi R25,0
	std y+1,R25
	std y+0,R24
	ldi R18,6
	ldi R19,0
	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 _show_name
	.dbline 172
L123:
L124:
	.dbline 174
; 						  			}
; 						} 
L121:
	.dbline 175
; 			KEYBUF_NULL;
	clr R2
	sts _keybuf,R2
	.dbline 175
L131:
	.dbline 176
L132:
	.dbline 176
; 			while(keybuf == NULL);
	lds R2,_keybuf
	tst R2
	breq L131
	.dbline 177
; 			if(keybuf == K_UP){
	mov R24,R2
	cpi R24,3
	brne L134
	.dbline 177
	.dbline 178
; 					  	       if(--temp == 255){
	mov R24,R20
	subi R24,1
	mov R20,R24
	cpi R20,255
	brne L136
	.dbline 178
	.dbline 179
; 							   			 		 temp = 0;
	clr R20
	.dbline 180
; 												 if(day != 0) {day -= 3;temp=2;} 
	tst R22
	breq L138
	.dbline 180
	.dbline 180
	subi R22,3
	.dbline 180
	ldi R20,2
	.dbline 180
L138:
	.dbline 181
; 							                    } 
L136:
	.dbline 182
; 			                  }
L134:
	.dbline 183
; 		    if(keybuf == K_DOWN){
	lds R24,_keybuf
	cpi R24,1
	brne L140
	.dbline 183
	.dbline 184
; 					  	 	   if(move !=0){
	tst R14
	breq L142
	.dbline 184
	.dbline 185
; 							   			 	if(++temp == move){
	mov R24,R20
	subi R24,255    ; addi 1
	mov R20,R24
	cp R24,R14
	brne L144
	.dbline 185
	.dbline 186
; 										    		  	 	  temp = 0;
	clr R20
	.dbline 187
; 												              if(move == 3) day += 3;  
	mov R24,R14
	cpi R24,3
	brne L146
	.dbline 187
	subi R22,253    ; addi 3
L146:
	.dbline 188
L144:
	.dbline 188
; 							               } 				  }
L142:
	.dbline 189
; 			                    }
L140:
	.dbline 190
; 			if(keybuf == K_ESC) break;
	lds R24,_keybuf
	cpi R24,5
	brne L148
	.dbline 190
	xjmp L101
L148:
	.dbline 191
; 			if(keybuf != K_ENTER) continue;
	lds R24,_keybuf
	cpi R24,4
	breq L150
	.dbline 191
	xjmp L100
L150:
	.dbline 193
	mov R10,R20
	clr R11
	tst R10
	brne X11
	tst R11
	breq L155
X11:
	movw R24,R10
	cpi R24,1
	ldi R30,0
	cpc R25,R30
	brne X15
	xjmp L158
X15:
	cpi R24,2
	ldi R30,0
	cpc R25,R30
	brne X16
	xjmp L163
X16:
	cpi R24,3
	ldi R30,0
	cpc R25,R30
	brne X17
	xjmp L168
X17:
	xjmp L152
X12:
	.dbline 193
; 			
; 			switch(temp){
L155:
	.dbline 194
; 						 case 0:if(FILE[active[day]].filename[0] == 0x5c)
	movw R24,R28
	adiw R24,8
	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
	breq X18
	xjmp L153
X18:
	.dbline 195
; 						 	    mp3_play(&FILE[active[day]].filename[0],0);
	clr R18
	clr R19
	movw R24,R28
	adiw R24,8
	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 196
; 								break;
	xjmp L153
L158:
	.dbline 197
; 						 case 1:if(FILE[active[day+1]].filename[0] == 0x5c)
	movw R24,R28
	adiw R24,9
	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
	breq X19
	xjmp L153
X19:
	.dbline 198
; 						 	    mp3_play(&FILE[active[day+1]].filename[0],0);
	clr R18
	clr R19
	movw R24,R28
	adiw R24,9
	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 199
; 								break;
	xjmp L153
L163:
	.dbline 200
; 						 case 2:if(FILE[active[day+2]].filename[0] == 0x5c)
	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 R30,R0
	movw R24,R28

⌨️ 快捷键说明

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