📄 main.lis
字号:
0128 X5:
0128 20900000 lds R2,_AD_time
012C 2220 tst R2
012E 19F4 brne L20
0130 X6:
0130 .dbline 94
0130 CC24 clr R12
0132 C394 inc R12
0134 20C0 xjmp L21
0136 L20:
0136 .dbline 95
0136 ; else if(key_num==4&&AD_time==0)music_last=1; // Key4按下,上一首
0136 80910000 lds R24,_key_num
013A 8430 cpi R24,4
013C 39F4 brne L22
013E X7:
013E 20900000 lds R2,_AD_time
0142 2220 tst R2
0144 19F4 brne L22
0146 X8:
0146 .dbline 95
0146 EE24 clr R14
0148 E394 inc R14
014A 15C0 xjmp L23
014C L22:
014C .dbline 96
014C ; else if(key_num==3&&AD_time==0)vol_flag=1; // Key3按下,音量+
014C 80910000 lds R24,_key_num
0150 8330 cpi R24,3
0152 39F4 brne L24
0154 X9:
0154 20900000 lds R2,_AD_time
0158 2220 tst R2
015A 19F4 brne L24
015C X10:
015C .dbline 96
015C AA24 clr R10
015E A394 inc R10
0160 0AC0 xjmp L25
0162 L24:
0162 .dbline 97
0162 ; else if(key_num==2&&AD_time==0)vol_flag=2; // Key2按下,音量-
0162 80910000 lds R24,_key_num
0166 8230 cpi R24,2
0168 31F4 brne L26
016A X11:
016A 20900000 lds R2,_AD_time
016E 2220 tst R2
0170 11F4 brne L26
0172 X12:
0172 .dbline 97
0172 82E0 ldi R24,2
0174 A82E mov R10,R24
0176 L26:
0176 L25:
0176 L23:
0176 L21:
0176 L19:
0176 L17:
0176 .dbline 100
0176 ;
0176 ; //-------------- 音量调节 ----------------//
0176 ; if(vol_flag!=0)
0176 AA20 tst R10
0178 09F4 brne X33
017A 4BC0 xjmp L28
017C X33:
017C X13:
017C .dbline 101
017C ; {
017C .dbline 102
017C ; if(vol_flag==1)
017C 8A2D mov R24,R10
017E 8130 cpi R24,1
0180 C9F4 brne L30
0182 X14:
0182 .dbline 103
0182 ; {
0182 .dbline 104
0182 ; if(VOL>27)VOL=29;
0182 8BE1 ldi R24,27
0184 90E0 ldi R25,0
0186 20900000 lds R2,_VOL
018A 30900100 lds R3,_VOL+1
018E 8215 cp R24,R2
0190 9305 cpc R25,R3
0192 30F4 brsh L32
0194 X15:
0194 .dbline 104
0194 8DE1 ldi R24,29
0196 90930100 sts _VOL+1,R25
019A 80930000 sts _VOL,R24
019E 22C0 xjmp L31
01A0 L32:
01A0 .dbline 105
01A0 ; else VOL+=2;
01A0 80910000 lds R24,_VOL
01A4 90910100 lds R25,_VOL+1
01A8 0296 adiw R24,2
01AA 90930100 sts _VOL+1,R25
01AE 80930000 sts _VOL,R24
01B2 .dbline 106
01B2 ; }
01B2 18C0 xjmp L31
01B4 L30:
01B4 .dbline 108
01B4 ; else
01B4 ; {
01B4 .dbline 109
01B4 ; if(VOL<2)VOL=0;
01B4 80910000 lds R24,_VOL
01B8 90910100 lds R25,_VOL+1
01BC 8230 cpi R24,2
01BE E0E0 ldi R30,0
01C0 9E07 cpc R25,R30
01C2 38F4 brsh L34
01C4 X16:
01C4 .dbline 109
01C4 2224 clr R2
01C6 3324 clr R3
01C8 30920100 sts _VOL+1,R3
01CC 20920000 sts _VOL,R2
01D0 09C0 xjmp L35
01D2 L34:
01D2 .dbline 110
01D2 ; else VOL-=2;
01D2 80910000 lds R24,_VOL
01D6 90910100 lds R25,_VOL+1
01DA 0297 sbiw R24,2
01DC 90930100 sts _VOL+1,R25
01E0 80930000 sts _VOL,R24
01E4 L35:
01E4 .dbline 111
01E4 ; }
01E4 L31:
01E4 .dbline 113
01E4 ;
01E4 ; VS1003_WriteReg(VS1003_SPI_VOL ,VOL_BUFFER[VOL]); // 送音量数据
01E4 80E0 ldi R24,<_VOL_BUFFER
01E6 90E0 ldi R25,>_VOL_BUFFER
01E8 E0910000 lds R30,_VOL
01EC F0910100 lds R31,_VOL+1
01F0 EE0F lsl R30
01F2 FF1F rol R31
01F4 E80F add R30,R24
01F6 F91F adc R31,R25
01F8 2081 ldd R18,z+0
01FA 3181 ldd R19,z+1
01FC 0BE0 ldi R16,11
01FE 0E940000 xcall _VS1003_WriteReg
0202 L36:
0202 .dbline 115
0202 ;
0202 ; while(VS1003_DREQ_STATE() != VS1003_DREQ); // 等待
0202 L37:
0202 .dbline 115
0202 83B3 in R24,0x13
0204 8078 andi R24,128
0206 8038 cpi R24,128
0208 E1F7 brne L36
020A X17:
020A .dbline 117
020A ;
020A ; key_num = 0;
020A 2224 clr R2
020C 20920000 sts _key_num,R2
0210 .dbline 118
0210 ; vol_flag=0;
0210 AA24 clr R10
0212 .dbline 119
0212 ; }
0212 L28:
0212 .dbline 124
0212 ;
0212 ;
0212 ; //----------------- 换曲操作 -----------------//
0212 ;
0212 ; if(music_next!=0||music_last!=0)
0212 CC20 tst R12
0214 11F4 brne L41
0216 X18:
0216 EE20 tst R14
0218 69F0 breq L39
021A X19:
021A L41:
021A .dbline 125
021A ; {
021A .dbline 126
021A ; data_pointer=512;
021A 80E0 ldi R24,512
021C 92E0 ldi R25,2
021E 9B8B std y+19,R25
0220 8A8B std y+18,R24
0222 .dbline 127
0222 ; i=8;
0222 48E0 ldi R20,8
0224 50E0 ldi R21,0
0226 60E0 ldi R22,0
0228 70E0 ldi R23,0
022A 4A87 std y+10,R20
022C 5B87 std y+11,R21
022E 6C87 std y+12,R22
0230 7D87 std y+13,R23
0232 .dbline 128
0232 ; }
0232 4DC0 xjmp L40
0234 L39:
0234 .dbline 131
0234 ;
0234 ; //---------------- 音乐数据送入 ------------------//
0234 ; else if(VS1003_DREQ_STATE()== VS1003_DREQ&&play_flag!=0)
0234 83B3 in R24,0x13
0236 8078 andi R24,128
0238 8038 cpi R24,128
023A 09F0 breq X34
023C 48C0 xjmp L42
023E X34:
023E X20:
023E 0C88 ldd R0,y+20
0240 0020 tst R0
0242 09F4 brne X35
0244 44C0 xjmp L42
0246 X35:
0246 X21:
0246 .dbline 132
0246 ; {
0246 .dbline 133
0246 ; for(n=0;n<32;n++)
0246 40E0 ldi R20,0
0248 50E0 ldi R21,0
024A 60E0 ldi R22,0
024C 70E0 ldi R23,0
024E 4A83 std y+2,R20
0250 5B83 std y+3,R21
0252 6C83 std y+4,R22
0254 7D83 std y+5,R23
0256 1EC0 xjmp L47
0258 L44:
0258 .dbline 134
0258 ; {
0258 .dbline 135
0258 ; VS1003_WriteDat(Fat_Buffer[data_pointer]); // 发送数据
0258 80E0 ldi R24,<_Fat_Buffer
025A 90E0 ldi R25,>_Fat_Buffer
025C EA89 ldd R30,y+18
025E FB89 ldd R31,y+19
0260 E80F add R30,R24
0262 F91F adc R31,R25
0264 0081 ldd R16,z+0
0266 0E940000 xcall _VS1003_WriteDat
026A .dbline 136
026A ; data_pointer++;
026A 8A89 ldd R24,y+18
026C 9B89 ldd R25,y+19
026E 0196 adiw R24,1
0270 9B8B std y+19,R25
0272 8A8B std y+18,R24
0274 .dbline 137
0274 ; }
0274 L45:
0274 .dbline 133
0274 41E0 ldi R20,1
0276 50E0 ldi R21,0
0278 60E0 ldi R22,0
027A 70E0 ldi R23,0
027C 2A80 ldd R2,y+2
027E 3B80 ldd R3,y+3
0280 4C80 ldd R4,y+4
0282 5D80 ldd R5,y+5
0284 240E add R2,R20
0286 351E adc R3,R21
0288 461E adc R4,R22
028A 571E adc R5,R23
028C 2A82 std y+2,R2
028E 3B82 std y+3,R3
0290 4C82 std y+4,R4
0292 5D82 std y+5,R5
0294 L47:
0294 .dbline 133
0294 40E2 ldi R20,32
0296 50E0 ldi R21,0
0298 60E0 ldi R22,0
029A 70E0 ldi R23,0
029C 2A80 ldd R2,y+2
029E 3B80 ldd R3,y+3
02A0 4C80 ldd R4,y+4
02A2 5D80 ldd R5,y+5
02A4 2416 cp R2,R20
02A6 3506 cpc R3,R21
02A8 4606 cpc R4,R22
02AA 5706 cpc R5,R23
02AC A8F2 brlo L44
02AE X22:
02AE .dbline 138
02AE ; size_buf+=32;
02AE 40E2 ldi R20,32
02B0 50E0 ldi R21,0
02B2 60E0 ldi R22,0
02B4 70E0 ldi R23,0
02B6 2E80 ldd R2,y+6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -