新聞中心

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

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

        作者: 時間:2010-09-03 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/151597.htm

          2.2 電路

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

          3 內部邏輯設計

          FPGA內部功能分為掃描模塊、編碼模塊、控制模塊以及同步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;控制模塊產生對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ū)

        關閉
        主站蜘蛛池模板: 专栏| 楚雄市| 新安县| 尼勒克县| 云林县| 牟定县| 亳州市| 汉中市| 香河县| 洪泽县| 恩施市| 毕节市| 青海省| 客服| 灵石县| 锡林浩特市| 章丘市| 乐昌市| 象州县| 太和县| 长葛市| 海盐县| 新化县| 伊春市| 柏乡县| 巨鹿县| 哈密市| 中牟县| 五常市| 呼图壁县| 渝北区| 凤城市| 北海市| 搜索| 嘉善县| 涪陵区| 城固县| 鄂温| 林西县| 望奎县| 六安市|