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

📄 main.lst

📁 c51读写SD卡原代码,c51编写,串口接收
💻 LST
字号:
C51 COMPILER V7.00  MAIN                                                                   02/15/2008 12:45:57 PAGE 1   


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

stmt level    source

   1          #include "common.H"
   2          #include "DEVICE.H"
   3          #include "HAL.H"
   4          #include "HPI.H"
   5          #include "FAT.H"
   6          #include "FAT32.H"
   7          #include "HPI32.H"
   8          
   9          FLAGS bdata bFlags;
  10          extern unsigned char xdata DBUF[];//BUFFER_LENGTH];
  11          /////////////////////////////////////////////////
  12          extern unsigned long xdata DirStartCluster,DirStartCluster32;
  13          extern unsigned char xdata UARTBUF[];//UARTBUF_LENGTH];
  14          extern Command_Def xdata Command;
  15          extern SYS_INFO_BLOCK xdata DeviceInfo; 
  16          extern FILE_INFO xdata ThisFile;
  17          //////////////////////////////////////////
  18          
  19          
  20          void Init_Port()
  21          {
  22   1              P0 = 0xFF;
  23   1              P1 = 0xFF;
  24   1              P2 = 0xFF;
  25   1              P3 = 0xFF;
  26   1      }
  27          
  28          /*Serial Port */
  29          /*Mode            = 1  /8-bit UART
  30            Serial Port Interrupt    = Disabled         */
  31          /*Receive         = Enabled   */
  32          /*Auto Addressing    = Disabled   */
  33          void Init_COMM(void)
  34          {
  35   1              SCON = 0x53;
  36   1              PCON = 0x80 | PCON;
  37   1              T2CON=0x30;
  38   1              RCAP2H=0xFF;            // 57600 @ 21.1184MHz: 24000000/(32*(65536-(RCAP2H,RCAP2L)))
  39   1              RCAP2L=0xF4;
  40   1              TI=0;
  41   1              RI=0;
  42   1              TR2=1;
  43   1              ES = 1;
  44   1      }
  45          
  46          //*******************************************
  47          char code test_data[]={1,2,4,8,0x10,0x20,0x40,0x80,0x55,0xaa,0xa5,0x00,0xff};
  48          //*******************************************
  49          bit TestSRAM()
  50          {
  51   1       bit f=1;
  52   1       char i;
  53   1       unsigned char xdata *p;
  54   1       i=0;
  55   1       for(p=0;p<0x8000;p++)
C51 COMPILER V7.00  MAIN                                                                   02/15/2008 12:45:57 PAGE 2   

  56   1        {
  57   2         *p=test_data[i];
  58   2         if(++i >= sizeof(test_data)) i=0;
  59   2        }
  60   1       i=0;
  61   1       for(p=0;p<0x8000;p++)
  62   1        {
  63   2         if(*p != test_data[i]) f=0;
  64   2         if(++i >= sizeof(test_data)) i=0;
  65   2        }
  66   1       return f;
  67   1      }
  68          //*******************************************
  69          void main(void)
  70          {
  71   1              unsigned char temp;
  72   1              unsigned int i;
  73   1              unsigned long xdata time_count;
  74   1      
  75   1              Init_Port();
  76   1          Init_COMM(); 
  77   1      
  78   1         if(!TestSRAM())      //test
  79   1          {
  80   2           for(temp=0;temp<20;temp++)
  81   2            {
  82   3             MCU_LED1=!MCU_LED1;
  83   3             for(i=0;i<0x8fff;i++) ;
  84   3            }
  85   2          }
  86   1          MCU_LED1 = 1;
  87   1      
  88   1              bFlags.bits.bUartInDone=0;      
  89   1              DirStartCluster=0;
  90   1              DirStartCluster32=0;
  91   1      
  92   1              for(temp=0;temp<64;temp++)
  93   1                      DBUF[temp]=0;  
  94   1      
  95   1      
  96   1              ENABLE_INTERRUPTS;
  97   1              
  98   1              while(TRUE)
  99   1              {
 100   2              time_count++;           
 101   2                      if (time_count>1000)  // 过一段时间查询一下SD/MMC卡是否在线  www.mcusky.com
 102   2                              {
 103   3                              DISABLE_INTERRUPTS;
 104   3                              time_count = 0;
 105   3                              ENABLE_INTERRUPTS;
 106   3              
 107   3                              if(SdInit())                    //初始化SD卡
 108   3                           {                          
 109   4                            if(bFlags.bits.SLAVE_ONLINE == FALSE)
 110   4                                {bFlags.bits.SLAVE_FOUND=TRUE;
 111   5                                 bFlags.bits.SLAVE_ONLINE =TRUE;
 112   5                                }
 113   4                           }
 114   3                      else 
 115   3                              {       
 116   4                               if(bFlags.bits.SLAVE_ONLINE ==TRUE)
 117   4                                 {bFlags.bits.SLAVE_REMOVED=TRUE;
C51 COMPILER V7.00  MAIN                                                                   02/15/2008 12:45:57 PAGE 3   

 118   5                                  bFlags.bits.SLAVE_ONLINE =FALSE;
 119   5                                 }
 120   4                          }   
 121   3                       }
 122   2                      if(bFlags.bits.SLAVE_FOUND){
 123   3                              DISABLE_INTERRUPTS;
 124   3                              bFlags.bits.SLAVE_FOUND=FALSE;
 125   3      
 126   3                                      bFlags.bits.SLAVE_ENUMERATED = TRUE;    
 127   3                                      DirStartCluster=0;
 128   3                                      DirStartCluster32=0;
 129   3                                      ThisFile.FatSectorPointer=0;
 130   3                                      DeviceInfo.LastFreeCluster=0;
 131   3                                      MCU_LED1=0;
 132   3                                      bFlags.bits.bMassDevice=TRUE;
 133   3                              ENABLE_INTERRUPTS;      
 134   3                              }
 135   2                      if(bFlags.bits.SLAVE_REMOVED)
 136   2                 {
 137   3                              DISABLE_INTERRUPTS;
 138   3                              bFlags.bits.SLAVE_REMOVED=FALSE;
 139   3                              bFlags.bits.SLAVE_ENUMERATED = FALSE;
 140   3                              bFlags.bits.SLAVE_IS_ATTACHED = FALSE;
 141   3                              MCU_LED1=1;MCU_LED2=1;
 142   3                              ENABLE_INTERRUPTS;      
 143   3                              }
 144   2                      if(bFlags.bits.bUartInDone){
 145   3                              DISABLE_INTERRUPTS;
 146   3                              bFlags.bits.bUartInDone=0;
 147   3      
 148   3                              if(DeviceInfo.FAT)      //FAT32
 149   3                                      UartHandler32();
 150   3                              else
 151   3                                      UartHandler();  //FAT16
 152   3                              
 153   3                              ENABLE_INTERRUPTS;      
 154   3                              }
 155   2                      if(bFlags.bits.bMassDevice)
 156   2                        {
 157   3                              DISABLE_INTERRUPTS;
 158   3                              bFlags.bits.bMassDevice=FALSE;
 159   3                              if(InitFileSystem())
 160   3                                      {
 161   4                                      bFlags.bits.SLAVE_IS_ATTACHED = TRUE;                           
 162   4                                      MCU_LED2=0;     
 163   4                                      }
 164   3                              else
 165   3                                      {                               
 166   4                                      bFlags.bits.SLAVE_IS_ATTACHED = FALSE;                          
 167   4                                      }               
 168   3                                      ENABLE_INTERRUPTS;      
 169   3                              }       
 170   2                      
 171   2              }
 172   1              
 173   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    474    ----
   CONSTANT SIZE    =     13    ----
   XDATA SIZE       =   ----       4
C51 COMPILER V7.00  MAIN                                                                   02/15/2008 12:45:57 PAGE 4   

   PDATA SIZE       =   ----    ----
   DATA SIZE        =     10       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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