我用STC8H8K64U最小系统电路,3.3V供电,运行如下程序,单片机电流超过了100uA:
- #include "stc8h.h"
- #include "intrins.h"
-
-
- void main()
- {
-
- P0IE=0x00;
- P1IE=0x00;
- P2IE=0x00;
- P3IE=0x00;
- P4IE=0x00;
- P5IE=0x00;
- P6IE=0x00;
- P7IE=0x00;
-
- // WKTCL = 0xfe;
- // WKTCH = 0x7f;
- // WKTCH |= 0xff;
-
- while (1)
- {
- _nop_();
- _nop_();
- PCON = 0x02; //MCU进入掉电模式
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
-
- }
- }
复制代码
而换成下面的代码,电流就较正常了(2.1uA):
- #include "stc8h.h"
- #include "intrins.h"
-
-
- 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;
-
-
- // WKTCL = 0xfe;
- // WKTCH = 0x7f;
- // WKTCH |= 0xff;
-
- while (1)
- {
- _nop_();
- _nop_();
- PCON = 0x02; //MCU进入掉电模式
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
-
- }
- }
复制代码
这是为什么?哪位大佬能帮我解释下
|