新聞中心

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

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

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

        reg [3:0] col_data_r;

        reg [3:0] row_data_r;

        reg key_flag_r0;

        always@(posedge clk or negedge rst_n)

        begin

        if(!rst_n)

        begin

        row_data = 4'b0000;

        Key_flag_r0 = 0;

        end

        else if(cnt == 20'hfffff)

        begin

        case(next_state)

        SCAN_IDLE : begin

        row_data = 4'b0000;

        key_flag_r0 = 0;

        end

        //SCAN_JITTER:

        SCAN_COL0 : row_data = 4'b1110;

        SCAN_COL1 : row_data = 4'b1101;

        SCAN_COL2 : row_data = 4'b1011;

        SCAN_COL3 : row_data = 4'b0111;

        SCAN_READ : begin

        row_data_r = row_data;

        col_data_r = col_data;

        key_flag_r0 = 1;

        end

        //SCAN_JTTTER2:

        default:; //default vaule

        endcase

        end

        end

        always @(posedge clk or negedge rst_n)

        begin

        if(!rst_n)

        key_value = 0;

        else if(cnt == 20'hfffff)

        begin

        if(key_flag_r0 == 1'b1) //the mark of key is pressed

        begin

        case ({row_data_r,col_data_r}) //row_data Row, col_data Col

        8'b0111_0111: key_value = 4'h0;

        8'b0111_1011: key_value = 4'h1;

        8'b0111_1101: key_value = 4'h2;

        8'b0111_1110: key_value = 4'h3;

        8'b1011_0111: key_value = 4'h4;

        8'b1011_1011: key_value = 4'h5;

        8'b1011_1101: key_value = 4'h6;

        8'b1011_1110: key_value = 4'h7;

        8'b1101_0111: key_value = 4'h8;

        8'b1101_1011: key_value = 4'h9;

        8'b1101_1101: key_value = 4'hA;

        8'b1101_1110: key_value = 4'hB;

        8'b1110_0111: key_value = 4'hC;

        8'b1110_1011: key_value = 4'hD;

        8'b1110_1101: key_value = 4'hE;

        8'b1110_1110: key_value = 4'hF;

        default : key_value = key_value;

        endcase

        end



        關鍵詞: PLD 矩陣鍵盤

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 永春县| 怀仁县| 咸阳市| 阿坝县| 家居| 依兰县| 石狮市| 怀宁县| 集贤县| 邯郸县| 嘉峪关市| 元阳县| 石门县| 竹北市| 那曲县| 苍南县| 疏勒县| 泰来县| 祁东县| 成安县| 扬中市| 武鸣县| 乃东县| 新晃| 神池县| 吉安县| 台江县| 麟游县| 刚察县| 新源县| 佛坪县| 北宁市| 汽车| 望谟县| 大新县| 明溪县| 如皋市| 唐海县| 平泉县| 安塞县| 玉山县|