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

📄 12232.s

📁 AVR单片机做的MP3
💻 S
📖 第 1 页 / 共 2 页
字号:
;           page -> R20
;              i -> R22
	.even
_clrscr::
	rcall push_gset2
	.dbline -1
	.dbline 128
; }  
; 
; void clrscr(void) 
; { 
	.dbline 131
; uint8 i; 
; uint8 page; 
; for (page=0;page<4;page++) 
	clr R20
	rjmp L32
L29:
	.dbline 132
; { 
	.dbline 133
;   SetPage(page,page); 
	mov R18,R20
	mov R16,R20
	rcall _SetPage
	.dbline 134
;   for (i=0;i<61;i++) 
	clr R22
	rjmp L36
L33:
	.dbline 135
	.dbline 136
	mov R18,R22
	mov R16,R22
	rcall _SetAddress
	.dbline 137
	clr R16
	rcall _PutCharL
	.dbline 138
	clr R16
	rcall _PutCharR
	.dbline 139
L34:
	.dbline 134
	inc R22
L36:
	.dbline 134
	cpi R22,61
	brlo L33
	.dbline 140
L30:
	.dbline 131
	inc R20
L32:
	.dbline 131
	cpi R20,4
	brlo L29
	.dbline -2
L28:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r page 20 c
	.dbsym r i 22 c
	.dbend
	.dbfunc e lcd_init _lcd_init fV
	.even
_lcd_init::
	.dbline -1
	.dbline 143
;   { 
;    SetAddress(i,i); 
;    PutCharL(0x00); 
;    PutCharR(0x00); 
;   } 
; } 
; }  
; void lcd_init(void)
; {
	.dbline 144
;   lcdini(); //reset                                                    
	rcall _lcdini
	.dbline 145
;   clrscr(); //clr  
	rcall _clrscr
	.dbline 146
;   clrscr();
	rcall _clrscr
	.dbline -2
L37:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e get_location _get_location fi
;              i -> <dead>
;          temp2 -> R10,R11
;          start -> y+4
;          temp1 -> R12,R13
;       location -> y+0
;          data2 -> R10
;          data1 -> R12
	.even
_get_location::
	rcall push_gset4
	mov R10,R18
	mov R12,R16
	sbiw R28,8
	.dbline -1
	.dbline 149
; }
; uint16 get_location(uint8 data1,uint8 data2)
; {
	.dbline 154
;  uint8 i;
;  uint16 temp1,temp2;
;  uint32 location;
;  uint32 start;
;  data1-=0xa1,data2-=0xa1;
	mov R24,R12
	subi R24,161
	mov R12,R24
	mov R24,R10
	subi R24,161
	mov R10,R24
	.dbline 155
;  temp1=data1*94;
	ldi R24,94
	mul R24,R12
	movw R12,R0
	.dbline 156
;  location=temp1+data2;
	mov R2,R10
	clr R3
	movw R4,R12
	add R4,R2
	adc R5,R3
	movw R2,R4
	clr R4
	clr R5
	movw R30,R28
	std z+0,R2
	std z+1,R3
	std z+2,R4
	std z+3,R5
	.dbline 157
;  location=location<<5;
	ldi R24,5
	ldi R25,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R24
	movw R16,R2
	movw R18,R4
	rcall lsl32
	movw R30,R28
	std z+0,R16
	std z+1,R17
	std z+2,R18
	std z+3,R19
	.dbline 158
;  temp1=location>>9;
	ldi R24,9
	ldi R25,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	st -y,R24
	movw R16,R2
	movw R18,R4
	rcall lsr32
	movw R12,R16
	.dbline 159
;  temp2=location%512;
	ldi R20,255
	ldi R21,1
	ldi R22,0
	ldi R23,0
	movw R30,R28
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	and R2,R20
	and R3,R21
	and R4,R22
	and R5,R23
	movw R10,R2
	.dbline 160
;  start=ClusConvLBA(zikustart);
	lds R16,_zikustart
	lds R17,_zikustart+1
	rcall _ClusConvLBA
	movw R30,R28
	std z+4,R16
	std z+5,R17
	std z+6,R18
	std z+7,R19
	.dbline 161
;  start=start+temp1;
	movw R2,R12
	clr R4
	clr R5
	movw R30,R28
	ldd R6,z+4
	ldd R7,z+5
	ldd R8,z+6
	ldd R9,z+7
	add R6,R2
	adc R7,R3
	adc R8,R4
	adc R9,R5
	movw R30,R28
	std z+4,R6
	std z+5,R7
	std z+6,R8
	std z+7,R9
	.dbline 162
;  ReadBlock(start);
	movw R30,R28
	ldd R16,z+4
	ldd R17,z+5
	ldd R18,z+6
	ldd R19,z+7
	rcall _ReadBlock
	.dbline 163
;  return temp2;
	movw R16,R10
	.dbline -2
L38:
	adiw R28,8
	rcall pop_gset4
	.dbline 0 ; func end
	ret
	.dbsym l i 1 c
	.dbsym r temp2 10 i
	.dbsym l start 4 l
	.dbsym r temp1 12 i
	.dbsym l location 0 l
	.dbsym r data2 10 c
	.dbsym r data1 12 c
	.dbend
	.dbfunc e show_chin _show_chin fV
;         window -> R20
;              j -> R22
;           loca -> R10
;              i -> R14
;              p -> R12
;            loc -> y+16
;          lenth -> y+14
;        adress1 -> R14
;           chin -> y+10
	.even
_show_chin::
	rcall push_arg4
	rcall push_gset5
	mov R14,R18
	.dbline -1
	.dbline 166
; }
; void show_chin(uint8 *chin,uint8  adress1,uint8 lenth,uint8 loc)
; {
	.dbline 167
;  uint8 i,j=0,p,window=0,loca;  
	clr R22
	.dbline 167
	clr R20
	.dbline 168
;  loca=0;
	clr R10
	.dbline 169
;  p=adress1;
	mov R12,R14
	.dbline 170
;  if(loc) loca=2;
	ldd R0,y+16
	tst R0
	brne X0
	rjmp L43
X0:
	.dbline 170
	ldi R24,2
	mov R10,R24
	rjmp L43
L42:
	.dbline 172
;  while(lenth)
;  {
	.dbline 173
;  for(i=0;i<32;i++)
	clr R14
	rjmp L48
L45:
	.dbline 174
;   {
	.dbline 175
;   if(p>76) window=1,p=p%61;
	ldi R24,76
	cp R24,R12
	brsh L49
	.dbline 175
	ldi R20,1
	ldi R17,61
	mov R16,R12
	rcall mod8u
	mov R12,R16
L49:
	.dbline 176
;   if(i<16)
	mov R24,R14
	cpi R24,16
	brsh L51
	.dbline 177
;    {
	.dbline 178
;     SetPage(loca,loca);   
	mov R18,R10
	mov R16,R10
	rcall _SetPage
	.dbline 179
;     SetAddress(p,p);
	mov R18,R12
	mov R16,R12
	rcall _SetAddress
	.dbline 180
;     if(window) PutCharR(chin[j]); 
	tst R20
	breq L53
	.dbline 180
	mov R30,R22
	clr R31
	ldd R0,y+10
	ldd R1,y+11
	add R30,R0
	adc R31,R1
	ldd R16,z+0
	rcall _PutCharR
	rjmp L52
L53:
	.dbline 181
;     else       PutCharL(chin[j]);
	mov R30,R22
	clr R31
	ldd R0,y+10
	ldd R1,y+11
	add R30,R0
	adc R31,R1
	ldd R16,z+0
	rcall _PutCharL
	.dbline 182
;    }
	rjmp L52
L51:
	.dbline 184
;   else
;    {
	.dbline 185
;    SetPage(loca+1,loca+1);
	mov R24,R10
	subi R24,255    ; addi 1
	mov R18,R24
	mov R16,R24
	rcall _SetPage
	.dbline 186
;    SetAddress(p-16,p-16);
	mov R24,R12
	subi R24,16
	mov R18,R24
	mov R16,R24
	rcall _SetAddress
	.dbline 187
;    if(window) PutCharR(chin[j]); 
	tst R20
	breq L55
	.dbline 187
	mov R30,R22
	clr R31
	ldd R0,y+10
	ldd R1,y+11
	add R30,R0
	adc R31,R1
	ldd R16,z+0
	rcall _PutCharR
	rjmp L56
L55:
	.dbline 188
;    else       PutCharL(chin[j]);
	mov R30,R22
	clr R31
	ldd R0,y+10
	ldd R1,y+11
	add R30,R0
	adc R31,R1
	ldd R16,z+0
	rcall _PutCharL
L56:
	.dbline 189
;    }
L52:
	.dbline 190
	inc R12
	.dbline 191
	inc R22
	.dbline 192
L46:
	.dbline 173
	inc R14
L48:
	.dbline 173
	mov R24,R14
	cpi R24,32
	brsh X1
	rjmp L45
X1:
	.dbline 193
	mov R24,R12
	subi R24,16
	mov R12,R24
	.dbline 194
	ldd R0,y+14
	dec R0
	std y+14,R0
	.dbline 195
L43:
	.dbline 171
	ldd R0,y+14
	tst R0
	breq X2
	rjmp L42
X2:
	.dbline -2
L39:
	rcall pop_gset5
	adiw R28,4
	.dbline 0 ; func end
	ret
	.dbsym r window 20 c
	.dbsym r j 22 c
	.dbsym r loca 10 c
	.dbsym r i 14 c
	.dbsym r p 12 c
	.dbsym l loc 16 c
	.dbsym l lenth 14 c
	.dbsym r adress1 14 c
	.dbsym l chin 10 pc
	.dbend
	.dbfunc e show_filename _show_filename fi
;          start -> R20,R21
;        adress1 -> R22
;       chinese1 -> R20,R21
	.even
_show_filename::
	rcall push_gset2
	mov R22,R18
	movw R20,R16
	.dbline -1
	.dbline 199
;    p++;
;    j++;
;   }     
;   p-=16;
;   lenth--;
;  }
;  
; }
; uint16 show_filename(uint8  *chinese1,uint8 adress1)                                            
; {            
	.dbline 201
;  uint16 start;
;  start=get_location(chinese1[0],chinese1[1]);
	movw R30,R20
	ldd R18,z+1
	movw R30,R20
	ldd R16,z+0
	rcall _get_location
	movw R20,R16
	.dbline 202
;  return start;
	.dbline -2
L57:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r start 20 i
	.dbsym r adress1 22 c
	.dbsym r chinese1 20 pc
	.dbend
	.area bss(ram, con, rel)
	.dbfile D:\ICCFIL~1\五键MP3ICC\12232.c
_zikustart::
	.blkb 2
	.dbsym e zikustart _zikustart i

⌨️ 快捷键说明

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