<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 用處理器的一個(gè)引腳控制開/關(guān)功能

          用處理器的一個(gè)引腳控制開/關(guān)功能

          作者: 時(shí)間:2004-12-30 來源:網(wǎng)絡(luò) 收藏
            最近的設(shè)計(jì)實(shí)例促使我提供曾用于某個(gè)項(xiàng)目的較為簡(jiǎn)單的解決方案(參考文獻(xiàn) 1)。我們需要做監(jiān)控的瞬時(shí)電源開關(guān)。這種監(jiān)控能使在按下電源開關(guān)后推遲節(jié)電請(qǐng)求,到所有程序都正常退出為止。另外,可以在不工作期間切斷電源,以延長(zhǎng)電池壽命。該項(xiàng)目還需要升壓變換器,用以將兩至三節(jié) AA 電池電壓轉(zhuǎn)換為 5V。本設(shè)計(jì)使用的 IC1 是德州儀器公司(www.ti.com)生產(chǎn)的TPS61032型升壓變換器(圖 1)。它帶有一個(gè)使能引腳(第 9引 腳),該管腳在其電位被拉低時(shí),不僅關(guān)斷變換器電源,還將負(fù)載與電池完全斷開。處理器是 PIC16F874。本設(shè)計(jì)的關(guān)鍵是,先將處理器的 I/O 引腳配置成輸出端,以保持變換器的使能引腳為高電平,然后再重新配置以檢測(cè)電源開關(guān)的邏輯電平。

          圖1,本電路配置成一個(gè)受處理器監(jiān)控的瞬時(shí)電源開關(guān)。

            當(dāng)電路不工作時(shí),閉合瞬時(shí)電源開關(guān) S1(按壓接通)就能將 IC1 的 引腳9 電位拉高,從而使變換器接通,為處理器提供 5V 電壓。處理器在其 I/O 腳配置為輸出端并被拉至高電平時(shí)起動(dòng)。這一動(dòng)作使 IC1 的 引腳9保持高電平,并使變換器在電源開關(guān)釋放后繼續(xù)運(yùn)行。每隔數(shù)毫秒,處理器的 I/O 引腳被重新設(shè)置為輸入,處理器檢查開關(guān)的高(按下)狀態(tài)或低(松開)狀態(tài)。然后,該引腳又回到以前的輸出模式。電容 器C4 將 IC1 的引腳9(使能腳)維持在高電平,以使變換器在開關(guān)被檢測(cè)過程中繼續(xù)正常運(yùn)行。當(dāng)通電后松開電源開關(guān),然后再次按下時(shí),處理器開始關(guān)機(jī)順序。在完成處理器所需的內(nèi)務(wù)處理操作后,處理器引腳自行配置成輸入引腳并保持為輸入引腳。于是電容器 C4完全放電,使 IC1 的引腳9(使能腳)處于低電平,從而切斷變換器和電路其余部分的電源。二極管 D1 和 D2 使得電池電壓能起動(dòng)變換器和處理器,以便用變換器的高輸出電壓對(duì)電源開關(guān)進(jìn)行測(cè)試。TPS61032 還帶有一個(gè)低電池電壓比較器,其跳變點(diǎn)是R1和R2的函數(shù)。另一個(gè)處理器可讀出比較器的輸出(IC1 的第 10 引腳),以便在電池電壓過低時(shí)執(zhí)行安全關(guān)機(jī)任務(wù)。


          關(guān)鍵詞: 功能 控制 一個(gè) 處理器

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();