微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > DS1302时钟问题

DS1302时钟问题

时间:10-02 整理:3721RD 点击:
最近在学51,在DS1302时钟这块卡住了,很多疑问,比如通常的写入一个字节的数据程序会这样写:
void input(unsigned char byte)
{
  unsigned char i;
for(i=8;i>0;i--)
{
  IO=byte&0x01;
  CLK=1;    //7行
  CLK=0;   //8行
  byte>>=1;
}
}
但是我不明白,芯片手册上说读数据是在时钟的上升沿,但我感觉程序中7行和8行是描述下降沿,其次,手册上说数据传输是从最低位到最高位,那么我给这个函数传递一字节数据0x8e时,这段程序代码到底是怎么处理的,是一位一位的传输再参与运算吗?请大神能帮我仔细剖析这段代码,真的很感激了

在读数据之前,你看看CLK有没有赋值为0,如果赋值为0的话 想必你就会明白了,从0到1,然后循环。
首先 OX8E和0X01按位与 ,所以第一次就把最低位给传出去了,然后让 byte右移一位。然后重复for循环

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top