单片机/MCUwilliam hill官网
直播中

zhanrongzhen

11年用户 109经验值
擅长:8097
私信 关注
[问答]

求助!!关于DS1302时钟芯片的读数据问题

资料上说的DS1302在下降沿是输出数据(单片机读取数据)可是下面的这段读DS1302数据的程序怎么不好理解呢。程序如下:
              uchar read_byte(void)
             {
                      uchar m;
                      for(m=0;m<8;m++)
                       {
                               ACC=ACC>>1;
                               ACC7=SDA;    //SDA是数据线
                                _nop_;
                              SCL=1;         //SCL是时钟线,SCL=1拉高时钟线;
                              _nop_;
                              _nop_;
                             _nop_;
                              _nop_;
                              SCL=0;       //scl=0制造下降沿
                      }
                return(ACC);
               }
我用的是单片机模拟串口,资料中说在下降沿,DS1302输出数据,可是在程序中为什么单片机读取数据(ACC7=SDA)在下降沿之前呢,下降沿时DS1302的移位寄存器移出数据到SDA线上,下降沿之后SDA线上的数据才是的有效数据啊,为什么程序中单片机读取数据在下降沿之前呢?
求各位大神帮忙。

更多回帖

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