微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 你们说,DS1302复位到底有什么用呢

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

时间:10-02 整理:3721RD 点击:
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. }

复制代码


RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。  可明白?

此复位非彼复位。不要被字面意思迷惑了。

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

网站地图

Top