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

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 單片機(jī)方案中編碼與鍵盤識別

          單片機(jī)方案中編碼與鍵盤識別

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

          設(shè)計過程中,有時需要依靠鍵盤輸入的支持。這就需要進(jìn)行識別按鍵技術(shù),在本文當(dāng)中,小編將為大家介紹識別鍵盤的常見方法、盤的編碼、以及系統(tǒng)中鍵盤系統(tǒng)的工作方式。感興趣的朋友快來看一看吧。

          本文引用地址:http://www.ex-cimer.com/article/201808/386141.htm

          在實際應(yīng)用中,識別按鍵的方法是非常多的,其中最常見的方法是掃描法。當(dāng)按鍵按下,與此鍵相連的行線與列線導(dǎo)通,行線在無鍵按下時處在高電平。如果讓所有的列線也處在高電平,那么按鍵按下與否不會引起行線電平的變化,因此必須使所有列線處在低電平。只有這樣,在有鍵按下時該鍵所在的行電平才會由高電平變?yōu)榈碗娖?。CPU根據(jù)行電平的變化,便能判定相應(yīng)的行有鍵按下。

          鍵盤的編碼

          對于獨(dú)立式按鍵鍵盤,因按鍵數(shù)量少,可根據(jù)實際需要靈活編碼。對于矩陣式鍵盤,按鍵的位置由行號和列號惟一確定,因此可分別對行號和列號進(jìn)行二進(jìn)制編碼,然后將兩值合成一個字節(jié),高4位是行號,低4位是列號。

          鍵盤的工作方式

          對鍵盤的響應(yīng)取決于鍵盤的工作方式,鍵盤的工作方式應(yīng)根據(jù)實際應(yīng)用系統(tǒng)中CPU的工作狀況而定,其選取的原則是既要保證CPU能及時響應(yīng)按鍵操作,又不要過多占用CPU的工作時間。通常鍵盤的工作方式有三種,即編程掃描、定時掃描和中斷掃描。

          1、編程掃描方式

          編程掃描方式是利用CPU完成其它工作的空余時間,調(diào)用鍵盤掃描子程序來響應(yīng)鍵盤輸入的要求。在執(zhí)行鍵功能程序時,CPU不再響應(yīng)鍵輸入要求,直到CPU重新掃描鍵盤為止。

          2、定時掃描方式

          定時掃描方式就是每隔一段時間對鍵盤掃描一次,它利用內(nèi)部的定時器產(chǎn)生一定時間(例如10ms)的定時,當(dāng)定時時間到就產(chǎn)生定時器溢出中斷。CPU響應(yīng)中斷后對鍵盤進(jìn)行掃描,并在有鍵按下時識別出該鍵,再執(zhí)行該鍵的功能程序。

          3、中斷掃描方式

          采用上述兩種鍵盤掃描方式時,無論是否按鍵,CPU都要定時掃描鍵盤,而單片機(jī)應(yīng)用系統(tǒng)工作時,并非經(jīng)常需要鍵盤輸入,因此,CPU經(jīng)常處于空掃描狀態(tài)。

          中斷模式適合在需要提升工作效率最大化的情況中使用,當(dāng)采用中斷模式時,如果沒有按鍵按下,那么CPU會針對自己的工作進(jìn)行處理,但如果按鍵被按下,則產(chǎn)生了中斷請求,此時CPU就會主動執(zhí)行針對鍵盤的子程序掃描,并對鍵號進(jìn)行鍵盤識別。這樣便能大大加強(qiáng)效率。



          關(guān)鍵詞: 單片機(jī)

          評論


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