资源描述:
《单片机电源管理寄存器pcon的用法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、单片机电源管理寄存器PCON的用法2010-07-0108:35:26
2、分类:单片机
3、标签:
4、字号大中小订阅我们知道单片机内部有一个电源管理寄存器PCON,这个寄存器的最低两位,IDL和PD这两位分别用来设定是否使单片机进入空闲模式和掉电模式。1.空闲模式当单片机进入空闲模式时,除CPU处于休眠状态外,其余硬件全部处于活动状态,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据在空闲模式期间都将保持原值。但假若定时器正在运行,那么计数器寄存器中的值还将会增加。单片机在空闲模式下可由任一个中断或硬件复位唤醒,需要注
5、意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。让单片机进入空闲模式的目的通常是为了降低系统的功耗,举个很简单的例子,大家都用过数字万用表,在正常使用的时候表内部的单片机处于正常工作模式,当不用时,又忘记了关掉万用表的电源,大多数表在等待数分钟后,若没有人为操作,它便会自动将液晶显示关闭,以降低系统功耗,通常类似这种功能的实现就是使用了单片机的空闲模式或是掉电模式。以STC89系列单片机为例,当单片机正常工作时的功耗通常为4mA~7mA,进入空闲模式时其功耗降至
6、2mA,当进入掉电模式时功耗可降至0.1μA以下。2.休眠模式当单片机进入掉电模式时,外部晶振停振、CPU、定时器、串行口全部停止工作,只有外部中断继续工作。使单片机进入休眠模式的指令将成为休眠前单片机执行的最后一条指令,进入休眠模式后,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据都将保持原值。可由外部中断低电平触发或由下降沿触发中断或者硬件复位模式换醒单片机,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。【例】:开启两个外部中断,设置低电平触
7、发中断,用定时器计数并且显示在数码管的前两位,当计到5时,使单片机进入空闲(休眠)模式,同时关闭定时器,当单片机响应外部中断后,从空闲(休眠)模式返回,同时开启定时器。程序代码如下:#include//52系列单片机头文件#defineucharunsignedchar#defineuintunsignedintsbitdula=P2^6;//申明U1锁存器的锁存端sbitwela=P2^7;//申明U2锁存器的锁存端ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x6
8、6,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;
9、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
10、;ET0=1;EX0=1;EX1=1;P0=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()
11、interrupt2{PCON=0;ET0=1;}分析:(1)EA=1;开总中断ET0=1;开定时器0中断EX0=1;开外部中断0EX1=1;开外部中断1P0=1;启动定时器0(2)主程序中有“ET0=0;”下句是“PCON=0x02;”意思是在进入休眠模式之前要先把定时器关闭,这样方可一直等待外部中断的产生,如果不关闭定时器,定时器的中断同样