51单片机怎么休眠?

如题所述

第1个回答  2022-11-16
呵呵,最近刚好研究了一下这个问题 \x0d\x0a\x0d\x0a51单片机空闲和掉电模式应用\x0d\x0a 我们知道单片机内部有一个电源管理寄存器PCON,这个寄存器的最低两位,IDL和PD这两位分别用来设定是否使单片机进入空闲模式和掉电模式。\x0d\x0a 1. 空闲模式 当单片机进入空闲模式时,除CPU处于休眠状态外,其余硬件全部处于活动状态,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据在空闲模式期间都将保持原值。但假若定时器正在运行,那么计数器寄存器中的值还将会增加。单片机在空闲模式下可由任一个中断或硬件复位唤醒,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。???? 让单片机进入空闲模式的目的通常是为了降低系统的功耗,举个很简单的例子,大家都用过数字万用表,在正常使用的时候表内部的单片机处于正常工作模式,当不用时,又忘记了关掉万用表的电源,大多数表在等待数分钟后,若没有人为操作,它便会自动将液晶显示关闭,以降低系统功耗,通常类似这种功能的实现就是使用了单片机的空闲模式或是掉电模式。以STC89系列单片机为例,当单片机正常工作时的功耗通常为4mA~7mA,进入空闲模式时其功耗降至2mA,当进入掉电模式时功耗可降至0.1μA以下。\x0d\x0a2.?? 休眠模式 当单片机进入掉电模式时,外部晶振停振、CPU、定时器、串行口全部停止工作,只有外部中断继续工作。使单片机进入休眠模式的指令将成为休眠前单片机执行的最后一条指令,进入休眠模式后,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据都将保持原值。可由外部中断低电平触发或由下降沿触发中断或者硬件复位模式换醒单片机,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。【例】:开启两个外部中断,设置低电平触发中断,用定时器计数并且显示在数码管的前两位,当计到5时,使单片机进入空闲(休眠)模式,同时关闭定时器,当单片机响应外部中断后,从空闲(休眠)模式返回,同时开启定时器。程序代码如下:\x0d\x0a/************************************************************************\x0d\x0a************************************************************************/\x0d\x0a #define IdleMode() PCON |=0x01 //01为空闲模式\x0d\x0a // 当单片机进入空闲模式时,除CPU处于休眠状态外,其余硬件全部处于活动状\x0d\x0a //芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据在空闲模式期间都将保持原值。\x0d\x0a //但假若定时器正在运行,那么计数器寄存器中的值还将会增加。\x0d\x0a //单片机在空闲模式下可由任一个中断或硬件复位唤醒,\x0d\x0a //需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。\x0d\x0a #define PowerOFF() PCON |=0x02 //02掉电模式\x0d\x0a //进入掉电模式,外部晶振停振、CPU、定时器、串行口全部停止工作,只有外部中断继续工作\x0d\x0a //使单片机进入休眠模式的指令将成为休眠前单片机执行的最后一条指令\x0d\x0a //进入休眠模式后,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据都将保持原值。\x0d\x0a //可通过外部中断唤醒,proteus仿真时无法唤醒\x0d\x0a #define EXT0_Init() EX0=1;EA=1 //打开外部中断,以方便唤醒。唤醒后程序从原来停止处继续运行\x0d\x0a //电源管理模板程序 \x0d\x0a main()\x0d\x0a{\x0d\x0a EXT0_Init();\x0d\x0a while(1) // \x0d\x0a {\x0d\x0a if(time.sec==0){time.sec++;PowerOFF();}\x0d\x0a //\x0d\x0a } \x0d\x0a}\x0d\x0a void EX0ISR(void) interrupt 0\x0d\x0a{\x0d\x0a //PCON&=0xfc; //清除之前的掉电(空闲)模式\x0d\x0a}

51单片机怎么休眠?
休眠模式 当单片机进入掉电模式时,外部晶振停振、CPU、定时器、串行口全部停止工作,只有外部中断继续工作。使单片机进入休眠模式的指令将成为休眠前单片机执行的最后一条指令,进入休眠模式后,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据都将保持原值。可由外部中断低电平触发或由下降沿触发中...

51单片机怎么进入休眠状态?进入休眠状态后怎么唤醒?(有按键唤醒的功能吗...
51单片机, 如 STC 系列单片机 ,可以进入休眠状态(或者掉电模式),待机方式(或者空闲模式),\\x0d\\x0a掉电模式:为 时钟停止的 所有工作状态 全部停止, 可以 有部分 IO 口触发唤醒(连接按键的功能) , 可以 通过 软件 设置 标志位 进入掉电模式\\x0d\\x0a空闲模式:为除了 CPU 不工作...

51单片机怎么进入休眠状态,进入休眠状态后怎么唤醒,(有按键唤醒的功能吗...
呵呵 51单片机只有在掉电时,才采用进入休眠状态,此时送给CPU和定时器等电路的时钟全部被冻结,只有硬件复位 才能唤醒单片机。没有其它办法。如果是采用待机方式,任何一个中断被触发,均能唤醒单片机。 51单片机省电方式一般都采用待机方式。呵呵 别忘了加分啊 ...

51单片机休眠及唤醒程序
你是不是想问51单片机休眠及唤醒程序是什么?是通过单片机掉电和触发中断方式唤醒的程序。根据51单片机说明书介绍,当单片机进入掉电模式时,外部晶振停振、CPU、定时器、串行口全部停止工作,只有外部中断继续工作,称为休眠程序。执行掉电模式后一条指令再执行中断程序称为唤醒模式。51单片机是对兼容英特尔...

51系列单片机的两种节电方式是什么,有何区别
就STC单片机的两种省电方式是空闲模式和掉电模式,掉电模式也叫休眠模式。空闲模式可由中断唤醒。而掉电模式下,时钟都停振,全部电路都停止工作,所以,更省电。只能由外部引脚引起的中断唤醒。详细的介绍见下图。

mcs-51单片机有哪几种低功耗工作模式?简述这几种低功耗工作模式特点及...
进入睡眠模式通常由软件控制触发条件,例如特定寄存器的配置等。退出睡眠模式可以通过外部中断或者定时器唤醒CPU来实现。总结来说,MCS-51单片机的这三种低功耗工作模式都是为了满足不同应用场景下的低功耗需求而设计的。开发者可以根据实际应用情况选择合适的低功耗工作模式来延长系统的电池寿命或满足特定的节能...

8051单片机三种状态输出的程序
输出就是5V;都置0,输出就是0V;一个1一个0,就输出2.5V。注意:调节时两口的输出状态不能互换,否则就不是2.5V了。而且这个电压是带不动负载。如果要带负载,就要用PMW了,1\/2占空比,就能输出1\/2电压。休眠,mov pcon,#2,就掉电休眠了,唤醒可以用复位或外部中断,具体自己查资料。

51单片机怎样利用中断来设置休眠并且唤醒,谁能提供简单的C程序_百度...
请参考STC单片机手册掉电模式、停机模式用外部中断唤醒的章节。资料在宏晶官网有。

51单片机在休眠状态下可由外部中断唤醒,我想让单片机在每天的固定时间被...
ds1302不带中断输出 你用DS1374或者其他带中断输出的实时实钟芯片就行了,把中断输出接到单片机的唤醒输入脚,设置好中断时间之后,单片机就不用再管实时实钟了,等待中断唤醒即可。别信用市电计数。。。220V交流电直接把单片机打坏了,而且计数器对上升沿的上升时间是有要求的,交流的是正弦波形不是方波...

51单片机如何实现掉电和低功耗运行方式?如何退出
掉电运行方式没有什么好说的,低功耗模式可以使用外部或者定时中断退出,也可以使用失电退出。

相似回答
大家正在搜