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

📄 main.lst

📁 本程序是基于单片机C8051F020上使用SL811 USB 总线接口实现检测U 盘的功能。插上U 盘
💻 LST
字号:
C51 COMPILER V7.06   MAIN                                                                  05/30/2005 21:27:00 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 DB OE

stmt level    source

   1          
   2          #include "common.h"
   3          
   4          #define sl811_addr 0x3f00
   5          
   6          
   7          /***********************************************************************************
   8          * 函数名称:SYSCLK_Init;
   9          *
  10          * 函数功能描述:系统时钟初始化,使用外部22.1184MHz晶振作为时钟源;
  11          *              
  12          * 输入参数:none;
  13          *
  14          * 返回数据:none;
  15          *
  16          * 注意:    none;
  17          ************************************************************************************/
  18          
  19          void SYSCLK_Init (void)
  20          {
  21   1         int i;                              // 延时计数器
  22   1      
  23   1         OSCXCN = 0x67;                      // 使用外部22.1184MHz晶振
  24   1      
  25   1         for(i=0; i<256; i++);               // 等待1ms
  26   1          
  27   1         while(!(OSCXCN & 0x80));            // 等待外部振荡器稳定
  28   1      
  29   1         OSCICN = 0x88;                      // 切换到外部晶振
  30   1      }
  31          
  32          /***********************************************************************************
  33          * 函数名称:PORT_Init;
  34          *
  35          * 函数功能描述:配置端口初始化,配置交叉开关和端口;
  36          *              
  37          * 输入参数:none;
  38          *
  39          * 返回数据:none;
  40          *
  41          * 注意:    none;
  42          ************************************************************************************/
  43          
  44          void PORT_Init (void)
  45          {
  46   1      
  47   1              XBR0   =   0x07;                    //设置XBR0
  48   1      //      XBR1   =   0x1e;                    //设置XBR1 
  49   1              XBR2   =   0x44;                    //打开交叉开关和弱上拉
  50   1      //  P3MDOUT = 0xff;                                             //设置P3口全部推挽输出
  51   1          P74OUT  = 0xfb;                                             //设置P4-P7口输出
  52   1          P4 = 0xe0;
  53   1      
  54   1                                                      //外部存储器时序控制
  55   1          EMI0CF=0x2f;
C51 COMPILER V7.06   MAIN                                                                  05/30/2005 21:27:00 PAGE 2   

  56   1              EMI0TC=0x21;
  57   1      }
  58          
  59          
  60          /************************************************************************************
  61          //  主循环程序
  62          *************************************************************************************/
  63          void main(void)
  64          { 
  65   1              unsigned char temp;
  66   1              unsigned char flag = 0;
  67   1      
  68   1              WDTCN = 0xde;
  69   1              WDTCN = 0xad;
  70   1      
  71   1              SYSCLK_Init();
  72   1              PORT_Init();
  73   1       
  74   1              Uart0_Init(BaudRate_115200);
  75   1              Uart0_SendString("System started!\n");
  76   1              
  77   1              flag=0; 
  78   1              while(1)
  79   1              {
  80   2                      USBhard_Reset();                
  81   2                      temp=SL811Read(IntStatus);
  82   2                      _nop_();
  83   2                      if ((temp&0x80)==0x80)
  84   2                      {       
  85   3                              if (flag==0)
  86   3                                      Uart0_SendString("Find U Disk!\n");                     
  87   3                              flag = 1;
  88   3                      }
  89   2                      else
  90   2                      {
  91   3                              if (flag==1)
  92   3                                      Uart0_SendString("U Disk removed!\n");                  
  93   3                              flag = 0;
  94   3                      }
  95   2      
  96   2              }
  97   1                      
  98   1              if ((temp&0x80)==0)
  99   1              {
 100   2                      SL811Write(0x0e,0xff);
 101   2                      SL811Write(0x0e,0x0e);
 102   2                      SL811Write(0x05,0x21);
 103   2              }
 104   1              else if ((temp&0x80)==0x80)
 105   1              {
 106   2                      SL811Write(0x0e,0xae);
 107   2                      SL811Write(0x0e,0x0e);
 108   2                      SL811Write(0x05,0x05);
 109   2              }
 110   1              else
 111   1                  SL811Write(0x0d,0xff);
 112   1      
 113   1              SL811Write(0x00,0x50);
 114   1              SL811Write(0x04,0x00);
 115   1              SL811Write(0x00,0x01);
 116   1              DelayMs(10);
 117   1              //      sl811_init();
C51 COMPILER V7.06   MAIN                                                                  05/30/2005 21:27:00 PAGE 3   

 118   1       
 119   1              while(1)
 120   1              {
 121   2      
 122   2              }
 123   1       
 124   1      }


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