欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
我這個程序為什么不能把單片機從掉電狀態模式中喚醒呀
[打印本頁]
作者:
創造生活
時間:
2021-11-14 13:36
標題:
我這個程序為什么不能把單片機從掉電狀態模式中喚醒呀
各位大神大家好,今天從網上找了一個例子,功能是開機小燈流水閃爍,按下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();
復制代碼
作者:
188610329
時間:
2021-11-14 16:47
幾個問題,
1) 中斷不全, 沒有} 結束, 理論上編譯都通不過。
2) 你用的 reg51.h 所以無法判斷你的單片機型號,只能當你是AT89C51 或 STC89C51,那是不支持掉電喚醒的。所以,根據你的芯片手冊,確認你的單片機究竟能否掉電喚醒,以及正確的掉電和喚醒方式。
3)中斷函數中P1 = 0x00; 假定,這是全亮的話,之后,你的程序里面,你再怎么左移右移,燈都是全亮狀態,不會再發生任何變化。
作者:
188610329
時間:
2021-11-15 13:37
188610329 發表于 2021-11-14 16:47
幾個問題,
1) 中斷不全, 沒有} 結束, 理論上編譯都通不過。
2) 你用的 reg51.h 所以無法判斷你的單 ...
這幾天正好在重溫以前寫的代碼,這里我自我糾正一下, STC89C51不是不能斷電喚醒,而是斷電喚醒必須要用:
IT0 = 0;
你如果是89C51的話, IT0 = 1; 是永遠喚不醒的。
作者:
創造生活
時間:
2021-11-16 13:56
多謝大神的指點萬分感激!我在網上也終于找到了AT89C51的資料,原來是搜素關鍵詞搞得不對,原先搜AT89C51中文手冊我找不到資料,搜at89C51中文資料就找到了,現在我最終目的是實現了,單片機能設定掉電模式和喚醒單片機了 ,在此感激大神的指點!!!!!!
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1