找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 1562|回復(fù): 0
收起左側(cè)

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

[復(fù)制鏈接]
ID:1125252 發(fā)表于 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;              //初始定時(shí)器寄存器   
     T0MD=0X01;      //時(shí)鐘分頻
      INTE=0x03;      //使能定時(shí)器0中斷和IO口狀態(tài)變化中斷
      PCON=0X01;    //開啟TIMER0
      ENI();            //開啟總中斷
      while(1)
     {
         CLRWDT();
         if(K1_num==0)
         {
              LED1=1;                                    // 睡眠模式不亮
              WDTEN=0;                                // 關(guān)閉看門狗   
              AWUCON = 0XA0;                     //1010 0000
              T0MD   = 0X01;                       
             PCON1  = 0X80;                          // 關(guān)閉定時(shí)器0中斷
             INTE   = 0X02;                          // 打開io變化中斷            while( K1 && IO_CHARGE_IN==0)
             {            
                  SLEEP();                           // 進(jìn)入睡眠狀態(tài)   
              }                          T0MD   = 0X01;
             PCON1  = 0X81;                        //開啟總中斷和定時(shí)器0中斷
              INTE   = 0X01;                          // 關(guān)閉外部中斷打開定時(shí)器0中斷
              WDTEN=1;                              //打開看門狗
              CLRWDT();         }
         else
          {
               LED1=0;               //喚醒點(diǎn)亮LED
               delay(3000);         //延時(shí)
               K1_num=0;           //返回休眠模式
          }
     }
}



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



回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表