



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验五 按键消抖一. 实验目的1. 掌握QuartusII的硬件描述语言设计方法2. 了解同步计数器的原理及应用3. 设计一个带使能输入、进位输出及同步清零的增1四位N (N16)进制同步计数器二. 准备知识在按键使用的过程中,常常遇到按键抖动的问题,开关在闭合(断开)的瞬间,不能一接触就一直保持导通(断开),因为开关的机械特性,重要经历接触断开再接触再断开,最终稳定在接触位置,这就是开关的抖动,即虽然只是按下按键一次然后放掉,结果在按键信号稳定前后,竟出现了一些不该存在的噪声,这样就会引起电路的误动作。在很多应用按键的场合,要求具有消抖措施。按键抖动与开关的机械特性有关,其抖动期一般为5-10ms。图5.1 按键电平抖动示意图按键的消除抖动分为硬件消除抖动和软件消除抖动。硬件消除抖动一般采用滤波的方法,通常在按键两端并联一个110u左右的电容,有时这样也不能完全消除按键的抖动。软件消除抖动的方法有多种,常用的是延时扫描和定时器扫描。延时扫描其原理为:检测到按键操作后延时一端时间(如10ms)后,再检测是否为仍然为同样的按键操作状态,如果相同,就认为是进行了按键操作,然后对该操作进行相应的处理。定时器扫描的原理是:每隔一端时间(几毫秒)扫描一次键盘,如果连续两次(或3次)的所获得的按键状态相同,就输出按键状态,然后再对这种按键状态进行处理,这里的扫描时间间隔和连续判断按键状态的次数是有关系的,一般总时间要大于按键的抖动期。如果总时间太长,则感觉按键迟钝,太短可能不能完全消除抖动,要根据实际的情况合适的选择。在实际电路设计中,经常采用的是软硬件相结合对按键进行消除抖动的处理方法。本实验采用的方法:实验箱按键的硬件电路是共阳极电路,按下按键时输出到FPGA管脚的电平为低电平,松开按键时为高电平。我们采用5ms的定时器扫描FPGA管脚电平,如果连续3次为低电平时,存储连续按键状态的次数CNT的值加1,直到该计数值等于10(或再大一些),就不再累加(防止长按该值溢出而重新计数),此时认为按键已稳定,输出按键操作标志;在该过程中,一旦FPGA管脚电平为低电平就对CNT复位清零并同时对按键操作标志位复位,即一个异步复位。本实验采用的方法:实验箱按键的硬件电路是共阳极电路,按下按键时输出到FPGA管脚的电平为低电平,松开按键时为高电平。我们采用5ms的定时器扫描采样FPGA管脚电平,如果连续3次为低电平时,可以认为此时按键已稳定,输出一个低电平按键信号;继续采样的过程中如果不能满足连续3次采样为低,则认为键稳定状态结束,这时输出变为高电平(连线3次采用信号相“或”),认为按键松开。其原理图如图5.2所示。时间间隔可以更小、采样次数更多效果可能会更好,但是增加了硬件的复杂度和资源利用。图5.2 按键抖动硬件原理图本实验的思路为:用按键消抖与不消抖的信号,分别当作时钟信号触发16进制计数器,计数结果用数码管静态显示,比较按键消抖与不消抖的区别。三. 实验步骤1、 新建工程antiwobble新建文件夹,并在该文件夹下新建工程。2、 编写硬件描述语言文件将图3.2所示的电路用语言描述出来,并扩展多个通道(多路按键输入,多路消抖信号输出)。文件名为debounce,并封装生成模块符号文件。编写16进制计数器文件CNT16,并封装生成模块符号文件,或添加兆功能计数器模块实现16进制的计数器。编写译码电路文件DECODE7,并封装生成模块符号文件。添加计数器分频模块DIV200Hz,我们需要周期为5ms的时钟信号,故分频次数。最后生成顶层原理图文件antiwobble如图5.3所示。图5.3 按键消抖顶层模块说明:48MHz的系统晶振时钟频率经模240,000的计数器,得到的进位cout,其频率为200Hz,也可以使用其计数值的最高位Q17作为消抖模块的时钟信号。二者的区别是占空比不同。消抖模块“debounce”使用了参数传递说明语句,以关键词GENERIC引导一个类属参量表,在表中提供总线宽度等静态信息。类属表说明用于设计实体和外部环境通信的参数和传递信息。GENERIC语句在所定义的环境中的地位与常数相似,但却能从环境(如外部实体)外部动态地接受赋值,其行为又类似于端口PORT。其使用本实验见参考程序。在类属表的“KEY_WIDTH”参数的“Value”栏设为1,就是对一个按键进行消抖处理。这时其模块输入输出管脚key_in、key_out为1位的逻辑位信号而非总线信号,但其模块间连线可以是总线连线(粗线),也可以是节点连线(细线)。在debounce程序中,尽管设定了位宽KEY_WIDTH=8,但是在顶层文件中调用该模块时,可以重新更改其位宽设置,编译时以顶层文件的设置进行编译。尽管在debounce程序中设置的位宽在顶层文件中无效,但必须进行设置,否则debounce文件封装生成模块符号文件时会报错。Key1经过消抖处理,作为时钟信号触发计数器CNT16,而key2则位经过消抖处理。3、 编译、锁定管脚、再编译指定antiwobble原理图文件为顶层文件。为了方便锁定管脚,我们先进行编译,发现错误进行纠正,直至成功为止。锁定管脚(管脚表)再编译,把管脚锁定的信息编译到下载文件中去。4、 下载连接电源,进行下载观察按键key1和key2进行操作时,计数器变化结果的区别,以认识按键存在抖动以及对按键需要进行消抖处理才能使用正常。四. 实验参考程序程序清单 debounce.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_Arith.ALL;USE IEEE.STD_LOGIC_Unsigned.ALL;ENTITY debounce ISGENERIC(KEY_WIDTH:Integer:=8); -参数传递说明语句PORT(clk:IN STD_LOGIC; -系统时钟输入key_in:INSTD_LOGIC_VECTOR(KEY_WIDTH-1 DOWNTO 0);-外部按键输入key_out:OUT STD_LOGIC_VECTOR(KEY_WIDTH-1 DOWNTO 0) ); -按键消抖输出END;ARCHITECTURE one OF debounce ISSIGNAL dout1,dout2,dout3:STD_LOGIC_VECTOR(KEY_WIDTH-1 DOWNTO 0);BEGINkey_out=dout1 OR dout2 OR dout3;-按键消抖输出PROCESS(clk)BEGINIF RISING_EDGE(clk)THEN -上升沿触发dout1=key_in; -寄存dout2=dout1;dout3=dout2;END IF;END PROCESS;END one;说明:key_out=dout1 OR dout2 OR dout3;是3个信号“或”。对总线数据而言,相同的位进行“或”把运算后的结果赋值给输出的相同位。即key
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届山东省安丘市红沙沟镇红沙沟中学九年级化学第一学期期中联考试题含解析
- 2026届湖北襄阳五中学实验中学化学九上期中教学质量检测试题含解析
- 2025年教师资格证考试(高中化学)教育知识与能力专项试题
- 2026届北京市通州区九级化学九年级第一学期期末达标检测模拟试题含解析
- 矿山开采项目地质勘查与施工承包合同规范
- 离婚后财产分配及子女监护权调整协议模板
- 离婚后房产及子女抚养权分割补充协议
- 二手房租赁合同中租赁房屋租赁权转让及条件合同
- 专利法考试题目及答案
- 2026届安徽省寿县化学九上期末预测试题含解析
- 《中国近现代史纲要》 课件 第十一章 中国特色社会主义进入新时代
- 《最优化方法》研究生配套教学课件
- EN61238-1额定电压36kV电力电缆用压接和机械连接器 试验方法和要求
- 专利法全套ppt课件(完整版)
- 自动插件机操作指导书
- 2020年全球森林资源评估
- 培智三年级上册生活数学全册教案
- 高考作文卷面书写
- 三效并流蒸发器的换热面积计算
- 船舶驾驶台资源管理bridge team management
- 心律失常介入培训教材课后练习及答案
评论
0/150
提交评论