完全手册 51单片机C语言开发详解系列之第7章 输入接口实战-键盘 (2)课件_第1页
完全手册 51单片机C语言开发详解系列之第7章 输入接口实战-键盘 (2)课件_第2页
完全手册 51单片机C语言开发详解系列之第7章 输入接口实战-键盘 (2)课件_第3页
完全手册 51单片机C语言开发详解系列之第7章 输入接口实战-键盘 (2)课件_第4页
完全手册 51单片机C语言开发详解系列之第7章 输入接口实战-键盘 (2)课件_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章输入接口实战—键盘接口电路与软件设计在上一章中详细讲解了AT89S51单片机的输出功能以及跑马灯系统的设计。本章主要通过实际的例子讲解AT89S51单片机的I/O输入接口设计。现在的通用嵌入式系统大都为交互模式,所以用户界面又称为人机交互界面。在大部分嵌入式系统中,人机交互界面是必不可少的一个重要部分,人机交互界面的设计往往占据很大一部分工作。人机交互界面的与人交互的输入工具一般由显示屏、音响设备等组成,而人机交互界面的输入部分最常见的就是输入键盘接口。键盘作为人机交互界面中十分重要的工具,在各种嵌入式系统中得到了广泛的应用。对于一个具备人机交互功能的嵌入式系统来说,小的有2~3个键盘,复杂的可能具有几十个键盘输入的键盘阵列。此外,对于单片机最小系统的一些基本构成也需要用到按键输入,例如电源开关和复位按钮等等。本章以AT89S51单片机为基础,详细讲解单片机系统的键盘输入接口设计方法与经验技巧。7.1键盘接口电路设计键盘是嵌入式系统中人机交互界面不可缺少的外围设备,客户或使用者可以通过键盘进行数据输入、命令控制、程序生成等操作,是人机会话中一个十分重要的输入工具。本节将详细讲解键盘的工作原理,键盘按键的识别方法,以及各种不同键盘与单片机的接口技术。7.1.1键盘基本原理基本的键盘都是不同按键开关的组合,可以向单片机系统输入不同的数字量。目前常用的大部分按键都是机械式按键,利用了机械触点的通断作用,通过机械触点的闭合与断开,实现了电压信号高低的输入。由于机械式开关在闭合与断开的瞬间均有抖动过程,因此通过机械式开关输入的电压信号也会出现相应的抖动,这种抖动的时间一般为5~25ms,不同的开关由于不同的机械特征具备不同的抖动时间常数,在键盘设计中必须要考虑键盘抖动的问题,通过硬件或软件的措施来进行键盘输入消抖,保证输入的可靠性。7.1.3按键消抖一个按键开关在闭合与断开时,由于按键的机械特性,其机械触点不能够立刻完全的闭合或断开,因此会产生一系列的电平抖动信号,如果没有对按键进行消抖处理,很可能将一次按键操作识别成多次按键操作,造成系统的不确定性与不可靠性,因此必须要对按键开关输入进行消抖处理。按键的输入的抖动是由按键开关的机械特性造成的,当按键被按下时,其受力可以用如下的公式进行表示:在这个公式里,m为按键开关的质量,Kd为按键开关的摩擦系数,K为弹性系数,通过摩擦系数和弹性系数可以计算出按键开关的阻尼系数:7.1.4键值的读取除了进行确认与消抖处理以外,键盘还能够正确地读出所按下的键值,为嵌入式系统的控制程序提供准确的输入参考值。对于扫描式键盘,更应该编制完善的键盘扫描程序,准确读取按键值。7.1.5对重键的处理重键是指用户操作时几个键同时被按下的现象,一般要对重建输入进行相应的处理,最常用的一种处理方法就是,当有多个键同时被按下时,只响应第一个被按下的键。7.1.7阵列式键盘接口电路设计针对直接式键盘接口的缺点和不足,可以采用阵列式键盘接口电路。在阵列式键盘接口电路中,按键开关被组合成了行和列的矩阵,单片机的I/O口一部分作为行线,一部分作为列线,按键布置在行线和列线的交叉点上,行列式键盘中的按键数量可以达到行线线数与列线线数的乘积。例如一个8位的I/O端口最多可以布置的按键数为4×4=16个,阵列式键盘接口的最大优点就是可以用最少的I/O端口资源,实现最多的按键输入。于直接式键盘接口相比,要节省很多单片机的I/O端口,适合应用于按键数目较多的场合。7.1.8中断键盘接口电路设计当键盘工作于扫描状态时,无论是采用程序扫描方式,还是采用定时扫描方式,都不可避免地要占用微处理器的资源对键盘状态进行查询,无论当前是否有按键按下,这样的方式也统一称为查询模式的键盘输入接口。此外,查询模式的键盘输入接口只有在程序对键盘进行查询的时候才能得到按键的状态,不能快速的响应键盘的输入,在一些对键盘响应速度有较高要求的场合就必须使用键盘输入的中断接口电路。键盘输入的中断接口电路,顾名思义就是利用中断响应键盘输入,当有按键被按下时,键盘的电平变化触发单片机的输入中断,单片机启动键盘扫描程序,将键盘状态读入。当没有任何按键被按下时,并不执行键盘扫描程序,这样,即降低了单片机的计算负荷,也减小了键盘输入的响应时洹直接式的中断键盘输入接口电路如图7.10所示,电路将所有的按键输入通过与门电路连接到AT89S51单片机的INT0中断,只要其中任意一个按键被按下,都会在INT0引脚引起一个低电平,触发INT0中断,进入中断服务程序,在中断服务程序中读取按键的状态。7.2键盘接口程序设计在前面一节中详细介绍了单片机系统各种键盘输入接口的基本知识与硬件设计方法,本节将要以AT89S51单片机为实例,继续讲解针对不同嵌入式系统键盘输入接口的软件设计,软件设计的目标是使嵌入式系统能够正确地、及时地获得键盘的按键值,按照输入的按键值执行不同的任务,下面详细讲述键盘输入接口的软件设计。7.2.2键盘接口软件消抖程序设计在本章第一节中介绍了从硬件角度对键盘输入进行消抖处理的方法,本小节介绍如何通过软件的方法对键盘输入进行消抖处理。第一种软件消抖的方法就是延时消抖,当检测到有键按下时,延时一段时间再读按键值,如果读到的键值与第一次读到的相同,则认为该按键已经被按下,并进入了按键的稳定期,该键值有效。一般延迟的时间即为按键的抖动时间常数,不同的按键开关具有不同的抖动时间常数,可以通过试验来确定合适的延时时间,延时消抖的软件流程图如图所示。7.2.3阵列式键盘接口软件设计为了正确指示读入的按键值,设计程序如下。当按下一个按键时,跑马灯系统上LED0~3显示按下键盘的行,例如当按下第一行的按键时,LED0发光,当按下第三行按键时,LED2发光;跑马灯系统上的LED4~7显示按下键盘的列,例如当按下第一列的按键时,LED4发光,当按下第三列的按键时,LED6发光。如图所示,8位的LED跑马灯能够指示所有按键的输入。7.2.4中断式阵列键盘接口软件设计如图所示为AT89S51单片机采用中断式阵列键盘接口的最小系统电路,4×4的阵列式键盘与单片机的P2端口相连接,共16个按键输入,与P0端口相连的是在第六章中介绍的跑马灯系统,系统采用24M晶振。四列按钮的上拉电阻输入端信号通过4通道与门芯片SN74HC21进行处理后输入AT89S51的INT0中断输入脚,为按键触发中断源。7.3问题与思考本章从初学者设计中最容易犯的错误中挑出三个问题进行讲解,请读者自行完成题目后再依照题后答案进行思考与学习。7.3.1直

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论