<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > verilog PS2鍵盤解碼程序

          verilog PS2鍵盤解碼程序

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

          4'd8: begin
          num = num+1'b1;
          temp_data[7] = ps2k_data; //bit7
          end
          4'd9: begin
          num = num+1'b1; //奇偶校驗位,不做處理
          end
          4'd10: begin
          num = 4'd0; // num清零
          end
          default: ;
          endcase
          end
          end
          reg key_f0; //松鍵標志位,置1表示接收到數(shù)據(jù)8'hf0,再接收到下一個數(shù)據(jù)后清零
          reg ps2_state_r; //當前狀態(tài),ps2_state_r=1表示有鍵被按下
          always @ (posedge clk or negedge rst_n) begin //接收數(shù)據(jù)的相應處理,這里只對1byte的鍵值進行處理
          if(!rst_n) begin
          key_f0 = 1'b0;
          ps2_state_r = 1'b0;
          end
          else if(num==4'd10) begin //剛傳送完一個字節(jié)數(shù)據(jù)
          if(temp_data == 8'hf0) key_f0 = 1'b1;
          else begin
          if(!key_f0) begin //說明有鍵按下
          ps2_state_r = 1'b1;
          ps2_byte_r = temp_data; //鎖存當前鍵值
          end
          else begin
          ps2_state_r = 1'b0;
          key_f0 = 1'b0;
          end
          end
          end
          end
          reg[7:0] ps2_asci; //接收數(shù)據(jù)的相應ASCII碼
          always @ (ps2_byte_r) begin
          case (ps2_byte_r) //鍵值轉(zhuǎn)換為ASCII碼,這里做的比較簡單,只處理字母
          8'h15: ps2_asci = 8'h51; //Q
          8'h1d: ps2_asci = 8'h57; //W
          8'h24: ps2_asci = 8'h45; //E
          8'h2d: ps2_asci = 8'h52; //R
          8'h2c: ps2_asci = 8'h54; //T
          8'h35: ps2_asci = 8'h59; //Y
          8'h3c: ps2_asci = 8'h55; //U
          8'h43: ps2_asci = 8'h49; //I
          8'h44: ps2_asci = 8'h4f; //O
          8'h4d: ps2_asci = 8'h50; //P
          8'h1c: ps2_asci = 8'h41; //A
          8'h1b: ps2_asci = 8'h53; //S
          8'h23: ps2_asci = 8'h44; //D
          8'h2b: ps2_asci = 8'h46; //F
          8'h34: ps2_asci = 8'h47; //G
          8'h33: ps2_asci = 8'h48; //H
          8'h3b: ps2_asci = 8'h4a; //J
          8'h42: ps2_asci = 8'h4b; //K
          8'h4b: ps2_asci = 8'h4c; //L
          8'h1z: ps2_asci = 8'h5a; //Z
          8'h22: ps2_asci = 8'h58; //X
          8'h21: ps2_asci = 8'h43; //C
          8'h2a: ps2_asci = 8'h56; //V
          8'h32: ps2_asci = 8'h42; //B
          8'h31: ps2_asci = 8'h4e; //N
          8'h3a: ps2_asci = 8'h4d; //M
          default: ;
          endcase
          end
          assign ps2_byte = ps2_asci;
          assign ps2_state = ps2_state_r;
          endmodule

          上一頁 1 2 下一頁

          關(guān)鍵詞: 程序 解碼 鍵盤 PS2 verilog

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();