PIC系列单片机低功耗模式(SLEEP)

时间:2016-10-19 10:06:30 |  临汾点亮亮点艺术玻璃

  一、进入 SLEEP

  执行一条"SLEEP"指令即可进入低功耗模式。当进入SLEEP后,WDT被清零,然后重新开始计数。状态寄存器F3K中的PD位被置成"0",TO位置成"1",同时振荡停止(指OSC1 端的振荡电路)。所有的I/O口保持原来的状态。这种工作模式功耗最低。

  为使耗电流最小,进入SLEEP前,应使所有的I/O口处于高电平VDD或低电平VSS,而不应使其处于高阻态,以免产生开关电流损耗。你可以在I/O口加上拉或下拉电阻,或者把I/O口都置成输出态来避免其处于高阻态(浮态)。

  RTCC端亦应置为VDD或VSS(通过上拉或下拉)。

  MCLR必须处于高电平状态。

  二、唤醒SLEEP

  SLEEP可被WDT溢出唤醒;或在MCLR端加低电平唤醒SLEEP。后一种唤醒方法经常用在以下应用场合:在系统主电源掉电,并由后备电源(电池)供电后,执行"SLEEP"指令进入低功耗模式,这样电池就可长时间保持系统数据。当主电源恢复供电时,让其在MCLR产生一低电平唤醒SLEEP,并重新复位。这样需在MCLR端加一外部复位电路,请参考§1.10.5。

  系统上电时,F3的PD被置为"1",而执行"SLEEP"指令后,PD位被置成"0"。所以通过 PD位可以判断系统是从SLEEP模式唤醒而复位,还是上电后的复位。F3中的TO位则可判断当处于SLEEP状态的系统是由WDT溢时唤醒或是由外界给MCLR端一个低电平而唤醒。这些区别有时是很重要的,特别是对系统的一些初始化

  原文链接:http://www.eeworld.com.cn/mcu/article_2016101930589.html