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

📄 test.lst

📁 ch372 89c51的USB通信程序
💻 LST
字号:
C51 COMPILER V7.06   TEST                                                                  12/30/2006 12:59:00 PAGE 1   


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

stmt level    source

   1          #pragma NOAREGS
   2          #include <reg52.h>
   3          #include "CH375INC.H"
   4          
   5          unsigned char volatile xdata CH375_CMD_PORT _at_ 0xBFF1;                
   6          unsigned char volatile xdata CH375_DAT_PORT _at_ 0xBFF0;
   7                          
   8          unsigned char volatile xdata AD0809_ADDR0 _at_ 0x8FF0;
   9          unsigned char volatile xdata AD0809_ADDR1 _at_ 0x8FF2;
  10          unsigned char volatile xdata AD0809_ADDR2 _at_ 0x8FF4;
  11          unsigned char volatile xdata AD0809_ADDR3 _at_ 0x8FF6;
  12          unsigned char volatile xdata AD0809_ADDR4 _at_ 0x8FF8;
  13          unsigned char volatile xdata AD0809_ADDR5 _at_ 0x8FFA;
  14          unsigned char volatile xdata AD0809_ADDR6 _at_ 0x8FFC;
  15          unsigned char volatile xdata AD0809_ADDR7 _at_ 0x8FFE;  
  16                          
  17          unsigned char ad;
  18          unsigned char adcount;
  19          unsigned char adbuf[8];
  20          
  21          void    delay2us( )
  22          {
  23   1              unsigned char i;
  24   1              for ( i = 2; i != 0; i -- ); 
  25   1      }
  26          
  27          void    Delay50ms( )
  28          {
  29   1              unsigned char i, j;
  30   1              for ( i=200; i!=0; i-- ) for ( j=250; j!=0; j-- );
  31   1      }
  32          
  33          void CH375_WR_CMD_PORT( unsigned char cmd ) 
  34          { 
  35   1              delay2us();
  36   1              CH375_CMD_PORT=cmd;
  37   1              delay2us();
  38   1      }
  39          
  40          void CH375_WR_DAT_PORT( unsigned char dat ) 
  41          {  
  42   1              CH375_DAT_PORT=dat;
  43   1      }
  44          
  45          unsigned char CH375_RD_DAT_PORT( void ) 
  46          {  
  47   1              return( CH375_DAT_PORT );
  48   1      }
  49          
  50          void    CH375_Init( )
  51          {
  52   1              unsigned char i;
  53   1      
  54   1              CH375_WR_CMD_PORT( CMD_SET_USB_MODE );
  55   1              CH375_WR_DAT_PORT( 2 );
C51 COMPILER V7.06   TEST                                                                  12/30/2006 12:59:00 PAGE 2   

  56   1              for ( i=100; i!=0; i-- ) 
  57   1              {  
  58   2                      if ( CH375_RD_DAT_PORT( ) == CMD_RET_SUCCESS ) break;
  59   2              }
  60   1              IT0 = 0;  
  61   1              IE0 = 0;  
  62   1              EX0 = 1;  
  63   1      }
  64          
  65          AD0809_INIT()
  66          {
  67   1          IT1 = 1;  
  68   1              IE1 = 0;  
  69   1              EX1 = 1;  
  70   1      }
  71          
  72          void mCh375Interrupt( ) interrupt 0 using 1
  73          {
  74   1              unsigned char InterruptStatus;
  75   1              CH375_WR_CMD_PORT( CMD_GET_STATUS ); 
  76   1              InterruptStatus = CH375_RD_DAT_PORT( ); 
  77   1      
  78   1              switch ( InterruptStatus ) 
  79   1              {  
  80   2                      case USB_INT_EP2_OUT: 
  81   2                      {  
  82   3                              break;
  83   3                      }
  84   2                      case USB_INT_EP2_IN:
  85   2                      {  
  86   3                              CH375_WR_CMD_PORT( CMD_UNLOCK_USB );  
  87   3                              break;
  88   3                      }
  89   2                      default:
  90   2                  {  
  91   3                              CH375_WR_CMD_PORT( CMD_UNLOCK_USB ); 
  92   3                              break;
  93   3                      }
  94   2              }
  95   1      }
  96          
  97          void mAD0809Interrupt( ) interrupt 2 using 2
  98          {
  99   1        switch(adcount)
 100   1        {
 101   2         case 0:
 102   2                 adbuf[0]=AD0809_ADDR0;
 103   2                 AD0809_ADDR1=1;
 104   2         break;
 105   2         case 1:
 106   2                 adbuf[1]=AD0809_ADDR1;
 107   2                 AD0809_ADDR2=1;
 108   2         break;
 109   2         case 2:
 110   2                 adbuf[2]=AD0809_ADDR2;
 111   2                 AD0809_ADDR3=1;
 112   2         break;
 113   2         case 3:
 114   2                 adbuf[3]=AD0809_ADDR3;
 115   2                 AD0809_ADDR4=1;
 116   2         break;
 117   2         case 4:
C51 COMPILER V7.06   TEST                                                                  12/30/2006 12:59:00 PAGE 3   

 118   2                 adbuf[4]=AD0809_ADDR4;
 119   2                 AD0809_ADDR5=1;
 120   2         break;
 121   2         case 5:
 122   2                 adbuf[5]=AD0809_ADDR5;
 123   2                 AD0809_ADDR6=1;
 124   2         break;
 125   2         case 6:
 126   2                 adbuf[6]=AD0809_ADDR6;
 127   2                 AD0809_ADDR7=1;
 128   2         break;
 129   2         case 7:
 130   2                 adbuf[7]=AD0809_ADDR7;
 131   2                 AD0809_ADDR0=1;
 132   2         break;
 133   2        }
 134   1         adcount++;
 135   1         if(adcount==8)
 136   1         {
 137   2           adcount=0;
 138   2         }
 139   1      }
 140          
 141          main( ) 
 142          {
 143   1          unsigned char i;
 144   1              unsigned char data buffer[64];
 145   1      
 146   1              Delay50ms( );
 147   1      
 148   1          AD0809_INIT();
 149   1              CH375_Init( );  
 150   1      
 151   1          PX1=1;
 152   1              PX0=0;
 153   1              EA = 1; 
 154   1          
 155   1              P1=0XFF;
 156   1              adcount=0;
 157   1          AD0809_ADDR0=1;
 158   1           
 159   1              while ( 1 )
 160   1          {
 161   2                  for ( i = 0; i < 8; i ++ )buffer[ i ]=adbuf[i];
 162   2                      buffer[8]=P1;
 163   2              CH375_WR_CMD_PORT( CMD_WR_USB_DATA7 ); 
 164   2                      CH375_WR_DAT_PORT( 64 ); 
 165   2                      for ( i = 0; i < 64; i++ ) CH375_WR_DAT_PORT(buffer[ i ]); 
 166   2              }
 167   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    351    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     10      64
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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