C51矩阵式键盘程序设计.ppt
第14章 C51矩阵式键盘程序设计,在单片机应用系统中,除了完成基本的功能外,另一个最重要的任务是设计优秀的人机交互接口。人机交互接口用来实现控制命令及数据的输入,并且将系统运行信息显示反映给操作者。键盘以按键的形式来设置控制功能或数据,其是人机交互的最基本的途径。在键盘中,按键的输入状态本质上是一个开关量。通过键盘为按键编码,从而实现命令或数据的输入,以达到控制的目的。在单片机应用系统中,有两种常用的键盘结构:独立式按键和矩阵式按键。其中,独立式按键比较简单,适合于较少开关量的输入场合,而矩阵式键盘则适合于输入命令或者数据较多、功能复杂的系统。采用矩阵式键盘结构可以最大限度地使用单片机的引脚资源,因此应用十分广泛。,14.1 键盘接口概述,在单片机的人机交互系统中,键盘用于向单片机输入控制信号或数据。单片机识别键盘的不同输入信号,并做出相应的反应。,14.1.1 独立式按键和矩阵式键盘,键盘有很多种类型,对于简单的系统,如果需要的按键比较少,单片机引脚比较宽裕,则可以使用独立式按键结构。对于比较复杂的系统或者按键比较多的场合,可用采用矩阵式键盘。1独立式按键结构2矩阵式键盘结构,独立式按键的电路结构 44矩阵式键盘的结构,14.1.2 键盘设计注意事项,对于键盘的程序设计,需要及时并且准确地响应按键的动作。在进行单片机键盘接口设计的时候,需要注意如下几个方面。1合理的按键编码2可靠的输入检测3程序响应,14.2 矩阵式键盘C51程序设计,在实际应用中,大多采用矩阵式键盘。在程序设计中,矩阵式键盘的扫描和检测有三种:扫描法、线反转法和中断法。,14.2.1 扫描法及C51程序设计,扫描法是在程序中逐行或者逐列扫描查询键盘接口,根据端口的输入情况,判断是哪一个按键被按下,然后分别调用不同的按键处理子程序。这里以44矩阵式键盘为例进行介绍列扫描法。在使用列扫描时,矩阵式键盘的电路结构如图所示,其中应将矩阵式键盘的行线通过上拉电阻接正电源。此时,如果没有按键按下,则对应的行线为高电平;如果有按键按下,对应交叉点的行线和列线短路,行线的输出依赖于与此行连接的列的电平状态。由此逐列扫描键盘,便可以实现矩阵式键盘的检测。1扫描法的流程2扫描法C51程序设计,扫描法的电路结构,14.2.2 线反转法及C51程序设计,线反转法是通过两次端口电平的反转操作来检测按键输入,然后分别调用不同的按键处理子程序。这里以44矩阵式键盘为例进行介绍。在使用线反转法时,矩阵式键盘的电路结构如图所示,其中应将矩阵式键盘的行线和列线通过上拉电阻接正电源。1线反转法的流程2线反转法C51程序设计,线反转法的流程图,14.2.3 中断法及C51程序设计,中断法是将键盘扫描程序放置在单片机的中断服务例程中的方法。当有按键动作时,单片机响应中断,在中断服务例程中获取键值,然后根据键值进行后续的按键处理子程序。中断法的电路原理图,如图所示。其中,44矩阵式键盘的列线与单片机P1口的高4位相连,行线与单片机P1口的低4位相连。P1.0P1.3作为输入端,P1.4P1.7作为输出端。另外,矩阵式键盘的4根行线通过一个4输入与门连接单片机的外部中断#INT0。当有按键动作的时候,触发外部中断0,进而扫描键值。1中断法的流程2中断法C51程序设计,中断法原理图,14.3 C51矩阵式键盘设计实例,这里给出一个完整的矩阵式键盘设计实例,包括电路图以及C51程序。其中,采用了应用最为广泛的44矩阵式键盘和线反转法。单片机通过循环调用线反转法子函数来获取按键的键值,然后根据根据键值的大小,使发光二极管闪烁相应的次数。,14.3.1 电路图,该实例完整的电路图,如图所示。,电路图,14.3.2 程序设计,本例的程序功能是扫描查询44矩阵式键盘,如果检测到按键按下,则根据键值的大小来控制发光二极管闪烁的次数,否则将熄灭发光二极管。程序中采用了线反转法。1创建项目2程序代码,14.4 小结,本章首先介绍了独立式按键和矩阵式键盘的结构,以及键盘设计的注意事项。接着,重点介绍了3种矩阵式键盘的设计方法,包括扫描法、线反转法和中断法。在讲解过程中,均给出了键盘扫描流程以及C51代码实例。最后通过一个完整实例,来实现了矩阵式键盘在单片机系统的应用。在实例中,采用的是44矩阵式键盘,并通过线反转法来获取键值。矩阵式键盘应用十分广泛,熟练掌握矩阵式键盘的使用是单片机人机接口设计的基础。,