第 06 课 矩阵键盘程序设计
单片机 IO 口既有输出功能也有输入功能。单片机通过 IO 输入功能检测外围
器件的状态。这节课我们来做一个矩阵键盘的实验,在这个实验中我们既用到了
IO 口输入,也用到了 IO 口的输出功能。做完这个实验我们就对单片机的 IO 口很
熟悉了。
单片机与键盘接口分为独立键盘与矩阵键盘两种解法。
6.1 独立键盘
当按键较少的的时候,我们采用独立键盘接法,即每一个 I/O 口上只接一个
按键,按键的另一端接地。
独立式键盘的实现方法是利用单片机 I/O 口读取口的电平高低来判断是否有
键按下。例如,我们将常开按键的一端接地,另一端接一个 I/O 口,程序开始时
将此 I/O 口置于高电平,平时无键按下时 I/O 口保护高电平。当有键按下时,此
I/O 口与地短路迫使 I/O 口为低电平。按键释放后,单片机内部的上拉电阻使 I/O
口仍然保持高电平。我们所要做的就是在程序中查寻此 I/O 口的电平状态就可以
了解我们是否有按键动作了。
值得注意的事,我们在用单片机对键盘处理的时候涉及到了一个重要的过程,
那就是键盘的去抖动。这里说的抖动是机械的抖动,是当按键从未按下到按下的
临界区产生的电平不稳定现象,并不是我们在按键时通过注意可以避免的。这种
抖动一般在 10~200 毫秒之间,这种不稳定电平的抖动时间对于人来说太快了,
而对于时钟是微秒级的单片机而言则是漫长的。为了提高系统的稳定,我们必须
去除或避开它。目前的技术有硬件去抖动和软件去抖动,硬件去抖动就是用部分
电路对抖动部分加之处理,但是实现的难度较大又会提高了成本。软件去抖动不
是去掉抖动,而是避开抖动部分的时间,等键盘稳定了再对其处理。这里我们只
研究软件去抖动,实现方法是先查寻按键当有低电平出现时立即延时 10~200 毫
秒以避开抖动(经典值为 20 毫秒),延时结束后再读一次 I/O 口的值,这一次的
值如果为 1 表示低电平的时间不到 10~200 毫秒,视为干扰信号。当读出的值是
0 时则表示有按键按下,调用相应的处理程序。
图 6.1 键盘原理图
评论0
最新资源