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

📄 main.lis

📁 ISD1700语音芯片放音的ISP实现
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 01C6           X22:
 01C6                   .dbline 161
 01C6           ;     SPDR = 0x10+0x80;                                 //cmd
 01C6 80E9              ldi R24,144
 01C8 8FB9              out 0xf,R24
 01CA           L87:
 01CA                   .dbline 163
 01CA           ;     while (!(SPSR &(1 << SPIF)))
 01CA           ;         ;
 01CA           L88:
 01CA                   .dbline 162
 01CA 779B              sbis 0xe,7
 01CC FECF              rjmp L87
 01CE           X23:
 01CE                   .dbline 164
 01CE           ;     SPDR = 0x00;                                      //data
 01CE 2224              clr R2
 01D0 2FB8              out 0xf,R2
 01D2           L90:
 01D2                   .dbline 166
 01D2           ;     while (!(SPSR &(1 << SPIF)))
 01D2           ;         ;
 01D2           L91:
 01D2                   .dbline 165
 01D2 779B              sbis 0xe,7
 01D4 FECF              rjmp L90
 01D6           X24:
 01D6                   .dbline 167
 01D6           ;       SPDR = (unsigned char)startAdd; //start add,LSB
 01D6 0FB9              out 0xf,R16
 01D8           L93:
 01D8                   .dbline 169
 01D8           ;     while (!(SPSR &(1 << SPIF)))
 01D8           ;         ;
 01D8           L94:
 01D8                   .dbline 168
 01D8 779B              sbis 0xe,7
 01DA FECF              rjmp L93
 01DC           X25:
 01DC                   .dbline 170
 01DC           ;       SPDR = (unsigned char)(startAdd>>8);    //start add,MSB
 01DC 1801              movw R2,R16
 01DE 232C              mov R2,R3
 01E0 3324              clr R3
 01E2 2FB8              out 0xf,R2
 01E4           L96:
 01E4                   .dbline 172
 01E4           ;     while (!(SPSR &(1 << SPIF)))
 01E4           ;         ;
 01E4           L97:
 01E4                   .dbline 171
 01E4 779B              sbis 0xe,7
 01E6 FECF              rjmp L96
 01E8           X26:
 01E8                   .dbline 173
 01E8           ;       SPDR = 0x00;                                    //end add
 01E8 2224              clr R2
 01EA 2FB8              out 0xf,R2
 01EC           L99:
 01EC                   .dbline 175
 01EC           ;     while (!(SPSR &(1 << SPIF)))
 01EC           ;         ;
 01EC           L100:
 01EC                   .dbline 174
 01EC 779B              sbis 0xe,7
 01EE FECF              rjmp L99
 01F0           X27:
 01F0                   .dbline 176
 01F0           ;     SPDR = 0x00;                                      //end add
 01F0 2224              clr R2
 01F2 2FB8              out 0xf,R2
 01F4           L102:
 01F4                   .dbline 178
 01F4           ;     while (!(SPSR &(1 << SPIF)))
 01F4           ;         ;
 01F4           L103:
 01F4                   .dbline 177
 01F4 779B              sbis 0xe,7
 01F6 FECF              rjmp L102
 01F8           X28:
 01F8                   .dbline 179
 01F8           ;     SPDR = 0x00;                                      //end add
 01F8 2224              clr R2
 01FA 2FB8              out 0xf,R2
 01FC           L105:
 01FC                   .dbline 181
 01FC           ;     while (!(SPSR &(1 << SPIF)))
 01FC           ;         ;
 01FC           L106:
 01FC                   .dbline 180
 01FC 779B              sbis 0xe,7
 01FE FECF              rjmp L105
 0200           X29:
 0200                   .dbline 182
 0200           ;       for(i=0;i<100;i++)
 0200 4427              clr R20
 0202 5527              clr R21
 0204           L108:
 0204                   .dbline 183
 0204           ;       ;
 0204           L109:
 0204                   .dbline 182
 0204 4F5F              subi R20,255  ; offset = 1
 0206 5F4F              sbci R21,255
 0208                   .dbline 182
 0208 4436              cpi R20,100
 020A E0E0              ldi R30,0
 020C 5E07              cpc R21,R30
 020E D4F3              brlt L108
 0210           X30:
 0210                   .dbline 184
 0210           ;     PORTB |= (1<<PB0);        //SS=1
 0210 C09A              sbi 0x18,0
 0212                   .dbline -2
 0212           L82:
 0212                   .dbline 0 ; func end
 0212 5991              ld R21,y+
 0214 4991              ld R20,y+
 0216 0895              ret
 0218                   .dbsym r i 20 I
 0218                   .dbsym r startAdd 16 i
 0218                   .dbend
                        .area data(ram, con, rel)
 0004                   .dbfile E:\AVR\ISD1700_ISP\src\main.c
 0004           L113:
 0004                   .blkb 1
                        .area idata
 0004 00                .byte 0
                        .area data(ram, con, rel)
 0005                   .dbfile E:\AVR\ISD1700_ISP\src\main.c
                        .area text(rom, con, rel)
 0218                   .dbfile E:\AVR\ISD1700_ISP\src\main.c
 0218                   .dbfunc e main _main fV
 0218                   .dbsym s secondcount L113 c
 0218           ;      soundFlag -> R20
 0218           ;              t -> R22,R23
                        .even
 0218           _main::
 0218                   .dbline -1
 0218                   .dbline 189
 0218           ; }
 0218           ; 
 0218           ; //主函数
 0218           ; void main(void)
 0218           ; {
 0218                   .dbline 191
 0218           ;     static unsigned char secondcount=0;
 0218           ;     unsigned char soundFlag=0;
 0218 4427              clr R20
 021A                   .dbline 195
 021A           ;     
 021A           ;     unsigned int t;
 021A           ;     
 021A           ;     init_devices(); //全局初始化
 021A 0FDF              xcall _init_devices
 021C                   .dbline 196
 021C           ;     RUN2_OFF();
 021C C698              cbi 0x18,6
 021E                   .dbline 198
 021E           ;     
 021E           ;     iProgRunCount=GetTime();
 021E 0E940000          xcall _GetTime
 0222 10930100          sts _iProgRunCount+1,R17
 0226 00930000          sts _iProgRunCount,R16
 022A 0EC0              xjmp L115
 022C           L114:
 022C                   .dbline 200
 022C           ;     while(1)
 022C           ;     {
 022C                   .dbline 201
 022C           ;       WDR();
 022C A895              wdr
 022E                   .dbline 202
 022E           ;       t=GetPassTime(iProgRunCount);
 022E 00910000          lds R16,_iProgRunCount
 0232 10910100          lds R17,_iProgRunCount+1
 0236 0E940000          xcall _GetPassTime
 023A B801              movw R22,R16
 023C                   .dbline 203
 023C           ;               if(t>=100)
 023C 0436              cpi R16,100
 023E E0E0              ldi R30,0
 0240 1E07              cpc R17,R30
 0242 10F0              brlo L117
 0244           X31:
 0244                   .dbline 204
 0244           ;               {
 0244                   .dbline 205
 0244           ;                       isd1700_init();
 0244 15DF              xcall _isd1700_init
 0246                   .dbline 206
 0246           ;                       break;
 0246 01C0              xjmp L116
 0248           L117:
 0248                   .dbline 208
 0248           ;               }
 0248           ;     }
 0248           L115:
 0248                   .dbline 199
 0248 F1CF              xjmp L114
 024A           L116:
 024A                   .dbline 210
 024A           ;     
 024A           ;     Read_APC();
 024A 5EDF              xcall _Read_APC
 024C                   .dbline 212
 024C           ; 
 024C           ;       Sound_SetFlay(0x10);
 024C 00E1              ldi R16,16
 024E 10E0              ldi R17,0
 0250 AFDF              xcall _Sound_SetFlay
 0252                   .dbline 213
 0252           ;       soundTime=GetTime();
 0252 0E940000          xcall _GetTime
 0256 5801              movw R10,R16
 0258 B0920300          sts _soundTime+1,R11
 025C A0920200          sts _soundTime,R10
 0260 28C0              xjmp L120
 0262           L119:
 0262                   .dbline 215
 0262           ;     while (1)
 0262           ;     {
 0262                   .dbline 216
 0262           ;         WDR(); //内部watchdog
 0262 A895              wdr
 0264                   .dbline 217
 0264           ;               if(GetPassTime(soundTime)>=1000)
 0264 00910200          lds R16,_soundTime
 0268 10910300          lds R17,_soundTime+1
 026C 0E940000          xcall _GetPassTime
 0270 B801              movw R22,R16
 0272 083E              cpi R16,232
 0274 E3E0              ldi R30,3
 0276 1E07              cpc R17,R30
 0278 B0F0              brlo L122
 027A           X32:
 027A                   .dbline 218
 027A           ;         {
 027A                   .dbline 219
 027A           ;               soundTime=GetTime();
 027A 0E940000          xcall _GetTime
 027E 5801              movw R10,R16
 0280 B0920300          sts _soundTime+1,R11
 0284 A0920200          sts _soundTime,R10
 0288                   .dbline 220
 0288           ;               secondcount++;
 0288 80910400          lds R24,L113
 028C 8F5F              subi R24,255    ; addi 1
 028E 80930400          sts L113,R24
 0292                   .dbline 221
 0292           ;               if(secondcount>=20)
 0292 8431              cpi R24,20
 0294 20F0              brlo L124
 0296           X33:
 0296                   .dbline 222
 0296           ;               {
 0296                   .dbline 223
 0296           ;                       secondcount=0;
 0296 2224              clr R2
 0298 20920400          sts L113,R2
 029C                   .dbline 224
 029C           ;                       soundFlag=1;
 029C 41E0              ldi R20,1
 029E                   .dbline 225
 029E           ;               }
 029E           L124:
 029E                   .dbline 226
 029E           ;               RUN1();
 029E 80E2              ldi R24,32
 02A0 28B2              in R2,0x18
 02A2 2826              eor R2,R24
 02A4 28BA              out 0x18,R2
 02A6                   .dbline 227
 02A6           ;         }
 02A6           L122:
 02A6                   .dbline 229
 02A6           ;         
 02A6           ;         if(soundFlag)
 02A6 4423              tst R20
 02A8 21F0              breq L126
 02AA           X34:
 02AA                   .dbline 230
 02AA           ;         {
 02AA                   .dbline 231
 02AA           ;               soundFlag=0;
 02AA 4427              clr R20
 02AC                   .dbline 233
 02AC           ;               //Sound_Flay();
 02AC           ;               Sound_SetFlay(0x10);
 02AC 00E1              ldi R16,16
 02AE 10E0              ldi R17,0
 02B0 7FDF              xcall _Sound_SetFlay
 02B2                   .dbline 234
 02B2           ;         }
 02B2           L126:
 02B2                   .dbline 235
 02B2           ;     }
 02B2           L120:
 02B2                   .dbline 214
 02B2 D7CF              xjmp L119
 02B4           X35:
 02B4                   .dbline -2
 02B4           L112:
 02B4                   .dbline 0 ; func end
 02B4 0895              ret
 02B6                   .dbsym r soundFlag 20 c
 02B6                   .dbsym r t 22 i
 02B6                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\AVR\ISD1700_ISP\src\main.c
 0000           _data4::
 0000                   .blkb 1
 0001                   .dbsym e data4 _data4 c
 0001           _data3::
 0001                   .blkb 1
 0002                   .dbsym e data3 _data3 c
 0002           _data2::
 0002                   .blkb 1
 0003                   .dbsym e data2 _data2 c
 0003           _data1::
 0003                   .blkb 1
 0004                   .dbsym e data1 _data1 c
 0004           ; }

⌨️ 快捷键说明

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