请问DS1302芯片中的读数据的时序图

leetow2006 2019-11-30 11:04:14
我在看读数据时,它是先写地址,然后在读数据,
它的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;
}
请问为什么这样也可以呢?感觉和时序图不一样?
...全文
165 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
yishumei 2019-12-01
  • 打赏
  • 举报
回复
SCK_SET; SCK_CLR; 先产生一个上升沿再产生一个下降沿,只要数据在此之前就绪,都会成功传送的。

27,511

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧