• 欢迎来到 - 我就爱电子网 - http://www.592dz.com !
您的位置:> 我就爱电子网电子文章EDA/PLDverilog PS2键盘解码程序 -- 正文
正文

verilog PS2键盘解码程序

[10-21 14:24:02]   来源:http://www.592dz.com  EDA/PLD   阅读:9619

 

概要:nd 4'd7: begin num <= num+1'b1; temp_data[6] <= ps2k_data; //bit6 end4'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

verilog PS2键盘解码程序,http://www.592dz.com
                     end
              4'd5:  begin
                         num <= num+1'b1;
                         temp_data[4] <= ps2k_data;  //bit4
                     end
              4'd6:  begin
                         num <= num+1'b1;
                         temp_data[5] <= ps2k_data;  //bit5
                     end
              4'd7:  begin
                         num <= num+1'b1;
                         temp_data[6] <= ps2k_data;  //bit6
                     end
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表示接收到数据8'hf0,再接收到下一个数据后清零
reg ps2_state_r;  //键盘当前状态,ps2_state_r=1表示有键被按下
always @ (posedge clk or negedge rst_n) begin //接收数据的相应处理,这里只对1byte的键值进行处理
    if(!rst_n) begin
           key_f0 <= 1'b0;
           ps2_state_r <= 1'b0;
       end
    else if(num==4'd10) begin   //刚传送完一个字节数据
           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; //锁存当前键值

上一页  [1] [2] [3] [4]  下一页


标签:EDA/PLDeda技术大全,eda技术实用教程EDA/PLD
《verilog PS2键盘解码程序》相关文章