<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)用 > 嵌入式設(shè)備中CPLD的鍵盤控制實(shí)現(xiàn)

          嵌入式設(shè)備中CPLD的鍵盤控制實(shí)現(xiàn)

          作者:桂林工學(xué)院電子與計(jì)算機(jī)系 馬學(xué)文 朱名日 時(shí)間:2004-10-15 來源:電子產(chǎn)品世界 收藏

          2004年6月A版

          摘   要:用CPLD在信息家電控制平臺(tái)中設(shè)計(jì)鍵盤控制器。

          關(guān)鍵詞:CPLD;鍵盤控制;信息家電;VHDL

          前言

            系統(tǒng)中所用的鍵盤有編碼和非編碼鍵盤兩種。編碼鍵盤的優(yōu)點(diǎn)是比較方便,亦不需要編寫太復(fù)雜的程序。其缺點(diǎn)是使用的硬件較復(fù)雜。非編碼鍵盤的按鍵是排列成行、列矩陣形式的,可以采用多種鎖存器和可編程并行I/O接口芯片組成,但是,在這些方法中,鍵盤擴(kuò)展電路需要占用微處理器的資源對(duì)按鍵進(jìn)行監(jiān)控和處理,還有不能按照設(shè)備中特定要求來進(jìn)行開發(fā),這些都制約了鍵盤在設(shè)備中的開發(fā)應(yīng)用。為了解決這一問題,本文提出一種利用復(fù)雜可編程邏輯器件設(shè)計(jì)技術(shù)實(shí)現(xiàn)鍵盤控制部分。

          鍵盤時(shí)序信號(hào)和功能

            本設(shè)計(jì)采用通用鍵盤的實(shí)現(xiàn)形式。用戶通過通用鍵盤向主機(jī)輸送信息,使用的鍵盤方式只向主機(jī)單向傳輸數(shù)據(jù),而不接收主機(jī)發(fā)送過來的數(shù)據(jù)。鍵盤輸出的是掃描碼,按串行方式輸出。鍵盤輸出的信號(hào)包括時(shí)鐘信號(hào)和串行數(shù)據(jù)信號(hào)。鍵盤接口電路,按照串行傳送的鍵盤代碼的應(yīng)答約定,接收鍵盤發(fā)送的掃描碼,同時(shí),還向鍵盤發(fā)送主機(jī)的控制信號(hào),主機(jī)與鍵盤接口的連接信號(hào)時(shí)序如圖1所示。

            從時(shí)序圖可以看出鍵盤控制器欲實(shí)現(xiàn)以下功能:產(chǎn)生按鍵掃描時(shí)序,并進(jìn)行硬件去抖動(dòng),如果有按鍵按下,實(shí)現(xiàn)按鍵編碼、中斷處理等功能;可以同時(shí)處理數(shù)字鍵和功能鍵,對(duì)多個(gè)按鍵同時(shí)按下,采用一定的處理算法優(yōu)先進(jìn)行處理;提供數(shù)據(jù)顯示接口,可以和我們采用的NEC公司NL3224BC35-20彩色顯示器正確連接。

            在本控制平臺(tái)中根據(jù)系統(tǒng)要求對(duì)按鍵進(jìn)行如下設(shè)置:數(shù)字鍵(0~9)、字母鍵(A~Z)、功能鍵(手動(dòng)、自動(dòng)、編程方式選擇)、清零鍵(CLR)等共56個(gè),排成8



          關(guān)鍵詞: 嵌入式 嵌入式

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