新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于FPGA和VHDL語言的多按鍵狀態(tài)識別系統(tǒng)

基于FPGA和VHDL語言的多按鍵狀態(tài)識別系統(tǒng)

作者: 時間:2010-09-03 來源:網(wǎng)絡 收藏

本文引用地址:http://m.butianyuan.cn/article/151597.htm

  2.2 電路

  圖3為一路電路,共60個(i=1~60)。由于外界環(huán)境復雜,按鍵引線長達6 m,保護二極管VDi:在外界干擾信號大于VCC時導通起到保護的作用。電阻Ri上拉限流,按鍵未閉合輸入引腳始終處于高電平。

  3 內(nèi)部邏輯設計

  FPGA內(nèi)部功能分為掃描模塊、編碼模塊、控制模塊以及同步FIFO RAM模塊,如圖4所示。

  

  圖4中,K1~K60為60個按鍵的輸入端,Scan為工作模式選擇信號,Ready為讀準備好信號,RdClk為讀時鐘信號,Data[7:0]為數(shù)據(jù)輸出,ModCtr為編碼模式控制信號,F(xiàn)IFOWEn為FIFO RAM寫使能信號,F(xiàn)IFOIn為FIFO RAM數(shù)據(jù)輸入,State為按鍵掃描信號。其工作原理為:掃描模塊周期掃描按鍵,其結果送入編碼模塊;編碼模塊根據(jù)模式控制信號ModCtr選擇編碼方式編碼,將其結果送入FIFO RAM;控制模塊產(chǎn)生對FIFO RAM的讀取控制信號;MCU可通過Readv、RdClk控制信號讀取Data[7:0]數(shù)據(jù)線上的按鍵編號和狀態(tài)數(shù)據(jù)。

  3.1 掃描模塊

  掃描模塊主要完成掃描按鍵狀態(tài)輸入和按鍵的軟件去抖動。掃描按鍵狀態(tài)輸入是以5 m8為周期掃描60個輸入引腳,將其結果存入60個兩位狀態(tài)移位寄存器。其代碼為:

  

  按鍵去抖有硬件和軟件2種實現(xiàn)方式。為了節(jié)省成本,充分發(fā)揮FPGA器件的功能,該設計采用軟件去抖。圖5為軟件去抖動流程。圖中State為2位狀態(tài)移位寄存器,初始值為0,TimeDelay為延時計數(shù)器。

  



評論


相關推薦

技術專區(qū)

關閉