PIC16F72 休眠程序
芯片数据手册有介绍休眠的相关内容
本文引用地址://m.amcfsurvey.com/article/201611/316068.htm![](http://m.amcfsurvey.com/editerupload/fetch/20161101/316068_1_0.jpg)
具体程序如下:
#include
__CONFIG(11111110111001);//bit13-bit7=1;bit6 欠压使能(1 enable);bit5=1;bit4 代码保护(0保护);
//bit3 上电延时(0 enable);bit2 看门狗(1 enable);bit1-bit0 时钟选择 (11 RC 10 HS 01 XT OO LP)
#define uchar unsigned char
#define uint unsigned int
void Init(void); //初始化子程序
void delayms(unsigned int count);
#defineLED12 RB7
/*********************************************/
void delayms(unsigned int count)
{
uint i,j;
for(i=0;i
}
/*********************************************/
void Init(void)
{
PORTA = 0B00000000;
PORTB = 0B00000000;
PORTC = 0B00000000;
TRISA = 0B00000000;//设置PORTA口为输出
TRISB = 0B00000001;//设置RB0为输入,作为按键口
TRISC = 0B00000000;//设置RC输出
RBPU=0;//PORTB上拉使能
ADCON1=0B11111111;//设置为数字I/O
///////////中断配置///////////////////////////////////////
INTE=1; //RB0(INT)中断使能
INTF=0; //RB0(INT)中断标志位,1表示有中断,必须软件清零
GIE=1;//全局中断使能
}
////////////中断子程序//////////////////
voidinterruptISR(void)//进入中断计数值加1,并输出显示
{
INTF=0; //清除中断标志位
}
////////////////主程序//////////////////
void main (void)
{
uint win;
uchar i;
Init();//初始化程序
PORTC=0XFF;
PORTB=0XFF;
delayms(1000);
while(1)
{
LED12=1 ; //休眠前关闭LED
SLEEP(); //进入休眠
LED12=0;//休眠唤醒后点亮LED,并且延时一会后又进入休眠
delayms(1000);
}
}
评论