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

📄 24c02.lst

📁 用于设备工作时间监控的下位机源码
💻 LST
字号:
C51 COMPILER V7.04   24C02                                                                 12/18/2005 18:05:21 PAGE 1   


C51 COMPILER V7.04, COMPILATION OF MODULE 24C02
OBJECT MODULE PLACED IN 24C02.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 24C02.C OPTIMIZE(2,SPEED) DEBUG OBJECTEXTEND

stmt level    source

   1          
   2          #include <reg51.h>
   3          
   4          sbit    DataClk                 = P1^0;
   5          sbit    DataBit                 = P1^1;
   6          
   7          extern unsigned short AT24C02DelayTime;
   8          unsigned short TempAT24C02DelayTime;
   9          
  10          void RxWrite24C02StartBit()
  11          {
  12   1              DataClk = 0;
  13   1              DataBit = 1;
  14   1              TempAT24C02DelayTime=AT24C02DelayTime;
  15   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
  16   1      
  17   1              DataClk = 1;
  18   1              TempAT24C02DelayTime=AT24C02DelayTime;
  19   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
  20   1              
  21   1              DataBit = 0;
  22   1              TempAT24C02DelayTime=AT24C02DelayTime;
  23   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
  24   1      
  25   1              DataClk = 0;
  26   1              TempAT24C02DelayTime=AT24C02DelayTime;
  27   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
  28   1      }
  29          
  30          void RxWrite24C02StopBit()
  31          {
  32   1              DataClk = 0;
  33   1              DataBit = 0;
  34   1              TempAT24C02DelayTime=AT24C02DelayTime;
  35   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
  36   1      
  37   1              DataClk = 1;
  38   1              TempAT24C02DelayTime=AT24C02DelayTime;
  39   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
  40   1      
  41   1              DataBit = 1;
  42   1              TempAT24C02DelayTime=AT24C02DelayTime;
  43   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
  44   1      
  45   1              DataClk = 0;
  46   1              TempAT24C02DelayTime=AT24C02DelayTime;
  47   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
  48   1      
  49   1              DataBit = 0;
  50   1              TempAT24C02DelayTime=AT24C02DelayTime;
  51   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
  52   1      }
  53          
  54          void RxWrite24C02BitOne()
  55          {
C51 COMPILER V7.04   24C02                                                                 12/18/2005 18:05:21 PAGE 2   

  56   1              DataClk = 0;
  57   1              DataBit = 1;
  58   1              TempAT24C02DelayTime=AT24C02DelayTime;
  59   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
  60   1      
  61   1              DataClk = 1;
  62   1              TempAT24C02DelayTime=AT24C02DelayTime;
  63   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
  64   1      
  65   1              DataClk = 0;
  66   1              TempAT24C02DelayTime=AT24C02DelayTime;
  67   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
  68   1      
  69   1              DataBit = 0;
  70   1              TempAT24C02DelayTime=AT24C02DelayTime;
  71   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
  72   1      }
  73          
  74          void RxWrite24C02BitZero()
  75          {
  76   1              DataClk = 0;
  77   1              DataBit = 0;
  78   1              TempAT24C02DelayTime=AT24C02DelayTime;
  79   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
  80   1      
  81   1              DataClk = 1;
  82   1              TempAT24C02DelayTime=AT24C02DelayTime;
  83   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
  84   1      
  85   1              DataClk = 0;
  86   1              TempAT24C02DelayTime=AT24C02DelayTime;
  87   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
  88   1      
  89   1              DataBit = 0;
  90   1              TempAT24C02DelayTime=AT24C02DelayTime;
  91   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
  92   1      }
  93          
  94          unsigned char RxRead24C02OneBit()
  95          {
  96   1              DataClk = 0;
  97   1              DataBit = 1;
  98   1              TempAT24C02DelayTime=AT24C02DelayTime;
  99   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
 100   1      
 101   1              DataClk = 1;
 102   1              TempAT24C02DelayTime=AT24C02DelayTime;
 103   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
 104   1      
 105   1              if (DataBit == 0){
 106   2                      DataClk = 0;
 107   2                      TempAT24C02DelayTime=AT24C02DelayTime;
 108   2                      while(TempAT24C02DelayTime==AT24C02DelayTime);
 109   2      
 110   2                      DataBit = 0;
 111   2                      TempAT24C02DelayTime=AT24C02DelayTime;
 112   2                      while(TempAT24C02DelayTime==AT24C02DelayTime);
 113   2                      return 0;
 114   2              }
 115   1              else{
 116   2                      DataClk = 0;
 117   2                      TempAT24C02DelayTime=AT24C02DelayTime;
C51 COMPILER V7.04   24C02                                                                 12/18/2005 18:05:21 PAGE 3   

 118   2                      while(TempAT24C02DelayTime==AT24C02DelayTime);
 119   2      
 120   2                      DataBit = 0;
 121   2                      TempAT24C02DelayTime=AT24C02DelayTime;
 122   2                      while(TempAT24C02DelayTime==AT24C02DelayTime);
 123   2                      return 1;
 124   2              }
 125   1      }
 126          
 127          void RxRead24C02Ack()
 128          {
 129   1              DataClk = 0;
 130   1              DataBit = 0;
 131   1              TempAT24C02DelayTime=AT24C02DelayTime;
 132   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
 133   1      
 134   1              DataClk = 1;
 135   1              TempAT24C02DelayTime=AT24C02DelayTime;
 136   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
 137   1      
 138   1              DataClk = 0;
 139   1              TempAT24C02DelayTime=AT24C02DelayTime;
 140   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
 141   1      
 142   1              DataBit = 0;
 143   1              TempAT24C02DelayTime=AT24C02DelayTime;
 144   1              while(TempAT24C02DelayTime==AT24C02DelayTime);
 145   1      }
 146          
 147          unsigned char RxRead24C02OneByte(unsigned char Address)
 148          {
 149   1              unsigned char   usLoop, TempChar;
 150   1      
 151   1              // Write Start 1010 000 0/Write
 152   1              RxWrite24C02StartBit();
 153   1              RxWrite24C02BitOne();
 154   1              RxWrite24C02BitZero();
 155   1              RxWrite24C02BitOne();
 156   1              RxWrite24C02BitZero();
 157   1              RxWrite24C02BitZero();
 158   1              RxWrite24C02BitZero();
 159   1              RxWrite24C02BitZero();
 160   1              RxWrite24C02BitZero();
 161   1              RxRead24C02Ack();
 162   1      
 163   1              // Write Data Address
 164   1              for (usLoop=0; usLoop<8; usLoop++){
 165   2                      if (((Address << usLoop) & (0x80)) == 0x00)
 166   2                              RxWrite24C02BitZero();
 167   2                      else
 168   2                              RxWrite24C02BitOne();
 169   2              }
 170   1              RxRead24C02Ack();
 171   1      
 172   1              // Write Start 1010 000 1/Read
 173   1              RxWrite24C02StartBit();
 174   1              RxWrite24C02BitOne();
 175   1              RxWrite24C02BitZero();
 176   1              RxWrite24C02BitOne();
 177   1              RxWrite24C02BitZero();
 178   1              RxWrite24C02BitZero();
 179   1              RxWrite24C02BitZero();
C51 COMPILER V7.04   24C02                                                                 12/18/2005 18:05:21 PAGE 4   

 180   1              RxWrite24C02BitZero();
 181   1              RxWrite24C02BitOne();
 182   1              RxRead24C02Ack();
 183   1      
 184   1              TempChar = 0;
 185   1              for (usLoop=0; usLoop<8; usLoop++){
 186   2                      TempChar = TempChar << 1;
 187   2                      if (RxRead24C02OneBit()!=0)
 188   2                              TempChar = TempChar | 1;
 189   2              }
 190   1              RxWrite24C02StopBit();
 191   1              return TempChar;
 192   1      }
 193          
 194          
 195          void RxWrite24C02OneByte(unsigned char TempAddress, unsigned char TempData)
 196          {
 197   1              unsigned char   usLoop;
 198   1      
 199   1              // Write Start 1010 000 0/Write
 200   1              RxWrite24C02StartBit();
 201   1              RxWrite24C02BitOne();
 202   1              RxWrite24C02BitZero();
 203   1              RxWrite24C02BitOne();
 204   1              RxWrite24C02BitZero();
 205   1              RxWrite24C02BitZero();
 206   1              RxWrite24C02BitZero();
 207   1              RxWrite24C02BitZero();
 208   1              RxWrite24C02BitZero();
 209   1              RxRead24C02Ack();
 210   1      
 211   1              // Write Data Address
 212   1              for (usLoop=0; usLoop<8; usLoop++){
 213   2                      if (((TempAddress << usLoop) & (0x80)) == 0x00)
 214   2                              RxWrite24C02BitZero();
 215   2                      else
 216   2                              RxWrite24C02BitOne();
 217   2              }
 218   1              RxRead24C02Ack();
 219   1      
 220   1              // Write Data
 221   1              for (usLoop=0; usLoop<8; usLoop++){
 222   2                      if (((TempData << usLoop) & (0x80)) == 0x00)
 223   2                              RxWrite24C02BitZero();
 224   2                      else
 225   2                              RxWrite24C02BitOne();
 226   2              }
 227   1              RxRead24C02Ack();
 228   1              RxWrite24C02StopBit();
 229   1      
 230   1              //wait 12 ms
 231   1              TempAT24C02DelayTime=AT24C02DelayTime;
 232   1              TempAT24C02DelayTime=TempAT24C02DelayTime+12;
 233   1              while(TempAT24C02DelayTime!=AT24C02DelayTime);
 234   1      }
 235          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    860    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
C51 COMPILER V7.04   24C02                                                                 12/18/2005 18:05:21 PAGE 5   

   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2       6
   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 + -