欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2185|回復: 0
收起左側

九齊單片機睡眠模式和按鍵喚醒程序

[復制鏈接]
ID:1125252 發表于 2024-6-19 19:49 | 顯示全部樓層 |閱讀模式
#define K1 PA1
#define LED1 PA2
unsigned char K1_num=0;
void main(void)
{
     DISI();
     AWUCON = 0X02; //開啟IO喚醒功能
     TMR0=0;              //初始定時器寄存器   
     T0MD=0X01;      //時鐘分頻
      INTE=0x03;      //使能定時器0中斷和IO口狀態變化中斷
      PCON=0X01;    //開啟TIMER0
      ENI();            //開啟總中斷
      while(1)
     {
         CLRWDT();
         if(K1_num==0)
         {
              LED1=1;                                    // 睡眠模式不亮
              WDTEN=0;                                // 關閉看門狗   
              AWUCON = 0XA0;                     //1010 0000
              T0MD   = 0X01;                       
             PCON1  = 0X80;                          // 關閉定時器0中斷
             INTE   = 0X02;                          // 打開io變化中斷            while( K1 && IO_CHARGE_IN==0)
             {            
                  SLEEP();                           // 進入睡眠狀態   
              }                          T0MD   = 0X01;
             PCON1  = 0X81;                        //開啟總中斷和定時器0中斷
              INTE   = 0X01;                          // 關閉外部中斷打開定時器0中斷
              WDTEN=1;                              //打開看門狗
              CLRWDT();         }
         else
          {
               LED1=0;               //喚醒點亮LED
               delay(3000);         //延時
               K1_num=0;           //返回休眠模式
          }
     }
}



void isr(void) __interrupt(0)
{
     if(INTFbits.T0IF)
      {
        
           if(K1==0){K1_num=1;}
      }
}



回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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