我是靠谱客的博主 鲤鱼水壶,最近开发中收集的这篇文章主要介绍51单片机(二十四)—— 独立按键工作原理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

        按键是单片机应用中必不可少的输入器件,本文我们基于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单片机(二十四)—— 独立按键工作原理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部