⑴ 单片机按键去抖动有哪些方法
在按键上增加电容去除干扰,在按键上串一个电阻也可以解决静电或者是其他干扰对按键造成的干扰。
软件去抖动也是一种非常常见的去抖动的方法,就是对按键进行多次的检测,每次检测都被按下,才认为按键被按下。软件去抖动要采用多次采集的方法,中间的间隔可以使用延时或者使用分时的思想来进行去抖动,一般的软件去抖中都是用分时思想去抖动。
(1)怎么使51单片机抖动扩展阅读:
注意事项:
按键稳定闭合时间长短是由操作人员决定的,通常都会在100ms以上,刻意快速按的话能达到40-50ms左右,很难再低了。抖动时间是由按键的机械特性决定的,一般都会在10ms以内。
为了确保程序对按键的一次闭合或者一次断开只响应一次,必须进行按键的消抖处理。当检测到按键状态变化时,不是立即去响应动作,而是先等待闭合或断开稳定后再进行处理。
利用电容的充放电特性来对抖动过程中产生的电压毛刺进行平滑处理,从而实现消抖。但实际应用中,这种方式的效果往往不是很好,而且还增加了成本和电路复杂度,所以实际中使用的并不多。
⑵ 51单片机外部中断下降沿去抖动。。。。。。
在中断里面,关闭中断,实为败笔。
因为在本中断期间,并不可能再发生本中断。
外部中断,可选为下降沿触发,这样一次下降沿,就只会产生一次中断。
想使用外部中断,就是要利用它的即时反应的特点,这就要求输入的信号不要抖动。
为了避免在瞬间产生多次下降沿,应该在外部电路中加一个消抖电路。
否则,本来是希望发生一次中断,就会产生多次响应。
在中断函数中,也可以加上延时,进行消抖,就像加上delay(10000);,
但是,这样就降低了中断的灵敏度,延时期间再真的有中断,也不会响应。
实际上,这就是不伦不类的四不像程序。
⑶ AT89C51单片机:简述在使用普通按键的时候,为什么要进行去抖动处理,怎么处理
从机械按键的结构来看,在机械按键接触的瞬间,会出现接触或者是没有接触的情况。在机械按键老化的时候,或者在其他干扰的情况下都会出现按键被误触发的情况。
去除机械按键这种抖动的措施有硬件方法,还有软件方法,硬件方法就是在按键上增加电容去除干扰。在按键上串一个电阻也可以解决静电或者是其他干扰对按键造成的干扰。软件去抖动也是一种非常常见的去抖动的方法,就是对按键进行多次的检测,每次检测都被按下才认为按键被按下。
(3)怎么使51单片机抖动扩展阅读:
单片机使用注意事项:
室外使用的单片机系统或电源线,信号线从室外架空引入室内的要考虑系统的防雷击问题,气体放电管TVS,这类元器件要和抗共模和抗差模干扰的电感配合使用以提高抗干扰效果。
典型的信号隔离是光电隔离。屏蔽则是用来隔离空间辐射的,对噪声特别大的部件,如开关电源,用金属盒罩起来。对特别怕干扰的模拟电路,如高灵敏度的弱信号放大电路可屏蔽起来。而重要的是金属屏蔽本身必须接真正的地。
⑷ C51单片机按键为什么会产生抖动
由于单片机的工作频率比较高,在按键按下去的过程中和按键松开的过程中,都有可能产生连续的电平脉冲,从而使其I/O口发生连续的电平变化,为了防止程序误动作,就用软件来实现消抖动的动作。
⑸ 51单片机,用按键实现外部中断,软件如何去抖
外部中断的一般都是采用延时程序,而且延时程序一般是利用定时器做10~15ms的延时去抖,来实现的,而且时间不是特别精确,单片机书上和有关资料上应该都有我写一个参考一下:
void DelayMS(unsigned char a)
{int i;
for(;a>0;a--)
for(i=110;i>0;i--);
}延时约为a毫秒,不过不够准确,可以通过keil软件或者汇编来确立更精确的延时时间!
在中断执行前先做判断:用if语句看看引脚的电平,如果没有跳变,那么再延时判断,如果还没有跳变那么再延时,如此重复;
等到电平跳变了,延时看看是不是电平收其他非操作性因素引起的,比如说电源抖动,延时之后再判断如果的确是跳变了,可以进行中断后的操作了!
⑹ 51单片机用独立按键进入中断怎么去抖动
你这是仿真,还是实物,处理方法是不同的。
外部中断,还是用下降沿触发好处理,IT0=1; //下降沿触发
电平触发,处理不好,就是去抖动也没用,效果是一样的抖动。
中断按键,加delay也不好处理。
最简单的方法是硬件上加去抖动电路。
⑺ 51单片机定时器消抖的问题。高手进
ms++;
if(key==0)key_num++;
if(ms==15) //15秒刷新一次
{
if(key_num>10) //15秒钟如果低电平持续时间大于10秒就认为按键按下,而不是抖动
key_statue=1; //按键标识位置1
ms=0;
key_num=0;
}
这部分有问题,改为:
if(key==0)
{
key_num++;
}
else
{
key_num=0;
}
if(key_num>10) //如果低电平持续时间大于10ms就认为按键按下,而不是抖动
{
key_statue=1; //按键标识位置1
}
⑻ 单片机中什么是抖动如何消除抖动
单片机中抖动是按键所用的开关都是机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上就稳定的接通,在断开时也不会一下子彻底断开,而是在闭合和断开的瞬间伴随了一连串的抖动。利用电容的充放电特性来对抖动过程中产生的电压毛刺进行平滑处理,从而实现消抖。
按键稳定闭合时间长短是由操作人员决定的,通常都会在100ms以上,刻意快速按的话能达到40-50ms左右,很难再低了。
抖动时间是由按键的机械特性决定的,一般都会在10ms以内,为了确保程序对按键的一次闭合或者一次断开只响应一次,必须进行按键的消抖处理。
当检测到按键状态变化时,不是立即去响应动作,而是先等待闭合或断开稳定后再进行处理。按键消抖可分为硬件消抖和软件消抖。
(8)怎么使51单片机抖动扩展阅读
单片机在电子技术中的开发,主要包括CPU开发、程序开发、 存储器开发、计算机开发及C语言程序开发,同时得到开发能够保证单片机在十分复杂的计算机与控制环境中可以正常有序的进行,这就需要相关人员采取一定的措施:
(1)CPU开发。开发单片机中的CPU总线宽度,能够有效完善单片机信息处理功能缓慢的问题,提高信息处理效率与速度,开发改进中央处理器的实际结构,能够做到同时运行2-3个CPU,从而大大提高单片机的整体性能。
(2)程序开发。嵌入式系统的合理应用得到了大力推广,对程序进行开发时要求能够自动执行各种指令,这样可以快速准确地采集外部数据,提高单片机的应用效率。
(3)存储器开发。单片机的发展应着眼于内存,加强对基于传统内存读写功能的新内存的探索,使其既能实现静态读写又能实现动态读写,从而显着提高存储性能。
(4)计算机开发。进一步优化和开发单机片应激即分析,并应用计算机系统,通过连接通信数据,实现数据传递。
⑼ 在线采纳51单片机按键去抖的问题
我感觉多半是你得到的信息有误,应该没有这个技术。
关于扫描,矩阵键盘需要用扫描的方式去监控,但是处理抖动仍然靠延时,延时至少是当下最有效的办法。
抖动的实质是输入信号有高频杂波(相对于按键操作频率),目前只有滤波技术能消掉高频杂波。延时算一种数字滤波技术,当然还有硬件滤波技术,最简单的就是复位按键电路,用RC实现的滤波电路消掉了抖动。所以可以这么说,没有滤波功能的电路或者键处理程序是无法消掉键盘延迟抖动的。
扫描本身不是一个滤波技术,尽管加了延迟的矩阵键盘扫描程序可以处理掉键盘抖动,但是起作用的不是扫描,而是延迟,因此不能叫做扫描去抖动。
⑽ 帮我修改个51单片机机消除抖动C语言程序;
你好!在key函数内加上延时就能防止抖动,num 是按键返回的键值