📄 task.lis
字号:
0402 09F0 breq X10
0404 41C0 xjmp L50
0406 X10:
0406 .dbline 132
0406 ; if((UNICODE_point>0)&(CHINALIB_point>0))
0406 40E0 ldi R20,0
0408 50E0 ldi R21,0
040A 60E0 ldi R22,0
040C 70E0 ldi R23,0
040E 40900200 lds R4,_UNICODE_point+2
0412 50900300 lds R5,_UNICODE_point+2+1
0416 20900000 lds R2,_UNICODE_point
041A 30900100 lds R3,_UNICODE_point+1
041E 2416 cp R2,R20
0420 3506 cpc R3,R21
0422 4606 cpc R4,R22
0424 5706 cpc R5,R23
0426 21F0 breq L55
0428 81E0 ldi R24,1
042A 90E0 ldi R25,0
042C 6C01 movw R12,R24
042E 02C0 xjmp L56
0430 L55:
0430 CC24 clr R12
0432 DD24 clr R13
0434 L56:
0434 40E0 ldi R20,0
0436 50E0 ldi R21,0
0438 60E0 ldi R22,0
043A 70E0 ldi R23,0
043C 40900200 lds R4,_CHINALIB_point+2
0440 50900300 lds R5,_CHINALIB_point+2+1
0444 20900000 lds R2,_CHINALIB_point
0448 30900100 lds R3,_CHINALIB_point+1
044C 2416 cp R2,R20
044E 3506 cpc R3,R21
0450 4606 cpc R4,R22
0452 5706 cpc R5,R23
0454 21F0 breq L57
0456 81E0 ldi R24,1
0458 90E0 ldi R25,0
045A 5C01 movw R10,R24
045C 02C0 xjmp L58
045E L57:
045E AA24 clr R10
0460 BB24 clr R11
0462 L58:
0462 1601 movw R2,R12
0464 2A20 and R2,R10
0466 3B20 and R3,R11
0468 2220 tst R2
046A 11F4 brne X2
046C 3320 tst R3
046E 61F0 breq L53
0470 X2:
0470 .dbline 133
0470 ; LCD_write_String(6,2,8,buffer,0);
0470 2224 clr R2
0472 2C82 std y+4,R2
0474 80E0 ldi R24,<_buffer
0476 90E0 ldi R25,>_buffer
0478 9B83 std y+3,R25
047A 8A83 std y+2,R24
047C 88E0 ldi R24,8
047E 8883 std y+0,R24
0480 22E0 ldi R18,2
0482 06E0 ldi R16,6
0484 0E940000 xcall _LCD_write_String
0488 L53:
0488 L50:
0488 .dbline 135
0488 ;
0488 ; if((MP3_current_number==1)|(play_state==0))
0488 80910000 lds R24,_MP3_current_number
048C 8130 cpi R24,1
048E 21F4 brne L61
0490 81E0 ldi R24,1
0492 90E0 ldi R25,0
0494 6C01 movw R12,R24
0496 02C0 xjmp L62
0498 L61:
0498 CC24 clr R12
049A DD24 clr R13
049C L62:
049C 20900000 lds R2,_play_state
04A0 2220 tst R2
04A2 21F4 brne L63
04A4 81E0 ldi R24,1
04A6 90E0 ldi R25,0
04A8 5C01 movw R10,R24
04AA 02C0 xjmp L64
04AC L63:
04AC AA24 clr R10
04AE BB24 clr R11
04B0 L64:
04B0 1601 movw R2,R12
04B2 2A28 or R2,R10
04B4 3B28 or R3,R11
04B6 2220 tst R2
04B8 11F4 brne X3
04BA 3320 tst R3
04BC 79F0 breq L59
04BE X3:
04BE .dbline 136
04BE ; {SONG_state=song_stop;
04BE .dbline 136
04BE 2224 clr R2
04C0 20920000 sts _SONG_state,R2
04C4 .dbline 137
04C4 ; if(play_state!=2)
04C4 80910000 lds R24,_play_state
04C8 8230 cpi R24,2
04CA 59F0 breq L60
04CC .dbline 138
04CC ; {play_state=0;
04CC .dbline 138
04CC 20920000 sts _play_state,R2
04D0 .dbline 139
04D0 ; LCD_write_tubiao(0,5,0);
04D0 2882 std y+0,R2
04D2 25E0 ldi R18,5
04D4 0027 clr R16
04D6 0E940000 xcall _LCD_write_tubiao
04DA .dbline 140
04DA ; }
04DA .dbline 141
04DA ; }
04DA 03C0 xjmp L60
04DC L59:
04DC .dbline 143
04DC ; else
04DC ; {SONG_state=song_start;
04DC .dbline 143
04DC 81E0 ldi R24,1
04DE 80930000 sts _SONG_state,R24
04E2 .dbline 144
04E2 ; }
04E2 L60:
04E2 .dbline 145
04E2 ; disp_state=5;
04E2 85E0 ldi R24,5
04E4 80930100 sts _disp_state,R24
04E8 .dbline 146
04E8 ; break;
04E8 L7:
04E8 L8:
04E8 .dbline -2
04E8 L1:
04E8 2D96 adiw R28,13
04EA 0E940000 xcall pop_gset4
04EE .dbline 0 ; func end
04EE 0895 ret
04F0 .dbsym r doing 10 c
04F0 .dbsym l FAT_Clus 5 l
04F0 .dbend
04F0 .dbfunc e KBOD_task _KBOD_task fV
.even
04F0 _KBOD_task::
04F0 0E940000 xcall push_gset1
04F4 2197 sbiw R28,1
04F6 .dbline -1
04F6 .dbline 153
04F6 ; }
04F6 ; }
04F6 ; }
04F6 ;
04F6 ; //=======================================================================
04F6 ; void KBOD_task(void)
04F6 ; {
04F6 .dbline 154
04F6 ; if(key_value!=0)
04F6 20900000 lds R2,_key_value
04FA 2220 tst R2
04FC 09F4 brne X13
04FE 14C1 xjmp L68
0500 X13:
0500 .dbline 155
0500 ; {
0500 .dbline 156
0500 ; switch(key_value)
0500 422D mov R20,R2
0502 5527 clr R21
0504 483D cpi R20,216
0506 E0E0 ldi R30,0
0508 5E07 cpc R21,R30
050A 09F4 brne X14
050C 80C0 xjmp L85
050E X14:
050E 88ED ldi R24,216
0510 90E0 ldi R25,0
0512 8417 cp R24,R20
0514 9507 cpc R25,R21
0516 7CF0 brlt L103
0518 L102:
0518 4837 cpi R20,120
051A E0E0 ldi R30,0
051C 5E07 cpc R21,R30
051E 09F4 brne X15
0520 46C0 xjmp L79
0522 X15:
0522 4837 cpi R20,120
0524 E0E0 ldi R30,0
0526 5E07 cpc R21,R30
0528 0CF4 brge X16
052A FEC0 xjmp L70
052C X16:
052C L104:
052C 483B cpi R20,184
052E E0E0 ldi R30,0
0530 5E07 cpc R21,R30
0532 89F0 breq L73
0534 F9C0 xjmp L70
0536 L103:
0536 483E cpi R20,232
0538 E0E0 ldi R30,0
053A 5E07 cpc R21,R30
053C 09F4 brne X17
053E 81C0 xjmp L88
0540 X17:
0540 483E cpi R20,232
0542 E0E0 ldi R30,0
0544 5E07 cpc R21,R30
0546 0CF4 brge X18
0548 EFC0 xjmp L70
054A X18:
054A L105:
054A 403F cpi R20,240
054C E0E0 ldi R30,0
054E 5E07 cpc R21,R30
0550 09F4 brne X19
0552 A0C0 xjmp L93
0554 X19:
0554 E9C0 xjmp L70
0556 X11:
0556 .dbline 157
0556 ; {
0556 L73:
0556 .dbline 159
0556 ; case volume_add:
0556 ; {
0556 .dbline 160
0556 ; if(set_volume<8)
0556 80910000 lds R24,_set_volume
055A 8830 cpi R24,8
055C 18F4 brsh L74
055E .dbline 161
055E ; {set_volume++;
055E .dbline 161
055E 8F5F subi R24,255 ; addi 1
0560 80930000 sts _set_volume,R24
0564 .dbline 162
0564 ; }
0564 L74:
0564 .dbline 163
0564 ; LCD_set_XY(59,5);
0564 25E0 ldi R18,5
0566 0BE3 ldi R16,59
0568 0E940000 xcall _LCD_set_XY
056C .dbline 164
056C ; key_value=set_volume*3;
056C 20900000 lds R2,_set_volume
0570 83E0 ldi R24,3
0572 829D mul R24,R2
0574 00920000 sts _key_value,R0
0578 04C0 xjmp L77
057A L76:
057A .dbline 166
057A .dbline 167
057A 21E0 ldi R18,1
057C 0AE5 ldi R16,90
057E 0E940000 xcall _LCD_write_byte
0582 .dbline 168
0582 L77:
0582 .dbline 165
0582 ; while(key_value--)
0582 20900000 lds R2,_key_value
0586 3324 clr R3
0588 822D mov R24,R2
058A 8150 subi R24,1
058C 80930000 sts _key_value,R24
0590 2220 tst R2
0592 99F7 brne L76
0594 .dbline 169
0594 ; {
0594 ; LCD_write_byte(0x5A,1);
0594 ; }
0594 ; sta_SetVolume(59+set_volume*5,1);
0594 21E0 ldi R18,1
0596 20900000 lds R2,_set_volume
059A 85E0 ldi R24,5
059C 829D mul R24,R2
059E 002D mov R16,R0
05A0 055C subi R16,197 ; addi 59
05A2 0E940000 xcall _sta_SetVolume
05A6 .dbline 170
05A6 ; key_value=0;
05A6 2224 clr R2
05A8 20920000 sts _key_value,R2
05AC .dbline 171
05AC ; break;
05AC BDC0 xjmp L71
05AE L79:
05AE .dbline 174
05AE ; }
05AE ; case volume_sub:
05AE ; {
05AE .dbline 175
05AE ; if (set_volume>1)
05AE 81E0 ldi R24,1
05B0 20900000 lds R2,_set_volume
05B4 8215 cp R24,R2
05B6 20F4 brsh L80
05B8 .dbline 176
05B8 ; {set_volume--;
05B8 .dbline 176
05B8 822D mov R24,R2
05BA 8150 subi R24,1
05BC 80930000 sts _set_volume,R24
05C0 .dbline 177
05C0 ; }
05C0 L80:
05C0 .dbline 178
05C0 ; LCD_set_XY(59+set_volume*3,5);
05C0 25E0 ldi R18,5
05C2 20900000 lds R2,_set_volume
05C6 83E0 ldi R24,3
05C8 829D mul R24,R2
05CA 002D mov R16,R0
05CC 055C subi R16,197 ; addi 59
05CE 0E940000 xcall _LCD_set_XY
05D2 .dbline 179
05D2 ; key_value=3;
05D2 83E0 ldi R24,3
05D4 80930000 sts _key_value,R24
05D8 04C0 xjmp L83
05DA L82:
05DA .dbline 181
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -