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

📄 main.lis

📁 AVR单片机系统开发经典实例部分源程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 01C0           L28:
 01C0           L26:
 01C0           L24:
 01C0           L22:
 01C0                   .dbline 87
 01C0           ;                               
 01C0           ;                               //-------------- 音量调节 ----------------//
 01C0           ;                               if(vol_flag!=0)                                 
 01C0 AA20              tst R10
 01C2 09F4              brne X1
 01C4 4EC0              xjmp L33
 01C6           X1:
 01C6                   .dbline 88
 01C6           ;                               {
 01C6                   .dbline 89
 01C6           ;                                 if(vol_flag==1)
 01C6 8A2D              mov R24,R10
 01C8 8130              cpi R24,1
 01CA C9F4              brne L35
 01CC                   .dbline 90
 01CC           ;                                 {
 01CC                   .dbline 91
 01CC           ;                                   if(VOL>27)VOL=29;
 01CC 8BE1              ldi R24,27
 01CE 90E0              ldi R25,0
 01D0 20900000          lds R2,_VOL
 01D4 30900100          lds R3,_VOL+1
 01D8 8215              cp R24,R2
 01DA 9305              cpc R25,R3
 01DC 30F4              brsh L37
 01DE                   .dbline 91
 01DE 8DE1              ldi R24,29
 01E0 90930100          sts _VOL+1,R25
 01E4 80930000          sts _VOL,R24
 01E8 22C0              xjmp L36
 01EA           L37:
 01EA                   .dbline 92
 01EA           ;                                       else VOL+=2;
 01EA 80910000          lds R24,_VOL
 01EE 90910100          lds R25,_VOL+1
 01F2 0296              adiw R24,2
 01F4 90930100          sts _VOL+1,R25
 01F8 80930000          sts _VOL,R24
 01FC                   .dbline 93
 01FC           ;                                 }
 01FC 18C0              xjmp L36
 01FE           L35:
 01FE                   .dbline 95
 01FE           ;                                 else
 01FE           ;                                 {
 01FE                   .dbline 96
 01FE           ;                                   if(VOL<2)VOL=0;
 01FE 80910000          lds R24,_VOL
 0202 90910100          lds R25,_VOL+1
 0206 8230              cpi R24,2
 0208 E0E0              ldi R30,0
 020A 9E07              cpc R25,R30
 020C 38F4              brsh L39
 020E                   .dbline 96
 020E 2224              clr R2
 0210 3324              clr R3
 0212 30920100          sts _VOL+1,R3
 0216 20920000          sts _VOL,R2
 021A 09C0              xjmp L40
 021C           L39:
 021C                   .dbline 97
 021C           ;                                       else VOL-=2;
 021C 80910000          lds R24,_VOL
 0220 90910100          lds R25,_VOL+1
 0224 0297              sbiw R24,2
 0226 90930100          sts _VOL+1,R25
 022A 80930000          sts _VOL,R24
 022E           L40:
 022E                   .dbline 98
 022E           ;                                 }
 022E           L36:
 022E                   .dbline 100
 022E           ;                                       
 022E           ;                                 VS1003_WriteReg(VS1003_SPI_VOL ,VOL_BUFFER[VOL]); // 送音量数据
 022E 20910000          lds R18,_VOL
 0232 30910100          lds R19,_VOL+1
 0236 02E0              ldi R16,2
 0238 10E0              ldi R17,0
 023A 0E940000          xcall empy16s
 023E F801              movw R30,R16
 0240 80E0              ldi R24,<_VOL_BUFFER
 0242 90E0              ldi R25,>_VOL_BUFFER
 0244 E80F              add R30,R24
 0246 F91F              adc R31,R25
 0248 2591              lpm R18,Z+
 024A 3491              lpm R19,Z
 024C 0BE0              ldi R16,11
 024E 0E940000          xcall _VS1003_WriteReg
 0252           L41:
 0252                   .dbline 102
 0252           L42:
 0252                   .dbline 102
 0252           ;                                 
 0252           ;                                 while(VS1003_DREQ_STATE() != VS1003_DREQ);     // 等待
 0252 83B3              in R24,0x13
 0254 8078              andi R24,128
 0256 8038              cpi R24,128
 0258 E1F7              brne L41
 025A                   .dbline 104
 025A           ;                                 
 025A           ;                                 key_num = 0;
 025A 2224              clr R2
 025C 20920000          sts _key_num,R2
 0260                   .dbline 105
 0260           ;                                 vol_flag=0;
 0260 AA24              clr R10
 0262                   .dbline 106
 0262           ;                               }
 0262           L33:
 0262                   .dbline 111
 0262           ;                               
 0262           ;                               
 0262           ;                               //----------------- 换曲操作 -----------------//  
 0262           ;                               
 0262           ;                               if(music_next!=0||music_last!=0)
 0262 EE20              tst R14
 0264 11F4              brne L46
 0266 CC20              tst R12
 0268 71F0              breq L44
 026A           L46:
 026A                   .dbline 112
 026A           ;                               {
 026A                   .dbline 113
 026A           ;                                 data_pointer=512;
 026A 80E0              ldi R24,512
 026C 92E0              ldi R25,2
 026E 9F8B              std y+23,R25
 0270 8E8B              std y+22,R24
 0272                   .dbline 114
 0272           ;                                 i=8;
 0272 48E0              ldi R20,8
 0274 50E0              ldi R21,0
 0276 60E0              ldi R22,0
 0278 70E0              ldi R23,0
 027A FE01              movw R30,R28
 027C 4287              std z+10,R20
 027E 5387              std z+11,R21
 0280 6487              std z+12,R22
 0282 7587              std z+13,R23
 0284                   .dbline 115
 0284           ;                               }
 0284 54C0              xjmp L45
 0286           L44:
 0286                   .dbline 118
 0286           ;                               
 0286           ;                               //---------------- 音乐数据送入 ------------------//  
 0286           ;                               else if(VS1003_DREQ_STATE()== VS1003_DREQ&&play_flag!=0) 
 0286 83B3              in R24,0x13
 0288 8078              andi R24,128
 028A 8038              cpi R24,128
 028C 09F0              breq X2
 028E 4FC0              xjmp L47
 0290           X2:
 0290 088C              ldd R0,y+24
 0292 0020              tst R0
 0294 09F4              brne X3
 0296 4BC0              xjmp L47
 0298           X3:
 0298                   .dbline 119
 0298           ;                               {       
 0298                   .dbline 120
 0298           ;                                       for(n=0;n<32;n++)
 0298 40E0              ldi R20,0
 029A 50E0              ldi R21,0
 029C 60E0              ldi R22,0
 029E 70E0              ldi R23,0
 02A0 FE01              movw R30,R28
 02A2 4283              std z+2,R20
 02A4 5383              std z+3,R21
 02A6 6483              std z+4,R22
 02A8 7583              std z+5,R23
 02AA 20C0              xjmp L52
 02AC           L49:
 02AC                   .dbline 121
 02AC                   .dbline 122
 02AC 80E0              ldi R24,<_Fat_Buffer
 02AE 90E0              ldi R25,>_Fat_Buffer
 02B0 EE89              ldd R30,y+22
 02B2 FF89              ldd R31,y+23
 02B4 E80F              add R30,R24
 02B6 F91F              adc R31,R25
 02B8 0081              ldd R16,z+0
 02BA 0E940000          xcall _VS1003_WriteDat
 02BE                   .dbline 123
 02BE 8E89              ldd R24,y+22
 02C0 9F89              ldd R25,y+23
 02C2 0196              adiw R24,1
 02C4 9F8B              std y+23,R25
 02C6 8E8B              std y+22,R24
 02C8                   .dbline 124
 02C8           L50:
 02C8                   .dbline 120
 02C8 41E0              ldi R20,1
 02CA 50E0              ldi R21,0
 02CC 60E0              ldi R22,0
 02CE 70E0              ldi R23,0
 02D0 FE01              movw R30,R28
 02D2 2280              ldd R2,z+2
 02D4 3380              ldd R3,z+3
 02D6 4480              ldd R4,z+4
 02D8 5580              ldd R5,z+5
 02DA 240E              add R2,R20
 02DC 351E              adc R3,R21
 02DE 461E              adc R4,R22
 02E0 571E              adc R5,R23
 02E2 FE01              movw R30,R28
 02E4 2282              std z+2,R2
 02E6 3382              std z+3,R3
 02E8 4482              std z+4,R4
 02EA 5582              std z+5,R5
 02EC           L52:
 02EC                   .dbline 120
 02EC 40E2              ldi R20,32
 02EE 50E0              ldi R21,0
 02F0 60E0              ldi R22,0
 02F2 70E0              ldi R23,0
 02F4 FE01              movw R30,R28
 02F6 2280              ldd R2,z+2
 02F8 3380              ldd R3,z+3
 02FA 4480              ldd R4,z+4
 02FC 5580              ldd R5,z+5
 02FE 2416              cp R2,R20
 0300 3506              cpc R3,R21
 0302 4606              cpc R4,R22
 0304 5706              cpc R5,R23
 0306 08F4              brsh X4
 0308 D1CF              xjmp L49
 030A           X4:
 030A                   .dbline 125
 030A           ;                                       {       
 030A           ;                                               VS1003_WriteDat(Fat_Buffer[data_pointer]); // 发送数据
 030A           ;                                               data_pointer++; 
 030A           ;                                       }
 030A           ;                                       size_buf+=32;
 030A 40E2              ldi R20,32
 030C 50E0              ldi R21,0
 030E 60E0              ldi R22,0
 0310 70E0              ldi R23,0
 0312 FE01              movw R30,R28
 0314 2680              ldd R2,z+6
 0316 3780              ldd R3,z+7
 0318 4084              ldd R4,z+8
 031A 5184              ldd R5,z+9
 031C 240E              add R2,R20
 031E 351E              adc R3,R21
 0320 461E              adc R4,R22
 0322 571E              adc R5,R23
 0324 FE01              movw R30,R28
 0326 2682              std z+6,R2
 0328 3782              std z+7,R3
 032A 4086              std z+8,R4
 032C 5186              std z+9,R5
 032E                   .dbline 126
 032E           ;                               }
 032E           L47:
 032E           L45:
 032E                   .dbline 128
 032E           ;                               
 032E           ;                               if(size_buf>=MusicInfoList[music_num].FileLength-64)
 032E 89E2              ldi R24,41
 0330 098C              ldd R0,y+25
 0332 809D              mul R24,R0
 0334 F001              movw R30,R0
 0336 80E0              ldi R24,<_MusicInfoList+37
 0338 90E0              ldi R25,>_MusicInfoList+37
 033A E80F              add R30,R24
 033C F91F              adc R31,R25
 033E 2080              ldd R2,z+0
 0340 3180              ldd R3,z+1
 0342 4280              ldd R4,z+2
 0344 5380              ldd R5,z+3
 0346 40E4              ldi R20,64
 0348 50E0              ldi R21,0
 034A 60E0              ldi R22,0
 034C 70E0              ldi R23,0
 034E 241A              sub R2,R20
 0350 350A              sbc R3,R21
 0352 460A              sbc R4,R22
 0354 570A              sbc R5,R23
 0356 FE01              movw R30,R28
 0358 6680              ldd R6,z+6
 035A 7780              ldd R7,z+7
 035C 8084              ldd R8,z+8
 035E 9184              ldd R9,z+9
 0360 6214              cp R6,R2
 0362 7304              cpc R7,R3
 0364 8404              cpc R8,R4
 0366 9504              cpc R9,R5
 0368 B0F0              brlo L53
 036A                   .dbline 129
 036A           ;                               {
 036A                   .dbline 130
 036A           ;                                  data_pointer=512;
 036A 80E0              ldi R24,512
 036C 92E0              ldi R25,2
 036E 9F8B              std y+23,R25
 0370 8E8B              std y+22,R24
 0372                   .dbline 131
 0372           ;                                  i=8;
 0372 48E0              ldi R20,8
 0374 50E0              ldi R21,0
 0376 60E0              ldi R22,0
 0378 70E0              ldi R23,0
 037A FE01              movw R30,R28
 037C 4287              std z+10,R20
 037E 5387              std z+11,R21
 0380 6487              std z+12,R22
 0382 7587              std z+13,R23
 0384                   .dbline 132
 0384           ;                                 size_buf=0;
 0384 40E0              ldi R20,0
 0386 50E0              ldi R21,0
 0388 60E0              ldi R22,0
 038A 70E0              ldi R23,0
 038C FE01              movw R30,R28
 038E 4683              std z+6,R20
 0390 5783              std z+7,R21
 0392 6087              std z+8,R22
 0394 7187              std z+9,R23

⌨️ 快捷键说明

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