24C02单片机编程的一点注意问题

单片机对24C02的读写,有一点要注意的,就是关于延时的问题。读写操作的间隔时间不能太短,否则会导致在Proteus仿真时正常,实际应用出错的结果。

下面是一个毫秒级延时程序:

void delay_ms(uchar x)
{
 uchar a,b;
 for(a=x;a>0;a--)
  for(b=100;b>0;b--);
}

以下是部分操作24C02的程序:

 init_24C02();//初始化24C02
 delay_ms(20);//延时
 write_add(1,18);//写入数据1
 delay_ms(20);//延时
 write_add(2,92);//写入数据2
 delay_ms(20);//延时
 write_add(3,56);//写入数据3
 delay_ms(20);//延时
 for(i=1;i<4;i++)
 {
  delay_ms(10);
  //write_add(0x02,12);
  delay_ms(10);
  n=read_add(i);//读取数据
  temp[i*2-2]=n/10;
  temp[i*2-1]=n%10;
 }

实际上,上面的程序在Proteus仿真时通过,但写到板子上却无法正常读取刚刚写入的数据。后来把延时参数增大到50,一切正常了!这说明合理的延时对读写24C02是至关重要的,特别是写入数据后应该保证24C02有充分的歇息!

永不止步步 发表于11-14 11:19 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:307967个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号