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

📄 main.lst

📁 用C51编的SL811读写U盘的源程序,包含原理图
💻 LST
字号:
C51 COMPILER V7.06   MAIN                                                                  01/14/2008 22:33:40 PAGE 1   


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

stmt level    source

   1          #include "common.h"
   2          #include "AT89X52.H"
   3          #include "SL811.H"
   4          #include "TPBULK.H"
   5          #include "HAL.H"
   6          #include "HPI.H"
   7          //#include "common.h"
   8          
   9          XXGFLAGS bdata bXXGFlags;
  10          extern unsigned char xdata DBUF[BUFFER_LENGTH];
  11          /////////////////////////////////////////////////
  12          
  13          void Init_Timer0(void)
  14          {
  15   1              TMOD &= 0xF0;      /* clear Timer 0   */
  16   1              TMOD  |= 0x1;
  17   1              TL0 = 0x0;         /* value set by user    */
  18   1              TH0 = 0x0;         /* value set by user  */
  19   1              ET0 = 1;           /* IE.1*/
  20   1              TR0 = 1;           /* TCON.4 start timer  */
  21   1      //      PT0 = 1;
  22   1      }
  23          
  24          void Init_SpecialInterrupts(void)
  25          {
  26   1              IT0 = 0;
  27   1              EX0 = 1;
  28   1      //      PX0 = 0;
  29   1      }
  30          
  31          void Init_Port()
  32          {
  33   1              P0 = 0xFF;
  34   1              P1 = 0xFF;
  35   1              P2 = 0xFF;
  36   1              P3 = 0xFF;
  37   1      }
  38          
  39          /*Serial Port */
  40          /*Mode            = 1  /8-bit UART
  41            Serial Port Interrupt    = Disabled         */
  42          /*Receive         = Enabled   */
  43          /*Auto Addressing    = Disabled   */
  44          void Init_COMM(void)
  45          {
  46   1              SCON = 0x53;
  47   1              PCON = 0x80 | PCON;
  48   1              //TMOD = 0x21;
  49   1      //      TCON = 0x69;    /* TCON */
  50   1              //TH1 = 0xfa;           // 9600bps @ 11.0592MHz
  51   1              //TR1 = 0;
  52   1              T2CON=0x30;
  53   1              RCAP2H=0xFF;            // 57600 @ 24MHz: 24000000/(32*(65536-(RCAP2H,RCAP2L)))
  54   1              RCAP2L=0xF3;
  55   1              TI=0;
C51 COMPILER V7.06   MAIN                                                                  01/14/2008 22:33:40 PAGE 2   

  56   1              RI=0;
  57   1              TR2=1;
  58   1              ES = 1;
  59   1      }
  60          
  61          void main(void)
  62          {
  63   1              unsigned char temp;
  64   1              
  65   1              Init_Timer0();
  66   1              Init_SpecialInterrupts();
  67   1              Init_Port();
  68   1              Init_COMM();
  69   1              
  70   1              MCU_LED0=1;
  71   1              MCU_LED1=1;
  72   1              MCU_LED2=1;
  73   1              MCU_LED3=0;
  74   1              
  75   1              //temp=SL811_GetRev();
  76   1              //for(temp=0;temp<2;temp++)
  77   1                      DelayMs(254);
  78   1              //temp=SL811Read(CtrlReg);
  79   1              //SL811Write(CtrlReg,0);
  80   1              //temp=SL811Read(CtrlReg);
  81   1              
  82   1              //temp=SL811Read(IntStatus);
  83   1              //SL811Write(IntStatus,INT_CLEAR);
  84   1              //temp=SL811Read(IntStatus);
  85   1              bXXGFlags.bits.bUartInDone=0;   
  86   1                      
  87   1              SL811_Init();
  88   1              
  89   1              for(temp=0;temp<64;temp++)
  90   1                      DBUF[temp]=0;
  91   1              
  92   1              ENABLE_INTERRUPTS;
  93   1              
  94   1              while(TRUE)
  95   1              {
  96   2                      if (bXXGFlags.bits.bTimer){
  97   3                              DISABLE_INTERRUPTS;
  98   3                              bXXGFlags.bits.bTimer = 0;
  99   3                              ENABLE_INTERRUPTS;
 100   3      
 101   3                              //if(bXXGFlags.bits.bConfiguration)
 102   3                              check_key_LED();
 103   3                              }
 104   2                      if (bXXGFlags.bits.bCOM_ERR){
 105   3                              
 106   3                              bXXGFlags.bits.bCOM_ERR=0;
 107   3                              ComErrRsp(COMERC_CMDERR);
 108   3                              }
 109   2                      if(bXXGFlags.bits.SLAVE_FOUND){
 110   3                              DISABLE_INTERRUPTS;
 111   3                              bXXGFlags.bits.SLAVE_FOUND=FALSE;
 112   3                              for(temp=0;temp<4;temp++)
 113   3                                      DelayMs(250);
 114   3                              //DelayMs(50);
 115   3                              if(EnumUsbDev(1))                               // enumerate USB device, assign USB address = #1
 116   3                              {
 117   4                                      bXXGFlags.bits.SLAVE_ENUMERATED = TRUE; // Set slave USB device enumerated flag
C51 COMPILER V7.06   MAIN                                                                  01/14/2008 22:33:40 PAGE 3   

 118   4                                      MCU_LED0=0;
 119   4                              }       
 120   3                              ENABLE_INTERRUPTS;
 121   3                              }
 122   2                      if(bXXGFlags.bits.SLAVE_REMOVED){
 123   3                              DISABLE_INTERRUPTS;
 124   3                              bXXGFlags.bits.SLAVE_REMOVED=FALSE;
 125   3                              MCU_LED0=1;
 126   3                              MCU_LED1=1;
 127   3                              bXXGFlags.bits.SLAVE_ENUMERATED = FALSE;
 128   3                              bXXGFlags.bits.SLAVE_IS_ATTACHED = FALSE;
 129   3                              //bXXGFlags.bits.bMassDevice=TRUE;
 130   3                              ENABLE_INTERRUPTS;
 131   3                              }
 132   2                      if(bXXGFlags.bits.bMassDevice){
 133   3                              DISABLE_INTERRUPTS;
 134   3                              bXXGFlags.bits.bMassDevice=FALSE;
 135   3                              if(EnumMassDev())
 136   3                                      {
 137   4                                      bXXGFlags.bits.SLAVE_IS_ATTACHED = TRUE;
 138   4                                      MCU_LED1=0;
 139   4                                      }
 140   3                              else
 141   3                                      {
 142   4                                      MCU_LED1=1;
 143   4                                      bXXGFlags.bits.SLAVE_IS_ATTACHED = FALSE;
 144   4                                      }               
 145   3                              ENABLE_INTERRUPTS;
 146   3                              }
 147   2                      if(bXXGFlags.bits.bUartInDone){
 148   3                              DISABLE_INTERRUPTS;
 149   3                              bXXGFlags.bits.bUartInDone=0;   
 150   3                              UartHandler();
 151   3                              ENABLE_INTERRUPTS;      
 152   3                              }
 153   2                      
 154   2              }
 155   1              
 156   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    331    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2       1
   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 + -