关于PIC16F630的待机功耗问题求助

2020-02-09 09:30发布

现在有一个电池供电产品,要求待机功耗很低。使用内部震荡和内部mclr
在休眠模式时,我把所有外设都关了,为什么还有大约70uA的电流,我把单片机去掉后,就只有5uA左右的电流,说明应该是单片机产生的功耗而不是外部硬件产生的,程序如下:
//系统上电初始化
void  Sys_Init()
{
  NOP();
  NOP();
  //设置IO口输入输出
  CLRWDT();
  PORTC  = 0x00;
  PORTA  = 0x00;
  TRISA  = 0x0e;//B'00000110';//设置RA1,RA2输入,其余输出
  TRISC  = 0x00;//B'00000000';//RC口输出
  PORTC  = 0x00;
  PORTA &= 0x20;
  INTCON = 0x00;               
  PIR1   = 0x00;
  EECON1 = 0x00;
  TMR1H  = 0xff;
  TMR1L  = 0x5f;       //设置定时器1初始值定时600us
  T1CON  = 0x21;        //B'00100001';//打开定时器1,分频比1:4
  TMR1IE = 1;  
  CMIE   = 0;   
  VRCON  = 0x00;
  CMCON  &= 0xf8;
  CMCON  |= 0x07;
  PEIE   = 1;          //使能比较器中断检测电压
  CMIF   = 0;
  IOCA   = 0x00;       //禁止电平变化中断
  WPUA   = 0x00;       //
  OPTION = 0x8d;
  GIE    = 1;          //打开全局中断允许
}

//进入休眠模式
  GIE = 0;
  //CMCON  = 0x07;
  //VRCON = 0x00;
  //CMIE = 0;
  RA3 = 1;
  OPTION = 0x8e;
  SLEEP();
  NOP();
  NOP();
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
lingaogang
2020-02-09 18:39
回复【1楼】lixin91985
-----------------------------------------------------------------------

我把输入口的内部上拉都关掉了的,比较器也关闭了,不知道这个功耗从哪里来的,在睡眠时还有这么大

一周热门 更多>