`
- 浏览:
904726 次
-
我们知道单片机内部有一个电源管理寄存器PCON,这个寄存器的最低两位,IDL和PD这两位分别用来设定是否使单片机进入空闲模式和掉电模式。1.空闲模式当单片机进入空闲模式时,除CPU处于休眠状态外,其余硬件全部处于活动状态,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据在空闲模式期间都将保持原值。但假若定时器正在运行,那么计数器寄存器中的值还将会增加。单片机在空闲模式下可由任一个中断或硬件复位唤醒,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。让单片机进入空闲模式的目的通常是为了降低系统的功耗,举个很简单的例子,大家都用过数字万用表,在正常使用的时候表内部的单片机处于正常工作模式,当不用时,又忘记了关掉万用表的电源,大多数表在等待数分钟后,若没有人为操作,它便会自动将液晶显示关闭,以降低系统功耗,通常类似这种功能的实现就是使用了单片机的空闲模式或是掉电模式。以STC89系列单片机为例,当单片机正常工作时的功耗通常为4mA~7mA,进入空闲模式时其功耗降至2mA,当进入掉电模式时功耗可降至0.1μA以下。2.休眠模式当单片机进入掉电模式时,外部晶振停振、CPU、定时器、串行口全部停止工作,只有外部中断继续工作。使单片机进入休眠模式的指令将成为休眠前单片机执行的最后一条指令,进入休眠模式后,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据都将保持原值。可由外部中断低电平触发或由下降沿触发中断或者硬件复位模式换醒单片机,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。下面的例子演示单片机进入空闲和休眠模式,并且演示出从空闲和休眠模式中唤醒的过程。【例】:在TX-1C实验板上完成如下描述,开启两个外部中断,设置低电平触发中断,用定时器计数并且显示在数码管的前两位,当计到5时,使单片机进入空闲(休眠)模式,同时关闭定时器,当单片机响应外部中断后,从空闲(休眠)模式返回,同时开启定时器。新建文件part3.4.1.c,程序代码如下:#include<reg52.h>//52系列单片机头文件#defineucharunsignedchar#defineuintunsignedintsbitdula=P2^6;//申明U1锁存器的锁存端sbitwela=P2^7;//申明U2锁存器的锁存端ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};ucharnum;voiddelayms(uint);voiddisplay(ucharshi,ucharge)//显示子函数{dula=1;P0=table[shi];//送十位段选数据dula=0;P0=0xff;//送位选数据前关闭所有显示,防止打开位选锁存时wela=1;//原来段选数据通过位选锁存器造成混乱P0=0xfe;//送位选数据wela=0;delayms(5);//延时dula=1;P0=table[ge];//送个位段选数据dula=0;P0=0xff;wela=1;P0=0xfd;wela=0;delayms(5);}voiddelayms(uintxms){uinti,j;for(i=xms;i>0;i--)//i=xms即延时约xms毫秒for(j=110;j>0;j--);}voidmain(){uchara,b,num1;TMOD=0x01;//设置定时器0为工作方式1(00000001)TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;EX0=1;EX1=1;TR0=1;while(1){if(num>=20){num=0;num1++;if(num1==6){ET0=0;PCON=0x02;(或PCON=0x01;)}a=num1/10;b=num1%10;}display(a,b);}}voidtimer0()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;num++;}voidex_int0()interrupt0{PCON=0;ET0=1;}voidex_int1()interrupt2{PCON=0;ET0=1;}分析:(1)EA=1;开总中断ET0=1;开定时器0中断EX0=1;开外部中断0EX1=1;开外部中断1TR0=1;启动定时器0(2)主程序中有“ET0=0;”下句是“PCON=0x02;”意思是在进入休眠模式之前要先把定时器关闭,这样方可一直等待外部中断的产生,如果不关闭定时器,定时器的中断同样也会唤醒单片机,使其退出休眠模式,这样我们便看不出进入休眠模式和返回的过程。(3)voidex_int0()interrupt0{PCON=0;ET0=1;}这是外部中断0服务程序,当进入外部中断服务程序后,首先将PCON中原先设定的休眠控制位清除(如果不清除,程序也可以正常运行,大家最好亲自做实验验证),接下来再重新开启定时器0。(4)下载程序后,实验现象如下:数码管从“00”开始递增显示,到“05”后,再过一秒后,数码管变成只显示一个“5”,单片机进入休眠或空闲模式,用导线一端连接地,另一端接触P3.2或P3.3,数码管重新从“06”开始显示,递增下去。整个过程演示了单片机从正常工作模式进入休眠模式或空闲模式,然后再从休眠模式或空闲模式返回到正常工作模式。(5)测试过程大家可将数字万用表调节到电流档,然后串接入电路中,观察单片机在正常工作模式、休眠模式、空闲模式下流过系统的总电流变化情况,经测试可发现结果如下:正常工作电流>空闲模式电流>休眠模式电流。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
正常模式绿灯闪烁,其它指示灯灭;...外部中断INT0/INT1或者系统复位把单片机从空闲模式中唤醒,外部中断INT1使单片机直接进入掉电模式,空闲模式可以由中断或者系统复位退出,而掉电模式只能由系统复位退出。
单片机通常的工作条件最重要...很明显就是单片机在空闲的时候进入掉电或者空闲模式,但是要返回正常工作又怎么办呢?就有个名词叫唤醒,在此以STC单片机为例,提供:单片机的掉电休眠模式和唤醒测试程序供初学者参考。
注意:电源管理寄存器PCON,它的两位IDL和PD分别用来设定是否单片机进入空闲模式和掉电模式因此,单片机进入掉电模式只需要PCON= 0x01;进入空闲模式只需要PCON = 0x02;空闲模式:单片机进入空闲模式的时候,除了cpu...
为了降低系统的功耗,我们经常应用到单片机空闲和掉电模式
特别对于电池供电系统来说,功耗是首要考虑的问题.我们知道单片机内部有一个电源管理寄存器PCON,这个寄存器的最低两位,IDL和PD这两位分别用来设定是否使单片机进入空闲模式和掉电模式。(学习经验)
单片机技术
PD:掉电方式控制位,置1后单片机,时钟信号停止,单片机停止工作,掉电方式 GF0:通用标志位 GF1:通用标志位 3,独立按键(非自锁按键)实用电路图: 注意:按键电路在实际应用最好接上拉电阻,其阻值4.
文件包括: 空闲模式.c 空闲模式.hex
单片机综合实践
多种功耗控制模式:掉电模式, 空闲模式,慢频模式,副频模式,RTC 模式,watch 模式和 monitor 模式 ━ 所有的中断能唤醒空闲(IDLE)模式 ━ 11 中源能唤醒掉电模式 ━ 慢频模式和副频模式支持低速 MCU 运转 ━ RTC ...
STC15系列单片机可以运行3种省电模式以降低功耗,它们分别是:低速模式,空闲模式和掉电模式。正常工作模式下,STC15系列单片机的典型功耗是2.7mA ~7mA,而掉电模式下的典型功耗是,空闲模式下的典型功耗是1.8mA。...
一个电子筛子,用LED灯来显示不同的点数,使用at89c2051单片机
7.1.3 空闲模式 7.1.4 待机模式 7.2 ■单片机内部结构 7.2.1 从I/O口到内部结构 7.2.2 数据在内部交换 7.2.3 算术逻辑单元(ALU) Vision中观察寄存器7.2.4 在 7.3 ■单片机的程序存储器 7.3.1 整体结构 7.3.2 ...
主要性能参数: 与MCS—51产品指令系统完全兼容 ... 低功耗空闲和掉电模式 中断可从空闲摸唤醒系统 看门狗(WDT)及双数据指针 掉电标识和快速编程特性 灵活的在系统编程(ISP-字节或页写模式)
PTM,6 个 16 位定时器/计数器,3 组 16 位带死区控制互补 PWM,1 个 8 位 PWM,2 个UART,1个SPI,1个 IIC,16个外部中断,16+2路 12位ADC,四种系统工作模式(正常、低频、掉电和空闲)和19个中断源。
(10)低功耗模式有空闲模式和掉电模式,且具有掉电模式下的中断恢复模式; (11)3个程序加密锁定位。 与AT89C51相比,AT89S51有更突出的优点: (1)增加在线可编程功能ISP(In System Program),字节和页编程,...
超低功耗: 1 、掉电模式:典型功耗μ A 2 、空闲模式:典型功耗2mA 3 、正常工作模式:典型功耗4mA-7mA 4 、掉电模式可由外部中断唤醒,适用于电池 供电系统,如水表、气表、便携设备等. 在系统可编程,无需编程器,可远程...
(10)低功耗模式有空闲模式和掉电模式,且具有掉电模式下的中断恢复模式; (11)3个程序加密锁定位。 与AT89C51相比,AT89S51有更突出的优点: (1)增加在线可编程功能ISP(In System Program),字节和页编程,...