长按主菜单键会出现输入din密码是eui怎么调出主菜单回事

单片机技术(6)
系统的信号输入中,键盘因其结构简单而被广泛使用。因此,对键盘的输入(逻辑0或1)进行准确采样,避免错误输入是非常有必要的。理想的键盘输入特性如图1所示:按键没有按下时,输入为逻辑1,一旦按下则输入立刻变为逻辑0,松开时输入则立刻变为逻辑1。
图 1理想键盘输入特性
然而实际的键盘受制造工艺等影响,其输入特性不可能如图1完美。当按键按下时,在触点即将接触到完全接触这段时间里,键盘的通断状态很可能已经改变了多次。即在这段时间里,键盘输入了多次逻辑0和1,也就是输入处于失控状态。如果这些输入被系统响应,则系统暂时也将处于失控状态,这是我们要尽量避免的。在触点即将分离到完全分离这段时间也是一样的。实际键盘的输入特性如图2所示:
图 2实际键盘输入特性
我们可以看到:键盘在输入逻辑转换时,实际上是产生了瞬时的高频干扰脉冲。按键消抖的目的在于消除此干扰,以达到接近图1所示的理想输入特性。有两个阶段可以设法消除此干扰:1.在键盘信号输入系统之前(系统外);2.键盘信号输入系统以后(系统内)。
在信号输入系统之前将抖动干扰消除,可以节省系统资源,提高系统对其他信号的响应能力,也就是硬件消抖。一种比较巧妙的硬件消抖电路结构如图3所示:
图 3用基本SR锁存器构成的消抖电路
该电路利用基本SR锁存器的记忆作用消除开关触点振动所产生的影响。开关S每切换一次,输出端只有一次翻转,不存在抖动波形(读者可以根据SR锁存器功能自行分析,此处略)。但是使用SR锁存器消抖只适用于单刀双掷开关,实际应用当中常用的键盘多是两个接线端的按键。对此类按键的常用硬件消抖电路如图4所示:
图 4常用键盘硬件消抖电路
此电路利用电容平波,再经过施密特反相器整形之后就得到了没有毛刺的脉冲波。
软件消抖要占用系统资源,在系统资源充足的情况下使用软件消抖更加简单。软件消抖的实质在于降低键盘输入端口的采样频率,将高频抖动略去。实际应用中通常采用延时跳过高频抖动区间,然后再检测输入做出相应处理。一般程序代码如下:
if(value == 0)
//一旦检测到键值
Delay(); //延时20ms,有效滤除按键的抖动
if(value == 0)
//再次确定键值是否有效
…… //执行相应处理
这段软消抖程序从机理上看不会有什么问题,通常在软件程序不太&繁忙&的情况下也能够很好的消抖并做相应处理。但是如果在延时期间产生了中断,则此中断可能无法得到响应。
对于硬件资源丰富的FPGA系统,可以使用硬件来减轻软件工作量,通常称之为&硬件加速&。在按键信号输入到软件系统前用逻辑对其进行一下简单的处理即可实现所谓的&硬件消抖&,verilog代码如下:
//对输入信号inpio硬件滤波,每20ms采样一次当前值
reg[18:0] //20ms计数器
always @(posedge clk_25m or negedge rst_n)
if(!rst_n) cnt &= 19'd0;
else if(cnt & 19'd500000) cnt &= cnt+1'b1;
else cnt &= 19'd0;
//当前inpio信号锁存,每20ms锁存一拍
always @(posedge clk_25m or negedge rst_n)
if(!rst_n) inpior &= 2'b11;
else if(cnt == 19'h7ffff) inpior &= {inpior[0],inpior};
wire inpio_swin =inpior[0] | inpior[1];
//前后20ms两次锁存值都为0时才为0
该程序中设置了一个20ms计数器,通过间隔20ms对输入信号inpio采样两次,两次相同则认为键盘输入稳定,得到用硬件逻辑处理后的inpio_swin信号则是消抖处理过的信号。软件程序就不再需要delay()来滤波了,也不会出现使用纯软件处理出现的&中断失去响应&的情况了,这就是&硬件加速&的效果。
上述verilog代码采用间隔采样来达到消抖的目的,对于不同物理特性的键盘,最佳的间隔时间采样时间也不同,因此还存在一些不稳定因素。下面介绍一种更好的软消抖程序,同样采用&硬件加速&,不同之处在于使用了有限状态机来实现,其VHDL代码如下:
USE ieee.std_logic_1164.
USE ieee.std_logic_unsigned.
ENTITY xiaod IS
//端口描述:clk
输入检测时钟;reset
复位信号;din
原始按键信号输入;
dout 去抖动输出信号
clk : IN STD_LOGIC ;
reset : IN STD_LOGIC ;
din : IN STD_LOGIC ;
dout : OUT STD_LOGIC
END ENTITY;
ARCHITECTURE RTL OF xiaod IS
TYPE state IS( s0,s1,s2,s3);
SIGNAL pre_s, next_s:
P0:PROCESS( reset, clk )
if reset = '0' then
pre_s &= s0;
elsif rising_edge( clk ) then
pre_s &= next_s;
END PROCESS P0;
P1:PROCESS( pre_s, next_s, din )
case pre_s is
when s0 =&
dout &= '1';
if din = '1' then
next_s &= s0;
next_s &= s1;
when s1 =&
dout &= '1';
if din = '1' then
next_s &= s0;
next_s &= s2;
when s2 =&
dout &= '1';
if din = '1' then
next_s &= s0;
next_s &= s3;
when s3 =&
dout &= '0';
if din = '1' then
next_s &= s0;
next_s &= s1;
END PROCESS P1;
该VHDL代码描述了一个状态机,其状态转换图如图所示:
图 5状态转换图
该状态机有4个状态:S0、S1、S2、S3,其中前3个状态输出高电平,最后一个状态输出低电平。初始状态为S0,设按键未按下时为高电平,按下则为低电平。在按键按下到完全生效期间有一系列的抖动,对于持续时间为1-2个时钟周期的低电平抖动将被消除,对于持续时间为3个或以上时钟周期的低电平则认为按键有效,输出一个时钟周期的低电平脉冲(读者可以根据状态转换图画出相应的时序图进行分析)。如果持续输入为低电平,则每隔两个时钟周期输出一个低电平,此时认为按键处于&长按&输入状态,可以编程设置相应功能。在按键松开阶段其抖动也可以一样被消除。
适用于FPGA的按键消抖方法还有一些,如计数器型、D触发器型等,在此就不作介绍了。
通过上面一些按键消抖方法的介绍分析,我们可以看到,传统单片机等系统大多是串行处理,即顺序执行,只能并行处理一些中断程序。对于这样的系统,只能采用单纯软件或硬件消抖,但都不那么完美。而对于FPGA等并行处理的系统,其优势就很明显,只要片内逻辑资源够用,通过硬件加速软件消抖的处理,完全可以做到按键消抖并行化,不影响系统的实时性。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:5638次
排名:千里之外
原创:16篇
(1)(2)(1)(2)(2)(2)(5)(3)(5)冷空气一路南下,大伙要注意防寒保暖,记得多喝热水哟。
面向专业的 MacBook Pro 在 2016 年迎来了属于自己的大更新,苹果也一直在卖力地宣传...
任天堂现任社长君岛达接受彭博社就任一周年采访,这也是Switch发布后任天堂高层首次面...
如果说苹果让部分 MacBook Pro 机型独占 Touch Bar 的话,那我们还可以理解,但是独占...
苹果并不是完全取消了这个声音,只是在新 MacBook Pro 中禁用了这个开机声,用户只需...
如果说 iOS 10 新版本短间隔地推送引发的问题是“用户要不要升”,那么 App Store 种...
当然了,对方也是世界知名企业,只是现在苹果在这方面下滑有点厉害。
如果你现在还不知道要买哪一款,可以先来看看它们之间的基本差别。
在智能设备与修图工具共同发力的今天,面对着各路早已免疫了多种滤镜、磨皮、美颜的用...
iOS 端上出色的 PDF 编辑器实在不多,在小编心目中,最强者还是老牌开发商 Readdle 旗...
这是一款再复古不过的手游,不仅 BGM 充满复古味道,就连画面也复古的变成了黑白色。
万圣节如约而至,从小看着恐怖片长大的各位父老乡亲们也终于有了一次扮鬼的机会,以一...
近日,《逆战幻想》正统续作《逆战幻想:血脉(逆襲のファンタジカ: ブラッドライン)...
令人羡慕的爱情是开发者推新的源泉,而大开脑洞的解谜也是游戏的常用类型,那么两者之...
说起小游戏《打砖块》,虽然以现在的眼光看来这款游戏实在是太过简单了,但是作为一款...
这是一款支持快速充电技术的配件产品,能够让 iPhone 7 或者 Android 手机在最短的时...
奢侈品就是奢侈品,随便出个东西都让你肾疼。
Xenon Flash Shell 这是一款专为 iPhone 设计的外置氙气闪光灯,其效果比 LED 等要出...
又一条产品线将和我们告别,苹果不制造独立显示屏了。
Griffin公司推出了售价$ 34.99的BreakSafe,带来了MagSafe的安全功能。
配备Thunderbolt 3(Type-C)接口的 MacBook Pro 一经发布,贝尔金也推出了一个 Thund...
想要为其它设备提供更好兼容性的话,一款转换器是必不可少的。
除了重点介绍重新设计的 MacBook Pro 之外,苹果还展示和推广了一款来自 LG 公司的外...
求助!因键盘问题无法输入开机密码!在线等!在线等!在线等!在线等!
注册时间 最后登录
在线时间36 小时 UID
主题帖子人气
红苹果, 积分 260, 距离下一级还需 240 积分
之前给IPHONE6设置的开机密码& &是用原生键盘长按某个字母出现则特殊字符设置的密码。
越狱后装了讯飞输入法&&在设置&&键盘 里面把原生的键盘移除了。因为电话单停了,重新交费之后不能上网,必须重启一下,我重启过之后要求输入开机密码。我了个大擦,现在输入密码的键盘应该是讯飞的,长按某个字母按键不出特殊字符了,咋办 咋办 咋办!!!!!求大神帮忙啊!求大神帮忙啊!求大神帮忙啊!
注册时间 最后登录
在线时间36 小时 UID
主题帖子人气
求大神帮忙啊!!!!!
注册时间 最后登录
在线时间2527 小时 UID
主题帖子人气
威锋喷子组
这个貌似没有办法的!
有些人不必说再见,因为只是路过而已。遗忘就是我们给彼此最好的纪念。
注册时间 最后登录
在线时间36 小时 UID
主题帖子人气
这个貌似没有办法的!
.....那。。。。那怎么解开啊到底。。。。。求出招
注册时间 最后登录
在线时间36 小时 UID
主题帖子人气
自己顶!d=====( ̄▽ ̄*)b!求助啊!!!!!!!大神&&大神你在哪里
注册时间 最后登录
在线时间94 小时 UID
主题帖子人气
你可以用别人的手机把那个字符打出来,然后问问讯飞输入法官方怎么能把这个字符弄出来
注册时间 最后登录
在线时间83 小时 UID
主题帖子人气
提示: 作者被禁止或删除 内容自动屏蔽
注册时间 最后登录
在线时间36 小时 UID
主题帖子人气
你可以用别人的手机把那个字符打出来,然后问问讯飞输入法官方怎么能把这个字符弄出来 ...
关键是还着急解锁手机啊。。。。。
注册时间 最后登录
在线时间36 小时 UID
主题帖子人气
链接电脑找到迅飞输入法的文件夹,把特殊字符刷进表情里
求具体操作步骤
注册时间 最后登录
在线时间1025 小时 UID
主题帖子人气
提示: 作者被禁止或删除 内容自动屏蔽
威锋旗下产品
Hi~我是威威!
沪公网安备 29号 | 沪ICP备号-1
新三板上市公司威锋科技(836555)
增值电信业务经营许可证:
Powered by Discuz!电动阀门智能控制器说明书_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
电动阀门智能控制器说明书
上传于||文档简介
&&模​拟​量​控​制​带​模​拟​量​反​馈​控​制​模​块
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩6页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 eui主菜单 的文章

 

随机推荐