用擎天柱测试可能有一堆电阻在漏电流,换最小系统板就干净了,1uA:
- #include "Ai8051U.h"
- #include "intrins.h"
- void Delay100ms(void) //@24.000MHz
- {
- unsigned char data i, j, k;
-
- _nop_();
- _nop_();
- i = 13;
- j = 45;
- k = 214;
- do
- {
- do
- {
- while (--k);
- } while (--j);
- } while (--i);
- }
-
- void main()
- {
- P_SW2=0x80;
- P0M0 = 0x00; P0M1 = 0xff;P0IE = 0x00;
- P1M0 = 0x00; P1M1 = 0xff;P1IE = 0x00;
- P2M0 = 0x00; P2M1 = 0xff;P2IE = 0x00;
- P3M0 = 0x00; P3M1 = 0xff;P3IE = 0x00;
- P4M0 = 0x00; P4M1 = 0xff;P4IE = 0x00;
- P5M0 = 0x00; P5M1 = 0xff;P5IE = 0x00;
- P6M0 = 0x00; P6M1 = 0xff;P6IE = 0x00;
- P7M0 = 0x00; P7M1 = 0xff;P7IE = 0x00;
-
- P3M0 = 0x00; P3M1 = 0xf3; P3IE = 0x0c; //P32 P33准双向,打开数字输入
- P2M0 = 0x00; P2M1 = 0xfe; //P20准双向
-
- EX0 = 1; //使能INT0中断,用于唤醒MCU
- EA = 1;
-
-
- while (1){
- if(!P33){
- Delay100ms();
- if(!P33){
- P20 = 1;
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- // PCON = IDL; //MCU进入IDLE模式
- PCON = PD; //MCU进入掉电模式
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- P20 = 0;
- }
- }
-
- };
- }
复制代码
|