<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于BC7281的功能鍵盤(pán)設計

基于BC7281的功能鍵盤(pán)設計

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

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

本文引用地址:http://dyxdggzs.com/article/201610/309278.htm

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

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

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

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

1 硬件設計

1. 1 鍵盤(pán)接口設計

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

基于BC7281的功能鍵盤(pán)設計

1. 2 BC7281接口電路設計

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

基于BC7281的功能鍵盤(pán)設計

2 軟件設計

2.1 主程序流程圖

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

基于BC7281的功能鍵盤(pán)設計

2.2 中斷服務(wù)程序

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

基于BC7281的功能鍵盤(pán)設計

功能鍵處理:當檢測到輸入為功能鍵時(shí),在A(yíng)T89S52中置一個(gè)標志位,并把標志位傳給PC,然后再檢測下面的鍵,如果還是功能鍵又置一個(gè)標志位傳給PC,PC通過(guò)對功能鍵組合的識別,來(lái)做出相應的處理。

3 結論

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



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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>