📄 task.lis
字号:
05DA .dbline 182
05DA 21E0 ldi R18,1
05DC 02E4 ldi R16,66
05DE 0E940000 xcall _LCD_write_byte
05E2 .dbline 183
05E2 L83:
05E2 .dbline 180
05E2 ; while(key_value--)
05E2 20900000 lds R2,_key_value
05E6 3324 clr R3
05E8 822D mov R24,R2
05EA 8150 subi R24,1
05EC 80930000 sts _key_value,R24
05F0 2220 tst R2
05F2 99F7 brne L82
05F4 .dbline 185
05F4 ; {
05F4 ; LCD_write_byte(0x42,1);
05F4 ; }
05F4 ;
05F4 ; sta_SetVolume(59+set_volume*5,1);
05F4 21E0 ldi R18,1
05F6 20900000 lds R2,_set_volume
05FA 85E0 ldi R24,5
05FC 829D mul R24,R2
05FE 002D mov R16,R0
0600 055C subi R16,197 ; addi 59
0602 0E940000 xcall _sta_SetVolume
0606 .dbline 186
0606 ; key_value=0;
0606 2224 clr R2
0608 20920000 sts _key_value,R2
060C .dbline 187
060C ; break;
060C 8DC0 xjmp L71
060E L85:
060E .dbline 190
060E ; }
060E ; case next:
060E ; {
060E .dbline 191
060E ; sta_StartDecoder();
060E 0E940000 xcall _sta_StartDecoder
0612 .dbline 192
0612 ; if(play_state==2)
0612 80910000 lds R24,_play_state
0616 8230 cpi R24,2
0618 11F4 brne L86
061A .dbline 193
061A ; sta_PauseDecoder();
061A 0E940000 xcall _sta_PauseDecoder
061E L86:
061E .dbline 194
061E ; sta_SetVolume(59+set_volume*5,1);
061E 21E0 ldi R18,1
0620 20900000 lds R2,_set_volume
0624 85E0 ldi R24,5
0626 829D mul R24,R2
0628 002D mov R16,R0
062A 055C subi R16,197 ; addi 59
062C 0E940000 xcall _sta_SetVolume
0630 .dbline 196
0630 ;
0630 ; SONG_state=song_over;
0630 85E0 ldi R24,5
0632 80930000 sts _SONG_state,R24
0636 .dbline 197
0636 ; key_value=0;
0636 2224 clr R2
0638 20920000 sts _key_value,R2
063C .dbline 198
063C ; disp_state=5;
063C 80930100 sts _disp_state,R24
0640 .dbline 199
0640 ; break;
0640 73C0 xjmp L71
0642 L88:
0642 .dbline 202
0642 ; }
0642 ; case back:
0642 ; {
0642 .dbline 203
0642 ; if(MP3_current_number==1)
0642 80910000 lds R24,_MP3_current_number
0646 8130 cpi R24,1
0648 31F4 brne L89
064A .dbline 204
064A ; MP3_current_number=MP3_all_number-1;
064A 80910000 lds R24,_MP3_all_number
064E 8150 subi R24,1
0650 80930000 sts _MP3_current_number,R24
0654 05C0 xjmp L90
0656 L89:
0656 .dbline 206
0656 ; else
0656 ; MP3_current_number=MP3_current_number-2;
0656 80910000 lds R24,_MP3_current_number
065A 8250 subi R24,2
065C 80930000 sts _MP3_current_number,R24
0660 L90:
0660 .dbline 208
0660 ;
0660 ; sta_StartDecoder();
0660 0E940000 xcall _sta_StartDecoder
0664 .dbline 209
0664 ; if(play_state==2)
0664 80910000 lds R24,_play_state
0668 8230 cpi R24,2
066A 11F4 brne L91
066C .dbline 210
066C ; sta_PauseDecoder();
066C 0E940000 xcall _sta_PauseDecoder
0670 L91:
0670 .dbline 211
0670 ; sta_SetVolume(59+set_volume*5,1);
0670 21E0 ldi R18,1
0672 20900000 lds R2,_set_volume
0676 85E0 ldi R24,5
0678 829D mul R24,R2
067A 002D mov R16,R0
067C 055C subi R16,197 ; addi 59
067E 0E940000 xcall _sta_SetVolume
0682 .dbline 213
0682 ;
0682 ; SONG_state=song_over;
0682 85E0 ldi R24,5
0684 80930000 sts _SONG_state,R24
0688 .dbline 214
0688 ; key_value=0;
0688 2224 clr R2
068A 20920000 sts _key_value,R2
068E .dbline 215
068E ; disp_state=5;
068E 80930100 sts _disp_state,R24
0692 .dbline 216
0692 ; break;
0692 4AC0 xjmp L71
0694 L93:
0694 .dbline 219
0694 ; }
0694 ; case play:
0694 ; {
0694 .dbline 220
0694 ; key_value=0;
0694 2224 clr R2
0696 20920000 sts _key_value,R2
069A .dbline 221
069A ; play_state++;
069A 80910000 lds R24,_play_state
069E 8F5F subi R24,255 ; addi 1
06A0 80930000 sts _play_state,R24
06A4 .dbline 223
06A4 ;
06A4 ; switch(play_state)
06A4 482F mov R20,R24
06A6 5527 clr R21
06A8 4130 cpi R20,1
06AA E0E0 ldi R30,0
06AC 5E07 cpc R21,R30
06AE 49F0 breq L97
06B0 4230 cpi R20,2
06B2 E0E0 ldi R30,0
06B4 5E07 cpc R21,R30
06B6 21F1 breq L100
06B8 4330 cpi R20,3
06BA E0E0 ldi R30,0
06BC 5E07 cpc R21,R30
06BE 49F1 breq L101
06C0 33C0 xjmp L71
06C2 X12:
06C2 .dbline 224
06C2 ; {
06C2 L97:
06C2 .dbline 226
06C2 ; case 1: //播放
06C2 ; {
06C2 .dbline 227
06C2 ; if(STA013_INIT)
06C2 20900200 lds R2,_STA013_INIT
06C6 2220 tst R2
06C8 91F0 breq L98
06CA .dbline 228
06CA ; {sta_Init();
06CA .dbline 228
06CA 0E940000 xcall _sta_Init
06CE .dbline 229
06CE ; sta_StartDecoder();
06CE 0E940000 xcall _sta_StartDecoder
06D2 .dbline 230
06D2 ; sta_SetVolume(59+set_volume*5,1);
06D2 21E0 ldi R18,1
06D4 20900000 lds R2,_set_volume
06D8 85E0 ldi R24,5
06DA 829D mul R24,R2
06DC 002D mov R16,R0
06DE 055C subi R16,197 ; addi 59
06E0 0E940000 xcall _sta_SetVolume
06E4 .dbline 231
06E4 ; STA013_INIT--;
06E4 80910200 lds R24,_STA013_INIT
06E8 8150 subi R24,1
06EA 80930200 sts _STA013_INIT,R24
06EE .dbline 232
06EE ; }
06EE L98:
06EE .dbline 234
06EE ;
06EE ; SONG_state=song_start;
06EE 81E0 ldi R24,1
06F0 80930000 sts _SONG_state,R24
06F4 .dbline 235
06F4 ; LCD_write_tubiao(0,5,1);
06F4 8883 std y+0,R24
06F6 25E0 ldi R18,5
06F8 0027 clr R16
06FA 0E940000 xcall _LCD_write_tubiao
06FE .dbline 236
06FE ; break;
06FE 14C0 xjmp L71
0700 L100:
0700 .dbline 239
0700 ; }
0700 ; case 2: //暂停
0700 ; {
0700 .dbline 240
0700 ; sta_PauseDecoder();
0700 0E940000 xcall _sta_PauseDecoder
0704 .dbline 241
0704 ; LCD_write_tubiao(0,5,2);
0704 82E0 ldi R24,2
0706 8883 std y+0,R24
0708 25E0 ldi R18,5
070A 0027 clr R16
070C 0E940000 xcall _LCD_write_tubiao
0710 .dbline 242
0710 ; break;
0710 0BC0 xjmp L71
0712 L101:
0712 .dbline 245
0712 ; }
0712 ; case 3: //继续
0712 ; {
0712 .dbline 246
0712 ; play_state=1;
0712 81E0 ldi R24,1
0714 80930000 sts _play_state,R24
0718 .dbline 247
0718 ; sta_ResumeDecoder();
0718 0E940000 xcall _sta_ResumeDecoder
071C .dbline 248
071C ; LCD_write_tubiao(0,5,1);
071C 81E0 ldi R24,1
071E 8883 std y+0,R24
0720 25E0 ldi R18,5
0722 0027 clr R16
0724 0E940000 xcall _LCD_write_tubiao
0728 .dbline 249
0728 ; break;
0728 .dbline 253
0728 ; }
0728 ; }
0728 ;
0728 ; break;
0728 L70:
0728 L71:
0728 .dbline 256
0728 L68:
0728 .dbline -2
0728 L67:
0728 2196 adiw R28,1
072A 0E940000 xcall pop_gset1
072E .dbline 0 ; func end
072E 0895 ret
0730 .dbend
.area bss(ram, con, rel)
000B .dbfile E:\MYWORK~1\开发设计\AVR-MP3\mp3开发板光盘\驱动程序\MP3BOA~1.8\task.c
000B L107:
000B .blkb 1
000C L108:
000C .blkb 2
000E L109:
000E .blkb 2
0010 L110:
0010 .blkb 1
0011 L111:
0011 .blkb 72
0059 L112:
0059 .blkb 72
00A1 L113:
00A1 .blkb 24
.area text(rom, con, rel)
0730 .dbfile E:\MYWORK~1\开发设计\AVR-MP3\mp3开发板光盘\驱动程序\MP3BOA~1.8\task.c
0730 .dbfunc e DISP_task _DISP_task fV
0730 .dbsym s piont_24_code L113 A[24:24]c
0730 .dbsym s buffer_l L112 A[72:72]c
0730 .dbsym s buffer_h L111 A[72:72]c
0730 .dbsym s disp_j L110 c
0730 .dbsym s disp_i L109 i
0730 .dbsym s disp_number L108 i
0730 .dbsym s disp_point L107 c
0730 ; m -> R22
0730 ; n -> R20
.even
0730 _DISP_task::
0730 0E940000 xcall push_gset2
0734 .dbline -1
0734 .dbline 261
0734 ; }
0734 ; }
0734 ; }
0734 ; }
0734 ;
0734 ; //=======================================================================
0734 ; void DISP_task(void)
0734 ; {
0734 .dbline 273
0734 ; static uint8 disp_point;
0734 ; static uint16 disp_number;
0734 ; static uint16 disp_i;
0734 ; static uint8 disp_j;
0734 ; static uint8 buffer_h[72];
0734 ; static uint8 buffer_l[72];
0734 ; static uint8 piont_24_code[24];
0734 ;
0734 ; uint8 n;
0734 ; uint8 m;
0734 ;
0734 ; if(mp3_info.Name_number)
0734 20903400 lds R2,_mp3_info+52
0738 2220 tst R2
073A 09F4 brne X23
073C 5EC1 xjmp L114
073E X23:
073E .dbline 274
073E ; {
073E .dbline 275
073E ; if(timer1_over)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -