加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSSRSS-巴斯仪表网
您当前的位置:首页 > 设计中心 > 可编程逻辑器件

基于RS232行列式矩阵键盘接口的设计方案

时间:2014-04-29  来源:123485.com  作者:9stone

  一、引言

  本方案是用VHDL语言来实现的基于RS232按位串行通信总线的行列式矩阵键盘接口电路,具有复位和串行数据的接收与发送功能,根据发光二极管led0-led2的显示状态可判断芯片的工作情况;实现所有电路功能的程序均是在美国ALTERA公司生产的具有现场可编程功能的芯片EPM7128SLC84-15上调试通过的。能通过动态扫描来判有键按下、将键值转换成对应的ASCII码值,在时钟脉冲的作用实现串行数据的接收与发送。

  二、设计方案

  1.芯片引脚定义

  键盘接口芯片

  reset复位输入端;clk时钟输入端;rxd串行数据接收端;retn0-retn7键盘扫描行输入线;txd串行数据发送端;scan0-scan7键盘扫描列输出线;led0-led2显示输出端。

  2.键盘与芯片的连接图(如图2所示,为8×8的64键键盘)

  3.动态扫描原理

  (1)依次使列线scan0-scan7输出0电平,检查行线retn0-retn7的电平状态。如果行线retn0-retn7的电平全为高电平,表示没键按下。如果retn0-retn7上的电平不全为高电平,表示有键按下。

  键盘与芯片的连接图

  (2)如果没键按下,就返回扫描。有键按下则进行逐行扫描,找出闭合键的键号。其过程是:先使scan0=0,scan1-scan7=1,检测retn0-retn7上的电平,如果retn=0,则表示第一行第一列的键被按下,如果retn1=0,则表示第二行第二列的键被按下,其它依次类推;如果retn0-retn7均不为0,则表示这一列没键按下;然后再使scan1=0,检测第二列按键,这样一直循环下去,知道把闭合的键找到为止。

  当有键按下时,根据该时刻的scan值和retn值就可判断按下的是哪一个键。

  4.芯片内部模块框图

  芯片内部模块框图

  三、芯片设计

  数据接收模块框图如图4所示。

  数据接收模块框图

  Reset复位输入端;clk时钟输入端;rxd串行数据接收端;led[20]输出按下键对应的ASCII码值的低三位去驱动发光二极管。

  该模块实现对串行数据的接收记数和串并变换的控制功能。

  1.串行数据接收控制单元

  串行数据接收控制单元

  Reset 复位输入端;clk 时钟输入端;rxd 串行数据接收端;sh_rx[30]接收计数器高4位;sl_rx[10]接收计数器低2位。

  将串行数据接收计数器设置位一个6位计数器,高4位为sh_r,低2位为sl_r,利用该计数器的状态实现串行数据的同步控制和记数控制。

  2.串并转换电路单元

  从RXD端接收的串行数据进经过串并变换后,将其低三位经LED输出端输出,驱动发光二极管LED0,LED1,LED2发光,从而显示接收端RXD的每个数据的低三位。当每个数据的低三位相同时,显示状态就不变化,否则就出现闪烁现象,以此来检查芯片的工作情况。

  四、总结

  本方案是用VHDL语言来实现的基于RS232按位串行通信总线的行列式矩阵键盘接口电路的设计,具有复位和串行数据的接收与发送功能,根据发光二极管led0-led2的显示状态可判断芯片的工作情况;实现所有电路功能的程序均是在美国ALTERA公司生产的具有现场可编程功能的芯片EPM7128SLC84-15上调试通过的。该电路的设计贴近生活,实用性强,制成芯片后可作为一般的PC机键盘与主机的接口使用。

分享到:
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
栏目导航->可编程逻辑器件
  • 可编程逻辑器件
  • 传感器技术
  • 推荐资讯
    使用普通运放的仪表放大器
    使用普通运放的仪表放
    3V与5V混合系统中逻辑器接口问题
    3V与5V混合系统中逻辑
    数字PID控制及其改进算法的应用
    数字PID控制及其改进
    恶劣环境下的高性价比AD信号处理数据采集系统
    恶劣环境下的高性价比
    栏目更新
    栏目热门