2回答

0收藏

[经验] 51单片机的休眠模式

51单片机 51单片机 4624 人阅读 | 2 人回复 | 2012-11-11

AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU
停止工作,允许RAM、定时器/计数器、串口、中断继续工
作。掉电保护方式下,RAM内容被保存,振荡器被冻结,
单片机一切工作停止,直到下一个中断或硬件复位为止。
单片机空闲与掉电模式2009-04-23 00:03特别对于电池供电系统来说,功耗是首要考虑的问题.我们知道单片机内部有一个电源管理
寄存器PCON,这个寄存器的最低两位,IDLPD这两位分别用来设定是否使单片机进入空闲模式和掉电模式。
1. 空闲模式
     当单片机进入空闲模式时,除CPU处于休眠状态外,其余硬件全部处于活动状态,芯片中程序未涉及到的数据存储器和特殊功寄存器中的数据在空闲模式期间都将保持原值。但假若定时器正在运行,那么计数器寄存器中的值还将会增加。单片机在空闲模式下可由任一个中断或硬件复位唤醒,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。
     让单片机进入空闲模式的目的通常是为了降低系统的功耗,举个很简单的例子,大家都用过数字万用表,在正常使用的时候表内部的单片机处于正常工作模式,当不用时,又忘记了关掉万用表的电源,大多数表在等待数分钟后,若没有人为操作,它便会自
动将液晶显示关闭,以降低系统功耗,通常类似这种功能的实现就是使用了单片机的空闲模式或是掉电模式。以STC89系列单片机为例,当单片机正常工作时的功耗通常为4mA7mA,进入空闲模式时其功耗降至2mA,当进入掉电模式时功耗可降至0.1μA以下。
2.   休眠模式
     当单片机进入掉电模式时,外部晶振停振、CPU、定时器、串行口全部停止工作,只有外部中断继续工作。使单片机进入休眠模式的指令将成为休眠前单片机执行的最后一条指令,进入休眠模式后,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据都将保持原值。可由外部中断低电平触发或由下降沿触发中断或者硬件复位模式换醒单片机,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。可将数字万用表调节到电流档,然后串接入电路中,观察单片机在正常工作模式、休眠模式、空闲模式下流过系统的总电流变化情况,经测试可发现结果如下:正常工作电流>空闲模式电流>休眠模式电流。
51进空闲模式
2007-10-24 14:36
进入空闲模式:PCON=0x01;     之前执行AUXR=0xFF;定义空闲模式下看门狗WDT不计数。
PCON:电源控制器及波特率选择寄存器
      字节地址=87H,不可位寻址
SMOD
-
-
POF
GF1
GF0
PD
IDL
      SMOD——波特率倍增位
      GF1、GF0——用户通用标记
      PD——掉电方式控制位,PD=1时进入掉电模式
      IDL——空闲方式控制位,IDL=1时进入空闲方式
      在AT89S51中PCON.4是电源断电标记位POF,上电是为1
PCON(电源控制寄存器)的有关位来设置实现控制:   
  当第0IDL1时,进入待机模式,此时单片机功耗很低,振荡器继续运行,可用中断来唤醒   
  当第1PD1时,进入掉电模式
在程序中执行下面指令就达目的:
setb idl  ;待机模式
setb pd  ;掉电模式

详情及源码见附件

51单片机的休眠模式!!!.doc (56 KB, 下载次数: 16)



轻轻地
    我走了
       正如我轻轻地来
挥一挥衣袖
   不带走一片云彩
我的博客:http://blog.timcu.com/
分享到:
回复

使用道具 举报

回答|共 2 个

倒序浏览

沙发

w932443004

发表于 2012-11-11 15:43:05 | 只看该作者

哇 我来抢个板凳 休眠模式接触的比骄少
板凳

hxz0123

发表于 2012-11-11 16:36:11 | 只看该作者

wangku001wei 发表于 2012-11-11 15:43
哇 我来抢个板凳 休眠模式接触的比骄少

对节电有要求时会用到
轻轻地
    我走了
       正如我轻轻地来
挥一挥衣袖
   不带走一片云彩
我的博客:http://blog.timcu.com/
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条