ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:110.64KB ,
资源ID:7503390      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7503390.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(按键去抖课程设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

按键去抖课程设计.docx

1、按键去抖课程设计摘 要为了解决 FPGA/ CPLD 系统的按键抖动问题, 用 VH DL 语言有限状态机的方法, 在 S0 状态下检测到有按键操作则转入延时状态 S1 ,延时结束后, 用状态 S2 , S3 , S4 对按键进行连续三次取样,如果三次取样均为低电平, 则转入状态 S5并输出按键确认信号,否则, 返回状态 S0。电路经仿真分析, 并下载到, EPM7128ATC100 芯片进行了验证, 能够确保每次按键操作,产生一次按键确认, 有很好的按键消抖效果, 性能稳定。主要创新点是用VHDL语言有限状态机设计按键的消抖。关键词:按键消抖; 电路仿真; VH DL;状态机第一章 EDA技

2、术简介随着电子技术和计算机技术的飞速发展,电子线路的设计工作也日益显得重要。经过人工设计、制作实验板、调试再修改的多次循环才定型的传统产品设计方法必然被计算机辅助设计所取代,因为这种费时费力又费资源的设计调试方法既增加了产品开发的成本,又受到实验工作场地及仪器设备的限制。为了克服上述困难,加拿大Interactive Image Technologies公司推出的基于Windows 9598NT操作系统的EDA软件(Electronics Workbench“电子工作台”,EWB)。他可以将不同类型的电路组合成混合电路进行仿真。EWB是用在计算机上作为电子线路设计模拟和仿真的新的软件包,是一个

3、具有很高实用价值的计算机辅助设计工具。目前已在电子工程设计等领域得到了广泛地应用。与目前流行的电路仿真软件相比较,EWB具有界面直观、操作方便等优点。他改变了有些电路仿真软件输入电路采用文本方式的不便之处,该软件在创建电路、选用元器件的测试仪器等均可以直接从屏幕图形中选取,而且测试仪器的图形与实物外形基本相似,从而大大提高了电子设计工作的效率。此外,从另一角度来看,随着计算机技术和集成电路技术的发展,现代电子与电工设计,已经步入了电子设计自动化(EDA)的时代,采用虚拟仿真的手段对电子产品进行前期工作的调试,已成为一种发展的必然趋势。通过对实际电子线路的仿真分析,从而提高对电路的分析、设计和创

4、新能力。第二章 按键去抖设计要求按键开关是电子设备实现人机对话的重要器件之一。由于大部分按键是机械触点, 在触点闭合和断开时都会产生抖动。为避免抖动引起误动作造成系统的不稳定,就要求消除按键的抖动, 确保按键每按一次只做一次响应 1, 2 。随着可编程逻辑器件的综合性能的不断提高,它已经象单片机一样, 广泛应用在各种数字逻辑领域。用可编程逻辑器件直接获取键盘信息也得到广泛的应用。这里提出用VHDL 语言编程的有限状态机的设计方法来实现按键的消抖, 经仿真分析和下载实现,这种方法设计的消抖电路能够很好地实现电路功能,进行快速按键时都能保证每按一次做一次的响应, 且性能稳定。本课程设计的具体要求如

5、下: (1) 设计一个4路独立键盘输入电路,读取键盘的键值并通过发光二极管显示出来。(2) 输入为时钟信号CLK(50MHz),按键状态KEY1,KEY2,KEY3,KEY4。(3) 输出为D1,D2,D3,D4。根据按键的状态控制发光二极管的亮灭。第三章 按键去抖分析按键消抖的关键是提取稳定的低电平(或高电平) 状态, 滤除按键稳定前后的抖动脉冲。在用基于VHDL 语言的时序逻辑电路设计按键消抖电路时, 可以用一个时钟脉冲信号对按键状态进行取样,当第一次采样到低电平时,启动延时电路,延时结束后,再对按键信号进行连续三次取样, 如果三次取样都为低电平,则可以认为按键已经处在稳定状态, 这时输出

6、一个低电平的按键确认信号,如果连续三次的取样中, 至少有一次是高电平,则认为按键仍处在抖动状态, 此时不进行按键确认,按键输出信号为高电平。第四章 按键去抖设计方案按键消抖一般采用硬件和软件消抖两种方法。硬件消抖是利用电路滤波的原理实现,软件消抖是通过按键延时来实现。在微机系统中一般都采用软件延时的消抖方法。在用可编程逻辑器件FPGA/ CPLD 设计数字系统中, 也可以用 VHDL 语言设计相应的时序和逻辑电路,对按键信号进行处理,同样可以达到消抖目的。本文利用Altera公司的可编程逻辑器件CPLD 和Quartus,设计性能可靠的按键消抖电路。该控制电路采用VH DL 语言的有限状态机的

7、设计法来描述和实现, 其状态转换图如图1所示。图1 按键去状态转换图电路的复位信号 Reset 有效时,电路进入复位状态S0 ,在S0 状态下时钟信号CLK 以一定的频率采样按键输入信号Key in,如果采样到Key in= 1 则停留在S0状态,并继续采样按键输入信号的状态,一旦采样到输入信号是低电平,即Key in= 0 ,则转入S1 延时状态,进行消抖延时,当延时结束时Delay end= 1 ,则转入在S2 状态,在此状态下时钟信号 CLK 以一定频率采样按键输入Key in 的状态,如果采样到 Key in 为高电平即Key in= 1 则转回状态 S0 ,表示按键仍处在抖动状态,如

8、果采样到Key in= 0 , 则转入状态 S3 ; 状态S3 , S4 的转换过程和条件跟 S2 相同, 在 S4 状态下, 如果Key in= 0则转入 S5 状态, 当到达状态S5 时,表示经过S2 , S3 , S4 三个连续状态检测按键输入 Key in的状态都为0 ,则认为按键处在稳定状态, 并在 S5 输出按键确认信号 Key conf i rm= 1 。同时在状态 S5下时钟信号CLK 检测按键输入状态,当检测到按键输入Key in= 0 ,表示按键仍未释放, 则停留在S5 继续检测按键输入信号状态,如果检测到Key in= 1 , 表示按键已经释放, 则转回状态 S0 , 等

9、待下一次按键操作。第五章 按键去抖模块5.1 去抖动电路模块clk:时钟,reset:复位信号,din:按键信号输入,dout:按键去抖动信号输出。由于按键抖动的时间一般为5到10ms,因此输入时钟clk使用200Hz时钟脉冲(周期为5ms),即5ms采样一次按键信号,当连续两次采样到的按键信号都为低电平时,认为按键稳定的按下。在按键稳定按下后,采样到按键为高电平时,认为按键释放5.2 去抖动电路模块程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arit

10、h.all;entity debounce is port( clk,reset:IN std_logic; din: IN std_logic; dout: OUT std_logic ); end debounce; architecture a of debounce is type state is (s0,s1,s2); signal current: state; begin process(clk,reset,din) begin if(reset=1) then current = s0; dout dout = 1; if(din=0) then current =s1; e

11、lse current dout =1; if(din=0) then current = s2; else current dout =0; if(din=0) then current = s2; else current dout =1; current =s0; end case; end if; end process; end a;5.3 按键扫描模块输入信号:clk:时钟,50MHz;reset:复位信号;key1, key2, key3, key4:按键信号输入。输出信号:led1, led2, led3, led4:发光二极管信号输出。5.4 按键扫描程序第六章 按键去抖的顶

12、层原理图设计6.1 顶层原理图的源文件6.2顶层原理图的时序仿真图消抖电路的仿真图如上图所示。当复位信号Reset= 0 时, 状态机Key 处在S0 状态, 同时以 CLK的时钟频率采样按键输入信号 Din 的状态, 当 CLK第一次采样到Din 为低电平时,此时可能发生了按键操作, 随即状态机Key 进入 S1 消抖延时状态,当延时结束时delay end= 1 (延时结束信号) ,跟接着状态机KEY 的S2 , S3 , S4 连续三个状态对按键输入信号Din进行采样,当三个状态下采样到Din 信号都是低电平, 则转入S5 状态,并产生按键确认信号Key conf irm=1 ,同时在

13、S5 状态下等待按键释放, 在此状态下当CLK 时钟信号检测到Din 为高电平时转回状态S0。因按键释放瞬间也会发生抖动, 所以由波形图可以看出当按键释放瞬间由状态 S5 转回状态S0 , 在S0 状态下因按键抖动CLK 时钟又检测到Din 为低电平, 随即转入S1 进行消抖延时, 经过 S1 的消抖延时后, 按键已经稳定, Din 为稳定的高电平, 所以在状态S2 检测到Din为高电平,则转入 S0 状态, 到此时完成一次按键的操作, 等待下一次按键操作,如果没有按键操作,即按键没按下,则一直保持在状态 S0。第七章 学习心得本次的EDA课程设计历时一个星期,时间虽短,但通过一个星期的实践,使我对EDA技术有了更进一步的了解。同时,大致懂得了一个课题制作的具体流程和实施方法。另外,课程设计对Quartus软件的使用要求较高,从而使我能较为熟练的运用此软件。在设计时,采用模块化的设计思路使得问题变的简单明了,大大缩短了时间,降低了发生错误的机侓,也便于修改和更新。课程设计中,需要找很多资料,在当今的信息化环境中,虽然资料很多,但需要仔细斟酌才能找到所要的。这次的课程设计很好的锻炼了这种能力。此外,与同学和老师的交流必不可少,我从中也学到了不少东西。课程设计是一次很好的锻炼机会,我从中学的很多知识对将来的学习和工作都有很大的帮助,十分感谢学校能提供这样一个机会。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1