download.lst

来自「DSP5402 开发板原理图 很详细 仅共参看」· LST 代码 · 共 421 行 · 第 1/2 页

LST
421
字号
 196   1                      WR_HPIH1_D=0x80;        
 197   1           
 198   1                      }     
 199          
 200          Timer0() interrupt 1
 201                  {
 202   1                      ok=1;
 203   1                      ms++;
 204   1              }
 205          
 206          void    init_51()
 207                          {
 208   1                      TMOD=0x21;
 209   1                      SCON=0x40;
 210   1                      REN=1;
 211   1                      TH1=0xfd;
 212   1                      TL1=0xfd;
 213   1                      ET1=0;
 214   1                      ES=0;
 215   1                      IT0=1;
 216   1                      EX0=0;
 217   1                      ET0=1;
 218   1                      EA=1;
 219   1                      TR1=1;
 220   1                      TR0=1;
 221   1                      }
 222          /***************************************************************/
 223          
 224          void    init_AIC23()
 225                          { 
 226   1                              write_AIC23(RESET,0);
 227   1                              write_AIC23(D_INTERFACE_ACT,0x001);
 228   1                              write_AIC23(POWER_CON,0);
 229   1                              write_AIC23(SAMPLE_RATE,0x022);  //44.1k
 230   1      //              write_AIC23(SAMPLE_RATE,0x062);  //22.05k
 231   1      //              write_AIC23(SAMPLE_RATE,0x02e);    //8.021k
 232   1          
 233   1                              write_AIC23(L_LINE_VOLUME,0x0117);
 234   1                              write_AIC23(L_LINE_VOLUME,0x0117);
 235   1         
 236   1                              volume=100;
 237   1                              write_AIC23(L_HEADPHONE_VOLUME,0x0180+volume);   
 238   1                              write_AIC23(R_HEADPHONE_VOLUME,0x0180+volume);   
 239   1         
 240   1      //              write_AIC23(A_AUDIO_PATH,0x009);  //bypass DAC OFF
C51 COMPILER V7.06   DOWNLOAD                                                              12/21/2005 12:04:00 PAGE 5   

 241   1      //              write_AIC23(A_AUDIO_PATH,0x014);   //MIC ADC DAC ON  0DB
 242   1      //              write_AIC23(A_AUDIO_PATH,0x1fc);   //bypass MIC ADC DAC ON 0DB sidetone 
 243   1                      write_AIC23(A_AUDIO_PATH,0x07d);   //bypass MIC ADC DAC ON 20DB sidetone(-6db)
 244   1      //              write_AIC23(A_AUDIO_PATH,0x011);   //LINE ADC DAC ON
 245   1         
 246   1                              write_AIC23(D_AUDIO_PATH,0x04);
 247   1         
 248   1                              write_AIC23(D_AUDIO_INTERFACE,0x043);   //master  dsp mode
 249   1                      }
 250          void    write_AIC23(uchar addr,uint dat)
 251                          {
 252   1                      uchar i;
 253   1                      dat|=addr<<9;
 254   1                      CS=0;
 255   1                      for(i=0;i<16;i++)
 256   1                      {
 257   2                              SCLK=0;
 258   2                              if((dat<<i)&0x8000)
 259   2                                      SDIN=1;
 260   2                              else 
 261   2                                      SDIN=0;
 262   2                              SCLK=1;
 263   2                      }
 264   1                      SCLK=0;
 265   1                      CS=1;
 266   1                      }
 267          
 268          void    writeSTA013(uchar addr,uchar x)
 269                          {
 270   1                              startbit();   
 271   1                              write8(0x86);  //STA013  write
 272   1                              write8(addr);
 273   1                              write8(x);  
 274   1                              stopbit();    
 275   1                      }
 276          /*
 277          uchar   readsta013(uchar addr)
 278                          {
 279                                  uchar   dat;
 280          
 281                                  startbit();
 282                                  write8(0x86);
 283                                  write8(addr);   
 284             
 285                                  startbit();
 286                                  write8(0x87);
 287                                  dat=read8();
 288                                  stopbit();  
 289                                  return(dat);
 290                          }
 291          
 292          uchar   read8()
 293                          {
 294                                  uchar i;
 295                                  uchar d=0;
 296                                  SCK=0;
 297                                  for(i=0;i<8;i++)
 298                                  {
 299                                  SDA=1;
 300                                  SCK=1;
 301                                          delay1(38);
 302                                  if(SDA==1) d=d|((0x80)>>i);
C51 COMPILER V7.06   DOWNLOAD                                                              12/21/2005 12:04:00 PAGE 6   

 303                                  delay1(38);
 304                                  SCK=0;
 305                                  }
 306            
 307                                  SCK=0;
 308                                  delay1(38);            //NO ACK
 309                                  SDA=1;
 310                                  SCK=1;
 311                                  delay1(38);
 312                                  SCK=0;
 313            
 314                                  return(d);
 315                          }
 316          */ 
 317          void    write8(uchar d)
 318                          {
 319   1                              uchar i;
 320   1                              for(i=0;i<8;i++)
 321   1                              {
 322   2                              SCK=0;
 323   2                              if((d<<i)&0x80) SDA=1;
 324   2                              else SDA=0;
 325   2                              SCK=1;
 326   2                                      delay1(38);
 327   2                              }
 328   1                              SCK=0;
 329   1        
 330   1                              SCK=1;          //ACK bit
 331   1                              while(SDA);
 332   1                              SCK=0;
 333   1                      }
 334          
 335          void    startbit()
 336                          {
 337   1                              SCK=0;
 338   1                              delay1(38);
 339   1                              SDA=1;
 340   1                              SCK=1;
 341   1                              delay1(38);     //start bit
 342   1                              SDA=0;
 343   1                              delay1(38);
 344   1                              SCK=0;
 345   1                              delay1(38);
 346   1                      }
 347          void    stopbit()
 348                          {
 349   1                              SCK=0;
 350   1                              SDA=0;
 351   1                              delay1(38);
 352   1                              SCK=1;
 353   1                              delay1(38);     //stop bit
 354   1                              SDA=1;
 355   1                              delay1(38);
 356   1                              SCK=0;
 357   1                              delay1(38);
 358   1                      }
 359          void    init_sta013()
 360                          {
 361   1                              RST013=0;
 362   1                              delay(200);
 363   1                              RST013=1;
 364   1                              delay(10000);
C51 COMPILER V7.06   DOWNLOAD                                                              12/21/2005 12:04:00 PAGE 7   

 365   1                              writeSTA013(0x54,5);   //PCM_DIVIDER  384FS
 366   1                              writeSTA013(0x63,1);   //DAC_CLK fixed
 367   1                              writeSTA013(0x0A,17);   //RESERVED
 368   1                              writeSTA013(0x0B,3);    //RESERVED
 369   1                              writeSTA013(0x55,0X0c);   //PCM_CONF  16BIT
 370   1                              writeSTA013(0x52,160);   //PLL_FRAC_441_H
 371   1                              writeSTA013(0x51,186);   //PLL_FRAC_441_L
 372   1                              writeSTA013(0x65,140);   //PLL_FRAC_H  
 373   1                              writeSTA013(0x64,42);   //PLL_FRAC_L
 374   1                              writeSTA013(0x50,10);   //MFSDF_441
 375   1                              writeSTA013(0x61,7);    //MFSDF(X)
 376   1                              writeSTA013(0x05,0xa1);  //PLLCTRL  
 377   1                              writeSTA013(0x18,0X04);  //DATA_REQ_ENABLE
 378   1                              writeSTA013(0x0d,0X04);  //SCKL_POL SAMPLING ON FALLING EDGE
 379   1                              writeSTA013(0x0C,0X01);  //REQ_POL LINE IS HIGH
 380   1                              writeSTA013(0x72,0X01);  //RUN
 381   1                              writeSTA013(0x14,0X00);  //MUTE  
 382   1                              writeSTA013(0x13,0X01);  //PLAY
 383   1                      }
 384          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    902    ----
   CONSTANT SIZE    =   1060    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6      11
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      3    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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