eepromcopy.lst

来自「一个非常好的微处理器烧录EEPROM的C++ 原代码项目文件,直接可用,一拖一」· LST 代码 · 共 307 行 · 第 1/2 页

LST
307
字号
 130   2                      case    EEPROM_24C08:
 131   2                                      Eeprom.wPages_Eeprom=EEPROM_PAGES_24C08;
 132   2                                      Eeprom.bBytes_PerPage=PAGEBYTES_24C16;
 133   2                                      break;
 134   2                      case    EEPROM_24C16:
 135   2                                      Eeprom.wPages_Eeprom=EEPROM_PAGES_24C16;
 136   2                                      Eeprom.bBytes_PerPage=PAGEBYTES_24C16;
 137   2                                      break;
 138   2                      case    EEPROM_24C32:
 139   2                                      Eeprom.wPages_Eeprom=EEPROM_PAGES_24C32;
 140   2                                      Eeprom.bBytes_PerPage=PAGEBYTES_24C64;
 141   2                                      break;
 142   2                      case    EEPROM_24C64:
 143   2                                      Eeprom.wPages_Eeprom=EEPROM_PAGES_24C64;
 144   2                                      Eeprom.bBytes_PerPage=PAGEBYTES_24C64;
 145   2                                      break;
 146   2                      case    EEPROM_24C128:
 147   2                                      Eeprom.wPages_Eeprom=EEPROM_PAGES_24C128;
 148   2                                      Eeprom.bBytes_PerPage=PAGEBYTES_24C256;
 149   2                                      break;
 150   2                      case    EEPROM_24C256:
 151   2                                      Eeprom.wPages_Eeprom=EEPROM_PAGES_24C256;
 152   2                                      Eeprom.bBytes_PerPage=PAGEBYTES_24C256;
 153   2                                      break;
 154   2                      case    EEPROM_24C512:
 155   2                                      Eeprom.wPages_Eeprom=EEPROM_PAGES_24C512;
 156   2                                      Eeprom.bBytes_PerPage=PAGEBYTES_24C512;
 157   2                                      break;
 158   2                      default:        
 159   2                                      Eeprom.wPages_Eeprom=EEPROM_PAGES_24C08;
 160   2                                      Eeprom.bBytes_PerPage=PAGEBYTES_24C16;
 161   2                                      break;
 162   2              }
 163   1              TurnOnOff_Light(LIGHT_YELLOW);
 164   1              wDelayTime=100;
 165   1              while   (wDelayTime);
 166   1              for     (Eeprom_Pages=0;Eeprom_Pages<Eeprom.wPages_Eeprom;Eeprom_Pages++)
 167   1              {
C51 COMPILER V7.50   EEPROMCOPY                                                            07/08/2006 11:59:22 PAGE 4   

 168   2                      TurnOnOff_Light(LIGHT_YELLOW);
 169   2                      SetIIC_Type(IIC_AT24CXX_R);
 170   2                      ptGpBuffer=GpBuffer.bytes;
 171   2                      if  (EepromRead(Eeprom_Pages*Eeprom.bBytes_PerPage,Eeprom.bBytes_PerPage))
 172   2                      {
 173   3                              Operate_Flag=OPERATE_ER;
 174   3                              break;
 175   3                      }
 176   2                      TurnOnOff_Light(LIGHT_OFF);
 177   2                      SetIIC_Type(IIC_AT24CXX_D);
 178   2                      ptGpBuffer=GpBuffer.bytes;
 179   2                      if  (EepromWrite(Eeprom_Pages*Eeprom.bBytes_PerPage,Eeprom.bBytes_PerPage))
 180   2                      {
 181   3                              Operate_Flag=OPERATE_ER;
 182   3                              break;
 183   3                      }
 184   2              }
 185   1              if      (Eeprom_Pages==Eeprom.wPages_Eeprom)
 186   1              Operate_Flag=OPERATE_OK;        
 187   1      }
 188          
 189          void    Operate_Eeprom(void)
 190          {
 191   1              if      (Chek_Chip(3))
 192   1              Operate_Flag=OPERATE_ER;
 193   1              else
 194   1              Copy_Eeprom();
 195   1              if      (Operate_Flag==OPERATE_OK)
 196   1              TurnOnOff_Light(LIGHT_GREEN);
 197   1              else
 198   1              TurnOnOff_Light(LIGHT_RED);
 199   1              wDelayTime=500;
 200   1              while   (wDelayTime);
 201   1              Key_Func=KEY_NO_KEY;
 202   1              while   (1)
 203   1              {
 204   2                      Chek_key();
 205   2                      if      (Key_Func==KEY_NO_KEY)
 206   2                      break;  
 207   2              }
 208   1      }
 209          void main(void)
 210          {
 211   1              BYTE    Loop_Counter,Chip_Stau_R,Chip_Stau_D;
 212   1              InitMcu();
 213   1              TurnOnOff_Light(LIGHT_OFF);
 214   1              wDelayTime=1000;
 215   1              while (wDelayTime);
 216   1              Operate_Flag=OPERATE_NO;
 217   1              wDemoDelay=400;
 218   1              Loop_Counter=0;
 219   1              while   (1)
 220   1              {
 221   2                      Chek_key();
 222   2                      if      (Key_Func==KEY_START)
 223   2                      Operate_Eeprom();               
 224   2                      switch  (Operate_Flag)
 225   2                      {
 226   3                              case    OPERATE_NO:
 227   3                                              if      (wDemoDelay==0)
 228   3                                              {
 229   4                                                      Chip_Stau_R=Chek_Chip(1);
C51 COMPILER V7.50   EEPROMCOPY                                                            07/08/2006 11:59:22 PAGE 5   

 230   4                                                      Chip_Stau_D=Chek_Chip(2);
 231   4                                                      if      (Chip_Stau_R&&Chip_Stau_D)
 232   4                                                      Loop_Counter=INC(Loop_Counter,0,2);     
 233   4                                                      else   if       (Chip_Stau_R&&!Chip_Stau_D)     
 234   4                                                      Loop_Counter=INC(Loop_Counter,1,2);     
 235   4                                                      else   if       (!Chip_Stau_R&&Chip_Stau_D)     
 236   4                                                      Loop_Counter=INCx(Loop_Counter,0,2,2);  
 237   4                                                      else
 238   4                                                      Loop_Counter=LIGHT_YELLOW;
 239   4                                                      TurnOnOff_Light(Loop_Counter);
 240   4                                                      wDemoDelay=400;
 241   4                                              }
 242   3                                              break;
 243   3                              case    OPERATE_ER:
 244   3                                              if      (Chek_Chip(3))
 245   3                                              Operate_Flag=OPERATE_NO;
 246   3                                              else
 247   3                                              {
 248   4                                                      if      (wDemoDelay==0)
 249   4                                                      {
 250   5                                                              Loop_Counter=INCx(Loop_Counter,0,3,3);
 251   5                                                              TurnOnOff_Light(Loop_Counter);
 252   5                                                              wDemoDelay=400;
 253   5                                                      }
 254   4                                              }
 255   3                                              break;
 256   3                              case    OPERATE_OK:
 257   3                                              if      (Chek_Chip(3))
 258   3                                              Operate_Flag=OPERATE_NO;
 259   3                                              break;
 260   3                      }
 261   2              }
 262   1      }
 263          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    975    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    137       5
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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