求助ds1307不能握手下面是我的I2C的程序,和其他的I2C设备通讯都没有问题,就是唯独和1307握手一直都是失败,请高手来给指点下巴
void Delay(void)
{
unsigned char i;
for(i=0;i <=2;i++)
{
;
}
}
void IC_Start(void) //启动IC通信
{ //SDA 1 TO 0 While SCL=1
while(Writer_Counter <=10);
IC_SDA=1;
IC_SCL=1;
Delay();
IC_SDA=0;
Delay();
IC_SCL=0;
Delay();
}
void IC_Stop(void) //停止IC通信
{
IC_SDA=0;
IC_SCL=1;
Delay();
IC_SDA=1;
Delay();
Writer_Counter=0;
}
void IC_Receive_Ack(void) //接受ACK
{
IC_SDA=1;
IC_SCL=1;
IC_Re_Time=0;
while(IC_Re_Time <=10)
//while(IC_SDA)
{
if(IC_SDA==0)
{
IC_Err_Flag=0;
break;
}
else
{
IC_Err_Flag=1;
}
}
IC_SCL=0;
Writer_Counter=0;
//Delay();
}
void IC_Send_NAck(void) //发送NACK
{
IC_SDA=1;
Delay();
IC_SCL=1;
Delay();
IC_SCL=0;
Delay();
}
void IC_Send_Ack(void) //发送NACK
{
IC_SDA=0;
Delay();
IC_SCL=1;
Delay();
IC_SCL=0;
Delay();
IC_SDA=1;
}
void IC_Write_Byte(unsigned char Data) //写数据到1307
{
unsigned char i;
unsigned char j;
for(i=0;i <=7;i++)
{
j=7-i;
if(VALBIT(Data,j))
IC_SDA=1;
else
IC_SDA=0;
Delay();
IC_SCL=1;
//Delay();
IC_SCL=0;
}
IC_SCL=1;
}
unsigned char IC_Read_Byte(void) //从1307读取一个数据
{
unsigned char i;
unsigned char j;
unsigned char Data;
IC_SDA=1;
for(i=0;i <=7;i++)
{
j=7-i;
IC_SCL=1;
Delay();
if(IC_SDA)
SETBIT(Data,j);
else
CLRBIT(Data,j);
IC_SCL=0;
Delay();
}
return(Data);
}
/*ds1307的读写程序*/
void IC_Write_Data(unsigned char Data,unsigned char Addr)
{
unsigned char write_time;
for(write_time=0;write_time <=2;write_time++)
{
IC_Start();
IC_Write_Byte(0xD0);
IC_Receive_Ack();
IC_Write_Byte(Addr);
IC_Receive_Ack();
IC_Write_Byte(Data);
IC_Receive_Ack();
IC_Stop();
if(IC_Err_Flag==0)
break;
}
}
void IC_Read_Data(void)
{
unsigned char read_time;
for(read_time=0;read_time <=2;read_time++)
{
IC_Start();
IC_Write_Byte(0xD0);
IC_Receive_Ack();
IC_Write_Byte(0x00);
IC_Receive_Ack();
IC_Stop();
IC_Start();
IC_Write_Byte(0xD1);
IC_Receive_Ack();
Temp_Second=IC_Read_Byte();
IC_Send_Ack();
Temp_Minute=IC_Read_Byte();
IC_Send_Ack();
Temp_Hour=IC_Read_Byte();
IC_Send_NAck();
IC_Stop();
if(IC_Err_Flag==0)
{
break;
}
}
if(VALBIT(Temp_Second,7))
{
IC_Write_Data(0x00,0x00);
}
}
电源部分如图
此主题相关图片如下:
