关于51给EEPROM中存储大整数的有关问题,不知道怎么存储

关于51给EEPROM中存储大整数的问题,不知道如何存储
本帖最后由 lutao050306 于 2014-01-08 09:38:02 编辑
EEPROM的I2C总线代码如下:




  
#include <reg52.h>       
#include "i2c.h"
#include "delay.h"

#define  _Nop()  _nop_()  
                         
bit ack;              

sbit SDA=P3^7;
sbit SCL=P3^6;

/*------------------------------------------------
                  
------------------------------------------------*/
void Start_I2c()
{
  SDA=1;   
  _Nop();
  SCL=1;
  _Nop();   
  _Nop();
  _Nop();
  _Nop();
  _Nop();    
  SDA=0;    
  _Nop();   
  _Nop();
  _Nop();
  _Nop();
  _Nop();       
  SCL=0;   
  _Nop();
  _Nop();
}
/*------------------------------------------------
                  
------------------------------------------------*/
void Stop_I2c()
{
  SDA=0;   
  _Nop();   
  SCL=1;   
  _Nop();
  _Nop();
  _Nop();
  _Nop();
  _Nop();
  SDA=1;    
  _Nop();
  _Nop();
  _Nop();
  _Nop();
}




/*----------------------------------------------------------------

------------------------------------------------------------------*/
void  SendByte(unsigned char c)
{
 unsigned char BitCnt;
 
 for(BitCnt=0;BitCnt<8;BitCnt++)  
    {
     if((c<<BitCnt)&0x80)SDA=1;  
       else  SDA=0;                
     _Nop();
     SCL=1;              
      _Nop(); 
      _Nop();          
      _Nop();
      _Nop();
      _Nop();         
     SCL=0; 
    }
    
    _Nop();
    _Nop();
    SDA=1;               
    _Nop();
    _Nop();   
    SCL=1;
    _Nop();
    _Nop();
    _Nop();
    if(SDA==1)ack=0;     
       else ack=1;        
    SCL=0;
    _Nop();
    _Nop();
}







/*----------------------------------------------------------------

------------------------------------------------------------------*/
unsigned char  RcvByte()
{
  unsigned char retc;
  unsigned char BitCnt;
  
  retc=0; 
  SDA=1;            
  for(BitCnt=0;BitCnt<8;BitCnt++)
      {
        _Nop();           
        SCL=0;       
        _Nop();
        _Nop();      //
        _Nop();
        _Nop();
        _Nop();
        SCL=1;       //
        _Nop();
        _Nop();
        retc=retc<<1;
        if(SDA==1)retc=retc+1; //
        _Nop();
        _Nop(); 
      }
  SCL=0;