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

📄 vs1003.lis

📁 mega128+VS1003做的mp3的程序 可以用WINAVR编译
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 00DC           ;       mp3WriteReg(SPI_CLOCKF,0x58,0x00);              //设置时钟3倍频
 00DC 2224              clr R2
 00DE 2882              std y+0,R2
 00E0 28E5              ldi R18,88
 00E2 03E0              ldi R16,3
 00E4 C2DF              xcall _mp3WriteReg
 00E6                   .dbline 90
 00E6           ;       mp3WriteReg(SPI_VOL,0X01,0X01);                         //设置音量
 00E6 81E0              ldi R24,1
 00E8 8883              std y+0,R24
 00EA 21E0              ldi R18,1
 00EC 0BE0              ldi R16,11
 00EE BDDF              xcall _mp3WriteReg
 00F0                   .dbline 91
 00F0           ;       delay_ms(100);
 00F0 04E6              ldi R16,100
 00F2 8BDF              xcall _delay_ms
 00F4                   .dbline 92
 00F4           ;       delay_ms(1);
 00F4 01E0              ldi R16,1
 00F6 89DF              xcall _delay_ms
 00F8                   .dbline 93
 00F8           ;       mp3InData();
 00F8                   .dbline 93
 00F8 9298              cbi 0x12,2
 00FA                   .dbline 93
 00FA                   .dbline 93
 00FA                   .dbline 94
 00FA           ;       spiByte(0);
 00FA 0027              clr R16
 00FC A8DF              xcall _spiByte
 00FE                   .dbline 95
 00FE           ;       spiByte(0);
 00FE 0027              clr R16
 0100 A6DF              xcall _spiByte
 0102                   .dbline 96
 0102           ;       spiByte(0);
 0102 0027              clr R16
 0104 A4DF              xcall _spiByte
 0106                   .dbline 97
 0106           ;       spiByte(0);
 0106 0027              clr R16
 0108 A2DF              xcall _spiByte
 010A                   .dbline 98
 010A           ;       mp3OutData();
 010A                   .dbline 98
 010A 929A              sbi 0x12,2
 010C                   .dbline 98
 010C                   .dbline 98
 010C                   .dbline 99
 010C           ;       SPSR |= 1<<SPI2X;
 010C 709A              sbi 0xe,0
 010E                   .dbline -2
 010E           L26:
 010E 2196              adiw R28,1
 0110                   .dbline 0 ; func end
 0110 0895              ret
 0112                   .dbend
 0112                   .dbfunc e mp3Reset _mp3Reset fV
                        .even
 0112           _mp3Reset::
 0112 2197              sbiw R28,1
 0114                   .dbline -1
 0114                   .dbline 103
 0114           ; }
 0114           ; 
 0114           ; void mp3Reset(void)
 0114           ; {
 0114                   .dbline 104
 0114           ;       SPSR &= ~(1<<SPI2X); 
 0114 7098              cbi 0xe,0
 0116                   .dbline 105
 0116           ;     mp3OutCmd();
 0116                   .dbline 105
 0116 939A              sbi 0x12,3
 0118                   .dbline 105
 0118                   .dbline 105
 0118                   .dbline 106
 0118           ;       mp3OutData();
 0118                   .dbline 106
 0118 929A              sbi 0x12,2
 011A                   .dbline 106
 011A                   .dbline 106
 011A                   .dbline 107
 011A           ;       mp3OutRst();
 011A                   .dbline 107
 011A C79A              sbi 0x18,7
 011C                   .dbline 107
 011C                   .dbline 107
 011C                   .dbline 108
 011C           ;     delay_ms(250);
 011C 0AEF              ldi R16,250
 011E 75DF              xcall _delay_ms
 0120                   .dbline 110
 0120           ;       
 0120           ;       mp3InRst();
 0120                   .dbline 110
 0120 C798              cbi 0x18,7
 0122                   .dbline 110
 0122                   .dbline 110
 0122                   .dbline 111
 0122           ;       delay_ms(250);
 0122 0AEF              ldi R16,250
 0124 72DF              xcall _delay_ms
 0126                   .dbline 112
 0126           ;       mp3OutRst();
 0126                   .dbline 112
 0126 C79A              sbi 0x18,7
 0128                   .dbline 112
 0128                   .dbline 112
 0128                   .dbline 113
 0128           ;       delay_ms(150);
 0128 06E9              ldi R16,150
 012A 6FDF              xcall _delay_ms
 012C                   .dbline 115
 012C           ;       
 012C           ;       mp3WriteReg(SPI_MODE,   0x08, 0x00);     /* Normal SW reset + other bits */
 012C 2224              clr R2
 012E 2882              std y+0,R2
 0130 28E0              ldi R18,8
 0132 0027              clr R16
 0134 9ADF              xcall _mp3WriteReg
 0136                   .dbline 116
 0136           ;       delay_ms(150);
 0136 06E9              ldi R16,150
 0138 68DF              xcall _delay_ms
 013A                   .dbline 117
 013A           ;       mp3WriteReg(SPI_CLOCKF, 0x58, 0x00);     /* 4.0x 12.288MHz */
 013A 2224              clr R2
 013C 2882              std y+0,R2
 013E 28E5              ldi R18,88
 0140 03E0              ldi R16,3
 0142 93DF              xcall _mp3WriteReg
 0144                   .dbline 118
 0144           ;       delay_ms(150);
 0144 06E9              ldi R16,150
 0146 61DF              xcall _delay_ms
 0148                   .dbline 119
 0148           ;       mp3WriteReg(SPI_VOL,    0x01, 0x01);     /* Recording monitor volume */
 0148 81E0              ldi R24,1
 014A 8883              std y+0,R24
 014C 21E0              ldi R18,1
 014E 0BE0              ldi R16,11
 0150 8CDF              xcall _mp3WriteReg
 0152                   .dbline 120
 0152           ;       delay_ms(150);
 0152 06E9              ldi R16,150
 0154 5ADF              xcall _delay_ms
 0156                   .dbline 121
 0156           ;       mp3WriteReg(SPI_BASS,   0x00, 0x00);     /* Bass/treble disabled */
 0156 2224              clr R2
 0158 2882              std y+0,R2
 015A 2227              clr R18
 015C 02E0              ldi R16,2
 015E 85DF              xcall _mp3WriteReg
 0160                   .dbline 122
 0160           ;       delay_ms(150);  
 0160 06E9              ldi R16,150
 0162 53DF              xcall _delay_ms
 0164           L28:
 0164                   .dbline 123
 0164           L29:
 0164                   .dbline 123
 0164           ;       while((PIND & DREQ) == 0);
 0164 809B              sbis 0x10,0
 0166 FECF              rjmp L28
 0168                   .dbline 124
 0168           ;       delay_ms(250);
 0168 0AEF              ldi R16,250
 016A 4FDF              xcall _delay_ms
 016C                   .dbline 126
 016C           ;       //vs1003_infor();
 016C           ;       SPSR |= 1<<SPI2X;
 016C 709A              sbi 0xe,0
 016E                   .dbline -2
 016E           L27:
 016E 2196              adiw R28,1
 0170                   .dbline 0 ; func end
 0170 0895              ret
 0172                   .dbend
 0172                   .dbfunc e vs1003_infor _vs1003_infor fV
                        .even
 0172           _vs1003_infor::
 0172                   .dbline -1
 0172                   .dbline 129
 0172           ; }
 0172           ; void vs1003_infor(void)
 0172           ; {     
 0172                   .dbline 130
 0172           ;       Print_str("VS1003B_STATUS = 0x");
 0172 00E0              ldi R16,<L32
 0174 10E0              ldi R17,>L32
 0176 0E940000          xcall _Print_str
 017A                   .dbline 131
 017A           ;       Print_int(mp3ReadReg(SPI_STATUS));
 017A 01E0              ldi R16,1
 017C 8BDF              xcall _mp3ReadReg
 017E 0E940000          xcall _Print_int
 0182                   .dbline 132
 0182           ;       Print_str("\r\n");      
 0182 00E0              ldi R16,<L33
 0184 10E0              ldi R17,>L33
 0186 0E940000          xcall _Print_str
 018A                   .dbline 133
 018A           ;       Print_str("VS1003B_MODE = 0x");
 018A 00E0              ldi R16,<L34
 018C 10E0              ldi R17,>L34
 018E 0E940000          xcall _Print_str
 0192                   .dbline 134
 0192           ;       Print_int(mp3ReadReg(SPI_MODE));
 0192 0027              clr R16
 0194 7FDF              xcall _mp3ReadReg
 0196 0E940000          xcall _Print_int
 019A                   .dbline 135
 019A           ;       Print_str("\r\n");      
 019A 00E0              ldi R16,<L33
 019C 10E0              ldi R17,>L33
 019E 0E940000          xcall _Print_str
 01A2                   .dbline 136
 01A2           ;       Print_str("VS1003B_CLOCKF = 0x");
 01A2 00E0              ldi R16,<L35
 01A4 10E0              ldi R17,>L35
 01A6 0E940000          xcall _Print_str
 01AA                   .dbline 137
 01AA           ;       Print_int(mp3ReadReg(SPI_CLOCKF));
 01AA 03E0              ldi R16,3
 01AC 73DF              xcall _mp3ReadReg
 01AE 0E940000          xcall _Print_int
 01B2                   .dbline 138
 01B2           ;       Print_str("\r\n");      
 01B2 00E0              ldi R16,<L33
 01B4 10E0              ldi R17,>L33
 01B6 0E940000          xcall _Print_str
 01BA                   .dbline 139
 01BA           ;       Print_str("VS1003B_VOL = 0x");
 01BA 00E0              ldi R16,<L36
 01BC 10E0              ldi R17,>L36
 01BE 0E940000          xcall _Print_str
 01C2                   .dbline 140
 01C2           ;       Print_int(mp3ReadReg(SPI_VOL));
 01C2 0BE0              ldi R16,11
 01C4 67DF              xcall _mp3ReadReg
 01C6 0E940000          xcall _Print_int
 01CA                   .dbline 141
 01CA           ;       Print_str("\r\n");
 01CA 00E0              ldi R16,<L33
 01CC 10E0              ldi R17,>L33
 01CE 0E940000          xcall _Print_str
 01D2                   .dbline 142
 01D2           ;       Print_str("VS1003B_BASS = 0x");
 01D2 00E0              ldi R16,<L37
 01D4 10E0              ldi R17,>L37
 01D6 0E940000          xcall _Print_str
 01DA                   .dbline 143
 01DA           ;       Print_int(mp3ReadReg(SPI_BASS));
 01DA 02E0              ldi R16,2
 01DC 5BDF              xcall _mp3ReadReg
 01DE 0E940000          xcall _Print_int
 01E2                   .dbline 144
 01E2           ;       Print_str("\r\n");
 01E2 00E0              ldi R16,<L33
 01E4 10E0              ldi R17,>L33
 01E6 0E940000          xcall _Print_str
 01EA                   .dbline 145
 01EA           ;       Print_str("VS1003B_SIHDA0 = 0x");
 01EA 00E0              ldi R16,<L38
 01EC 10E0              ldi R17,>L38
 01EE 0E940000          xcall _Print_str
 01F2                   .dbline 146
 01F2           ;       Print_int(mp3ReadReg(0X08));
 01F2 08E0              ldi R16,8
 01F4 4FDF              xcall _mp3ReadReg
 01F6 0E940000          xcall _Print_int
 01FA                   .dbline 147
 01FA           ;       Print_str("\r\n");      
 01FA 00E0              ldi R16,<L33
 01FC 10E0              ldi R17,>L33
 01FE 0E940000          xcall _Print_str
 0202                   .dbline 148
 0202           ;       Print_str("VS1003B_SIHDA1= 0x");
 0202 00E0              ldi R16,<L39
 0204 10E0              ldi R17,>L39
 0206 0E940000          xcall _Print_str
 020A                   .dbline 149
 020A           ;       Print_int(mp3ReadReg(0X09));
 020A 09E0              ldi R16,9
 020C 43DF              xcall _mp3ReadReg
 020E 0E940000          xcall _Print_int
 0212                   .dbline 150
 0212           ;       Print_str("\r\n");      
 0212 00E0              ldi R16,<L33
 0214 10E0              ldi R17,>L33
 0216 0E940000          xcall _Print_str
 021A                   .dbline -2
 021A           L31:
 021A                   .dbline 0 ; func end
 021A 0895              ret
 021C                   .dbend
 021C                   .dbfunc e mp3SineTest _mp3SineTest fV
                        .even
 021C           _mp3SineTest::
 021C 2197              sbiw R28,1
 021E                   .dbline -1
 021E                   .dbline 153
 021E           ; }
 021E           ; void mp3SineTest(void)
 021E           ; {
 021E                   .dbline 154
 021E           ;       mp3InRst();
 021E                   .dbline 154
 021E C798              cbi 0x18,7
 0220                   .dbline 154
 0220                   .dbline 154
 0220                   .dbline 155
 0220           ;       delay_ms(1);
 0220 01E0              ldi R16,1
 0222 F3DE              xcall _delay_ms
 0224                   .dbline 156
 0224           ;       spiByte(0xFF);
 0224 0FEF              ldi R16,255
 0226 13DF              xcall _spiByte
 0228                   .dbline 157
 0228           ;       mp3OutCmd();
 0228                   .dbline 157
 0228 939A              sbi 0x12,3
 022A                   .dbline 157
 022A                   .dbline 157
 022A                   .dbline 158
 022A           ;       mp3OutData();
 022A                   .dbline 158
 022A 929A              sbi 0x12,2
 022C                   .dbline 158
 022C                   .dbline 158
 022C                   .dbline 159
 022C           ;       mp3OutRst();
 022C                   .dbline 159
 022C C79A              sbi 0x18,7
 022E                   .dbline 159
 022E                   .dbline 159
 022E                   .dbline 160
 022E           ;       delay_ms(100);
 022E 04E6              ldi R16,100
 0230 ECDE              xcall _delay_ms
 0232                   .dbline 161
 0232           ;       mp3WriteReg(SPI_MODE,0x08,0x20);                //进入测试模式
 0232 80E2              ldi R24,32
 0234 8883              std y+0,R24
 0236 28E0              ldi R18,8
 0238 0027              clr R16
 023A 17DF              xcall _mp3WriteReg
 023C           L41:
 023C                   .dbline 162
 023C           L42:
 023C                   .dbline 162
 023C           ;       while((PIND & DREQ) == 0);
 023C 809B              sbis 0x10,0
 023E FECF              rjmp L41
 0240                   .dbline 163
 0240           ;       mp3InData();
 0240                   .dbline 163
 0240 9298              cbi 0x12,2
 0242                   .dbline 163
 0242                   .dbline 163
 0242                   .dbline 164
 0242           ;       spiByte(0x53);

⌨️ 快捷键说明

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