新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > PIC16C5X單片機睡眠狀態(tài)退出方法

        PIC16C5X單片機睡眠狀態(tài)退出方法

        作者: 時間:2011-05-09 來源:網(wǎng)絡(luò) 收藏

        在有些應(yīng)用場合下,CPU只需間斷性工作或?qū)ν獠渴录鞒鎏幚恚綍r處于待機有一種節(jié)能方式,(SLEEP)方式,在這種中,振蕩驅(qū)動器停止工作, I/O口保持執(zhí)行SLEEP指令前的,從而大大降低系統(tǒng)功耗。由于無中斷功能,要方式,只有兩種:(1)“看門狗”(WDT)溢出。

        本文引用地址:http://www.104case.com/article/172803.htm

          (2)在復(fù)位腳加低電平,而使芯片復(fù)位。本文采用第二種。在圖1給出的例子中,平時處于態(tài),當(dāng)任意一鍵按下時,將它從睡眠狀態(tài)中喚醒,進行鍵盤處理。為便于說明,在本例中,SW1按下時,點亮,如下圖所示

          

          綠燈;當(dāng)SW2按下時,紅燈亮。讀者可按實際需要編寫處理程序,參見圖2。

          

          在進入睡眠態(tài)前,將鍵掃描輸出線SCAN1和SCAN2置為低電平。這樣,當(dāng)進入睡眠狀后,無鍵按下時,電容C充電充分,使PIC16C5X復(fù)位腳保持著高電平。一旦有鍵按下,C通過電阻R2或R3放電,使C上的電壓快速下降(大約1ms),從而將復(fù)位腳拉為低電平,迫使PIC16C5X睡眠態(tài)而進入復(fù)位。復(fù)位時,SCAN1和SCAN2自動從輸出態(tài)變?yōu)檩斎霊B(tài)(高阻態(tài)),C的放電回路被阻斷,VCC經(jīng)電阻R1對C充電至高電平。需注意的是,RC值要選擇恰當(dāng),使充放電周期小于PIC16C5X的復(fù)位時間(大約18ms)。更遠遠小于鍵按下的最小時間(大約50--100ms)。復(fù)位結(jié)束后,在程序中,每隔20ms將SCAN1和SCAN2置低電平一次以采樣鍵值。為避免電容放電時間過長,將拉低,再次造成復(fù)位,每次掃描即SCAN1或SCAN2為低電平的時間大約為10us。當(dāng)鍵處理程序完成后,程序?qū)︽I盤循環(huán)掃描直至鍵釋放。然后將SCAN1和SCAN2輸出置成低電平,并重新進入睡眠狀態(tài)。R4-R8主要用于防止C放電而可能對芯片造成的傷害。工作時序見圖3所示。

          



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 泸水县| 诏安县| 灵寿县| 临澧县| 沅陵县| 九龙坡区| 顺昌县| 文山县| 馆陶县| 七台河市| 惠州市| 古丈县| 武威市| 杭锦后旗| 景德镇市| 沙河市| 东乡族自治县| 察雅县| 科技| 灵台县| 革吉县| 株洲市| 柳河县| 印江| 自治县| 宜昌市| 涞源县| 民权县| 寿阳县| 邓州市| 福海县| 仙游县| 晴隆县| 开鲁县| 湖北省| 凤山市| 通道| 乐都县| 唐海县| 漾濞| 冀州市|