Chinaunix首页 | 论坛 | 博客
  • 博客访问: 24594
  • 博文数量: 13
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2013-01-01 11:16
文章分类
文章存档

2015年(13)

我的朋友

分类: 嵌入式

2015-09-26 16:26:55

原文地址:51单片机低功耗工作模式 作者:bjy_01

原文:http://51changxue.com/mcuview.asp?fid=13

低功耗操作方式

在以电池供电的系统中有时为了降低电池的功耗在程序不运行时就要采用低功耗方式低功耗方式有两种—待机方式和掉电方式

低功耗方式是由电源控制寄存器PCON上一课我们提到过的来控制的电源控制寄存器是一个逐位定义的8位寄存器其格式如下

  PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如下:


   PCON电源管理寄存器结构

PCON D7 D6 D5 D4 D3 D2 D1 D0
位符号 SMOD
-
-
-
GF1 GF0 PD IDL



PCON标志位说明:
在CHMOS型单片机中,除SMOD位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当SMOD=1时,串行口波特率加倍。系统复位默认为SMOD=0。

  各位的定义: SMOD:该位与串口通信有关。

  SMOD=0; 串口方式1,2,3时,波特率正常。

  SMOD=1; 串口方式1,2,3时,波特率加倍。

  GF1,GF0:两个通用工作标志位,用户可以自由使用。

  PD:掉电模式设定位。

  PD=0 单片机处于正常工作状态。

  PD=1 单片机进入掉电(Power Down)模式 ,可由外部中断或硬件复位模式唤醒,进入掉电模式后,外部晶振停振,CPU、定时器、串行口全部停止工作,只有外部中断工作。

  IDL:空闲模式设定位。

  IDL=0 单片机处于正常工作状态。

  IDL=1 单片机进入空闲(Idle)模式,除CPU不工作外,其余仍继续工作,在空闲模式下可由任一个中断或硬件复位唤醒。

其中SMOD为波特率倍增位在串行通讯时用GF1为通用标志位1GF0为通用标志位0PD为掉电方式位PD=1进入掉电方式IDL为待机方式位IDL=1 进入待机方式也就是说只要执行一条指令让PD位或IDL位为1就可以了那么单片机是如何进入或退出掉电工作方式和待机工作方式的我们来介绍一下
1 待机方式
进入待机方式
当 使用指令使PCON寄存器的IDL=1则进入待机工作方式此时CPU停止工作但时钟信号仍提供给RAM定时器中断系统和串行口同时堆栈指针SP程序计数器 PC程序状态字PSW累加器ACC以及全部的通用寄存器都被冻结起来单片机的消耗电流从24mA降为3.7mA这样就可以节省电源的消耗
退出待机方式
退出待机方式可以采用引入中断的方法在中断程序中安排一条RETI的指令就可以了什么是中断我们现在还不知道当然这没关系其实待机方式和我们使用电脑时的睡眠方式有异曲同工之妙
2掉电方式
进入待机方式
当使用指令使PCON寄存器的PD=1则进入掉电工作方式此时单片机的一切工作都停止只有内部RAM的数据被保持下来掉电方式下电源可以降到2V耗电仅50uA此时就相当于把显示器和硬盘也关闭了
退出待机方式
退 出掉电工作方式的唯一方法是复位不过应在电源电压恢复到正常值后再进行复位复位时间要大于1mS在进入掉电方式前电源电压是不能降下来的因此可靠的单片机 电路最好要有电源检测电路显然掉电方式和待机方式是两种不同的低功耗工作方式前者可以在无外部事件触发时降低电源的消耗而后者则在程序停止运行时才使用

KEIL单片机c语言待机模式实现:
PCON=0X02;  //单片机进入待机模式(掉电模式)

阅读(1130) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~