51单片机入门教程(4)——按键控制
51单片机入门教程(4)——按键控制 一、独立按键 1.1 独立按键的原理 1.2 独立按键的仿真电路 1.3 按键消抖 二、矩阵键盘 2.1 矩阵键盘原理 2.2 矩阵键盘扫描原理 2.3 矩阵键盘扫描程序 单片机与外界的信息交互主要有两大类,输入信息和输出信息。 之前的博客介绍了通过单片机控制LED灯和数码管向外界输出信息,该教程介绍单片机常用的输入设备——独立按键和矩阵键盘。 一、独立按键 1.1 独立按键的原理 独立按键一共有四个针脚,两个短针脚之间默认不导通,两个长针脚之间默认导通。实物图如图: 1.2 独立按键的仿真电路 在Proteus中对按键进行了简化,只有两个接线针脚。按键的一端接到单片机的IO口上,另一端与GND连接。当按键按下时,单片机的IO口与GND连接,端口电平被拉低。因此通过读取端口电平即可获知按键状态。 仿真电路如图: 1.3 按键消抖 关于 按键抖动 : 通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。即单片机在按键被按下的一瞬间检测到的信号是 很多次的忽高忽低的电平信号 ,如图: 这种信号是不稳定的。因此,我们需要使用按键消抖的算法使单片机获取到正常稳定的信号。 为了避免在最不稳定的时候采集信号,常用的操作是延时,即当检测到低电平输入时,延时若干时间