download.lst

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

LST
421
字号
C51 COMPILER V7.06   DOWNLOAD                                                              12/21/2005 12:04:00 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE DOWNLOAD
OBJECT MODULE PLACED IN DOWNLOAD.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE DOWNLOAD.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1                                                                                                                    
             -                                                      
   2          #include  <Reg52.h>        
   3          #include  <absacc.h>
   4          #include  <stdio.h>
   5          #include  <intrins.h>
   6          #include  <dspcode.h>  
   7          /*定义宏*/
   8          #define   uint unsigned  int
   9          #define   uchar unsigned  char
  10          
  11          #define   VOL1     0x81
  12          #define   VOL2     0x82
  13          
  14          #define   L_LINE_VOLUME        0x00
  15          #define   R_LINE_VOLUME        0x01
  16          #define   L_HEADPHONE_VOLUME   0x02
  17          #define   R_HEADPHONE_VOLUME   0x03
  18          #define   A_AUDIO_PATH         0x04
  19          #define   D_AUDIO_PATH         0x05
  20          #define   POWER_CON            0x06
  21          #define   D_AUDIO_INTERFACE    0x07
  22          #define   SAMPLE_RATE          0x08
  23          #define   D_INTERFACE_ACT      0x09
  24          #define   RESET                0x0f
  25          
  26          
  27          /*定义寄存器端口地址*/
  28          #define   HPICL          XBYTE[0xe000]
  29          #define   HPICH          XBYTE[0xe100]
  30          #define   WR_HPIL0_D     XBYTE[0xe200]
  31          #define   WR_HPIH0_D     XBYTE[0xe300]
  32          #define   WR_HPIL_A      XBYTE[0xe400]
  33          #define   WR_HPIH_A      XBYTE[0xe500]
  34          #define   WR_HPIL1_D     XBYTE[0xe600]
  35          #define   WR_HPIH1_D     XBYTE[0xe700]
  36          
  37          #define   RD_HPIL0_D     XBYTE[0xeA00]
  38          #define   RD_HPIH0_D     XBYTE[0xeB00]
  39          #define   RD_HPIL1_D     XBYTE[0xeE00]
  40          #define   RD_HPIH1_D     XBYTE[0xeF00]
  41          
  42          #define   WR_CR          XBYTE[0x7100]
  43          #define   WR_PARA        XBYTE[0x7000]
  44          
  45          sbit      DSPRST     = P1^2;
  46          sbit      RST8019    = P1^3;
  47          sbit      USBRST         = P1^4;
  48          sbit      LCDRST         = P1^5;
  49          sbit      RST013         = P3^2;                
  50          sbit      CS         = P3^3;
  51          sbit      SDIN       = P3^4;
  52          sbit      SCLK       = P3^5;
  53          
  54          sbit      SDA            = P1^6;
C51 COMPILER V7.06   DOWNLOAD                                                              12/21/2005 12:04:00 PAGE 2   

  55          sbit      SCK            = P1^7;
  56            
  57          uchar   hpic;
  58          bit     ok,readT,key_down;
  59          uchar   time,stoptime,ms,DSPorder;
  60          uchar   volume;
  61          
  62          void    wr_dspcode();
  63          void    delay(uint  wu);
  64          void    LOADDSP();
  65          void    init_51();
  66          void    init_AIC23();
  67          void    write_AIC23(uchar addr,uint dat);
  68          void    DspRst(void);
  69          void    UsbRst(void);
  70          void    LcdRst(void);
  71          void    RstNet();
  72          
  73          //function of sta013
  74          void    write8(uchar d);
  75          void    writeSTA013(uchar addr,uchar x);
  76          //uchar readsta013(uchar addr);
  77          uchar   read8();
  78          void    startbit();
  79          void    stopbit();
  80          void    init_STA013(void);
  81          
  82          
  83          uchar   rd_hpi(uint addr);
  84          
  85          uchar   getDSP();
  86          
  87          main()
  88          {
  89   1      
  90   1           init_AIC23();   
  91   1               init_STA013();
  92   1              
  93   1           delay(10000);
  94   1           RstNet();
  95   1           DspRst();
  96   1               LcdRst();
  97   1               UsbRst();      
  98   1           LOADDSP();
  99   1           init_51();
 100   1        
 101   1           delay(30000);
 102   1           volume=108;
 103   1           write_AIC23(L_HEADPHONE_VOLUME,0x0180+volume);   
 104   1           
 105   1           while(1);
 106   1      
 107   1      }
 108          
 109          void    delay(uint  wu)
 110                          {
 111   1                              for(wu;wu>0;wu--);
 112   1                      }
 113          
 114          void    delay1(uchar    k)
 115                          {
 116   1                              for( ;k>0;k--);
C51 COMPILER V7.06   DOWNLOAD                                                              12/21/2005 12:04:00 PAGE 3   

 117   1                      }
 118          void    LcdRst(void)
 119                          {
 120   1                              LCDRST = 0;
 121   1                              delay(200);
 122   1                              LCDRST = 1;
 123   1                              delay(200);                     
 124   1                      }
 125          void    DspRst()
 126                          {
 127   1                      DSPRST=0;
 128   1                      delay(200);
 129   1                      DSPRST=1;
 130   1                      delay(200);
 131   1                      }
 132          
 133          void    UsbRst(void)
 134                          {
 135   1                              USBRST = 0;
 136   1                              delay(200);
 137   1                              USBRST = 1;
 138   1                              delay(200);     
 139   1                      }
 140          
 141          void    RstNet()
 142                          {
 143   1                      RST8019=1;
 144   1                      delay(200);
 145   1                      RST8019=0;
 146   1                              delay(200);     
 147   1                      }                     
 148          
 149          void    LOADDSP()
 150                          {
 151   1                      wr_dspcode();
 152   1                      }
 153          
 154          void    wr_dspcode()
 155                          {
 156   1                      uchar  code   *dspptr,*temp;
 157   1                      uchar len;
 158   1                      char i;
 159   1                      uint addr;
 160   1           
 161   1                      HPICL=0x08;  //clear HPIint,least is first
 162   1                      HPICH=0x08;
 163   1       
 164   1                      dspptr=dspcode;
 165   1                      while(1)
 166   1                      {
 167   2                              len=*dspptr++;
 168   2                              if(len==0) break;
 169   2                              else
 170   2                              {
 171   3                                      addr=((*dspptr++)*256)+(*dspptr++);
 172   3                                      addr--;
 173   3                                      temp=dspptr;
 174   3                              again:         
 175   3                                      WR_HPIL_A=addr/256;
 176   3                                      WR_HPIH_A=addr%256;
 177   3                                      for(i=0;i<len/2;i++)
 178   3                                      {  
C51 COMPILER V7.06   DOWNLOAD                                                              12/21/2005 12:04:00 PAGE 4   

 179   4                                              WR_HPIL0_D=*dspptr++;       
 180   4                                              WR_HPIH0_D=*dspptr++;                      
 181   4                                      }
 182   3                                      dspptr=temp;
 183   3                                      addr++;
 184   3                                      WR_HPIL_A=addr/256;
 185   3                                      WR_HPIH_A=addr%256;
 186   3                                      for(i=0;i<len/2;i++)
 187   3                                      {  
 188   4                                              if(RD_HPIL0_D!=*dspptr++)  goto again;       //不相等,再写
 189   4                                              if(RD_HPIH0_D!=*dspptr++)  goto again;                      
 190   4                                      }
 191   3                              }
 192   2                      }
 193   1                      WR_HPIL_A=0x00; 
 194   1                      WR_HPIH_A=0x7f;
 195   1                      WR_HPIL1_D=0x00;    //THE START ADDRESS OF RUN

⌨️ 快捷键说明

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