第5章GPIO的应用实例.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 GPIO的应用实例:键盘、LED与LCD 本章导读:键盘、LED数码管和LCD液晶显示是嵌入式系统中常用的输入/输出设备,它们一般通过通用I/O 口与MCU连接,本章把它们作为GPIO的应用实例来看待。键盘是嵌入式应用的输入设备,识别按键情况常用查询法、定时扫描法与中断法等。LED和LCD是嵌入式应用的输出设备。本章主要知识点有①键盘扫描基本原理与编程方法;②LED扫描基本原理与编程方法;③字符型LCD的编程举例。在本章讲述的鍵盘、LED和LCD构件设计的一般模型,可适用于不同型号的设备,但需注意硬件电路设计的差异。 ? 5.1键盘模块的驱动构件设计 本节首先简要阐明有关键盘识别的一些基本问题,随后给出K60的键盘的工作原理、基于构 件思想的键盘构件头文件以及源程序文件的设计思想,并给出了一个实际的4×4键盘驱动构件设计与测试实例。 5.1.1键盘模型及接口 1.键盘模型及接口 键盘是由若干个按键组成的开关矩阵,它是最简单的MCU数字量输入设备。操作员通过键盘输入数据或命令,实现简单的人机通信。 首先,我们应了解键盘模型及接口的基本概念和原理,以便为后续编程做准备。键盘的基本电路为接触开关,通、断两种状态分别表示0和1。键盘的电路模型及其实际按键动作见图5-1 所示。MCU通过检测与键盘相连接的I/O口来确定键盘状态。 图5-1键盘模型及按键抖动示意图 其次,键盘接口按照不同的标准有不同的分类方法。按键盘排布的方式可分成独立方式和矩阵方式;按读入键值的方式可分为直读方式和扫描方式;按是否进行硬件编码可分成非编码方式和硬件编码方式;按微处理器响应方式可分为中断方式和查询方式。本章将使用中断方法编程。将以上各种方式组合可构成不同的键盘接口方式。以下介绍两种较为常用的键盘接口方式。 1)独立方式 独立方式是指将每个独立按键按一对一的方式直接接到I/O输入线上,如图5-2所示。读键 值时直接读I/O口,每个键值通过读入对应I/O的状态来反映,所以也称这种方式为一维直读方式,习惯称为独立式。这种方式査键实现简单,但占用I/O资源较多,一般在按键数量较少的情况下采用。 2)矩阵方式 矩阵方式是用n条I/O线组成行输入口,m条I/O线组成列输入口,在行列线的每一个交点 上设置一个按键,如图5-3所示。读键值方法一般采用扫描方式,即MCU输出口按位轮换输出 低电平,再从输入口读入键信息,最后获得键码。这种方式占用I/O线较少,在实际应用系统中采用较多。在使用这种方法时需要考虑,硬件连接时需要选择键盘哪些引脚作为MCU的输入,哪些作为MCU的输出,作为MCU的输入的键盘引脚需要上拉。 设计键盘时,通常小于4个按键的应用,可以使用独立式接口。如果多于4个按键,为了减少对微处理器的I/O资源的占用,可以使用矩阵式键盘。那么键盘编程应该注意哪些问题呢?下节我们就讨论这个问题,这对于实际应用非常重要。 图5-2 独立式键盘 图5-1 矩阵式键盘 2.键盘编程的基本问题 对于键盘编程我们至少应该解决下面几个问题。 第一,如何识别键盘上的按键? 第二,如何区分按键是否真正地被按下还是抖动? 第三,如何处理重键问题? 了解这些问题有助于键盘编程。 1)键的识别 如何知道键盘上哪个键被按下就是键的识别问题。若键盘上闭合键的识别由专用硬件实现,称为编码键盘;而靠软件实现的称为未编码键盘。在这里主要讨论未编码键盘的接口技术和键盘输入程序的设计。识别是否有键被按下,主要有查询法、定时扫描法与中断法等。而要识别键盘上哪个键被按下主要有行扫描法与行反转法。 2)抖动问题 当键被按下时,会出现所按的键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况,当释放一个按键时也会出现类似的情况,这就是抖动问题。抖动持续的时间因操作者而异,一般为5?10 ms,稳定闭合时间一般为十分之几秒到几秒,由操作者的按键动作所确定。在软件上,解决抖动的方法通常是延迟等待抖动的消失或多次识别判定。 3)重键问题 所谓重键问题就是有两个及两个以上按键同时处于闭合状态的处理问题。在软件上,处理重 键问题通常有连锁法与巡回法。 图5-4 4×4键盘的结构 为了正确理解MCU键盘接口方法与编程技术,下面以4x4键盘为例说明按键识别的基本编 程原理。4x4的键盘结构如图5-4所示,图中列线(n1?n4) 通过电阻接+5 V,当键盘上没有键闭合时,所有的行线和列线断开,列线n1?n4都呈高电平。当键盘上某一个键闭合时, 则该键所对应的行线与列线短路。例如第2排第3个按键被按 下闭合时,行线m2和列线n3短路,此时n3线上的电平由m2 的电位所决定。那么如何确定键盘上哪个按键被按下呢?可以把列线n

文档评论(0)

hgcm729 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档