新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于PLD的矩陣鍵盤狀態機控制

        基于PLD的矩陣鍵盤狀態機控制

        作者: 時間:2012-03-12 來源:網絡 收藏

        講講FPGA中的應用了。這個思維和電路在FPGA中有所不同,在此,在此做詳細解釋,Bingo用自己設計的成熟的代碼作為案例,希望對你有用。

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

        一、FPGA電路圖

        在FPGA中的電路,與單片機雷同,如下所示:

        61.jpg

        在上電默認情況下,L[3:0] =4''b1,因為上拉了3.3V,而默認情況下H.[3:0]為低電平;一旦有某一個按鍵被按下,便是是的該路電路流向該按鍵的H,是的L檢測不到電流。因此可以通過對每一行H輸出的控制,來檢索是哪一個按鍵被按下了,這也原理和單片機中一樣,只是寫法不一樣罷了。

        二、FPGAFSM

        1. 代碼

        代碼如下所示,采用了三段式狀態機來描述矩陣鍵盤。本模塊形式與上一張按鍵消抖動雷同,方便移植。

        /*************************************************

        * Module Name : matrix_key_design.v

        * Engineer : Crazy Bingo

        * Target Device : EP2C8Q208C8

        * Tool versions : Quartus II 11.0

        * Create Date : 2011-6-26

        * Revision : v1.0

        * Description :

        **************************************************/

        module matrix_key_design

        (

        input clk,

        input rst_n,

        input [3:0] col_data,

        output reg [3:0] row_data,

        output key_flag, //the mark of key is pressed

        output reg [3:0] key_value

        );

        //generate for 2ms signal

        reg [19:0] cnt; //fffff,≈50Hz 20ms

        always @(posedge clk or negedge rst_n)

        begin

        if(!rst_n)

        cnt = 0;

        else

        cnt = cnt+1'b1;

        end

        /*****************************************************

        * R3 >---0----1----2----3

        * | | | |

        * R2 >---4----5----6----7

        * | | | |

        * R1 >---8----9----A----B

        * | | | |

        * R0 >---C----D----E----F

        * | | | |

        * C3 C2 C1 C0

        *****************************************************/


        上一頁 1 2 3 4 下一頁

        關鍵詞: PLD 矩陣鍵盤

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 合作市| 曲麻莱县| 石狮市| 阿拉善左旗| 天柱县| 河东区| 凤翔县| 马关县| 咸宁市| 凌云县| 河曲县| 西吉县| 惠安县| 手游| 仁化县| 泰州市| 云龙县| 木兰县| 凤翔县| 隆林| 汤原县| 公安县| 延边| 木兰县| 巴彦县| 阳谷县| 石门县| 白玉县| 西昌市| 陕西省| 泽州县| 清徐县| 故城县| 延川县| 福贡县| 饶平县| 高淳县| 临夏县| 昌乐县| 尚志市| 马山县|