导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→请教大家24c01读写问题

* 85205: 请教大家24c01读写问题

   captainx 
captainx发表的帖子 

 请教大家24c01读写问题
void delay(uint s)                           
{while(s--);}

void Start_2401() {                        //2401开始信号
 SDA_2401 = 1;
 SCL_2401 = 1;
 SDA_2401 = 0;
 SCL_2401 = 0;

void Stop_2401() {                         //2401结束信号
 SDA_2401 = 0;
 SCL_2401 = 1;
 SDA_2401 = 1;
}

bit TestAck() {                            //检测反馈信号
  bit ack;
  SCL_2401 = 1;
  ack = SDA_2401;
  SCL_2401 = 0;
  return(ack);
}

Send_2401(uchar a) {                       //2401单字节发送
  uchar i;
  for(i=0;i  <8;i++) {
         SDA_2401 = (bit)(a&0x80);
         a   <  <= 1;
         SCL_2401 = 0;
         delay(3);
         SCL_2401 = 1;
    }
}

uchar Receive_2401() {                     //2401单字节接收
    uchar i;
    uchar ReceiveByte = 0;
    for(i=0;i  <8;i++) {
 SCL_2401 = 1;
 ReceiveByte = (ReceiveByte  <  <1)|SDA_2401;
 SCL_2401 = 0;
    }
 return ReceiveByte;
}

Write_2401(uchar input_data,uchar RomAddress) {
  uchar DeviceAddress = 0xa0;
  Start_2401();
    Send_2401(DeviceAddress);
   if(~TestAck())
   Send_2401(RomAddress);
   if(~TestAck())
   Send_2401(input_data);
    if(~TestAck()) 
  Stop_2401();
}

uchar Read_2401(uchar address) {
  uchar Dout;
  uchar DeviceAddress_Write = 0xa0;
  uchar DeviceAddress_Read  = 0xa1;
  Start_2401();
  Send_2401(DeviceAddress_Write);
  if(~TestAck())  
  Send_2401(address);
  if(~TestAck())
  Start_2401();
  Send_2401(DeviceAddress_Read);
  if(~TestAck())
  Dout = Receive_2401();
  Stop_2401();
  delay(10);
  return Dout;
}
请问大家:为什么
Write_2401(66,1);
a = Read_2401(1);可以读出来a=66
按说应该再次执行a = Read_2401(1);就算不write都应该可以读出地址1的数据(66),
可是不行,感觉好象没有真正的存进去,不知道是怎么回事呢?请大家帮忙看看程序有什么问题,谢谢大家了!

发表时间:2005年11月1日11:23:48

  
回复该帖

本主题共有 3 帖,分页:>>>>>该主题的所有内容[3]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  85449.[详细]我想
摘要:你如果执行完a=Read_2401(1)时,直接执行a=Read_2401(1)可能有问题,如果你想读刚才的数据,就应先执行stop,在执行读......(110字)
- [dreamhee][1246次] 2005年11月8日

  85476.[详细]寫完後,要等幾個ms    ,或者是頁寫過程被復蓋了
摘要:寫完後,要等幾個ms    ,或者是頁寫過程被復蓋了......(44字)
- [LIN-SAM][1335次] 2005年11月8日

[上一篇帖子]:请教关于usb接口芯片:PDIUSBD12与USBD9602优劣[求助]如题。 请问有没有两
[下一篇帖子]:谁有K9F2808的资料,有的发一份给我好么?