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

📄 main.lst

📁 增强型51单片机fs7821sd卡、mmc卡读写程序
💻 LST
字号:
C51 COMPILER V7.02b   MAIN                                                                 02/01/2007 10:35:43 PAGE 1   


C51 COMPILER V7.02b, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\Output\main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c OPTIMIZE(9,SPEED) BROWSE INCDIR(Include) DEFINE(READER) DEBUG OBJECT
                    -EXTEND PRINT(.\Output\main.lst) OBJECT(.\Output\main.obj)

stmt level    source

   1          /*
   2          **********************************************************************************************
   3          * Project:      TK7821
   4          * File:         main.c
   5          * Contents: 
   6          *           The main and interrupt handler
   7          *
   8          * $Date: 02/25/05    Jason    v0.1
   9          *        05/12/05    Mingo    v0.2   www.fameg.com
  10          *
  11          * Copyright (c) 2005 Fameg, Inc. All rights reserved
  12          ***********************************************************************************************
  13          */
  14          
  15          #include <reg51.h>
  16          #include <stdio.h>
  17          #include <stdlib.h>
  18          #include "Device.h"
  19          #include "UsbDisk.h"
  20          #include "Storage.h"
  21          
  22          static bit SdGetFlashInfoFlag = false;
  23          static bit SuspendFlag = false;
  24          bit ResetFlag = false;
  25          xdata UINT16 DelayTimer = 0;
  26          xdata UINT32 HwVerNum;
  27          
  28          //----------------------------------------------------------------------------
  29          // Timeout every 10 ms
  30          //----------------------------------------------------------------------------
  31          void Timer0() interrupt 1 using 3
  32          {
  33   1        // Restore the counter to 10 ms
  34   1        TH0 = 0xce;
  35   1        TL0 = 0xe8;
  36   1        // Inc the system tick
  37   1        if (DelayTimer)
  38   1          DelayTimer --;
  39   1      
  40   1        if (CmdTimer)
  41   1          CmdTimer --;
  42   1      
  43   1        if (SdGetFlashInfoTimer)
  44   1        {
  45   2          SdGetFlashInfoTimer --;
  46   2          if (SdGetFlashInfoTimer == 0)
  47   2            SdGetFlashInfoFlag = true;
  48   2        }
  49   1      }
  50          
  51          //----------------------------------------------------------------------------
  52          // Enter the suspend mode
  53          //----------------------------------------------------------------------------
  54          void EnterSuspend()
C51 COMPILER V7.02b   MAIN                                                                 02/01/2007 10:35:43 PAGE 2   

  55          {
  56   1        BYTE RegValue = CSRRead(USB_BASE + GCTL); //0xF000
  57   1      
  58   1        StorageSuspend();
  59   1        POWER_LED_CTRL = 1;
  60   1        RegValue |= SUSPEND;  //SUSPEND==0x04
  61   1        CSRWrite(USB_BASE + GCTL, RegValue);
  62   1        while (CSRRead(USB_BASE + GCTL) & SUSPEND);;
  63   1        // Ignore unstable clock stage for 100ms
  64   1        Delay(100);
  65   1        POWER_LED_CTRL = 0;
  66   1        StorageResume();
  67   1      }
  68          
  69          //----------------------------------------------------------------------------
  70          void main()
  71          {
  72   1        TH0 = 0xce;
  73   1        TL0 = 0xe8;
  74   1        TMOD = 0x21;
  75   1        TCON = 0x50;
  76   1        IP = 0x02;
  77   1        IE = 0x82;
  78   1        NormalSpeed();
  79   1        CSRWrite(USB_BASE + GCTL, CSRRead(USB_BASE + GCTL) | RESET);
  80   1        POWER_LED_CTRL = 0;
  81   1      
  82   1        HwVerNum = ((UINT32)HwId() << 16) | HwVersion();
  83   1      
  84   1        StorageInit();
  85   1        UsbInit();
  86   1      
  87   1        while (true)
  88   1        {
  89   2          BYTE Event;
  90   2      
  91   2          Event = CSRRead(USB_BASE + EPIE); //0xF001
  92   2          if (Event)
  93   2          {
  94   3            if (Event & (IRQ_RX0 | IRQ_TX0 | IRQ_IN0))
  95   3              UsbCtrlIntHandler(Event);   
  96   3      
  97   3            if (Event & (IRQ_TX1 | IRQ_RX2))
  98   3            {
  99   4              UsbBulkIntHandler(Event);
 100   4            }
 101   3          }
 102   2      
 103   2          Event = CSRRead(USB_BASE + USBIE) & (IRQ_USB_RST | IRQ_IDLE_3MS);//0xF005
 104   2          if (Event)
 105   2          {
 106   3            CSRWrite(USB_BASE + USBIE, ~Event);
 107   3      
 108   3            if (Event & IRQ_USB_RST)
 109   3            {
 110   4              CSRWrite(USB_BASE + USBADDR, 0); //0xF007
 111   4            }
 112   3      
 113   3            if (Event & IRQ_IDLE_3MS)
 114   3            {
 115   4                EnterSuspend();
 116   4            }
C51 COMPILER V7.02b   MAIN                                                                 02/01/2007 10:35:43 PAGE 3   

 117   3          }
 118   2      
 119   2          Event = CSRRead(SD_BASE + SD_IE) & SD_CARD_CHANGE;
 120   2          if (Event)
 121   2          {
 122   3            CSRWrite(SD_BASE + SD_IE, ~Event);
 123   3            SdIntHandler(Event);
 124   3          }
 125   2          if (SdGetFlashInfoFlag)
 126   2          {
 127   3            SdMediaChange();
 128   3            SdGetFlashInfoFlag = false;
 129   3          }
 130   2      
 131   2        }
 132   1      }
 133          


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


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

⌨️ 快捷键说明

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