4×4矩阵键盘EDA设计.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4×4矩阵键盘EDA设计

EDA大作业 主讲人:周旭 黄强 卢自凯 4X4矩阵键盘 目录 设计任务 1 实验结果 5 软件设计 4 实验问题 2 软件设计 3 设计任务 熟悉 4×4 键盘的扫描原理及使用方法; 2.学习用 FPGA扫描控制矩阵键盘; 3. 设计一个矩阵键盘控制器, 并通过数码管 7/8 显示对应的键盘值; 4. 按键接下显示应为 0X,按键松开显示为 FX,其中 X为对应的键值; 系统结构的总体设计 * 实验问题 4×4 键盘与开发板的连接问题; (1)将 JP6KEY8~KEY1 的短路帽取下,然后用 8PIN 排线将 Switch PACK 的 CON2 的KEYIN1~KEYOUT4 与主板上的 JP6 左边排针 KEY8~KEY1 相连,再用杜方线将主板上的3.3V电源引到 Switch PACK上(这时指示灯应该会亮)。 2. 矩阵键盘按键消抖; 键盘扫描电路 * 键盘扫描电路是用于产生keyout4~keyout1信号,其变化的顺序依次是1110-----1101-----1011-----0111-----……周而复始地扫描。其停留在某个状态的时间大约为10ms。更短的停留时间是没有必要的,因为人按键的时间大约为10ms,不可能有更快的按键动作发生;另外,更短的停留时间还容易采集到抖动信号,会干扰判断。而太长的停留时间则会使某些较快的按键东走丢失。 键盘译码电路和按键标志位产生电路 * 键盘译码电路是从keyout4~ keyout1和keyin4~keyin1信号中译码出按键的键值的电路,它的真值表就是以前行扫描信号、列扫描与按键位置的关系图。按键标志位产生电路是产生按键标志位信号keypressed的电路。由于这两个电路关系紧密,因此放入同一个模块中实现。clk在系统中的频率是最高,其他时钟都是它的分频产生。keyout为键盘扫描信号,keyin为键盘输入信号,keyvalue为键值(代表按键所在的位置),keypressed表示有一个按键被按下,每发生一次按键动作,keypressed就输出一个宽度为全局时钟周期的正脉冲。该信号用于与其他模块握手,负责通知其他模块键盘是否有按键发生。其他模块在keypressed有效时,可以读取键值。 硬件设计 4x4矩阵键盘原理图 刚开始在 KEYOUT[4:1]输出 1110(KEYOUT1 输出低电平),延时一段时间后读取 KEYIN 的状态,由于 KEYIN 接有上拉电阻,平时无按键时值为 1111,若读取的值不为1111,则说明 S1、S5、S9、S13 有按键按下,KEYIN1-KEYIN4 的每一位对应一个按键KEYIN[4:1]的值为 1110,说明 S1 按下);扫描完一行之后继续扫描第二行,KEYOUT[4:1]输出 1101(KEYOUT2 输出低电平),通读取 KEYIN的值可判断 S2、S6、S10、S14按键的状态。同理扫描第三、四行可实现其它按键的状态检测。 * 硬件设计 8段数码管原理图 硬件设计 软件设计 module matrix_keyboard(Clock,nRST,nEN,pEN,INT,KeyVal,KeyIn,KeyOut); input Clock;//系统时钟 input nRST;//同步复位(只有时钟上升沿到来时,才能有效,否则无法对系统完成复位) input nEN;//按键通码使能(触点打开) input pEN;//按键断码使能(触电断开) output INT //按键中断输出 output [7:0] KeyVal; //按键值 reg [7:0] KeyVal; input [3:0] KeyIn;//键盘接口输入 output [3:0] KeyOut;//键盘接口输出 reg [3:0] KeyOut; wire ClkEN; wire Clk4EN; wire [3:0] KeyDone;//按键消抖输出 wire [15:0] nFlag; //下降沿标志 wire [15:0] pFlag;//上降沿标志 wire nINT;//通码中断 wire pINT;//断码中断 reg [3:0] Dout1,Dout2,Dout3;//寄存器 reg [15:0] KeyTmp1; reg [15:0] KeyTmp2; reg [31:0] ClkCount;//时钟计数器 reg [1:0] Cnt4;//CNT4 4进制加法计算器 软件设计 parameter CmpCnt = 100000;//消抖时钟分频系数=0.002*系统时钟频率 always @(posedge Clock)//系统时钟分频,将系统时钟时间

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档