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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Windows CE的7×3手機(jī)鍵盤驅(qū)動(dòng)實(shí)現(xiàn)

          基于Windows CE的7×3手機(jī)鍵盤驅(qū)動(dòng)實(shí)現(xiàn)

          作者: 時(shí)間:2012-03-22 來源:網(wǎng)絡(luò) 收藏

          1. 前言

          是嵌入式設(shè)備中常用的輸入設(shè)備。它具有堅(jiān)固耐用、響應(yīng)速度快、小巧方便、原理簡單、價(jià)格便宜、易于交流等諸多優(yōu)點(diǎn)。利用,用戶只要用手指按下鍵盤上的數(shù)字或符號鍵就能實(shí)現(xiàn)對嵌入式設(shè)備進(jìn)行相應(yīng)的操作,從而使人機(jī)交互更為直接,是極方便的交互設(shè)備。的應(yīng)用范圍非常廣泛,特別是在手機(jī)、PDA等手持產(chǎn)品的運(yùn)用更為廣泛。本文討論了矩陣鍵盤的實(shí)現(xiàn)原理和Windows CE操作系統(tǒng)的矩陣鍵盤驅(qū)動(dòng)程序模型,并詳細(xì)闡述和分析了嵌入式系統(tǒng)中矩陣鍵盤驅(qū)動(dòng)程序的設(shè)計(jì)和實(shí)現(xiàn)方法,對開發(fā)手機(jī)鍵盤具有重要的參考價(jià)值。

          2. 矩陣鍵盤原理

          矩陣鍵盤作為輸入設(shè)備以默認(rèn)每秒2次的頻率掃描鍵盤,當(dāng)有按鍵被按下時(shí),通過掃描鍵盤并生成相應(yīng)的掃描碼,并通過處理器中的中斷產(chǎn)生器產(chǎn)生一個(gè)中斷信號,然后通過這個(gè)中斷信號控制相應(yīng)的程序獲取與之相對應(yīng)的虛擬碼,最后此虛擬碼由上層調(diào)用,實(shí)現(xiàn)按下此鍵的相應(yīng)功能。

          鍵盤配置是很關(guān)鍵的,其中包括按鍵的個(gè)數(shù)、布局及按鍵功能的配置。鍵盤可以按照自定義布局,并且可以按照自己的喜好映射按鍵,從而實(shí)現(xiàn)按鍵的不同功能;對于Intel PXA272芯片而言,最多支持8×8的矩陣鍵盤,這個(gè)矩陣鍵盤接口連接PXA272處理器到矩陣鍵盤上,本次開發(fā)只使用7×3的矩陣鍵盤,鍵盤布局按照常用手機(jī)鍵盤布局,其中Intel PXA272芯片的GPIO107、GPIO108、GPIO96分別對應(yīng)矩陣鍵盤的輸出端口4~6,Intel PXA272芯片的GPIO100、GPIO101、GPIO102、GPIO97、GPIO39、GPIO90、GPIO91分別對應(yīng)矩陣鍵盤的輸入端口0~6。矩陣鍵盤原理詳見下圖1所示[1]。


          圖1 矩陣鍵盤原理圖

          3. 鍵盤接口I/O信號描述

          KP_MKIN7:0>信號為來自矩陣鍵盤的輸入信號和矩陣行所讀取的信號。

          KP_MKOUT7:0>為矩陣鍵盤的輸出信號。這個(gè)鍵盤接口發(fā)射掃描信號到矩陣鍵盤的每一列,并檢查是否有鍵被按下。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 矩陣鍵盤 WindowsCE MDD PDD

          評論


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