掉电模式(外部中断0唤醒)
一.电源管理控制寄存器(PCON 0x87)
该寄存器不可位寻址 ,上电默认为00110000B
PCON寄存器如下:
如要是进入掉电模式,使PD=1;
直接进入代码分析:
(1)外部中断代码分析
#include <stc15.h>
#include <zhongduan.h>
void zhongduanint()
{
IE0=0;
IT0=1;
EX0=1;
}
void timer() interrupt 0
{
;
}
中断.h代码分析
#ifndef __ZHONGDUAN_H_
#define __ZHONGDUAN_H_
extern void zhongduanint();
#endif
延时函数:
#include <stc15.h>
#include <delay.h>
#define uint unsigned int
#define uchar unsigned char
void delayms(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void delays(uint x)
{
uint i,j;
for(i=x*1000;i>0;i--)
for(j=110;j>0;j--);
}
#ifndef __DELAY_H_
#define __DELAY_H_
#define uint unsigned int
#define uchar unsigned char
extern void delayms(uint x);
extern void delays(uint x);
#endif
主函数分析:
#include <stc15.h>
#include <zhongduan.h>
#include <delay.h>
sbit led1=P0^6;
sbit led2=P0^7;
void main()
{
P0M0&=0x3f;P0M1&=0x3f;
EA=1;
while(1)
{
delayms(1);
delays(1);
led1=0;
led2=1;
delays(5);
led2=0;
led1=1;
zhongduanint();
PCON=0x02;
delayms(10);
}
}