2819|3

16

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

关于i2c总线的问体,大家帮忙看看哪儿出问题了 [复制链接]

用的从器件是e2prom,24c08,得不到想要的结果,个人觉得是read()函数出问题了,应该怎么改求助攻。
#include
#define uchar unsigned char
#define uint unsigned int
sbit scl=P3^4;
sbit sda=P3^5;
void delay(void ) /*/延时函数产生5us以上延时        */
{; ; ; ; ; }
void delay1(uchar i)
{
  uchar j;
for(i;i>0;i--)
     for( j=100;j>0;j--);
}

void start(void)/*/开始信号函数scl保持高电平,sda由高电平跳转到低电平 */
{
     sda=1;
         delay();
         scl=1;
         delay();
         sda=0;
         delay();
}  

void stop(void)/*/终止信号,scl保持高电平,sda由低电平到高电平*/
{
        sda=0;
        delay();
        scl=1;
        delay();
        sda=1;
        delay();
}

void inition(void)/*/信号初始化        */
{
   sda=1;
   delay();
   scl=1;
   delay();       
}

void response(void)
{
        uchar i=0;
        while((sda==1)&&(i<10))i++;
}

void write(uchar date)/*/写数据函数,主机通过sda向从机传送数据          */
{
    uchar temp,j;
         temp=date;
         for(j=0;j<8;j++)
         {
          scl=0;
          delay();
          temp=(temp<<1);
          sda=CY;
          scl=1;
          delay();
         }
}

uchar read(void)
{
    uchar i,k;
        for(i=0;i<8;i++)
        {
          scl=0;
          delay();
          k=(k<<1)|sda;
          scl=1;
          delay();
          
        }
        return k;
}      

void main(void)
{
  uchar temp;
  inition();
  start();
  write(0xa0);/*/主机选从机;24c08 1010???r/w   0主机向从机写数据 1主机接收从机传来的数据          */
  response();
  write(3);/*/从机起始地址 ???????r/w 0写        */
  response();
  write(0xf0);/*/传送数据 */
  response();
  stop();

  delay1(200);
  start();
  write(0xa0);
  response();
  write(3);
  response();
  start();
  write(0xa1);
  response();
   temp=read();
  P0=temp;
  delay();
  stop();
  while(1);
}
此帖出自电子竞赛论坛

最新回复

上逻辑仪抓波形分析   详情 回复 发表于 2015-4-26 23:42
点赞 关注
 
 

回复
举报

1976

帖子

1

TA的资源

五彩晶圆(初级)

沙发
 
仔细分析一下时序和逻辑有没有错误的地方
此帖出自电子竞赛论坛
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
谢谢,错误有两处,一处在应答函数,应答时scl是高电平,一处在写数据处,一个数据写完,没有释放总线。我改了,能工作了.不知还有没有问题?


此帖出自电子竞赛论坛
 
 
 

回复

1291

帖子

0

TA的资源

纯净的硅(中级)

4
 
上逻辑仪抓波形分析
此帖出自电子竞赛论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
Microchip 直播|利用motorBench开发套件高效开发电机磁场定向控制方案 报名中!
直播主题:利用motorBench开发套件高效开发电机磁场定向控制方案
直播时间:2025年3月25日(星期二)上午10:30-11:30
快来报名!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表