新聞中心

PIC16F72 休眠程序

作者: 時間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
因為要用到單片機(jī)休眠,所以現(xiàn)在就學(xué)了下休眠的使用,在PICC編譯器 C語言休眠比較簡單,就SLEEP();語句. 我用萬用表測試了下,進(jìn)入休眠后電流在0.2-0.3uA,這里我應(yīng)用了中斷喚醒功能

芯片數(shù)據(jù)手冊有介紹休眠的相關(guān)內(nèi)容

本文引用地址:http://butianyuan.cn/article/201611/316068.htm

具體程序如下:

#include
__CONFIG(11111110111001);//bit13-bit7=1;bit6 欠壓使能(1 enable);bit5=1;bit4 代碼保護(hù)(0保護(hù));
//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;//設(shè)置PORTA口為輸出
TRISB = 0B00000001;//設(shè)置RB0為輸入,作為按鍵口
TRISC = 0B00000000;//設(shè)置RC輸出

RBPU=0;//PORTB上拉使能
ADCON1=0B11111111;//設(shè)置為數(shù)字I/O

///////////中斷配置///////////////////////////////////////
INTE=1; //RB0(INT)中斷使能
INTF=0; //RB0(INT)中斷標(biāo)志位,1表示有中斷,必須軟件清零
GIE=1;//全局中斷使能

}
////////////中斷子程序//////////////////
void interrupt ISR(void)//進(jìn)入中斷計數(shù)值加1,并輸出顯示
{
INTF=0; //清除中斷標(biāo)志位
}

////////////////主程序//////////////////

void main (void)
{
uint win;
uchar i;
Init();//初始化程序

PORTC=0XFF;
PORTB=0XFF;
delayms(1000);
while(1)
{
LED12=1 ; //休眠前關(guān)閉LED
SLEEP(); //進(jìn)入休眠
LED12=0;//休眠喚醒后點亮LED,并且延時一會后又進(jìn)入休眠
delayms(1000);
}

}



關(guān)鍵詞: PIC16F72休眠程

評論


技術(shù)專區(qū)

關(guān)閉