<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        PIC12F508單片機學習之三—按鍵喚醒

        作者:聽雨心情   來源:聽雨心情   點擊數:  更新時間:2014年06月20日   【字體:

         

         
         
        PIC12F508單片機是沒有中斷的,按鍵中斷只能是查詢方式。
         
        編譯器用的XC8,編譯環境IDE用的是MPLAB X IDE。
         
        下載器是PICKIT3.
         
        //***************************************************
        //           __________________
        //       VDD-| 1            8 |-VSS
        //       GP5-| 2           27 |-GP0/DAT
        //       GP4-| 3           26 |-GP1/CLK
        //GP3/RMCLR--| 4           25 |-GP2
        //           |________________|
        //               12F508
        //***************************************************
         
        //看門狗 休眠喚醒
        //按鍵喚醒
         
        #include
        #include
         
        // #pragma config statements should precede project file includes.
        // Use project enums instead of #define for ON and OFF.
         
        // CONFIG
        #pragma config OSC = IntRC      // Oscillator Selection bits (internal RC oscillator)
        #pragma config WDT = ON        // Watchdog Timer Enable bit (WDT Enable )
        #pragma config CP = OFF         // Code Protection bit (Code protection off)
        #pragma config MCLRE = OFF      // GP3/MCLR Pin Function Select bit (GP3/MCLR pin function is digital input, MCLR internally tied to VDD)
         
        #define uchar unsigned char
        #define uint unsigned int
        #define LED1 GP5
        #define LED2 GP4
        #define KEY  GP3
        bit   KEY_F;
        uchar  count;
        //uchar  GP3_F;
        void Init()
        {
           TRIS=~0x3F;  //GP3輸入,其它輸出
           // OPTION=0x07; //這個寄存器上電復位均為1
           //  OPTION=nGPWU|nGPPU|PSA|PS1|PS2; //引腳中斷喚醒禁止 弱上拉禁止 定時器分配看門狗時間是18Ms*64=1.152S
            OPTION=0x1E; // 引腳中斷喚醒使能 弱上拉使能  定時器分配看門狗時間是18Ms*64=1.152S
          // TMR0=0x63;   //10ms
        }
         void  main()
        {  
         Init();   
        while(1)
        {
            if((GPWUF==1)&&(KEY==0))   //引腳引起的中斷喚醒
           {
             LED2=~LED2;
           }
            if(nTO==0)      //看門狗引起的復位
           {
              LED1=~LED1;
           }
                 KEY_F=KEY;   //讀出休眠前的按鍵狀態。
                 SLEEP();
            }
        }
         
        關閉窗口
        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮