你们说,DS1302复位到底有什么用呢

2019-07-15 15:41发布

rt,我发现DS1302每次读出或者写入函数的最后,都要加入一句RST置低电平,也就是复位,这是为什么呢?单片机复位可以使程序重新开始运行,那么ds1302复位的意义是什么。不懂,求解
  1. /*------------------------------------------------
  2.            向DS1302写入一字节数据
  3. 通常必须写入地址,告知DS1302你要写在哪里,年?月?日?地址附在addr
  4. d就是数据,通常是写时间
  5. ------------------------------------------------*/
  6. void Ds1302_Write_Byte(unsigned char addr, unsigned char d)
  7. {

  8.         unsigned char i;
  9.         RST_SET;//复位必须失效       
  10.        
  11.         //写入目标地址:addr
  12.         addr = addr & 0xFE;     //最低位置零,强制转换
  13.         for (i = 0; i < 8; i ++)
  14.             {
  15.                 if (addr & 0x01)
  16.                     {
  17.                         IO_SET;           //预定义这个是SDK取高电平,通过sbit定义进行引脚电平输出
  18.                         }
  19.                 else
  20.                     {
  21.                         IO_CLR;
  22.                         }
  23.                 SCK_SET;                 //时钟高电平,因前方初始化时钟已置低电平,故本次产生一次上升沿,整个函数执行写动作
  24.                 SCK_CLR;                 //时钟低电平 ,待下次数据传输使用
  25.                 addr = addr >> 1;
  26.                 }
  27.        
  28.         //写入数据:d
  29.         for (i = 0; i < 8; i ++)
  30.            {
  31.                 if (d & 0x01)
  32.                     {
  33.                         IO_SET;
  34.                         }
  35.                 else
  36.                     {
  37.                         IO_CLR;
  38.                         }
  39.                 SCK_SET;
  40.                 SCK_CLR;
  41.                 d = d >> 1;
  42.                 }
  43.         RST_CLR;                                        //停止DS1302总线,芯片复位
  44. }
复制代码

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。