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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 省電型鍵盤通過MCU管腳控制多路按鍵

          省電型鍵盤通過MCU管腳控制多路按鍵

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

          傳統(tǒng)上,與n乘m連接的微型控制器要求微型控制器的I/O的n+m為掃描。設(shè)計保留了微型控制器已經(jīng)被開發(fā)出來的,但是它們要求額外的資源,例如外部的ICs或一個內(nèi)置的模數(shù)轉(zhuǎn)換器(ADC)。本設(shè)計這里只利用了一個I/O,并且要求僅將電阻和電容作為外部元件。

          本文引用地址:http://www.ex-cimer.com/article/202395.htm
          I/O是一個開頭被配置作為輸入的雙向管腳(見圖)。當(dāng)沒有按鍵被按下時,電容被放電,并且上拉電阻RH保持I/O為高。微型控制器處于休眠模式,并且只有在I/O狀態(tài)改變引起中斷時才會醒來。當(dāng)按鍵被按下,I/O變低,因?yàn)橄吕W(wǎng)絡(luò)比上拉作用更強(qiáng)些。微型控制器隨后醒來執(zhí)行以下步驟:
          1. 等待聯(lián)絡(luò)消除抖動。
          2. 把I/O變?yōu)檩敵霾⒃O(shè)置高。 電容隨后開始充電到高狀態(tài)電壓。 充電的時間Ti取決于按鍵被按下和與其關(guān)聯(lián)的R (1,2,…i)。
          3. 等待直到T1到來。
          4. 使I/O作為輸入。充電到C暫停。
          5. 如果I/O為高,按鍵1被按下。 如果I/O為低,使I/O作為輸出并置高來持續(xù)充電。
          6. 等待直到T2到來。
          7. 使I/O作為輸入。 充電到C暫停。
          8. 如果I/O為高,按鍵2被按下。 如果I/O為低,使I/O作為輸出并置高來持續(xù)充電。
          9. 通過Ti持續(xù)到T3。
          應(yīng)該選擇電阻使T1
          1.jpg
          充電時間可被確定如下:當(dāng)充電暫停時,在I/O的電壓(式1)是VC為電容電壓(式2)。式3通過使VI/O與開關(guān)門限電壓VTH相等解答了充電的時間。這里,VTH是I/O的開關(guān)門限電壓。
          2.gif
          3.gif
          4.gif
          隨著Ri增加,Ti最初增加。但隨后它達(dá)到最大值并開始減少。這就給Ri,并因此給可以連接到電路中的按鍵數(shù)量強(qiáng)加了一個上限。
          Ti可能會在Ti,min和Ti,max之間變化,由于在VTH上電阻的容差和變化。所以,應(yīng)該選擇數(shù)值使Ti,max
          這個設(shè)計用三種方式節(jié)省功率。首先,每次電容被充電到V并被放電,CV2能量都被消散。在本設(shè)計中,只要I/O變高且電容被充電到大約VTH(少于2V),而不是VDD,則充電停止。其次,當(dāng)每個按鍵被按下電容只充電(和放電)一次。最后一條,在確定哪個按鍵被按下后,微型控制器進(jìn)入休眠模式并保持休眠,直到按鍵被釋放且I/O變回到高。所以既使當(dāng)某些按鍵陷入或卡住時,功率消耗是最小的。

          DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY




          關(guān)鍵詞: MCU 省電 鍵盤 管腳

          評論


          相關(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); })();