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

📄 eep.lst

📁 基于Keil uVision2平台的C51控制温度老化试验箱的源代码。 1、温度传感器采集温度 2、传感器信号传入 ADC电路 3、经AT89C52单片机的处理分析输出控制 4、通过继电器控制
💻 LST
字号:
C51 COMPILER V7.02b   EEP                                                                  01/10/2008 11:39:28 PAGE 1   


C51 COMPILER V7.02b, COMPILATION OF MODULE EEP
OBJECT MODULE PLACED IN eep.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE eep.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          
   2          /*-------------------------------------------------------------------------*/
   3          #include <absacc.h>
   4          #include <reg52.h>
   5          #include <eep.h>
   6          #include <intrins.h>
   7          #include <lcd.h>
   8          /*-------------------------------------------------------------------------*/
   9          //#define s_delay(); {_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop
             -_();_nop_();_nop_();_nop_();}
  10          /*-------------------------------------------------------------------------*/
  11          bit start_bit(void);
  12          void stop_bit(void);
  13          //void ack(void);
  14          void no_ack(void);
  15          bit write_byte(unsigned char);
  16          unsigned char read_byte(void);
  17          /*----------------------------------------------------------------*/
  18          bit start_bit(void)
  19          {
  20   1              bit jump=1;
  21   1              sda=1;
  22   1              scl=1;
  23   1              if((sda & scl)==0) //error
  24   1                      jump=1;
  25   1              else
  26   1                      jump=0;
  27   1              s_delay();
  28   1              sda=0;
  29   1              s_delay();
  30   1              scl=0;
  31   1              return jump;
  32   1      }
  33          /*----------------------------------------------------------------*/
  34          void stop_bit(void)
  35          {
  36   1              sda=0;
  37   1              s_delay();
  38   1              scl=1;
  39   1              s_delay();
  40   1              sda=1;
  41   1      }
  42          /*----------------------------------------------------------------
  43          void ack(void)
  44          {
  45                  sda=0;
  46                  s_delay();
  47                  scl=1;
  48                  s_delay();
  49                  scl=0;
  50          } */
  51          /*----------------------------------------------------------------*/
  52          void no_ack(void)
  53          {
  54   1              sda=1;
C51 COMPILER V7.02b   EEP                                                                  01/10/2008 11:39:28 PAGE 2   

  55   1              s_delay();
  56   1              scl=1;
  57   1              s_delay();
  58   1              scl=0;
  59   1      }
  60          /*----------------------------------------------------------------*/
  61          bit write_byte(unsigned char number)
  62          {
  63   1              unsigned char i;
  64   1              bit temp;
  65   1              for(i=0;i<8;i++)
  66   1              {
  67   2                      sda=number&0x80;
  68   2                      s_delay();
  69   2                      scl=1;
  70   2                      s_delay();
  71   2                      scl=0;
  72   2                      s_delay();
  73   2                      number=number<<1;
  74   2              }
  75   1              sda=1;
  76   1              s_delay();
  77   1              scl=1;
  78   1              s_delay();
  79   1              i=0;
  80   1              if(sda && (i<10))
  81   1                      {
  82   2                      _delay500us(1);
  83   2                      i++;
  84   2                      }
  85   1              temp=sda;
  86   1              scl=0;
  87   1              return temp;
  88   1      }
  89          /*----------------------------------------------------------------*/
  90          unsigned char read_byte(void)
  91          {
  92   1              unsigned char i,number;
  93   1              number=0;
  94   1              sda=1;
  95   1              for(i=0;i<8;i++)
  96   1              {
  97   2                      s_delay();
  98   2                      number=number<<1;
  99   2                      scl=1;
 100   2                      s_delay();
 101   2                      if(sda)
 102   2                              number+=1;
 103   2                      scl=0;
 104   2              }
 105   1              return(number);
 106   1      }
 107          /*----------------------------------------------------------------*/
 108          void _write_eep_byte(unsigned int address,unsigned char number)
 109          {
 110   1              if(start_bit()==0)
 111   1                      if(write_byte(0xa0|((((unsigned char *) &address)[0])<<1))==0)
 112   1                              if(write_byte(((unsigned char *) &address)[1])==0)
 113   1                                      if(write_byte(number)==0)
 114   1              stop_bit();
 115   1              _delay500us(200);
 116   1      }
C51 COMPILER V7.02b   EEP                                                                  01/10/2008 11:39:28 PAGE 3   

 117          /*----------------------------------------------------------------*/
 118          unsigned char _read_eep_byte(unsigned int address)
 119          {
 120   1              unsigned char number;
 121   1              if(start_bit()==0)
 122   1                      {
 123   2                      if(write_byte(0xa0|((((unsigned char *) &address)[0])<<1))==0)
 124   2                              if(write_byte(((unsigned char *) &address)[1])==0)
 125   2                                      if(start_bit()==0)
 126   2                                              {
 127   3                                              if(write_byte(0xa1|((((unsigned char *) &address)[0])<<1))==0)
 128   3                                                      {
 129   4                                                      number=read_byte();
 130   4                                                      no_ack();
 131   4                                                      }
 132   3                                              }
 133   2                      }
 134   1              stop_bit();
 135   1              return(number);
 136   1      }
 137          /*----------------------------------------------------------------
 138          void _write_eep_word(unsigned int address,unsigned int number)
 139          {
 140                  _write_eep_byte(address,((unsigned char *)&number)[0]);
 141                  address++;
 142                  _write_eep_byte(address,((unsigned char *)&number)[1]); 
 143          }
 144          /*----------------------------------------------------------------
 145          unsigned int _read_eep_word(unsigned int address)
 146          {
 147                  unsigned int number;
 148                  ((unsigned char *)&number)[0]=_read_eep_byte(address);
 149                  address++;
 150                  ((unsigned char *)&number)[1]=_read_eep_byte(address);
 151                  return number; 
 152          }
 153          /*----------------------------------------------------------------*/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    402    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       7
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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