VHDL语言按键去抖动电路的设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
clk reset key 3
INPUT VCC
dout
din inst9 debounce clk reset dout
该设计包含分频模块、 该设计包含分频模块、去抖 动模块和按键扫描模块组成。 动模块和按键扫描模块组成。
key 4
INPUT VCC
din inst10
按键扫描程序
--key1按下 按下
注:由于按键抖动的时间一般为5到10ms,因此输入时钟 clk使用200Hz时钟脉冲(周期为5ms),即5ms采样一次按 键信号,当连续两次采样到的按键信号都为低电平时,认 为按键稳定的按下。在按键稳定按下后,采样到按键为高 电平时,认为按键释放。
去抖动电路VHDL程序
--200HZ时钟 时钟
--定义状态机类型 定义状态机类型state 定义状态机类型
50MHz
clk
INPUT VCC
Parameter Value Type n 250000 Signed Integer
f div 200hz clkin clkout
Parameter Value Type n 5000000 Signed Integer
f div 10hz clkin clkout
去抖动电路设计原理
设计原理: 滤除前沿和后延抖动毛刺,提取稳定的按键信息。 设计方法: 对一个按键信号,对它进行取样,如果连续两次 取样都为低电平,则认为信号已经处于稳定状态, 这时输出一个低电平的按键信号。否则只要有一 次取样不为低电平,则认为是抖动,将其丢弃。
设计方法
可以用一个状态机来设计这个去抖电路。
分频器1 分频器
(20ຫໍສະໝຸດ Baiduhz,5ms) , )
inst inst1
分频器2 分频器
(10hz,100ms) , )
ctrl
debounce clk10hz clk reset key 1
INPUT VCC INPUT VCC
led1 led2 led3 led4
OUTPUT OUTPUT OUTPUT OUTPUT
--状态机复位,dout输出信 状态机复位, 状态机复位 输出信 号复位。 号复位。
--按键按下 按键按下
--按键按下 按键按下
--按键释放 按键释放
仿真结果
S0
S1
S0
S0
S1
S2
S2
S0
维持3个周期的低电平时 变成低电平, 当din维持 个周期的低电平时,dout变成低电平,表示有 维持 个周期的低电平时, 变成低电平 按键按下。 按键按下。
--key2按下 按下
--key3按下 按下
--key4按下 按下
--没有键被按下 没有键被按下
仿真结果
c lk res et key 1 key 2 key 3 key 4
ins t
led1 led2 led3 led4
clk:时钟,50MHz; :时钟, ; reset:复位信号; :复位信号; key1, key2, key3, key4:按键信号 : 输入; 输入; 输出信号: 输出信号: led1, led2, led3, led4:发光二极管 : 信号输出。 信号输出。
x/y:表示输入和输出。‘/’左侧的为输入信号,‘/’右侧的为输出 信号。 当按键按下时,为低电平。按键松开后为高电平。
去抖动电路模块
debounce
输入信号: 输入信号:
clk reset din inst dout
clk:时钟; :时钟; reset:复位信号; :复位信号; din:按键信号输入; :按键信号输入; 输出信号: 输出信号: dout:按键去抖动信号输出。 :按键去抖动信号输出。
去抖动电路的应用
设计要求: 设计一个4路独立键盘输入电路,读取键盘 的键值并通过发光二极管显示出来。 输入为时钟信号CLK(50MHz),按键状 态KEY1,KEY2,KEY3,KEY4。 输出为D1,D2,D3,D4。根据按键的状 态控制发光二极管的亮灭。
应用电路模块
key pad
输入信号: 输入信号:
led1 led2 led3 led4
dout
key 1 key 2 key 3 key 4
reset din inst7 debounce clk reset dout
去
inst3
抖 动 电 路 按键扫描 电路
key 2
INPUT VCC
din inst8 debounce
如图所示,为顶层原理图。 如图所示,为顶层原理图。
专题二. 经典模块设计
——按键去抖动电路设 计
按键电平抖动
通常使用的按键都是机械弹性开关,按下时闭合, 通常使用的按键都是机械弹性开关,按下时闭合, 松开后自动断开。 松开后自动断开。 在键盘操作时, 在键盘操作时,在触点闭合和开启的瞬间会出现 电压抖动,如图所示。 电压抖动,如图所示。为了保证按键识别的准确 必须进行去抖动处理,消除抖动部分的信号。 性,必须进行去抖动处理,消除抖动部分的信号。
INPUT VCC
dout
din inst9 debounce clk reset dout
该设计包含分频模块、 该设计包含分频模块、去抖 动模块和按键扫描模块组成。 动模块和按键扫描模块组成。
key 4
INPUT VCC
din inst10
按键扫描程序
--key1按下 按下
注:由于按键抖动的时间一般为5到10ms,因此输入时钟 clk使用200Hz时钟脉冲(周期为5ms),即5ms采样一次按 键信号,当连续两次采样到的按键信号都为低电平时,认 为按键稳定的按下。在按键稳定按下后,采样到按键为高 电平时,认为按键释放。
去抖动电路VHDL程序
--200HZ时钟 时钟
--定义状态机类型 定义状态机类型state 定义状态机类型
50MHz
clk
INPUT VCC
Parameter Value Type n 250000 Signed Integer
f div 200hz clkin clkout
Parameter Value Type n 5000000 Signed Integer
f div 10hz clkin clkout
去抖动电路设计原理
设计原理: 滤除前沿和后延抖动毛刺,提取稳定的按键信息。 设计方法: 对一个按键信号,对它进行取样,如果连续两次 取样都为低电平,则认为信号已经处于稳定状态, 这时输出一个低电平的按键信号。否则只要有一 次取样不为低电平,则认为是抖动,将其丢弃。
设计方法
可以用一个状态机来设计这个去抖电路。
分频器1 分频器
(20ຫໍສະໝຸດ Baiduhz,5ms) , )
inst inst1
分频器2 分频器
(10hz,100ms) , )
ctrl
debounce clk10hz clk reset key 1
INPUT VCC INPUT VCC
led1 led2 led3 led4
OUTPUT OUTPUT OUTPUT OUTPUT
--状态机复位,dout输出信 状态机复位, 状态机复位 输出信 号复位。 号复位。
--按键按下 按键按下
--按键按下 按键按下
--按键释放 按键释放
仿真结果
S0
S1
S0
S0
S1
S2
S2
S0
维持3个周期的低电平时 变成低电平, 当din维持 个周期的低电平时,dout变成低电平,表示有 维持 个周期的低电平时, 变成低电平 按键按下。 按键按下。
--key2按下 按下
--key3按下 按下
--key4按下 按下
--没有键被按下 没有键被按下
仿真结果
c lk res et key 1 key 2 key 3 key 4
ins t
led1 led2 led3 led4
clk:时钟,50MHz; :时钟, ; reset:复位信号; :复位信号; key1, key2, key3, key4:按键信号 : 输入; 输入; 输出信号: 输出信号: led1, led2, led3, led4:发光二极管 : 信号输出。 信号输出。
x/y:表示输入和输出。‘/’左侧的为输入信号,‘/’右侧的为输出 信号。 当按键按下时,为低电平。按键松开后为高电平。
去抖动电路模块
debounce
输入信号: 输入信号:
clk reset din inst dout
clk:时钟; :时钟; reset:复位信号; :复位信号; din:按键信号输入; :按键信号输入; 输出信号: 输出信号: dout:按键去抖动信号输出。 :按键去抖动信号输出。
去抖动电路的应用
设计要求: 设计一个4路独立键盘输入电路,读取键盘 的键值并通过发光二极管显示出来。 输入为时钟信号CLK(50MHz),按键状 态KEY1,KEY2,KEY3,KEY4。 输出为D1,D2,D3,D4。根据按键的状 态控制发光二极管的亮灭。
应用电路模块
key pad
输入信号: 输入信号:
led1 led2 led3 led4
dout
key 1 key 2 key 3 key 4
reset din inst7 debounce clk reset dout
去
inst3
抖 动 电 路 按键扫描 电路
key 2
INPUT VCC
din inst8 debounce
如图所示,为顶层原理图。 如图所示,为顶层原理图。
专题二. 经典模块设计
——按键去抖动电路设 计
按键电平抖动
通常使用的按键都是机械弹性开关,按下时闭合, 通常使用的按键都是机械弹性开关,按下时闭合, 松开后自动断开。 松开后自动断开。 在键盘操作时, 在键盘操作时,在触点闭合和开启的瞬间会出现 电压抖动,如图所示。 电压抖动,如图所示。为了保证按键识别的准确 必须进行去抖动处理,消除抖动部分的信号。 性,必须进行去抖动处理,消除抖动部分的信号。