打印

AT24C04写入的数据和读出来的数据不一样

[复制链接]
2007|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
woowtaotao|  楼主 | 2013-3-13 18:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
FOR, ui, TI
void delay1(uchar x)
{
   uint i;
   for(i=0;i<x;i++);
}
void clock()

{
   uchar i=0;
//TRISB = 0B00000011;//设置RB1 SDA为输入
   SCL=1;
     
    asm("NOP");
   while ((SDA==1)&&(i<255))i++;
   SCL=0;
    asm("NOP");
  // TRISB = 0B00000001;//设置RB1 SDA为输出

}

void WIN24C02_init()
{
//  TRISB = 0B00000001;//设置RB1 SDA为输出
   SCL=1;
     asm("NOP");
   SDA=1;
     asm("NOP");
}

void start()
{
// TRISB = 0B00000001;//设置RB1 SDA为输出
   SDA=1;
    asm("NOP");
   SCL=1;
     asm("NOP");
   SDA=0;
    asm("NOP");
   SCL=0;
     asm("NOP");
}


void stop()

{
// TRISB = 0B00000001;//设置RB1 SDA为输出
   SDA=0;
     asm("NOP");
   SCL=1;
     asm("NOP");
   SDA=1;
    asm("NOP");
}

void writex(uchar j)

{
   uchar i,temp;
// TRISB = 0B00000001;//设置RB1 SDA为输出
   temp=j;

   for (i=0;i<8;i++)
   {
     
      SCL=0;
        asm("NOP");

  if  (temp & 0x80) //读取
     {
      SDA=1;
     }
    else
     {
      SDA=0;
     }
    temp=temp<<1;
      //SDA=CY;


       asm("NOP");
      SCL=1;
        asm("NOP");
   }

   SCL=0;
     asm("NOP");
   SDA=1;
    asm("NOP");

}

char readx()
{
   uchar i,j,k=0;
//   TRISB = 0B00000001;//设置RB1 SDA为输出

   SCL=0;  
   asm("NOP");
   
   SDA=1;

//   TRISB = 0B00000011;//设置RB1 SDA为输入
   for (i=0;i<8;i++)
   {
       asm("NOP");
      
      SCL=1;
       asm("NOP");
      
      if (SDA==1) j=1;
      else j=0;
      k=(k<<1)|j;
      SCL=0;
     
   }
  // TRISB = 0B00000001;//设置RB1 SDA为输出

    asm("NOP");
   return(k);

}

char WIN24C02_read(uchar address)

{
   uchar i;
   start();
   writex(0xa0);
   clock();
   writex(address);
   clock();
   start();
   writex(0xa1);
   clock();
   i=readx();
   stop();
   delay1(10);
   return(i);

}

void WIN24C02_write(  uchar address,  uchar info)

{

  // GIE=0;//关闭中断
   start();
   writex(0xa0);
   clock();
   writex(address);
   clock();
   writex(info);
   clock();
   stop();
  // GIE=1;//打开中断
   delay1(50);

}

相关帖子

沙发
outstanding| | 2013-8-16 15:59 | 只看该作者
时序问题么?

使用特权

评论回复
板凳
创隆电子| | 2013-8-16 16:39 | 只看该作者
用编程器,先看看你的写入数据对不对,在用编程器往24c02写入后读出,看看是写入问题还是读出问题,24C02程序照书上写就行

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝