我在看读数据时,它是先写地址,然后在读数据,
它的SLK写的时候的是上升沿的,读的时候是下降沿的,
可是我在程序时,代码都是SCK先高电平,然后再低电平,
但是程序是可以运行的,请看(我只显示读数据的):
unsigned char Ds1302_Read_Byte(unsigned char addr)
{
unsigned char i;
unsigned char temp;
RST_SET;
//写入目标地址:addr
addr = addr | 0x01;//最低位置高
for (i = 0; i < 8; i ++)
{
if (addr & 0x01)
{
IO_SET;
}
else
{
IO_CLR;
}
SCK_SET;
SCK_CLR;
addr = addr >> 1;
}
//输出数据:temp
for (i = 0; i < 8; i ++)
{
temp = temp >> 1;
if (IO_R)
{
temp |= 0x80;
}
else
{
temp &= 0x7F;
}
SCK_SET;
SCK_CLR;
}
RST_CLR; //停止DS1302总线
return temp;
}
请问为什么这样也可以呢?感觉和时序图不一样?
已退回10积分