各位大神大家好,今天從網上找了一個例子,功能是開機小燈流水閃爍,按下P3.3,單片機進入掉電模式,只有一個小燈常亮,松開P3.3,按下P3.2進入中斷函數,單片機被喚醒,P1口小燈全亮一下,然后繼續閃爍。 可是功能卻無法實現,單片機無法被喚醒請大神指點一下,將感激不盡!- #include<reg51.h>
- #include<intrins.h>
- #define uchar unsigned char
- sbit key=P3^3; //按鍵按下進入掉電模式
-
- void delay() //延時程序函數
- { unsigned int i;
- for(i=0;i<30000;i++);
- }
- void delay20ms() //防抖延時程序函數
- { uchar i,j;
- for(i=0;i<100;i++ )
- for(j=0;j<60;j++);
- }
- void init() //中斷0初始化函數
- {EA=1;
- EX0=1;
- IT0=1;
- }
- /*按鍵檢測函數,按鍵按下單片機進入掉電模式*/
- void keytest()
- { if(key==0)
- {delay20ms();
- if(key==0)
- {PCON=PCON|0X02;
- }
- while(!key);
- }
- }
- void main()
- { uchar aa=0XFE;
- init();
- while(1)
- {
- P1=aa;
- aa=_crol_(aa,1);
- delay();
- keytest();
- }
- }
- /*中斷函數,退出掉電模式*/
- void int0() interrupt 0 using 1
- {
-
- PCON=0X00;
- delay();
- delay();
- delay();
- P1=0X00;
- delay();
- delay();
- delay();
-
-
復制代碼
|