您的位置 首页 模拟

PIC16F72 休眠程序

因为要用到单片机休眠,所以现在就学了下休眠的使用,在PICC编译器C语言休眠比较简单,就SLEEP();语句.我用万用表测试了下,进入休眠后…

由于要用到单片机休眠,所以现在就学了下休眠的运用,在PICC编译器 C言语休眠比较简单,就SLEEP();句子. 我用万用表测试了下,进入休眠后电流在0.2-0.3uA,这儿我应用了中止唤醒功用

芯片数据手册有介绍休眠的相关内容

详细程序如下:

#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);
#define LED12 RB7

/*********************************************/
void delayms(unsigned int count)
{
uint i,j;
for(i=0;ifor(j=0;j<120;j++);
}
/*********************************************/

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;//大局中止使能

}
////////////中止子程序//////////////////
void interrupt ISR(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);
}

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/moni/326010.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部