VHDL4*4键盘按键循环显示下载

weixin_39821051 2020-02-23 11:30:19
1)输入设备为4*4矩阵键盘,分别代表0~F;
2)输出设备为四位数码显示管,初始值显示0000,当按下某一键时,最右边的一位数码显示管显示最新一次所按按键的数值,而之前的显示值左移,例如,第一次按‘1’键,则显示0001;第二次按‘3’键,则显示0013;第三次按‘5’键,则显示0135;第四次按‘7’键,则显示1357;第五次按‘9’键,则显示3579,第四次按‘F’键,则显示579F等等;
相关下载链接://download.csdn.net/download/danielsmike/1198181?utm_source=bbsseo
...全文
36 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
随着社会物质财富的日益增长,安全防盗已成为人们所关注的焦点。然而传统机械弹子 锁安全性低,密码量少且需时刻携带钥匙使其无法满足一些特定场合的应用要求,特别 是在人员经常变动的公共场所,目前使用的电子密码锁主要有两个方案:一是基于单片 机用分立元件实现的,二是通过现代人体生物特征识别技术实现的,前者电路较复杂且 灵活性差,无法满足应用要求;后者有其先进性但需考虑成本和安全性等诸多因素。基 于此,本文设计了一种新型电子密码锁,采用FPGA芯片,目前以硬件描述语言(Verilo g 或 VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AN D、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的F PGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加 完整的记忆块。 FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗 更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的 错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片 有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转 移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。 1 系统功能描述   本设计主要实现以下六个功能:   (1)初始密码设置:系统上电后输入4位数字并按"*"后密码设置成功系统进入 上锁状态。为了实际需要,系统另设置了一个4位数的优先级密码,当用户忘记密码或被 他人更改密码后,可以用优先级密码清除所设密码。   (2)密码更改:为了密码安全与避免误操作,只能在开锁状态下先输入旧密码 后才能更改系统密码,然后输入4位新密码后按"*"。   (3)解锁:输入密码或优先级密码后按"#",系统即解锁。   (4)密码保护:密码输入错误时,系统自动记录一次错误输入,当错误输入次 数等于3次时,系统报警并使键盘失效5分钟,以免密码被盗。   (5)清除输入错误:当输入数位小于4位时可以按"*"清除前面所有的输入值, 清除为"0000"。   (6)系统复位:按"*"和"#"后系统即复位到初始状态。考虑到实际情况,系统 只在密码更改状态和系统初始状态下才能复位。 2 系统设计思路   VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件 特征的语句外,VHDL的语言形式、描述风格以与语法是十分类似于一般的计算机高级语 言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电 路模块或一个系统)分成外部(或称可视部分,与端口)和部(或称不可视部分),既 涉与实体的部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其部开 发完成后,其他的设计就可以直接调用这个实体。   本文采用自顶向下的模块化设计方法,先对系统级进行功能描述,再进行功能模 块的划分,最后分别对各个子模块进行VHDL建模。所设计的电子密码锁系统结构如图1所 示。 键盘消抖 键盘编码 输入处理 显示 系统控制 键盘矩阵 时钟与扫描 图1 系统结构图  2.1 时钟产生模块   此模块主要功能是产生时钟信号和键盘扫描信号。主要产生三个时钟信号(16 Hz、64 Hz、100 kHz),分别为系统各个功能模块提供时钟驱动信号。其中键盘扫描模块包括在时钟产生 模块中,用来产生扫描信号。由于要产生多个时钟信号。 密码输入一般采用机械式和触摸式两种键盘。由于机械式键盘具有成本低、结构简单 、可靠性高、应用广泛等优点,其按键分布与键值编码如图2所示。其中'*'、'#'为多功 能组合键。键盘扫描电路用来产生扫描信号KH,其按照1110-1101-1011- 0111的规律循环变化,并通过KC来检测是否有键按下。其他键也是类似原理。特别值得 注意的是键盘扫描电路扫描时钟的确立,如果扫描时钟不合适,将产生键按下时反应太 慢,或KC产生错误的输出。  2.2 按键消抖模块   本设计采用机械键盘,其缺点是易产生抖动,因此键盘输出KC[20]必须经过消抖 电路后才能加入到键盘编码模块,以避免多次识别。此模块采用状态机设计,其状态转 换图如图3所示。只有当连续检测到3次低电平输入,模块才输出一次低电平。消抖电路 的时钟选择很关键,选择不当则不能正常工作。因为键盘扫描电路的时钟是16 Hz且扫描信号为4组循环输出,所以消抖电路要能够在4个键盘扫描时钟检测出是否有键 按下就必须设置其时钟信号至少为键盘扫描时钟的4倍。 2.3 键盘编码模块   上述的键

12,870

社区成员

发帖
与我相关
我的任务
社区描述
CSDN 下载资源悬赏专区
其他 技术论坛(原bbs)
社区管理员
  • 下载资源悬赏专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧