<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è) > EDA/PCB > 設計應用 > 基于CPLD的鍵盤(pán)控制器設計

基于CPLD的鍵盤(pán)控制器設計

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

0 引 言
由于的可再編程性質(zhì),可以將同一裝置用于不同的和產(chǎn)品,而收到高產(chǎn)量、低成本的效果,同時(shí)也節約了單片機的資源以做它用??稍倬幊痰奶攸c(diǎn)輔之簡(jiǎn)便易用的設計工具,使設計可以進(jìn)行晚期更改,提高了產(chǎn)品設計的靈活性,降低了風(fēng)險。在單片機應用系統中,利用接口輸入數據,是實(shí)現現場(chǎng)實(shí)時(shí)調試、數據調整和各種參數設置最常用的方法。單片機的外圍擴展電路有多種實(shí)現方式,例如直接利用單片機的I/O接口,或者采用8255A接口芯片,就可以實(shí)現外圍鍵盤(pán)的擴展功能。但是,在這些方法中,鍵盤(pán)擴展電路需要占用單片機的資源對按鍵進(jìn)行監控和處理,這對要求高實(shí)時(shí)性處理的單片機系統是不容易實(shí)現的。為了解決這一問(wèn)題,可以使用專(zhuān)用鍵盤(pán)接口芯片來(lái)擴展鍵盤(pán)子系統。但是這類(lèi)專(zhuān)用鍵盤(pán)接口芯片在使用靈活性方面尚有欠缺,尤其當用戶(hù)需要實(shí)現某些特定功能時(shí),其缺點(diǎn)更為明顯。針對上述問(wèn)題,在此提出一種基于Lattice公司LC4128V的4×4鍵盤(pán)接口芯片設計。采用的軟件開(kāi)發(fā)環(huán)境是IspLEVER。

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


l 開(kāi)發(fā)環(huán)境介紹
IspLEVER是Lattice公司最新推出的一套EDA軟件。設計輸入可采用原理圖、硬件描述語(yǔ)言、混合輸入3種方式,它能對所設計的數字電子系統進(jìn)行功能仿真和時(shí)序仿真。編譯器是此軟件的核心,能進(jìn)行邏輯優(yōu)化,將邏輯映射到器件中去,自動(dòng)完成布局與布線(xiàn),并生成編程所需要的熔絲圖文件。軟件中的Constraints Editor工具允許經(jīng)由一個(gè)圖形用戶(hù)接口選擇I/O設置和引腳分配。lspLEVER軟件提供給開(kāi)發(fā)者一個(gè)簡(jiǎn)單而有力的工具,用于設計所有Lattice可編程邏輯產(chǎn)品。


2 鍵盤(pán)控
2.1 基于LC4128V的4×4鍵盤(pán)控
圖1給出基于Lattice公司的可編程邏輯器件LC4128V的4×4鍵盤(pán)控制器(KEYPADcTL)設計。

根據鍵盤(pán)的掃描原理,鍵盤(pán)控制器的輸出引腳R1~R4(行掃描線(xiàn))依次循環(huán)輸出低電平,并將相應的鍵盤(pán)行置低。當有按鍵按下時(shí),相應的輸入c1~c4(列回復線(xiàn))也被置低。然后根據行和列的低電平對應關(guān)系就可以通過(guò)編碼確定按下的鍵值。輸出K0~K3就是最終等待單片機讀取的鍵值。INT輸出單片機的中斷信號,通知單片機來(lái)讀取鍵值。CLK是控制器的時(shí)鐘信號,cLR是控制器的清零復位信號。
2.2 內部原理圖及其主要部分的工作原理
鍵盤(pán)控制器內部由鍵盤(pán)掃描電路、編碼器電路、鍵盤(pán)去抖動(dòng)電路、分頻器電路、計數器電路和鍵值鎖存器組成,如圖2所示。

(1)鍵盤(pán)掃描電路是一個(gè)能自啟動(dòng)到所需要狀態(tài)的狀態(tài)機,當系統上電并同時(shí)輸入一個(gè)有效的復位清零信號CLR后,掃描電路輸出端R1~R4(L1~L4)則依次按照設計要求循環(huán)輸出以下掃描電平1110,1101,1011,0111。L1~L4作為編碼器的輸入,通過(guò)與列回復線(xiàn)(C1~C4)的對應關(guān)系參與編碼。然而R1~R4是將L1~L4加上高電平使能三態(tài)門(mén)輸出的鍵盤(pán)行掃描線(xiàn)。將行掃描線(xiàn)加上三態(tài)門(mén)輸出,是為了防止當一列上的2個(gè)或更多按鍵被同時(shí)按下時(shí),將使LC4128V的引腳高低電平短接,如果這種情況發(fā)生,不但影響鍵盤(pán)控制器的準確性,更嚴重的是會(huì )燒壞可編程邏輯器件LC4128V,所以該控制器通過(guò)三態(tài)門(mén)輸出行掃描線(xiàn)。三態(tài)門(mén)的使能信號就是其通過(guò)的信號取反,這樣輸出的高電平將為高阻狀態(tài)。通過(guò)對鍵盤(pán)的行線(xiàn)分別接個(gè)上拉電阻便可得到與L1~L4一樣的輸出信號。


上一頁(yè) 1 2 3 4 下一頁(yè)

關(guān)鍵詞: CPLD 鍵盤(pán) 制器設計

評論


相關(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>