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

📄 main.lst

📁 应用与c8051f020的地震波检测单片机源代码
💻 LST
字号:
C51 COMPILER V8.06   MAIN                                                                  05/14/2008 22:15:15 PAGE 1   


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

line level    source

   1          #include <intrins.h>
   2          #include "c8051f020.h"
   3          #include "Variant.h"
   4          #include "config.h"
   5          #include "usboprt.h"
   6          #include "uart0.c"
   7          #include "FlashRW.c"
   8          
   9          
  10          uint ADConvert(void)
  11          {                  
  12   1              AD0INT = 0;          //请转换结束标志位
  13   1              AD0BUSY = 1;         //启动转换
  14   1              while(!AD0INT);      //等待转换结束        
  15   1                //可用sfr16一次性读取???????????????????????
  16   1          return(ADC0);
  17   1      }
  18          
  19          void DeviceInit(void)
  20                  {
  21   1      
  22   1           config();
  23   1           //=================================================================
  24   1                      FlashRead(0);                                           //更改文件名
  25   1                      Info[0]++;
  26   1                      FlashWrite(0);
  27   1                      WorkNo[0] = (Info[1]/10)+48;            //年份,转换为ASCII码
  28   1                      WorkNo[1] = (Info[1]%10)+48;
  29   1                      WorkNo[2] = (Info[0]/100)+48;           //工作号
  30   1                      WorkNo[3] = (Info[0]%100/10)+48;
  31   1                      WorkNo[4] = (Info[0]%10)+48;
  32   1              //=================================================================
  33   1               time(100000);                                          //延时等待u盘及模块电源稳定
  34   1               send(0x57);send(0xAB);send(0x0B);send(0x00);time(1000);                //reset
  35   1               USB_DISK_READY_OR_NOT();
  36   1               time(100);
  37   1           if(!USB_DISK_READY)// && FileInfoChanged)
  38   1               {
  39   2                       USB_DISK_READY_OR_NOT(); 
  40   2               }
  41   1      //        for(i=0;i<10;i++)     {
  42   1      //              Ledgreen = ~old1;
  43   1      //        old1 = Ledgreen;
  44   1      //          }           
  45   1      
  46   1                      if(!USBDiamFileCreated)
  47   1                 {
  48   2                  USB_CREATE_FILE();
  49   2                  }
  50   1              
  51   1                      if(!USBDiamFileCreated && (!USBDiamFileMdfied)) 
  52   1                      {
  53   2                              USB_OPEN_FILE();
  54   2                              USB_FILE_LOCATE();
  55   2                              }
C51 COMPILER V8.06   MAIN                                                                  05/14/2008 22:15:15 PAGE 2   

  56   1      
  57   1                   }
  58          
  59          
  60          void TIMER0_INT() interrupt 1
  61                  {
  62   1          Mc++;
  63   1              }
  64          
  65          void TIMER1_INT() interrupt 3
  66          {
  67   1          TH1 = 0xFA;
  68   1              TL1 = 0x00;
  69   1              x = ADConvert();
  70   1          DiamBuffer[CurrentDmBffer][DmBffPtr] =(uchar)x;
  71   1          DmBffPtr++;
  72   1              DiamBuffer[CurrentDmBffer][DmBffPtr] =(uchar)(x>>8);
  73   1          DmBffPtr++;
  74   1                if(DmBffPtr>=1536)                  //784
  75   1            {           
  76   2                  CurrentDmBffer = 1- CurrentDmBffer;
  77   2                  DmBffPtr = 0;
  78   2                  DiamBufferFull = 1;
  79   2                  DiamBuffer[CurrentDmBffer][DmBffPtr+6] = 0x4D;//((uchar*)&Mc)[0];     //存时间,从最高位存起
  80   2                  DiamBuffer[CurrentDmBffer][DmBffPtr+5] = 0x49;//((uchar*)&Mc)[1];
  81   2                  DiamBuffer[CurrentDmBffer][DmBffPtr+4] = 0x54;//((uchar*)&Mc)[2];
  82   2                      DiamBuffer[CurrentDmBffer][DmBffPtr+3] = ((uchar*)&Mc)[0];  //((uchar*)&Mc)[3];
  83   2                  DiamBuffer[CurrentDmBffer][DmBffPtr+2] = ((uchar*)&Mc)[1]; 
  84   2                  DiamBuffer[CurrentDmBffer][DmBffPtr+1] = ((uchar*)&Mc)[2]; 
  85   2                  DiamBuffer[CurrentDmBffer][DmBffPtr+0] = ((uchar*)&Mc)[3]; 
  86   2                      DmBffPtr+=7;
  87   2      
  88   2                }
  89   1      }
  90          
  91          
  92          void main(void)
  93                  {
  94   1               Ledred = 0;
  95   1      
  96   1      
  97   1          while(!USBDiamFileCreated) 
  98   1              {
  99   2              DeviceInit();
 100   2          }
 101   1          time(1000); //新加的
 102   1              Ledred = 1;
 103   1              DmBffPtr=0;
 104   1              for(j=0;j<8;j++)          
 105   1              {
 106   2                  DiamBuffer[CurrentDmBffer][DmBffPtr] = Diamhd[j]; 
 107   2                  DmBffPtr++;
 108   2              }      
 109   1                  DiamBuffer[CurrentDmBffer][DmBffPtr+6] = 0x4D;//((uchar*)&Mc)[0];     //存时间,从最高位存起
 110   1                  DiamBuffer[CurrentDmBffer][DmBffPtr+5] = 0x49;//((uchar*)&Mc)[1];
 111   1                  DiamBuffer[CurrentDmBffer][DmBffPtr+4] = 0x54;//((uchar*)&Mc)[2];
 112   1                      DiamBuffer[CurrentDmBffer][DmBffPtr+3] = ((uchar*)&Mc)[0];  //((uchar*)&Mc)[3];
 113   1                  DiamBuffer[CurrentDmBffer][DmBffPtr+2] = ((uchar*)&Mc)[1]; 
 114   1                  DiamBuffer[CurrentDmBffer][DmBffPtr+1] = ((uchar*)&Mc)[2]; 
 115   1                  DiamBuffer[CurrentDmBffer][DmBffPtr+0] = ((uchar*)&Mc)[3]; 
 116   1                      DmBffPtr+=7;
 117   1              while(syn);
C51 COMPILER V8.06   MAIN                                                                  05/14/2008 22:15:15 PAGE 3   

 118   1              {
 119   2              ET0 = 1;
 120   2              ET1 = 1;
 121   2              TR1=1;
 122   2              TR0=1;
 123   2                      }
 124   1              while(1)
 125   1          { 
 126   2               nop(); 
 127   2                      if(DiamBufferFull==1)
 128   2                      {     
 129   3                  PrtocolNo = 3;                                                      //写变径文件,3扇区
 130   3                  DiamBufferFull=0;                                                           
 131   3                  USB_FILE_WRITE();
 132   3                              Ledred = ~oldred;
 133   3                  oldred = Ledred;
 134   3                              time(8000);
 135   3                              }                                       //新版6000,原版1500
 136   2              }//end of while
 137   1              }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2414    ----
   CONSTANT SIZE    =     58    ----
   XDATA SIZE       =   3074       9
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     44      38
   IDATA SIZE       =     24    ----
   BIT SIZE         =     16    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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