利用键盘控制数码管进行十进制数字显示.docVIP

利用键盘控制数码管进行十进制数字显示.doc

  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文档。上传文档
查看更多
利用键盘控制数码管进行十进制数字显示

一、课程设计目的 1、学习操作数字电路设计实验开发系统,掌握数码管显示模块的工作原理及应用。 2、掌握组合逻辑电路、时序逻辑电路的设计方法。 3、学习掌握可编程器件设计的全过程。 二、课程设计内容和要求 2.1、设计内容 1、学习掌握键盘控制模块、数码管显示模块的工作原理及应用; 2、熟练掌握VHDL编程语言,编写键盘控制模块的控制逻辑。 2.2、设计要求 1、仿真所编写的程序,模拟验证所编写的模块功能; 2、下载程序到芯片中,硬件验证所设置的功能,能够实现十六进制数的显示; 3、整理设计内容,编写设计说明书。 三、?课程设计方案及实现情况 3.1、设计思路 1、首先设计一个可以实现时序产生信号的电路; 2、其次设计一个可以实现键盘扫描的电路; 3、再次设计一个可以实现键盘翻译及显示的电路; 4、最后将3个模块电路组合成具有实用功能的整合电路。 3.2、工作原理及框图 1、键盘原理 键盘电路网络很像一台微缩的计算机,它拥有自己的处理器和在该处理器之间传输数据的电路,这个电路的很大一部分组成了键矩阵。键矩阵是位于键下方的一种电路网格。在所有的键盘(中,每个电路在每个按键所处的位置点下均处于断开状态。当您按下某个键时,此按键将按下了开关,从而闭合电路,使得少量电流可以通过。开关的机械作用会导致某种振动(称作回弹),处理器可以过滤掉这种振动。如果您按下某键并保持住,则处理器认为您是在反复按下该键。 2、键盘中按键的判断 对于键盘中有无键按下的判断是很重要的,具体判断如下:将全部行线置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与行线相交叉的按键之中。若所有列线均为高电平,则键盘中无键按下。在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与低电平的行线交叉处的按键就是闭合的按键。 图 1 键盘的基本电路图 3、键盘按键对应的编码表如下 SEL2-SEL0 KIN3-KIN0 对应按键 000 1110 0 000 1101 6 001 1110 1 001 1101 7 010 1110 2 011 1110 3 100 1101 8 101 1101 9 110 1110 4 111 1110 5 图 2 键盘控制编码表 3.3、各模块功能描述 时钟模块 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity dclk is port(clk:in std_logic; divclk:out std_logic); end dclk; architecture dclk_arch of dclk is begin process(clk) variable cnt:std_logic_vector(1 downto 0); variable a:std_logic; begin if clkevent and clk=1 then if a=0 then if cnt=11 then a:=1; else cnt:=cnt+1; end if; elsif a=1 then if cnt=00 then a:=0; else cnt:=cnt-1; end if; end if; end if; divclk=a; end process; end dclk_arch; 键盘扫描模块 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; e

文档评论(0)

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

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

1亿VIP精品文档

相关文档