资料上说的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线上的数据才是的有效数据啊,为什么程序中单片机读取数据在下降沿之前呢?
求各位大神帮忙。
更多回帖