欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    键盘接口技术课件.ppt

    • 资源ID:1799409       资源大小:8.87MB        全文页数:55页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    键盘接口技术课件.ppt

    第2章 键盘接口技术,按键 简单键盘接口 矩阵式键盘接口 可编程键盘接口,按键的分类按键输入原理按键开关的抖动问题,键盘由一组规则排列的按键组成,一个按键实际上是一个开关元件,也就是说键盘是一组规则排列的开关。单片机使用的按键是一种常开型的开关,平时按键的两个触点处于断开状态,按下键时它们才闭合。,按 键,按键的分类,按键按照结构原理可分为两类:1.触点式开关按键,如机械式开关、导电橡胶式开关等;2.无触点开关按键,如电气式按键,磁感应按键等。.,按键按照接口原理可分为:1.编码键盘2.非编码键盘两类,,编码键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软件来实现键盘的定义与识别。,前者造价低,后者寿命长。目前,单片机系统中最常见的是触点式开关按键。,按键输入原理,在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其他按键都是以开关状态来设置控制功能或输入数据。当所设置的功能键或数字键按下时,单片机系统应完成该按键所设定的功能,按键信息输入是与软件结构密切相关的过程。 对于一个键盘或一组按键,单片机系统中总有一个接口电路与CPU相连。CPU可以采用查询或中断方式了解有无按键输入并检查是哪一个键按下,将该键号送入累加器ACC,然后通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。,按键开关的抖动问题,单片机系统中应用的一般是由机械触点构成的按键。当机械触点断开、闭合时,会有抖动,如下图所示。在触点抖动期间检测按键的通与断状态,可能导致判断出错。即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。,常用的去抖动的方法有两种: 1.硬件方法 2.软件方法,硬件方法,在硬件上可采用在键输出端加R-S触发器(双稳态触发器)或单稳态触发器构成去抖动电路,如图所示 。,电路工作过程,电路工作过程,按键未按下时,a = 0,b = 1,输出Q = 1,按键按下时,因按键的机械弹性作用的影响,使按键产生抖动,当开关没有稳定到达b端时,因与非门2输出为0反馈到与非门1的输入端,封锁了与非门1,双稳态电路的状态不会改变,输出保持为1,输出Q不会产生抖动的波形。当开关稳定到达b端时,因a = 1,b = 0,使Q = 0,双稳态电路状态发生翻转。当释放按键时,在开关未稳定到达a端时,因Q = 0,封锁了与非门2,双稳态电路的状态不变,输出Q保持不变,消除了后沿的抖动波形。当开关稳定到达a端时,因a = 0,b = 1,使Q = 1,双稳态电路状态发生翻转,输出Q重新返回原状态。由此可见,键盘输出经双稳态电路之后,输出已变为规范的矩形方波。,软件方法,软件方法其实很简单,就是在单片机获得P1.0口为低电平的信息后,不是立即认定S已被按下,而是延时10ms或更长一些时间后再次检测P1.0口,如果仍为低电平,说明S的确按下了,这实际上是避开了按键按下时的抖动时间。而在检测到按键释放后(P1.0为高电平)再延时510ms,消除后沿的抖动,然后再对键值处理。不过一般情况下,通常不对按键释放的后沿进行处理,实践证明,也能满足一定的要求。当然,在实际应用中,对按键的要求也是千差万别的,要根据不同的需要来编制处理程序,但以上是消除按键抖动的原则。,简单键盘接口,简单键盘的工作原理简单键盘的接口电路与编程 实践与思考,简单键盘的工作原理,如果系统只需几个按键,可直接采用I/O线构成单个按键电路,各个按键之间相互独立,一根线上的按键状态不会影响其他输入线上的工作状态,又称独立式键盘接口电路。,这种电路每个按键需要占用一根I/O线,在按键数量较多时,输入口浪费大且电路结构很烦琐,因此这种键盘接口电路只适用于按键较少或要求较高操作速度的场合。,简单键盘的接口电路与编程,(1)程序实现的功能 (2)程序采用的方法(3)程序中用到的变量和常量的定义 (4)程序中调用的子程序(5)程序清单(6)程序分析与思考,下面以图 (a)为例进行编程。,程序实现的功能,检测是否有键闭合,如有键闭合,则去除键抖动,判断键号并转入相应的按键处理。,程序采用的方法,P3.2:开始,按此键则灯开始流动(由上而下)P3.3:停止,按此键则停止流动,所有灯为暗P3.4:上,按此键则灯由上向下流动P3.5:下,按此键则灯由下向上流动,程序采用查询的方法,P1口接8个发光二极管,4个按键分别接到P3.2 、P3.3、P3.4和P3.5,且定义如下。,程序中用到的变量和常量的定义,UpDown ;上下行标志StartEnd ;启动及停止标志LAMPCODE ;存放流动的数据代码,程序中调用的子程序,KEY ;键盘程序KEYPROC ;键盘处理程序LAMP ;灯显示程序DELAY ;延时程序,键盘处理中调用,程序分析与思考,这里介绍的键盘处理程序比较简单,实际上,键盘的处理是很复杂的,但这种复杂并不来自于单片机的本身,而是来自于操作者的习惯等问题,因此,在编写键盘处理程序之前,最好先把它从逻辑上理清,然后用适当的算法表示出来,最后再去写代码,这样,才能快速有效地写好代码。,实践与思考,1. 设计一个简单3个按键的键盘来控制一组发光二极管,使这组发光二极管可以以6种不同的花色循环点亮。2. 改用单键实现题1所示功能。,矩阵式键盘接口,矩阵式键盘的结构与工作原理 矩阵式键盘按键的识别 键盘的编码 键盘的工作方式 矩阵键盘的接口实例 实践与思考,矩阵式键盘的结构与工作原理,矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到+5V上。当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这一点是识别矩阵按键是否被按下的关键。然而,矩阵键盘中的行线、列线和多个键相连,各按键按下与否均影响该键所在行线和列线的电平,各按键间将相互影响,因此,必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。,矩阵式键盘按键的识别,1. 扫描法2. 线反转法,扫描法,按键按下时,与此键相连的行线与列线导通,行线在无键按下时处在高电平,显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此,必须使所有列线处在低电平,只有这样,当有键按下时,该键所在的行电平才会由高电平变为低电平。CPU根据行平电的变化,便能判定相应的行有键按下。8号键按下时,第2行一定为低电平,然而,第2行为低电平时,能否肯定是8号键按下呢?回答是否定的,因为9、10、11号键按下同样使第2行为低电平。为进一步确定具体键,不能使所有列线在同一时刻都处在低电平,可在某一时刻只让一条列线处于低电平,其余列线均处于高电平,另一时刻,让下一列处在低电平,依次循环,这种依次轮流每次选通一列的工作方式称为键盘扫描。,线反转法,第1步:将列线P1.4P1.7 作为输入线,行线P1.3P1.0 作为输出线,并将输出线输出全为低电平,读列线状态,则列线中电平为低的是按键所在的列。第2步:将行线作为输入线,列线作为输出线,并将输出线输出为低电平,读行线状态,则行线中电平为低的是按键所在的行。综合第1、2两步结果,可确定按键所在的行和列,从而识别出所按下的键。,键盘的编码,1.独立式键盘 按键数量少,可根据实际需要灵活编码。2.矩阵式键盘 按键的位置由行号和列号唯一确定,因此可分别对行号和列 号进行二进制编码,然后将两值合成一个字节,高4位是行号,低4位是列号。,不同行的键离散性较大,不利于散转指令对按键进行处理。,采用依次排列键号的方式对安排进行编码。,无论以何种方式编码,均应以处理问题方便为原则,而最基本的就是键所处的物理位置即行号和列号,它是各种编码之间相互转换的基础,编码相互转换可通过计算或查表的方法实现。,总结:,键盘的工作方式,编程扫描方式 定时扫描方式 中断扫描方式,编程扫描方式,编程扫描方式是利用CPU完成其他工作的空余调用键盘扫描子程序来响应键盘输入的要求。在执行键功能程序时,CPU不再响应键输入要求,直到CPU重新扫描键盘为止。 键盘扫描程序一般应包括以下内容: (1)判别有无键按下。 (2)键盘扫描取得闭合键的行、列值。 (3)用计算法或查表法得到键值。 (4)判断闭合键是否释放,如没释放则继续等待。 (5)将闭合键键号保存,同时转去执行该闭合键的功能。,定时扫描方式,定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10ms)的定时,当定时时间到就产生定时器溢出中断,CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。,定时扫描方式,程序流程图,中断扫描方式,当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。中断扫描方式可以提高CPU工作效率 。,图中的4输入与门用于产生按键中断,其输入端与各列线相连,再通过上拉电阻接至+5V电源,输出端接至8051的外部中断输入端。具体工作如下:当键盘无键按下时,与门各输入端均为高电平,保持输出端为高电平;当有键按下时,端为低电平,向CPU申请中断,若CPU开放外部中断,则会响应中断请求,转去执行键盘扫描子程序。,矩阵键盘的接口实例,8051单片机的P1口作为键盘I/O口,键盘的列线接到P1口的低4位,键盘的行线接到P1口的高4位。列线P1.0P1.3分别接有4个上拉电阻到正电源+5V,并把列线P1.0P1.3设置为输入线,行线P1.4P.17设置为输出线。4根行线和4根列线形成16个相交点。,(1)程序功能。若有键被按下,应识别出是哪一个键闭合。方法是对键盘的行线进行扫描。(2)检测当前是否有键被按下。检测的方法是P1.4P1.7输出全“0”,读取P1.0P1.3的状态,若P1.0P1.3为全“1”,则无键闭合,否则有键闭合。(3)去除键抖动。当检测到有键按下后,延时一段时间再做下一步的检测判断。 (4)P1.4P1.7按下述4种组合依次输出:P1.7 1 1 1 0P1.6 1 1 0 1P1.5 1 0 1 1P1.4 0 1 1 1,矩阵键盘的接口实例,在每组行输出时读取P1.0P1.3,若全为“1”,则表示为“0”这一行没有键闭合,否则有键闭合。由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值。,矩阵键盘的接口实例,(5)为了保证键每闭合一次CPU仅做一次处理,必须去除键释放时的抖动。(6)扫描程序的流程图(7)键盘扫描程序,实践与思考,设计一个简易计算器,有键盘锁定功能。具体要求如下:(1)键盘锁定密码为8888,用户输入“锁定”“8888”后再按“锁定”键解锁。用户连续按两次“锁定”键,可以锁定键盘。(2)简易计算器共有16个按键,09十个数字键,加、减、等于、乘、除共5个功能键,还有一锁定键。(3)设定一个指示锁定状态的指示位,该位为“0”表示解锁状态,为“1”表示锁定状态。(4)编程实现键盘功能部分。,可编程键盘接口,Intel8279是一种可编程键盘/显示器接口芯片,它含有键盘输入和显示器输出两种功能。键盘输入时,它提供自动扫描,能与按键或传感器组成的矩阵相连,接收输入信息,它能自动消除键盘抖动并能对多键同时按下提供保护。显示输出时,它有一个168位显示RAM,其内容通过自动扫描,可由8或16 位LED数码管显示。,8279的基本功能8279的控制 8279与单片机、键盘/显示器的接口 实践与思考,可编程键盘接口,8279的基本功能,8279的内部结构和工作原理 8279的引脚和功能 8279的工作方式,8279的内部结构,8279的内部结构框图,8279的工作原理,(1)I/O控制及数据缓冲器(2)控制与定时寄存器及定时控制(3)扫描计数器(4)回复缓冲器、键盘去抖及控制(5)FIFO/传感器及其状态寄存器(6)显示RAM和显示寄存器。,I/O控制及数据缓冲器,数据缓冲器是双向缓冲器,连接内外总线,用于传送CPU和8279之间的命令或数据,对应的引脚为数据总线D0D7。 I/O控制线是CPU对8279进行控制的引线,对应的引脚为数据选择线A0;片选线;读、写信号线和。,控制与定时寄存器及定时控制,控制与定时寄存器用来寄存键盘及显示工作方式控制字,同时还用来寄存其他操作方式控制字。这些寄存器接收并锁存各种命令,再通过译码电路产生相应的信号,从而完成相应的控制功能。与其对应的引脚为时钟输入端CLK,复位端RESET。 定时控制电路由N个基本计数器组成,其中,第一个计数器是一个可编程的N级计数器,N= 231之间的数,由软件编程,将外部时钟输入端CLK分频得到内部所需的100kHz时钟,为键盘提供适当的扫描频率和显示扫描时间。与其相关的引脚是显示熄灭控制端。,扫描计数器,键盘和显示器共用,提供键盘和显示器的扫描信号。扫描计数器有两种工作方式:编码方式和译码方式。按编码方式工作时,计数器作二进制计数,4位计数状态从扫描线SL0SL3输出,经外部译码器译码后,为键盘和显示器提供扫描信号。按译码方式工作时,扫描计数器的最低二位被译码后,从SL0SL3输出,提供了4中选1的扫描译码。与其相关的引脚是扫描线SL0SL3。,回复缓冲器、键盘去抖及控制,回复线作为行列式键盘的列输入线,相应的列输入信号称为回复信号,由回复缓冲器缓冲并锁存。在逐行列扫描时,回复线用来搜寻每一行列中闭合的键,当某一键闭合时,去抖电路被置位,延时等待10ms后,再检查该键是否仍处在闭合状态,如不是闭合,则当做干扰信号不予理睬;如是闭合,则将该键的地址和附加的移位、控制状态一起形成键盘数据被送入8279内部的FIFO(先进先出)存储器。键盘数据格式如下:,控制、移位、扫描、回复控制和移位(D7、D6)的状态由两个独立的附加开关决定,而扫描(D5、D4、D3)和回复(D2、D1、D0)则是被按键置位的数据。D5、D4、D3来自扫描计数器,它们是根据回复信号而确定的行/列编码。,1.键盘工作方式,D7 D6 D5D4D3 D2D1D0,2.传感器开关状态矩阵方式,回复缓冲器、键盘去抖及控制,回复线的内容直接被送往相应的传感器RAM(即FIFO)存储器。在选通输入方式工作时,回复线的内容在CNTL/STB线的脉冲上升沿被送入FIFO存储器。 与其相关的引脚是回复线RL0RL7,控制/选通线CNTL/STB。,FIFO/传感器及其状态寄存器,FIFO/传感器RAM是一个双重功能的88RAM。在键盘选通工作方式时,它是FIFO存储器,其输入/输出遵循先入先出的原则,此时,FIFO状态寄存器用来存放FIFO的工作状态。例如:RAM是满还是空,其中存有多少数据,操作是否出错等。当FIFO存储器中有数据时,状态逻辑将产生IRQ=1信号,向CPU申请中断。 在传感器矩阵方式工作时,这个存储器用做传感器存储器,它存放着传感器矩阵中的每一个传感器状态。在此方式时,若检索出传感器的变化,IRQ信号变为高电平,向CPU申请中断。与其相关的引脚是中断请求线IRQ。,显示RAM和显示寄存器,显示RAM用来存储显示数据,容量为168位。在显示过程中,存储的显示数据轮流从显示寄存器输出。显示寄存器分位A、B两组,OUTA0OUTA3和OUTB0OUTB3,它们既可单独送数,也可组成一个8位(A组为高4位,B组为低4位)的字。显示寄存器的输出与显示扫描配合,不断从显示RAM中读出显示数据,同时,轮流驱动被选中的显示器件,以达到多路复用的目的,使显示器件呈稳定显示状态。与其相关的引脚是数据显示线OUTA0OUTA3和OUTB0OUTB3。 显示地址寄存器用来寄存由CPU进行读/写显示RAM的地址,它可以由命令设定,也可以设置成每次读出或写入后自动递增。,8279的引脚和功能,8279的引脚和功能,D0D7:数据总线,双向三态总线。CLK:系统时钟输入端。RESET:系统复位输入端,高电平有效,复位状态为:16个字符显示;编码扫描键盘双键锁定;程序时钟编程为31。 :片选输入端,低电平有效。A0:数据选择输入端,A0=1时,CPU写入数据为命令字,读出状态字为状态字;A0=0时,CPU读、写均为数据。 、 :读、写信号输入端,低电平有效。IRQ:中断请求输出端,高电平有效。SL0SL3:扫描输出端,用于扫描键盘和显示器。可编程设定为编码(4中选1)或译码输出(16选1)。,8279的引脚和功能,RL0RL7:回复线,它们是键盘或传感器的列信号输入端。SHIFT:移位信号输入端,高电平有效。它是8279键盘数据的次高位(D6),通常用做键盘上、下挡功能键。在传感器和选通方式中,SHIFT无效。CNTL/STB:控制/选通输入端,高电平有效。在键盘工作方式时,它是键盘数据的最高位,通常用做控制键。在选通输入方式时,它的上升沿可把来自RL0RL7的数据存入FIFO/传感器RAM中。在传感器方式时,无效。OUTA0OUTA3:A组显示信号输出端。OUTB0OUTB3:B组显示信号输出端。 :显示熄灭输出端,低电平有效。它在数字切换显示或使用熄灭命令时关显示。,8279的工作方式,(1)键盘的工作方式(2)显示器工作方式 通过对键盘/显示方式命令字和写显示RAM命令字的设置,显示数据写入显示缓冲器时可置为左端送入和右端送入两种方式。左端送入为依次填入方式,右端送入为移位方式。(3)传感器矩阵方式 通过对读FIFO/传感器RAM命令字的设置可将8279设置成传感器矩阵工作方式,此时,传感器的开关状态直接送到传感器RAM。CPU对传感器阵列扫描时,如果检测到某个传感器状态发生变化时,则中断申请信号IRQ变为高电平。,键盘的工作方式,通过对键盘/显示方式命令字的设置,可置为双键互锁方式和N键巡回方式。 双键互锁:双键锁定是为两键同时按下提供的保护方法。若有两键或多个键同时按下,则无论这些键是以什么次序按下的,它只识别最后一个释放的键,并把该键值送入FIFO/传感器RAM中。 N键巡回:N键巡回是为N个键同时按下时提供的保护方法。若有多个键同时按下时,键盘扫描能以按键先后顺序依次将键值送入FIFO/传感器RAM中。,8279的控制,8279的命令格式和命令字 8279状态格式与状态字 8279的数据输入/输出 8279的内部译码与外部译码,8279与单片机、键盘/显示器的接口,8051与8279的一般接口框图,图中8279外接88键盘,16位显示器,由SL0SL2译出键扫描线,由416译码器对SL0SL3译出显示器的位扫描线。,8279与单片机、键盘/显示器的接口,8279应用 实例,(1)程序功能。对8279初始化,并使实验板上4只按键完成如下功能:K1键(加1键)按一次数码管上数字加1。K2键(减1键)按一次数码管上数字减1。K3键(左移键)按一次两数码管内容交换。K4键(右移键)按一次两数码管内容交换。,8279应用 实例,(2)8279外接4个按键作为输入设备,外接2位数码管作为输出设备,LED数码管采用双位共阴数码管。8279 RL0作为按键输入线,SL0SL2外接LS138译码器,对键盘和显示器扫描,8279 OUTAOUTB作为显示器的段数据输出口。(3)8279的IRQ通过74LS04反相后作为8051外部中断输入。(4)如图中可以看出8051 P2.4作为8279选片端,8051 P2.0作为8279 A0选择线,根据线选法原理8279命令/状态口地址:DFFFH,数据口地址:DEFFH。 (5)程序参考流程图(6)程序清单,程序参考流程图,实践与思考,设计一个电子号码锁,具体要求如下:1. 键盘由8279来控制,开机时,显示器显示“00000000”。2. 按09为数字键,采用右边进入显示在8个七段显示器中。3. 其他键为功能键,设置如下:(1)*为开锁键,输入8个密码后按“*”,与存放在TAB“123456789”的内定密码进行比较,若密码正确则使电锁动作,否则清除显示器为“00000000”。(2)#为清除键,清除显示器为“00000000”。4. 试编写按键部分的程序。,

    注意事项

    本文(键盘接口技术课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开