概述
按键是单片机应用中必不可少的输入器件,本文我们基于51单片机来介绍独立按键的工作原理。
在我们使用的开发板上,独立按键的电路如下图所示。
在使用51单片机读取按键转态时,将按键连接的单片机接口赋值1(这种方式适合51单片机,但不一定适合其他单片机),如果按键按下,则端口被拉低。因此,通过读取单片机接口的电平状态就可以判断按键是否按下,如果输入时高电平,则按键没有按下;如果输入是低电平,则按键按下。
当按下或松开按键时,由于按键的机械抖动,使信号也会存在抖动。如下图所示。
信号的抖动会造成单片机的误判断。可能造成按下一下按键却判断成按下了多次按键。为了得到正确的结果,要对按键进行去抖。去抖分为硬件去抖和软件去抖两种。硬件去抖就是在按键的两端加上一个电容,软件去抖则不需要增加硬件成本。只需要软件处理。
软件去抖的具体方法是:当判断有按键按下时,程序延时一段时间,跳过这个抖动区域,之后再检测按键状态。如果再次检测时输入时高电平,说明是抖动或干扰造成的。如果输入是低电平,说明确实有按键按下。
下面的代码是对按键按下的典型判断语句,先判断KEY的值是否为0,如果为0则延时10ms,然后再次读取KEY的值,依然为0则判断为按键按下,进行按键按下的处理代码,最后等待按键松开后退出。
if(KEY==0) //按键KEY按下
{
delay1ms(10); //延时10ms去抖
if(KEY==0) //再次判断按键KEY按下
{
//加入处理代码
}
while(KEY==0); //等待按键松开
}
最后
以上就是鲤鱼水壶为你收集整理的51单片机(二十四)—— 独立按键工作原理的全部内容,希望文章能够帮你解决51单片机(二十四)—— 独立按键工作原理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复