PS2 按键

      主要用2根数据线 1脚 DATA 2脚 CLK 

      每次传递11位数据,第0位位开始位 第1-8位 数据位,第9位 奇偶校验位 第10位 结束位

      在CLK的下降沿更新

      输出具体的值有一个 传说中的 第二套编码表格 见书P61 

      每次按下时为送出 通码(Make)  释放时 送出断码(Break) ,先输出0XF0 ,再输出代表当前按键的8位数据

 

      整个检测按键模块 需要 一个检测低电平模块,一个解码模块

      对于下降沿 检测,参照试验一,通过一个BOOL 运算 ,在每次测得PS2_clk 下降沿时 输出一个高电平,供给后面模块做判断用

      

 /***************  Internal Registers  *****************/
    reg H2L_F1 ;
    reg H2L_F2 ;    
    
    /******************  Internal Wire  *******************/
    

    /****************  Code Starts Here  ******************/
    always @ ( posedge clk or negedge rst_n ) 
        if ( !rst_n )
            begin 
                    H2L_F1 <= 1'b1 ;
                    H2L_F2 <= 1'b1 ;
            end
        else
            begin
                    H2L_F1 <= PS2_clk_pin ;
                    H2L_F2 <= H2L_F1 ;
            end
    /*****************************************************/    
    assign H2L_sig = H2L_F2 & ( !H2L_F1 ) ;
    /*****************************************************/
    
H2L_detect_module

相关文章: