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

📄 bu2624.lis

📁 sunplus spca514 cdmp3 源码
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 01DE 90910C00          lds R25,_In_Cdata+1
 01E2 80910B00          lds R24,_In_Cdata
 01E6 8F7E              andi R24,239
 01E8 90930C00          sts _In_Cdata+1,R25
 01EC 80930B00          sts _In_Cdata,R24
 01F0                   .dbline 235
                       ;     }
 01F0 09C0              xjmp L46
 01F2                 L45:
 01F2                   .dbline 237
                       ;     else
                       ;     {
 01F2                   .dbline 238
                       ;         Set_Mono();//In_Cdata |= P4_MONO;
 01F2 90910C00          lds R25,_In_Cdata+1
 01F6 80910B00          lds R24,_In_Cdata
 01FA 8061              ori R24,16
 01FC 90930C00          sts _In_Cdata+1,R25
 0200 80930B00          sts _In_Cdata,R24
 0204                   .dbline 239
                       ;     }
 0204                 L46:
 0204                   .dbline 240
                       ;     send_cmd_to_bu2624();
 0204 7BDF              xcall _send_cmd_to_bu2624
 0206                   .dbline -2
 0206                   .dbline 241
                       ; }
 0206                 L44:
 0206                   .dbline 0 ; func end
 0206 0895              ret
 0208                   .dbfunc s switch_fmam _switch_fmam fI
                         .even
 0208                 _switch_fmam::
 0208                   .dbline -1
 0208                   .dbline 244
                       ; 
                       ; void switch_fmam(void)
                       ; {
 0208                   .dbline 246
                       ;     //unsigned char i;
                       ;     radio_is_muted = 1;
 0208 81E0              ldi R24,1
 020A 80930800          sts _radio_is_muted,R24
 020E                   .dbline 247
                       ;     if(amfm_flag)
 020E 20900200          lds R2,_amfm_flag
 0212 2220              tst R2
 0214 A9F1              breq L48
 0216                   .dbline 248
                       ;     {
 0216                   .dbline 249
                       ;         if((freq < AMreq_MIN)||(freq > AMreq_MAX))
 0216 90910100          lds R25,_freq+1
 021A 80910000          lds R24,_freq
 021E 8A30              cpi R24,10
 0220 E2E0              ldi R30,2
 0222 9E07              cpc R25,R30
 0224 48F0              brlo L52
 0226 8BE4              ldi R24,1611
 0228 96E0              ldi R25,6
 022A 30900100          lds R3,_freq+1
 022E 20900000          lds R2,_freq
 0232 8215              cp R24,R2
 0234 9305              cpc R25,R3
 0236 30F4              brsh L50
 0238                 L52:
 0238                   .dbline 250
                       ;             freq = AMreq_MIN;
 0238 8AE0              ldi R24,522
 023A 92E0              ldi R25,2
 023C 90930100          sts _freq+1,R25
 0240 80930000          sts _freq,R24
 0244                 L50:
 0244                   .dbline 261
                       ;           
                       ;       /*  switch(AMreq_STEP)
                       ;         {
                       ;             case 9:
                       ;                 Rfreq = Rfreq_009KHZ;
                       ;                 break;
                       ;             case 10:
                       ;                  Rfreq = Rfreq_010KHZ;
                       ;                  break;    
                       ;         };*/
                       ;         In_Cdata = P0_AM | P4_MONO | P3_MUTE | Rfreq_009KHZ| AMIN | IF2 | IF_COUNTER_8MS;
 0244 81E1              ldi R24,11537
 0246 9DE2              ldi R25,45
 0248 90930C00          sts _In_Cdata+1,R25
 024C 80930B00          sts _In_Cdata,R24
 0250                   .dbline 264
                       ;         //AM:IF_OUT: MUTE ON : MONO:PLL OPERATION: RESET COUNT
                       ;         //:PLL :AMIN : PS=1:IF2:8MS: TS
                       ;         In_Pdata = ((freq+IF_AM)/AMreq_STEP)<<4;
 0250 29E0              ldi R18,9
 0252 30E0              ldi R19,0
 0254 10910100          lds R17,_freq+1
 0258 00910000          lds R16,_freq
 025C 0E53              subi R16,62  ; offset = 450
 025E 1E4F              sbci R17,254
 0260 0E940000          xcall div16u
 0264 1801              movw R2,R16
 0266 220C              lsl R2
 0268 331C              rol R3
 026A 220C              lsl R2
 026C 331C              rol R3
 026E 220C              lsl R2
 0270 331C              rol R3
 0272 220C              lsl R2
 0274 331C              rol R3
 0276 30920E00          sts _In_Pdata+1,R3
 027A 20920D00          sts _In_Pdata,R2
 027E                   .dbline 266
                       ;         //is_stereo = 0;
                       ;     }
 027E 3CC0              xjmp L49
 0280                 L48:
 0280                   .dbline 268
                       ;     else
                       ;     {
 0280                   .dbline 269
                       ;         if((freq < FMreq_MIN)||(freq > FMreq_MAX))
 0280 90910100          lds R25,_freq+1
 0284 80910000          lds R24,_freq
 0288 8E32              cpi R24,46
 028A E2E2              ldi R30,34
 028C 9E07              cpc R25,R30
 028E 48F0              brlo L55
 0290 80E3              ldi R24,10800
 0292 9AE2              ldi R25,42
 0294 30900100          lds R3,_freq+1
 0298 20900000          lds R2,_freq
 029C 8215              cp R24,R2
 029E 9305              cpc R25,R3
 02A0 30F4              brsh L53
 02A2                 L55:
 02A2                   .dbline 270
                       ;             freq = FMreq_MIN;
 02A2 8EE2              ldi R24,8750
 02A4 92E2              ldi R25,34
 02A6 90930100          sts _freq+1,R25
 02AA 80930000          sts _freq,R24
 02AE                 L53:
 02AE                   .dbline 272
                       ;             //In_Cdata = 0;
                       ;         In_Cdata =(unsigned int) (P0_FM |P3_MUTE| Rfreq_025KHZ | FMIN | IF2 | IF_COUNTER_8MS);
 02AE 80E0              ldi R24,8192
 02B0 90E2              ldi R25,32
 02B2 90930C00          sts _In_Cdata+1,R25
 02B6 80930B00          sts _In_Cdata,R24
 02BA                   .dbline 274
                       ;       //FM:IF_OUT:PLL OPERATE:RESET COUNT:PLL: FMIN:PS=X: 16MS
                       ;         In_Pdata = ((freq+IF_FM)/5);
 02BA 25E0              ldi R18,5
 02BC 30E0              ldi R19,0
 02BE 10910100          lds R17,_freq+1
 02C2 00910000          lds R16,_freq
 02C6 025D              subi R16,210  ; offset = 1070
 02C8 1B4F              sbci R17,251
 02CA 0E940000          xcall div16u
 02CE 10930E00          sts _In_Pdata+1,R17
 02D2 00930D00          sts _In_Pdata,R16
 02D6                   .dbline 276
 02D6 20900400          lds R2,_is_stereo
 02DA 2220              tst R2
 02DC 21F0              breq L58
 02DE 20900500          lds R2,_is_autosearching
 02E2 2220              tst R2
 02E4 49F0              breq L56
 02E6                 L58:
 02E6                   .dbline 276
                       ;         
                       ;         if(!is_stereo || is_autosearching) In_Cdata |= P4_MONO;
 02E6 90910C00          lds R25,_In_Cdata+1
 02EA 80910B00          lds R24,_In_Cdata
 02EE 8061              ori R24,16
 02F0 90930C00          sts _In_Cdata+1,R25
 02F4 80930B00          sts _In_Cdata,R24
 02F8                 L56:
 02F8                   .dbline 277
                       ;     }
 02F8                 L49:
 02F8                   .dbline 278
                       ;     send_cmd_to_bu2624();
 02F8 01DF              xcall _send_cmd_to_bu2624
 02FA                   .dbline 280
                       ;     #ifdef SGJM_RDS
                       ;     rds_init();
 02FA 0E940000          xcall _rds_init
 02FE                   .dbline -2
 02FE                   .dbline 285
                       ;     //rds_data.syc_flag = 0;
                       ;     //rds_status = 0;
                       ;     //rds_step = SEARCH_SYC_STEP;
                       ;     #endif
                       ; }
 02FE                 L47:
 02FE                   .dbline 0 ; func end
 02FE 0895              ret
 0300                   .dbfunc s change_freq_value _change_freq_value fI
                         .even
 0300                 _change_freq_value::
 0300                   .dbline -1
 0300                   .dbline 288
                       ; 
                       ; void  change_freq_value(void)
                       ; {
 0300                   .dbline 289
                       ;     if(amfm_flag)
 0300 20900200          lds R2,_amfm_flag
 0304 2220              tst R2
 0306 09F4              brne X0
 0308 47C0              xjmp L60
 030A                 X0:
 030A                   .dbline 290
                       ;     {
 030A                   .dbline 291
                       ;         if(search_dir)
 030A 20901300          lds R2,_search_dir
 030E 2220              tst R2
 0310 A9F0              breq L62
 0312                   .dbline 292
                       ;         {
 0312                   .dbline 293
                       ;             if(freq < AMreq_MAX)
 0312 90910100          lds R25,_freq+1
 0316 80910000          lds R24,_freq
 031A 8B34              cpi R24,75
 031C E6E0              ldi R30,6
 031E 9E07              cpc R25,R30
 0320 30F4              brsh L64
 0322                   .dbline 294
                       ;                 freq +=AMreq_STEP;
 0322 0996              adiw R24,9
 0324 90930100          sts _freq+1,R25
 0328 80930000          sts _freq,R24
 032C 1DC0              xjmp L63
 032E                 L64:
 032E                   .dbline 296
                       ;             else
                       ;             {   
 032E                   .dbline 297
                       ;                 freq = AMreq_MIN;
 032E 8AE0              ldi R24,522
 0330 92E0              ldi R25,2
 0332 90930100          sts _freq+1,R25
 0336 80930000          sts _freq,R24
 033A                   .dbline 298
                       ;             }
 033A                   .dbline 299
                       ;         }
 033A 16C0              xjmp L63
 033C                 L62:
 033C                   .dbline 301
                       ;         else
                       ;         {
 033C                   .dbline 302
                       ;             if(freq > AMreq_MIN)
 033C 8AE0              ldi R24,522
 033E 92E0              ldi R25,2
 0340 30900100          lds R3,_freq+1
 0344 20900000          lds R2,_freq
 0348 8215              cp R24,R2
 034A 9305              cpc R25,R3
 034C 38F4              brsh L66
 034E                   .dbline 303
                       ;                 freq -= AMreq_STEP;
 034E C101              movw R24,R2
 0350 0997              sbiw R24,9
 0352 90930100          sts _freq+1,R25
 0356 80930000          sts _freq,R24
 035A 06C0              xjmp L67
 035C                 L66:
 035C                   .dbline 305
                       ;             else
                       ;                 freq = AMreq_MAX;
 035C 8BE4              ldi R24,1611
 035E 96E0              ldi R25,6
 0360 90930100          sts _freq+1,R25
 0364 80930000          sts _freq,R24
 0368                 L67:
 0368                   .dbline 306
                       ;         }
 0368                 L63:
 0368                   .dbline 307
                       ;         In_Pdata = ((freq+IF_AM)/AMreq_STEP)<<4;
 0368 29E0              ldi R18,9
 036A 30E0              ldi R19,0
 036C 10910100          lds R17,_freq+1
 0370 00910000          lds R16,_freq
 0374 0E53              subi R16,62  ; offset = 450
 0376 1E4F              sbci R17,254
 0378 0E940000          xcall div16u
 037C 1801              movw R2,R16
 037E 220C              lsl R2
 0380 331C              rol R3
 0382 220C              lsl R2
 0384 331C              rol R3
 0386 220C              lsl R2
 0388 331C              rol R3
 038A 220C              lsl R2
 038C 331C              rol R3
 038E 30920E00          sts _In_Pdata+1,R3
 0392 20920D00          sts _In_Pdata,R2
 0396                   .dbline 308
                       ;     }
 0396 3DC0              xjmp L61
 0398                 L60:
 0398                   .dbline 310
                       ;     else
                       ;     {
 0398                   .dbline 311
                       ;         if(search_dir)   //++
 0398 20901300          lds R2,_search_dir
 039C 2220              tst R2

⌨️ 快捷键说明

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