第十一节:PIC系列单片机低功耗模式(SLEEP)
扫描二维码
随时随地手机看文章
一、进入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端一个低电平而唤醒。这些区别有时是很重要的,特别是对系统的一些初始化