久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1116|回復: 1
打印 上一主題 下一主題
收起左側

MCU仿真可以進入休眠,燒錄到板子上反倒不可以了,這是為什么?

[復制鏈接]
跳轉到指定樓層
樓主
ID:582403 發表于 2023-6-27 16:22 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
昨天搞了個流水燈,跑仿真的時候,進入休眠是正常的,每次都會進去,只有按鍵中斷喚醒?蔁桨遄由系臅r候,休眠狀態下,靜態電流居然400ua,很明顯是沒有進去,找了很久都找不到問題,有沒有大佬幫幫我啊!!跪了orz

單片機MCU源程序如下:
  1. 這是按鍵的
  2. void Key_Scan(void)
  3. {
  4.            if(S1 == 0)
  5.            {
  6.                       if(Key_Flag)
  7.                       {
  8.                                  Old_flag = S1;
  9.                                  gKeyCnt++;
  10.                           if(gKeyCnt > 0&&gKeyCnt < 20)
  11.                    {
  12.                        if(gKeyValue < 10)
  13.                                      {
  14.                                                 gKeyValue++;
  15.                                                        Key_Flag = 0;
  16.                                      }
  17.                                             else
  18.                                             {
  19.                                                        gKeyValue = 1;
  20.                                                        Key_Flag = 0;
  21.                                             }
  22.       //--------處理鍵值-------------------------
  23.                               switch(gKeyValue)
  24.                        {
  25.                                                 case 0:                  
  26.                                                     break;
  27.                                                 case 1:        
  28.                                                 {
  29.                                                     Red = 0;
  30.                                                     break;
  31.                                                 }
  32.                                                 case 2:
  33.                                                 {
  34.                                                            Green = 0;
  35.                                                     break;
  36.                                                 }
  37.                                   case 3:
  38.                                                 {
  39.                                                            Red = 1;
  40.                                                     break;
  41.                                                 }
  42.                                                 case 4:
  43.                                                 {
  44.                                                            Blue = 0;
  45.                                                     break;
  46.                                                 }
  47.                                                 case 5:
  48.                                                 {
  49.                                                            Green = 1;
  50.                                                     break;
  51.                                                 }
  52.                                                 case 6:
  53.                                                 {
  54.                                                            Red = 0;
  55.                                                            break;
  56.                                                 }                                       
  57.                                   case 7:
  58.                                                 {
  59.                                                            Green = 0;
  60.                                              break;  
  61.                                                 }
  62.                                   case 8:
  63.                                                 {
  64.                                                            Auto_Flag = 1;
  65.                                                            Green = 1;
  66.                                                            Blue = 1;
  67.                                              break;  
  68.                                                 }  
  69.                                   case 9:
  70.                                                 {
  71.                                                            Auto_Flag = 0;
  72.                                                            Breath_Flag = 1;
  73.                                              break;  
  74.                                                 }
  75.                                   case 10:
  76.                                                 {
  77.                                                            Breath_Flag = 0;
  78.                                                            Sleep_Flag = 0;
  79.                                              break;  
  80.                                                 }         
  81.                        }
  82.                                  }
  83.                                  else
  84.                                  {
  85.                                             gKeyCnt = 0;
  86.                                  }
  87.                       }
  88.            Delay_Off();
  89.            }
  90.            else
  91.            {
  92.                       gKeyCnt = 0;
  93.                       Key_Flag = 1;
  94.            }
  95. }
  96. 這是主函數:
  97.           while (1)
  98.            {  
  99.                       Key_Scan();
  100.                       if(Auto_Flag)
  101.                       {
  102.                                  Auto_Color();
  103.                       }
  104.                       else if(Breath_Flag)
  105.                       {
  106.                                  Breath();
  107.                       }
  108. //-----------------睡眠------------------
  109.                           if(Sleep_Flag == 0)
  110.                           {
  111.                                      Sleep_Flag=1;
  112.                                      GIE = 0;
  113.                 P1KBCR = 0x20;             //使能鍵盤中斷位
  114.                                             KBIE = 1;
  115.                                      Nop();
  116.                                      Nop();
  117.                                             Stop(); //睡眠
  118.                                      Nop();
  119.                                      Nop();
  120.                                             P1KBCR = 0x00;
  121.                                      KBIE = 0;
  122.                                      GIE = 1;                     
  123.                           }

  124.            }
  125. 中斷里什么都沒加,只為了喚醒,其他都是燈的閃爍功能了。
復制代碼


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

使用道具 舉報

沙發
ID:213173 發表于 2023-6-28 07:34 | 只看該作者
單片機休眠,自身耗電是uA級的,但不代表外圍電路不耗電。這取決于你的電路設計和編程。單片機休眠之前把當前狀態保存,關閉外設,進入休眠。喚醒后恢復之前保存的狀態。以下是一鍵開關機的掉電模式函數,供參考。
  1. void Shutdown()//掉電模式函數
  2. {
  3.         if(allow)
  4.         {
  5.                 P1=0xff;                //關閉LED顯示
  6.                 //關閉所有在用硬件,減小能耗
  7.                 EX0 = 1;                //打開中斷
  8.                 PCON = 0x02;//MCU進入掉電模式
  9.                 _nop_();    //掉電模式被喚醒后,首先執行此語句,然后再進入中斷服務程序
  10.                 _nop_();    //中斷服務程序執行完再接著此句繼續執行
  11.                 EX0 = 0;                //關閉中斷
  12.                 while(!key);//等待按鍵松手,防止按鍵掃描程序誤讀
  13.                 //打開所有在用硬件,恢復正常運行
  14.                 P1=~Temp;                //恢復LED顯示
  15.                 allow=0;                //清0
  16.         }
  17. }
復制代碼
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品毛片 | 国产精品一区二区视频 | 一区二区三区视频在线 | 日韩最新网址 | 伊人在线 | 中文字幕欧美一区 | 一区二区视频在线 | 国产中文区二幕区2012 | 亚洲成人精品一区二区 | 91精品国产91久久久久久最新 | 欧美精品video | 天天久久| 一区欧美 | 亚洲网站在线观看 | 午夜精品久久久久久久99黑人 | 欧美h版 | 欧美日韩a| 真人女人一级毛片免费播放 | 国产欧美精品区一区二区三区 | 久久国产精品久久国产精品 | 久久成人免费观看 | 国产精品久久久久久久久图文区 | 欧美精品在线一区二区三区 | 国产激情一区二区三区 | 免费精品 | 日韩毛片在线免费观看 | 久久lu| 91免费在线 | 亚洲伦理自拍 | 91电影在线播放 | 91中文在线观看 | 一级免费在线视频 | 国产精品成人在线 | 精品自拍视频 | 男女羞羞视频免费看 | 欧美视频三区 | 九九久久久 | 日韩av免费在线电影 | 日本字幕在线观看 | 少妇一级淫片免费放播放 | 二区成人|