基于verilog下PS2键盘的实验_Devin_新浪博客

    PS2键盘是目前被广泛使用的键盘之一。首先简单的介绍一下PS2键盘的数据传输模式和时序: ps2接口一共

有6个管脚,如下图:

基于verilog下PS2键盘的实验

 

其中,我们所用到的只有4个管脚。其数据的传输格式和时序如下图:

基于verilog下PS2键盘的实验

   其发送数据的模式为:当按下按键时,键盘会向外发出通码(即键盘的按键编码),当按键松开的时候,键盘会向外发送断码和相应的通码。如:按下Shift键,按下G键,释放G键,释放Shift键。与这些时间相关的扫描码如下:Shift 键的通码 8’h12,G 键的通码 8’h34,G 键的断码8’hf0  8’h34, Shift 键的断码 8’hf0  8’h12,因此发送到计算机的数据应该是:8’h12  8’h34  8’hf0  8’h34  8’hf0  8’h12。

    本实验所实现的功能是通过检测ps2键盘的按键编码,将检测到的编码在数码管上显示,并且将所对应的英文字母发送到上位机,上位机通过串口调试助手显示传回来的数据。

    具体模块如下:键盘接收模块,串口波特率产生模块,串口数据发送模块,以及顶层模块。

    键盘接收模块:键盘接收的编码主要是在ps2时钟的下沿进行采样的,通过对数据的采样,来判断是哪个按键被按下。

    其他模块由于在上一篇文章中已经有过介绍了,这里就不再进行介绍。

    具体程序:

//===================================顶层模块==========================================

module ps2_top(clk,rst,ps2k_clk,ps2k_data,rs232_tx,led,seg,wei);

 input clk;
 input rst;
 input ps2k_clk;//ps2接口时钟
 input ps2k_data;//ps2数据信号
 output rs232_tx;//串口发送
 output led;
 output [3:0] wei;
 output [7:0] seg;
 wire [7:0] ps2_byte;1byte键值
 wire ps2_state;//按键状态标志位
 wire bps_start;//接收到数据后,波特率时钟信号置位
 wire clk_bps;//高电平为采样中间点
 

 
 ps2scan   ps2scan(   //按键扫描模块
         .clk(clk),
         .rst(rst),
         .led(led),
         .ps2k_clk(ps2k_clk),
         .ps2k_data(ps2k_data),
         .ps2_byte(ps2_byte),
         .ps2_state(ps2_state),
         .wei(wei),
         .seg(seg)
        );
     
 speed_select speed_select(   波特率发生模块
          .clk(clk),
          .rst(rst),
          .bps_start(bps_start),
          .clk_bps(clk_bps)
          ); 
 my_uart_tx  my_uart_tx( .clk(clk),  串口发送模块
          .rst(rst),
          .bps_start(bps_start),
          .clk_bps(clk_bps),
          .rs232_tx(rs232_tx),
          .rx_data(ps2_byte),
          .rx_int(ps2_state)          

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值