📄 vs1003.lis
字号:
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 + -