各位大神大家好,今天从网上找了一个例子,功能是开机小灯流水闪烁,按下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();
-
-
复制代码
|