rooky123 发表于 2026-4-7 13:41:46

掉电模式最小只能以600ua








#include "reg51.h"
#include "intrins.h"

#define IDL             0x01                  //PCON.0
#define PD            0x02                  //PCON.1
sbit    P34         =   P3^4;
sbit    P35         =   P3^5;

sfr   P0M1      =   0x93;
sfr   P0M0      =   0x94;
sfr   P1M1      =   0x91;
sfr   P1M0      =   0x92;
sfr   P2M1      =   0x95;
sfr   P2M0      =   0x96;
sfr   P3M1      =   0xb1;
sfr   P3M0      =   0xb2;
sfr   P4M1      =   0xb3;
sfr   P4M0      =   0xb4;
sfr   P5M1      =   0xc9;
sfr   P5M0      =   0xca;

void INT0_Isr() interrupt 0
{
    P34 = ~P34;                                 //测试端口
}

void main()
{
    P0M0 = 0x00;
    P0M1 = 0x00;
    P1M0 = 0x00;
    P1M1 = 0x00;
    P2M0 = 0x00;
    P2M1 = 0x00;
    P3M0 = 0x00;
    P3M1 = 0x00;
    P4M0 = 0x00;
    P4M1 = 0x00;
    P5M0 = 0x00;
    P5M1 = 0x00;

    EX0 = 1;                                    //使能INT0中断,用于唤醒MCU
    EA = 1;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
   // PCON = IDL;                                 //MCU进入IDLE模式
    PCON = PD;                                  //MCU进入掉电模式
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    P35 = 0;

    while (1);
}







板上只有3个电容,2个100nf,1个10uf,单片机是STC8H8K64U,其它全是空的,现在是进入了掉电模式,最小也只能到600ua,还有那里的问题没有看到?





lcwswust 发表于 2026-4-7 14:03:03

大概看了下,一旦唤醒就不再进入掉电模式了是吧?开启外中断前确定不用清标志?
建议在while(1)里干点啥,让人知道它有没有被唤醒。

_奶咖君_ 发表于 2026-4-7 14:39:51

看看你ISP下载的配置?

ercircle 发表于 2026-4-7 14:47:00

1uA带测试视频供参考:
https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=18635&pid=172110

神农鼎 发表于 2026-4-7 16:23:08

STC8H8K64U-TSSOP20, 内部还是 64-PIN




省电模式,I/O口如何设置才省电,进入主时钟停振/省电模式前 - 电源/复位/省电模式/外部晶振/内部时钟/对外时钟输出/PLL-144MHz时钟 国芯人工智能技术交流网站 - AI32位8051交流社区

0.7uA, 省电模式,电流实际测试视频,8H8K64U - 电源/复位/省电模式/外部晶振/内部时钟/对外时钟输出/PLL-144MHz时钟 国芯人工智能技术交流网站 - AI32位8051交流社区

rooky123 发表于 2026-4-8 08:20:10

找到问题,感谢官方陈工的支持,就是库版本的问题

_奶咖君_ 发表于 2026-4-8 09:08:06

rooky123 发表于 2026-4-8 08:20
找到问题,感谢官方陈工的支持,就是库版本的问题

库版本的问题?具体过程发一发呗
页: [1]
查看完整版本: 掉电模式最小只能以600ua