关于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();
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
lixin91985
1楼-- · 2020-02-09 13:51
哈哈 。单片机的功耗。不仅仅只有内核运行的功耗。还有I0的漏电流,甚至包括IO内部的上拉。。
lingaogang
2楼-- · 2020-02-09 18:39
回复【1楼】lixin91985
-----------------------------------------------------------------------

我把输入口的内部上拉都关掉了的,比较器也关闭了,不知道这个功耗从哪里来的,在睡眠时还有这么大
millwood0
3楼-- · 2020-02-09 21:46
see if you can turn the ports into analog.
lingaogang
4楼-- · 2020-02-10 03:37
 精彩回答 2  元偷偷看……
zbcfscc
5楼-- · 2020-02-10 04:11
回复【4楼】lingaogang  
回复【3楼】millwood0
-----------------------------------------------------------------------
这是什么意思哦,
-----------------------------------------------------------------------

应该是 可能的话把端口改成模拟口
jiangxingyuan
6楼-- · 2020-02-10 08:26
PORTC  = 0x00;
  PORTA  = 0x00;
  TRISA  = 0x0e;//B'00000110';//设置RA1,RA2输入,其余输出
  TRISC  = 0x00;//B'00000000';//RC口输出
  PORTC  = 0x00;
  PORTA &= 0x20;

楼主,你设不IO方向位不用换页的吗?

一周热门 更多>