您现在的位置:数码 >> 数码资源 >> 51单片机基础按键

上次咱们说的是数码管,实际上数码管要比按键难,不过跟后面的比还是不及的,今天要说的就是按键,按键控制可以说是一个单片机最基本的地方,在电子毕业设计中,基本上都有按键控制电路,51单片机的按键控制电路还是相当简单的,就是识别0和1,也就是高低电平,但实际上还是有问题的,今天我们只说独立按键,在毕业设计中,独立按键也是应用最为广泛的。老样子,我们先来看看按键部分的电路原理图:

可以看到,按键由四个IO口控制,即P30——P33,而根据电路也可以知道,当按键按下去的时候,电路导通,此时电路联通,为低电平,当松开按键,电路断开,为高电平状态。

原理图

今天我们就来做一个最简单的独立按键的实验,即用独立按键控制LED灯的亮灭,我们看一下LED灯的电路:

51单片机使用还是老规矩,我们先定义一下引脚:

程序

大家看看注释,我就不多说了,再看看主程序:

有的人可能就会有疑惑了,为什么识别按键按下之后还需要再识别一次呢。实际上这是为了消抖,那到底什么是消抖。根据硬件按键原理图可以知道,开发板上的按键是直接连接到IO口上的,那么如果在按键按下的时候,会发生多次循环响应。51单片机的处理速度足够整个while循环里面的程序在一瞬间来回运行若干次了,那么如果直接检测按键的话,会出现很不稳定的情况。比如说按键控制数码管上的数字依次加一,按一次就加一次。如果不进行消抖处理的话,那么在你按下去的一瞬间,数字已经加了很多次了。所以在这里用了软件延时的消抖,避免重复检测的情况。有人可能心想,为什么不弄一个硬件消抖的电路呢,那当然可以,加一个电容就可以了,也称之为电容按键,一般来说,stm32的开发板上都采用的电容按键,也就是硬件消抖,那样根本无需再用软件延时消抖了。

效果

那么,到这里就结束了,大家可以大致看看演示图片:



转载请注明地址:http://www.abmjc.com/zcmbjc/1770.html
  • 上一篇文章:
  • 下一篇文章: 没有了
  •