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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于BC7281的功能鍵盤設(shè)計(jì)

          基于BC7281的功能鍵盤設(shè)計(jì)

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

          摘要是最常見的計(jì)算機(jī)輸入設(shè)備,廣泛應(yīng)用于微型計(jì)算機(jī)和各種終端設(shè)備上,計(jì)算機(jī)操作者通過向計(jì)算機(jī)輸入各種指令、數(shù)據(jù),指揮計(jì)算機(jī)的工作。因此設(shè)計(jì)的好壞,將會(huì)直接關(guān)系到系統(tǒng)的可靠性與穩(wěn)定性。本文采用鍵盤控制芯片BC728l和單片機(jī)的輸入/輸出設(shè)計(jì)一個(gè)具有功能鍵的鍵盤。

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

          按鍵一般可分為獨(dú)立式按鍵設(shè)計(jì)、矩陣式按鍵接口設(shè)計(jì)和專用芯片式按鍵接口設(shè)計(jì)。獨(dú)立式按鍵的接口設(shè)計(jì)是各按鍵相互獨(dú)立的接通一條輸入數(shù)據(jù)線,每個(gè)鍵的工作不會(huì)影響其它的I/O口,這種鍵盤的優(yōu)點(diǎn)是電路簡(jiǎn)單;缺點(diǎn)是當(dāng)鍵數(shù)較多時(shí),要占用較多的I/O線,造成資源浪費(fèi)。因此,獨(dú)立式按鍵接口設(shè)計(jì)主要用于按鍵較少且對(duì)操作速度要求高的場(chǎng)合。矩陣式鍵盤較獨(dú)立式鍵盤節(jié)省I/O口。矩陣式

          鍵盤由行線和列線組成,按鍵位于行、列線的交叉點(diǎn)上。

          專用按鍵處理芯片一般功能比較完善,芯片本身能完成對(duì)按鍵的編碼、掃描、消抖和重健等問題的處理,使得它的優(yōu)點(diǎn)很明顯,其可靠性高、接口簡(jiǎn)單、使用方便,也適合處理按鍵較多的情況?;谟?jì)算機(jī)鍵盤中按鍵較多、可靠性要求較高等綜合情況考慮,選用專用芯片式按鍵接口設(shè)計(jì)。

          具有64鍵鍵盤接口,內(nèi)建去抖功能;具有兩種鍵盤工作模式,適應(yīng)不同的應(yīng)用需求;具有寄存器保護(hù)(抗干擾模式),可靠性高;鍵盤部分具有鍵值鎖存功能;具有兩線高速串行接口。

          1 硬件設(shè)計(jì)

          1. 1 鍵盤接口設(shè)計(jì)

          最多可以連接64個(gè)按鍵,在此處需要用到40個(gè)按鍵,按8x5矩陣排列,矩陣的“行”連接到的位驅(qū)動(dòng)DIG0-DIG7,矩陣的“列”連接到74HC164驅(qū)動(dòng)移位寄存器的輸出,當(dāng)使用BC7281的鍵盤功能時(shí),DIG0-DIG7應(yīng)加上100k的下拉電阻,且8根引腳必須都接入下拉電阻。鍵盤接口設(shè)計(jì)如圖1所示。其中功能鍵C1、G2、G3、G4的“列”連接Q4,“行”分別連接DIG4、DIG5、DIG6、DIG7,鍵值分別為24H、25H、26H、27H;其余鍵值均小于24H,其中0-9鍵的鍵值為00H-09H,a-z鍵的鍵值為0AH-23H。

          基于BC7281的功能鍵盤設(shè)計(jì)

          1. 2 BC7281接口電路設(shè)計(jì)

          BC7281的14腳為電源引腳,為了獲得更好的抗干擾能力,在電源引腳與地之間串入了一個(gè)RC濾波電路,以濾除電源中的尖峰和毛刺;BC7281采用外接的RC振蕩電路為鍵盤掃描提供時(shí)鐘驅(qū)動(dòng),外接元件的典型參數(shù)為R=1.5k~3.3k,C=20 pP,當(dāng)采用比較小的電阻值時(shí),振蕩頻率較高,可以獲得更快的通訊速率和掃描頻率,使得占用CPU時(shí)間更少,故選用1.5k電阻;因?yàn)锽C7281的內(nèi)部有上電復(fù)位電路,因此在一般情況下不需要特殊的復(fù)位電路,只需將RST引腳直接連接到VCC端就可以了;BC7281與單片機(jī)的接口共需要三根線,數(shù)據(jù)線DAT、時(shí)鐘線CLK和按鍵指示KEY,其中CLK和KEY引腳分別為輸入和輸出引腳,而DAT則為雙向口,其內(nèi)部為漏極開路輸出結(jié)構(gòu),需要外接上拉電阻,以使其能可靠地輸出高電平。BC7281在KMS=0模式時(shí)具有按鍵保存功能,在按鍵被讀走之前,KEY將一直維持低電平,因此對(duì)按鍵使用查詢方式即可,但在本設(shè)計(jì)中需要用到功能鍵,故把KEY接到了單片機(jī)的INT1引腳上,以便用到中斷處理方式。如圖2所示。

          基于BC7281的功能鍵盤設(shè)計(jì)

          2 軟件設(shè)計(jì)

          2.1 主程序流程圖

          首先將BC7281初始化,為防止按鍵輸入產(chǎn)生誤動(dòng)作,可在主程序中將BC7281芯片定義為二鍵互鎖狀態(tài)(當(dāng)KMS=0時(shí),為帶鎖有的互鎖模式,即有效按鍵發(fā)生后,KEY即為低電子,直至MCU讀取按鍵后KEY恢復(fù)高電平,這期間不響應(yīng)任何新的按鍵),保證功能鍵和數(shù)據(jù)鍵的正確輸入,當(dāng)有鍵按下就取出鍵值,并判斷是功能鍵還是數(shù)據(jù)鍵,且轉(zhuǎn)到相應(yīng)的子程序中去處理。其中功能鍵的鍵值大于23H。

          基于BC7281的功能鍵盤設(shè)計(jì)

          2.2 中斷服務(wù)程序

          當(dāng)有鍵按下時(shí),BC7281芯片申請(qǐng)中斷,AT89S52響應(yīng)中斷,進(jìn)入中斷服務(wù)程序。將鍵值代碼送入FIFO堆棧中,中斷服務(wù)程序流程圖如4所示。

          基于BC7281的功能鍵盤設(shè)計(jì)

          功能鍵處理:當(dāng)檢測(cè)到輸入為功能鍵時(shí),在AT89S52中置一個(gè)標(biāo)志位,并把標(biāo)志位傳給PC,然后再檢測(cè)下面的鍵,如果還是功能鍵又置一個(gè)標(biāo)志位傳給PC,PC通過對(duì)功能鍵組合的識(shí)別,來做出相應(yīng)的處理。

          3 結(jié)論

          本設(shè)計(jì)采用的鍵盤控制芯片,能完成對(duì)按鍵的編碼、掃描、消抖和重健等問題的處理,可代替微處理器完成對(duì)鍵盤的控制,減輕主機(jī)負(fù)擔(dān),而且硬件電路可靠。還可以通過中斷的方式來實(shí)現(xiàn)功能鍵的處理。



          關(guān)鍵詞: 鍵盤 BC7281 AT89S52 接口

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