掉电模式最小只能以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,还有那里的问题没有看到?
大概看了下,一旦唤醒就不再进入掉电模式了是吧?开启外中断前确定不用清标志?
建议在while(1)里干点啥,让人知道它有没有被唤醒。 看看你ISP下载的配置? 1uA带测试视频供参考:
https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=18635&pid=172110
STC8H8K64U-TSSOP20, 内部还是 64-PIN
省电模式,I/O口如何设置才省电,进入主时钟停振/省电模式前 - 电源/复位/省电模式/外部晶振/内部时钟/对外时钟输出/PLL-144MHz时钟 国芯人工智能技术交流网站 - AI32位8051交流社区
0.7uA, 省电模式,电流实际测试视频,8H8K64U - 电源/复位/省电模式/外部晶振/内部时钟/对外时钟输出/PLL-144MHz时钟 国芯人工智能技术交流网站 - AI32位8051交流社区
找到问题,感谢官方陈工的支持,就是库版本的问题 rooky123 发表于 2026-4-8 08:20
找到问题,感谢官方陈工的支持,就是库版本的问题
库版本的问题?具体过程发一发呗
页:
[1]