找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1652|回復: 3
打印 上一主題 下一主題
收起左側(cè)

我這個程序為什么不能把單片機從掉電狀態(tài)模式中喚醒呀

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:881715 發(fā)表于 2021-11-14 13:36 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
       各位大神大家好,今天從網(wǎng)上找了一個例子,功能是開機小燈流水閃爍,按下P3.3,單片機進入掉電模式,只有一個小燈常亮,松開P3.3,按下P3.2進入中斷函數(shù),單片機被喚醒,P1口小燈全亮一下,然后繼續(xù)閃爍。     可是功能卻無法實現(xiàn),單片機無法被喚醒請大神指點一下,將感激不盡!
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. sbit key=P3^3; //按鍵按下進入掉電模式

  5. void delay() //延時程序函數(shù)
  6. { unsigned int i;
  7.   for(i=0;i<30000;i++);
  8. }
  9. void delay20ms() //防抖延時程序函數(shù)
  10. {  uchar i,j;
  11. for(i=0;i<100;i++        )
  12.    for(j=0;j<60;j++);
  13. }
  14. void init()        //中斷0初始化函數(shù)
  15. {EA=1;
  16. EX0=1;
  17. IT0=1;
  18. }
  19. /*按鍵檢測函數(shù),按鍵按下單片機進入掉電模式*/
  20. void keytest()
  21. { if(key==0)
  22.   {delay20ms();
  23.    if(key==0)
  24.    {PCON=PCON|0X02;
  25.    }
  26.    while(!key);
  27.   }
  28. }
  29. void main()
  30. { uchar aa=0XFE;
  31.   init();
  32.   while(1)
  33.   {
  34.    P1=aa;
  35.    aa=_crol_(aa,1);
  36.    delay();
  37.    keytest();

  38.   }
  39. }
  40. /*中斷函數(shù),退出掉電模式*/
  41. void int0() interrupt 0        using 1
  42. {

  43. PCON=0X00;
  44. delay();
  45.   delay();
  46.   delay();
  47. P1=0X00;
  48. delay();
  49.   delay();
  50.   delay();
  51.   
  52.   
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:624769 發(fā)表于 2021-11-14 16:47 | 只看該作者
幾個問題,
1) 中斷不全, 沒有}  結(jié)束, 理論上編譯都通不過。
2) 你用的 reg51.h 所以無法判斷你的單片機型號,只能當你是AT89C51 或 STC89C51,那是不支持掉電喚醒的。所以,根據(jù)你的芯片手冊,確認你的單片機究竟能否掉電喚醒,以及正確的掉電和喚醒方式。
3)中斷函數(shù)中P1 = 0x00; 假定,這是全亮的話,之后,你的程序里面,你再怎么左移右移,燈都是全亮狀態(tài),不會再發(fā)生任何變化。
回復

使用道具 舉報

板凳
ID:624769 發(fā)表于 2021-11-15 13:37 | 只看該作者
188610329 發(fā)表于 2021-11-14 16:47
幾個問題,
1) 中斷不全, 沒有}  結(jié)束, 理論上編譯都通不過。
2) 你用的 reg51.h 所以無法判斷你的單 ...

這幾天正好在重溫以前寫的代碼,這里我自我糾正一下, STC89C51不是不能斷電喚醒,而是斷電喚醒必須要用:
IT0 = 0;

你如果是89C51的話, IT0 = 1; 是永遠喚不醒的。
回復

使用道具 舉報

地板
ID:881715 發(fā)表于 2021-11-16 13:56 | 只看該作者
多謝大神的指點萬分感激!我在網(wǎng)上也終于找到了AT89C51的資料,原來是搜素關(guān)鍵詞搞得不對,原先搜AT89C51中文手冊我找不到資料,搜at89C51中文資料就找到了,現(xiàn)在我最終目的是實現(xiàn)了,單片機能設定掉電模式和喚醒單片機了 ,在此感激大神的指點。。。。!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表