打印

887A IIC通信遇到问题,程序执行在写函数求帮助

[复制链接]
1128|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
clown_7|  楼主 | 2012-11-28 11:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<pic.h>
#define uchar unsigned char
#define  uint unsigned int
#define add 0x03
uchar date[4]={1,2,3,4};
uchar i;
uchar d[4];       //读回来的数据放到里面
void init();
void write();
void read();
void led();
void delay(uint time1)
{
uint q,w;
for(q = 0;q < time1; q++)
{
    for(w = 0;w < 30; w++);
    }
}
void init()
{
  TRISD=0X00;
  PORTD=0X11;   
  TRISC=0X00;     //RC3RC4是SCL和SDA
  PORTC=0X00;
  TRISB=0X01;   //RB0初始化为高,连接按键
  PORTB=0X01;
  SSPSTAT=0X80;
  SSPCON=0X38;   //IIC配置接口 选择时钟
  SSPCON2=0X00;
  SSPADD=0X09;   //100K=4M/4*(ADD+1)
}
void write()
{   
  
   SEN=1;
   while(!SSPIF);
   SSPIF=0;
   SSPBUF=0xA0;
   while(!SSPIF);
   SSPIF=0;
   SSPBUF=add;
   while(!SSPIF);
   SSPIF=0;
   for(i=0;i<4;i++)
   {
     SSPBUF=date[i];     //写四个数据到EEPROm
     while(!SSPIF);
     SSPIF=0;
   }
   PEN=1;
   while(!SSPIF);
   SSPIF=0;
}
void read()
{
  SEN=1;
  while(!SSPIF);
  SSPIF=0;
  SSPBUF=0xA0;
  while(!SSPIF);
  SSPIF=0;
  SSPBUF=add;
  while(!SSPIF);
  SSPIF=0;
  RSEN=1;
  while(!SSPIF);
  SSPIF=0;
  SSPBUF=0xA1;
  while(!SSPIF);
  SSPIF=0;
  for(i=0;i<4;i++)
  {
   RCEN=1;
   while(!SSPIF);
   d[i]=SSPBUF;
   SSPBUF=0;
    if(i>=4)
     {
      ACKDT=1;
     }
    else
     {
       ACKDT=0;
     }
    ACKEN=1;
    while(!SSPIF);
    SSPIF=0;
  }
  PEN=1;
  while(!SSPIF);
  SSPIF=0;
}
void led()
{
  if(RB0==0)
  {
    for(i=0;i<=3;i++)
    {
    PORTD=d[i];
    delay(5000);
    }
  }
}
void main()
{
   __CONFIG(XT&WDTDIS&LVPDIS);
   init();
   write();
   delay(10);
   read();
  while(1)
  {
   led();
   }
}
沙发
clown_7|  楼主 | 2012-11-28 11:17 | 只看该作者
我在main()函数里面wirte()函数后面加过一个蜂鸣器测试,发现蜂鸣器不响,推测是程序在写函数里面出了问题,请大家帮助!谢谢!

使用特权

评论回复
板凳
asbsp23| | 2012-11-30 20:40 | 只看该作者
如果只是在write函数里加蜂鸣器测试的话也说明不了什么啊。。。

使用特权

评论回复
地板
clown_7|  楼主 | 2012-12-3 09:02 | 只看该作者
asbsp23 发表于 2012-11-30 20:40
如果只是在write函数里加蜂鸣器测试的话也说明不了什么啊。。。

那该如何检查呢,我的确没找到问题。所以请大家帮帮忙找找

使用特权

评论回复
5
圈圈虫1989| | 2012-12-8 19:42 | 只看该作者
用示波器抓波形吧

使用特权

评论回复
6
loyou1993| | 2012-12-8 21:11 | 只看该作者
程序就不看了,发个给你,自己去参照吧!也是887A的!不知道这会不会害你啊!虾米豆腐!

ee24.zip

1.24 KB

I2C

使用特权

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

本版积分规则

0

主题

23

帖子

1

粉丝