单片机/MCUwilliam hill官网
直播中

leetow2006

9年用户 561经验值
擅长:嵌入式技术
私信 关注
[问答]

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

我在看读数据时,它是先写地址,然后在读数据,
它的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积分

回帖(1)

chenwei6991627

2019-12-2 08:45:42
参照IIC的协议就可以了
举报

更多回帖

发帖
×
20
完善资料,
赚取积分