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

📄 vs1003.lis

📁 AVR单片机系统开发经典实例部分源程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00B6 03E0              ldi R16,3
 00B8 A8DF              xcall _VS1003_WriteReg
 00BA                   .dbline 129
 00BA           ;       VS1003_WriteReg(VS1003_SPI_AUDATA,0xB199);                                      //采样率48k,立体声
 00BA 29E9              ldi R18,45465
 00BC 31EB              ldi R19,177
 00BE 05E0              ldi R16,5
 00C0 A4DF              xcall _VS1003_WriteReg
 00C2                   .dbline 130
 00C2           ;       VS1003_WriteReg(VS1003_SPI_BASS,0x0055);                                        //设置重音
 00C2 25E5              ldi R18,85
 00C4 30E0              ldi R19,0
 00C6 02E0              ldi R16,2
 00C8 A0DF              xcall _VS1003_WriteReg
 00CA                   .dbline 132
 00CA           ;       
 00CA           ;       VS1003_WriteDat(0);                                                                                     //向vs1003发送四个字节
 00CA 0027              clr R16
 00CC DADF              xcall _VS1003_WriteDat
 00CE                   .dbline 133
 00CE           ;       VS1003_WriteDat(0);                                                                                     //无效数据,启动spi
 00CE 0027              clr R16
 00D0 D8DF              xcall _VS1003_WriteDat
 00D2                   .dbline 134
 00D2           ;       VS1003_WriteDat(0);
 00D2 0027              clr R16
 00D4 D6DF              xcall _VS1003_WriteDat
 00D6                   .dbline 135
 00D6           ;       VS1003_WriteDat(0);
 00D6 0027              clr R16
 00D8 D4DF              xcall _VS1003_WriteDat
 00DA                   .dbline -2
 00DA           L6:
 00DA                   .dbline 0 ; func end
 00DA 0895              ret
 00DC                   .dbend
 00DC                   .dbfunc e VS1003_Init _VS1003_Init fc
                        .even
 00DC           _VS1003_Init::
 00DC 0E940000          xcall push_gset2
 00E0                   .dbline -1
 00E0                   .dbline 145
 00E0           ; }
 00E0           ; 
 00E0           ; 
 00E0           ; //---------------------------------
 00E0           ; //
 00E0           ; //      VS1003初始化函数 
 00E0           ; //
 00E0           ; //---------------------------------
 00E0           ; uint8 VS1003_Init(void)
 00E0           ; {
 00E0                   .dbline 146
 00E0           ;       VOL=26; 
 00E0 8AE1              ldi R24,26
 00E2 90E0              ldi R25,0
 00E4 90930500          sts _VOL+1,R25
 00E8 80930400          sts _VOL,R24
 00EC                   .dbline 148
 00EC           ;       
 00EC           ;       VS1003_Port_Init();
 00EC 89DF              xcall _VS1003_Port_Init
 00EE                   .dbline 150
 00EE           ;       
 00EE           ;       VS1003_CS_SET();
 00EE AC9A              sbi 0x15,4
 00F0                   .dbline 152
 00F0           ; 
 00F0           ;       VS1003_XDCS_SET();
 00F0 AD9A              sbi 0x15,5
 00F2                   .dbline 153
 00F2           ;       VS1003_XRESET_CLR();
 00F2 AE98              cbi 0x15,6
 00F4                   .dbline 154
 00F4           ;       delay_ms(500);
 00F4 04EF              ldi R16,244
 00F6 11E0              ldi R17,1
 00F8 20E0              ldi R18,0
 00FA 30E0              ldi R19,0
 00FC 0E940000          xcall _delay_ms
 0100                   .dbline 155
 0100           ;       VS1003_XRESET_SET();                                                                                      //使能芯片
 0100 AE9A              sbi 0x15,6
 0102                   .dbline 156
 0102           ;     delay_ms(500);
 0102 04EF              ldi R16,244
 0104 11E0              ldi R17,1
 0106 20E0              ldi R18,0
 0108 30E0              ldi R19,0
 010A 0E940000          xcall _delay_ms
 010E           L11:
 010E                   .dbline 158
 010E           L12:
 010E                   .dbline 158
 010E           ;       
 010E           ;     while(VS1003_DREQ_STATE() != VS1003_DREQ);
 010E 83B3              in R24,0x13
 0110 8078              andi R24,128
 0112 8038              cpi R24,128
 0114 E1F7              brne L11
 0116                   .dbline 160
 0116           ;       
 0116           ;       VS1003_WriteReg(0x00,0x0804);
 0116 24E0              ldi R18,2052
 0118 38E0              ldi R19,8
 011A 0027              clr R16
 011C 76DF              xcall _VS1003_WriteReg
 011E           L14:
 011E                   .dbline 162
 011E           L15:
 011E                   .dbline 162
 011E           ;       
 011E           ;       while(VS1003_DREQ_STATE() != VS1003_DREQ);      
 011E 83B3              in R24,0x13
 0120 8078              andi R24,128
 0122 8038              cpi R24,128
 0124 E1F7              brne L14
 0126                   .dbline 164
 0126           ; 
 0126           ;       VS1003_WriteReg(0x03,0x9800);
 0126 20E0              ldi R18,38912
 0128 38E9              ldi R19,152
 012A 03E0              ldi R16,3
 012C 6EDF              xcall _VS1003_WriteReg
 012E           L17:
 012E                   .dbline 166
 012E           L18:
 012E                   .dbline 166
 012E           ;       
 012E           ;       while(VS1003_DREQ_STATE() != VS1003_DREQ);      
 012E 83B3              in R24,0x13
 0130 8078              andi R24,128
 0132 8038              cpi R24,128
 0134 E1F7              brne L17
 0136                   .dbline 168
 0136           ; 
 0136           ;       VS1003_WriteReg(0x05,0xB199);
 0136 29E9              ldi R18,45465
 0138 31EB              ldi R19,177
 013A 05E0              ldi R16,5
 013C 66DF              xcall _VS1003_WriteReg
 013E           L20:
 013E                   .dbline 170
 013E           L21:
 013E                   .dbline 170
 013E           ;       
 013E           ;       while(VS1003_DREQ_STATE() != VS1003_DREQ);      
 013E 83B3              in R24,0x13
 0140 8078              andi R24,128
 0142 8038              cpi R24,128
 0144 E1F7              brne L20
 0146                   .dbline 172
 0146           ; 
 0146           ;       VS1003_WriteReg(0x02,0x0055);
 0146 25E5              ldi R18,85
 0148 30E0              ldi R19,0
 014A 02E0              ldi R16,2
 014C 5EDF              xcall _VS1003_WriteReg
 014E           L23:
 014E                   .dbline 174
 014E           L24:
 014E                   .dbline 174
 014E           ;       
 014E           ;       while(VS1003_DREQ_STATE() != VS1003_DREQ);      
 014E 83B3              in R24,0x13
 0150 8078              andi R24,128
 0152 8038              cpi R24,128
 0154 E1F7              brne L23
 0156                   .dbline 176
 0156           ; 
 0156           ;       VS1003_WriteReg(VS1003_SPI_VOL ,VOL_BUFFER[VOL]);
 0156 20910400          lds R18,_VOL
 015A 30910500          lds R19,_VOL+1
 015E 02E0              ldi R16,2
 0160 10E0              ldi R17,0
 0162 0E940000          xcall empy16s
 0166 F801              movw R30,R16
 0168 80E0              ldi R24,<_VOL_BUFFER
 016A 90E0              ldi R25,>_VOL_BUFFER
 016C E80F              add R30,R24
 016E F91F              adc R31,R25
 0170 2591              lpm R18,Z+
 0172 3491              lpm R19,Z
 0174 0BE0              ldi R16,11
 0176 49DF              xcall _VS1003_WriteReg
 0178           L26:
 0178                   .dbline 178
 0178           L27:
 0178                   .dbline 178
 0178           ;       
 0178           ;       while(VS1003_DREQ_STATE() != VS1003_DREQ);      
 0178 83B3              in R24,0x13
 017A 8078              andi R24,128
 017C 8038              cpi R24,128
 017E E1F7              brne L26
 0180                   .dbline 179
 0180           ;               VS1003_WriteReg(0x05,0xB199);
 0180 29E9              ldi R18,45465
 0182 31EB              ldi R19,177
 0184 05E0              ldi R16,5
 0186 41DF              xcall _VS1003_WriteReg
 0188           L29:
 0188                   .dbline 181
 0188           L30:
 0188                   .dbline 181
 0188           ;       
 0188           ;       while(VS1003_DREQ_STATE() != VS1003_DREQ);      
 0188 83B3              in R24,0x13
 018A 8078              andi R24,128
 018C 8038              cpi R24,128
 018E E1F7              brne L29
 0190                   .dbline 182
 0190           ;               VS1003_WriteReg(0x05,0xB199);
 0190 29E9              ldi R18,45465
 0192 31EB              ldi R19,177
 0194 05E0              ldi R16,5
 0196 39DF              xcall _VS1003_WriteReg
 0198           L32:
 0198                   .dbline 184
 0198           L33:
 0198                   .dbline 184
 0198           ;       
 0198           ;       while(VS1003_DREQ_STATE() != VS1003_DREQ);      
 0198 83B3              in R24,0x13
 019A 8078              andi R24,128
 019C 8038              cpi R24,128
 019E E1F7              brne L32
 01A0                   .dbline 186
 01A0           ;       
 01A0           ;       return 1;
 01A0 01E0              ldi R16,1
 01A2                   .dbline -2
 01A2           L10:
 01A2 0E940000          xcall pop_gset2
 01A6                   .dbline 0 ; func end
 01A6 0895              ret
 01A8                   .dbend
 01A8                   .dbfunc e VS1003_SendNull _VS1003_SendNull fV
 01A8           ;              i -> y+0
                        .even
 01A8           _VS1003_SendNull::
 01A8 0E940000          xcall push_gset2
 01AC 2497              sbiw R28,4
 01AE                   .dbline -1
 01AE                   .dbline 197
 01AE           ; 
 01AE           ; }
 01AE           ; 
 01AE           ; 
 01AE           ; //---------------------------------
 01AE           ; //
 01AE           ; //     VS1003空数据发送函数 
 01AE           ; //
 01AE           ; //---------------------------------
 01AE           ; void VS1003_SendNull(void)
 01AE           ; {
 01AE                   .dbline 198
 01AE           ;       uint32 i=0;
 01AE 40E0              ldi R20,0
 01B0 50E0              ldi R21,0
 01B2 60E0              ldi R22,0
 01B4 70E0              ldi R23,0
 01B6 FE01              movw R30,R28
 01B8 4083              std z+0,R20
 01BA 5183              std z+1,R21
 01BC 6283              std z+2,R22
 01BE 7383              std z+3,R23
 01C0           L36:
 01C0                   .dbline 200
 01C0           ;       do
 01C0           ;       {
 01C0                   .dbline 201
 01C0           ;               if(VS1003_DREQ_STATE()== VS1003_DREQ) 
 01C0 83B3              in R24,0x13
 01C2 8078              andi R24,128
 01C4 8038              cpi R24,128
 01C6 A1F4              brne L39
 01C8                   .dbline 202
 01C8           ;               {       
 01C8                   .dbline 203
 01C8           ;                       VS1003_WriteDat(0x00);
 01C8 0027              clr R16
 01CA 5BDF              xcall _VS1003_WriteDat
 01CC                   .dbline 204
 01CC           ;                       i++;
 01CC 41E0              ldi R20,1
 01CE 50E0              ldi R21,0
 01D0 60E0              ldi R22,0
 01D2 70E0              ldi R23,0
 01D4 FE01              movw R30,R28
 01D6 2080              ldd R2,z+0
 01D8 3180              ldd R3,z+1
 01DA 4280              ldd R4,z+2
 01DC 5380              ldd R5,z+3
 01DE 240E              add R2,R20
 01E0 351E              adc R3,R21
 01E2 461E              adc R4,R22
 01E4 571E              adc R5,R23
 01E6 FE01              movw R30,R28
 01E8 2082              std z+0,R2
 01EA 3182              std z+1,R3
 01EC 4282              std z+2,R4
 01EE 5382              std z+3,R5
 01F0                   .dbline 205
 01F0           ;               }
 01F0           L39:
 01F0                   .dbline 206
 01F0           L37:
 01F0                   .dbline 206
 01F0           ;       }while(i<1024);
 01F0 40E0              ldi R20,0
 01F2 54E0              ldi R21,4
 01F4 60E0              ldi R22,0
 01F6 70E0              ldi R23,0
 01F8 FE01              movw R30,R28
 01FA 2080              ldd R2,z+0
 01FC 3180              ldd R3,z+1
 01FE 4280              ldd R4,z+2
 0200 5380              ldd R5,z+3
 0202 2416              cp R2,R20
 0204 3506              cpc R3,R21
 0206 4606              cpc R4,R22
 0208 5706              cpc R5,R23
 020A D0F2              brlo L36
 020C                   .dbline -2
 020C           L35:
 020C 2496              adiw R28,4
 020E 0E940000          xcall pop_gset2
 0212                   .dbline 0 ; func end
 0212 0895              ret
 0214                   .dbsym l i 0 l
 0214                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile C:\AVR\M\1\vs1003.c
 0000           _num::
 0000                   .blkb 4
 0004                   .dbsym e num _num l
 0004           _VOL::
 0004                   .blkb 2
 0006                   .dbsym e VOL _VOL i

⌨️ 快捷键说明

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