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

📄 main.lst

📁 基于EEPROM AT24C64的数据存储
💻 LST
字号:
C51 COMPILER V7.06   MAIN                                                                  10/29/2006 14:34:14 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 LARGE BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <stdio.h>
   2          #include <absacc.h>
   3          #include <intrins.h>
   4          #include <./Atmel/at89x52.h>
   5          #include "source.h"
   6          struct MY_TIMER TT[TIMER_NUM];
   7          struct volt_detect volt_group;
   8          TMDEV_OPS   Opsgp;
   9          void time2()    interrupt T2_INT 
  10          {
  11   1              unsigned char i;
  12   1              for(i=0;i<TIMER_NUM;i++)
  13   1              {
  14   2                      if(TT[i].enable==1)
  15   2                      {
  16   3                              if(TT[i].count==0)
  17   3                              {
  18   4                                      TT[i].enable=0; 
  19   4                                      TT[i].flag=1;
  20   4                              }
  21   3                              else{
  22   4                                      TT[i].count--;
  23   4                              }
  24   3                      }
  25   2              }
  26   1              TF2=0;
  27   1      }
  28          void start_timer(void)
  29          {
  30   1          T2CON=0X00;
  31   1              RCAP2L=TIMER2L; //10ms
  32   1              TL2=TIMER2L;
  33   1              RCAP2H=TIMER2H;
  34   1              TH2=TIMER2H;
  35   1              ET2=1;//enable timer2 interrupt
  36   1              TR2=1;//start timer
  37   1      }
  38          void reset_timer(unsigned char i)
  39          {
  40   1              TT[i].enable=0;
  41   1              TT[i].count=0;
  42   1      }
  43          void set_timer(unsigned char i,unsigned int count) // time out counter*10ms 
  44          {
  45   1              TT[i].count=count;
  46   1              TT[i].enable=1;
  47   1              TT[i].flag=0;
  48   1      }
  49          
  50          main()
  51          {
  52   1              unsigned char fsm_adc=0;
  53   1              unsigned int  V_ADJ=0,i;
  54   1              EEPROM_DATA Eprom;
  55   1              IE=0X40;
C51 COMPILER V7.06   MAIN                                                                  10/29/2006 14:34:14 PAGE 2   

  56   1              start_timer();/*开始定时器*/
  57   1              EA=1;       /* Enable interrupts */
  58   1              TMOD=0x22;//timer1 mode 2 timer0 mode 2 (8 bit auto reload mode)     
  59   1      
  60   1              set_timer(WRITE_TIMER,WRITE_TIMER_LEN);
  61   1              set_timer(READ_TIMER,READ_TIMER_LEN);
  62   1      
  63   1              eeprom_read(OffsetOf(EEPROM_DATA,vol),  sizeof(Eprom.vol),(unsigned char *)&Eprom.vol);
  64   1                      /*采用OffsetOf()宏可以知道成员函数在EEPROM中的具体地址位置,这样可以不用记住EEPROM中某个*/
  65   1                      /*存储变量的具体位置,以后添加存储变量更加灵活*/
  66   1              eeprom_write(OffsetOf(EEPROM_DATA,cnt), sizeof(Eprom.cnt),(unsigned char *)&Eprom.cnt);
  67   1              I2C_lineOpen(&I2c,100);//初10k
  68   1              for(i=0;i<1204;i++){
  69   2                      Eprom.buf[i]=i&0xff;
  70   2              }
  71   1              while(1){
  72   2                      if(TT[WRITE_TIMER]){
*** WARNING C276 IN LINE 72 OF MAIN.C: constant in condition expression
  73   3                              set_timer(WRITE_TIMER,WRITE_TIMER_LEN);
  74   3                              if(!Opsgp.dealing)
  75   3                                      At24c64_Write((unsigned char *)Eprom.buf,OffsetOf(EEPROM_DATA,buf),512);                        
  76   3                      }
  77   2                      if(TT[READ_TIMER]){
*** WARNING C276 IN LINE 77 OF MAIN.C: constant in condition expression
  78   3                              set_timer(READ_TIMER,READ_TIMER_LEN);
  79   3                              if(!Opsgp.dealing)      
  80   3                                      At24c64_Read((unsigned char *)Eprom.buf,OffsetOf(EEPROM_DATA,vol),512); 
  81   3                      }
  82   2                      if(Opsgp.eeprom_read_over){
  83   3                              if(Opsgp.eeprom_read_over==1){
  84   4                                      //Eeprom read ok.
  85   4                              }
  86   3                              else{ 
  87   4                                      //Eeprom read error .
  88   4                              }
  89   3                              Opsgp.eeprom_read_over=0;
  90   3                      }
  91   2                      if(Opsgp.eeprom_write_over){
  92   3                              if(Opsgp.eeprom_write_over){
  93   4                                      // Eprom Write Ok
  94   4                              }
  95   3                              else{
  96   4                                      // Eprom Write Err
  97   4                              }                       
  98   3                              Opsgp.eeprom_write_over=0;
  99   3                      }
 100   2              }
 101   1      }
 102          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    479    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     62    1030
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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