EDA课设报告(哈理工荣成).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
哈 尔 滨 理 工 大 学 荣 成 学 院 EDA 课程设计 题目:矩阵键盘控制电路设计 班级: 姓名: 学号: 目录 一、设计任务 1 二、方案选择 1 三、实现方案与电路原理图 2 四、引脚分配表 5 五、关系表 5 六、总体设计 6 七、软件设计源程序及实验现象 6 八、总结 11 一、设计任务 矩阵键盘实验1:向用户介绍矩阵键盘扫描实现的方法,;把相应的键值显示在数码管 二、方案选择 (1)矩阵键盘基础知识 在许多数字系统中,经常采用按键系统的输入方式之一,为系统提供数据输入或者命令输入。当按键数目交多少时,把每一个按键连接到键盘矩阵中行和列的交叉点,如下图所示,一个4*4行列结构可构成有16个按键的矩阵。 开发板上设计了行列式矩阵编码键盘,规模为4*4,可作为外部输入。采用矩阵编码可以减少对I/O口的占用。开发板上的矩阵编码键盘有4条行线,4条列线。行线和列线的交又处不直接连接,而是通过一个按键加以连接。这样就构成了4*4=16个按键输入,比直接将信号线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。 矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,如图列线通过电阻接正电源,并将行线所接的FPGA、CPLD的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可以得知是否有键按下了。 (2)行扫描法的基础知识 行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法。 第一种(列扫描): 1、判断键盘中有无键按下:将全部行线Y0-Y3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无按键按下。 2、判断闭合键所在的位置:在确认有键按一下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交义处的按键就是闭合的按键。 第二种:本设计中采用(行扫描) 1、等待按键并识别按键位置:按一定的频率用低电平循环扫描行线Y0-Y3,同时检测列线的状态,一旦判断有一列为低则表示有键被按下,停止扫描并保持,当前行线的状态,再读取列线的状态从而得到当前按键的键码。 2、等待按键弹起:检测到各列线都变成高电平后,重新开始扫描过程,等待下一次按键。 三、实现方案与电路原理图 图1-1 Cyclone Ⅳ (EP4CE15F17C8N)局部图 图1-2 矩阵键盘引脚图 图1-3 一位数码管电路图 图1-4 一位数码管引脚图(一) 图1-4 一位数码管引脚图(二) 图1-5 Cyclone Ⅳ (EP4CE15F17C8N)内部电路图 四、引脚分配表 图1-6 引脚分配表截图 五、关系表 表1-6 扫描信号和列线按键输入信号与按键之间的关系表 六、总体设计 系统结构的整体设计: 由行列式键盘原理就可以知道,要找正确的完成键盘输入工作必须有按键扫描电路产生keydrv3~keydrv0信号。同时还必须有按键译码电路keydrv3~keydrv0信号和keyin3~keyin0信号中译码出按键的值。此外,一般还需要一个按键发生信号用于和其他模块接口,通知其他模块按键上有按键动作发生,并可以从按键上读取按键的键值。由于各个模块需要的时钟频率是不一样的,因此时钟产生模块就是用于产生各个模块需要的时钟信号。因此得到接盘接口电路的结构如上图所示。 七、软件设计源程序及实验现象 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY KEYSCAN IS PORT ( clk : IN std_logic; rst : IN std_logic; row : OUT std_logic_vector(3 DOWNTO 0); -- 行线 column : IN std_logic_vector(3 DOWNTO 0); -- 列线 dataout :

文档评论(0)

celkhn5460 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档