1 / 35

6.3 键盘接口技术

6.3 键盘接口技术. 输入外设: 键盘、 BCD 码拨盘等;. 输出外设: LED 显示器、 LCD 显示器、打印机等。. 6.3.1 键盘接口原理. 1. 键盘输入的特点. 键盘:一组按键开关的集合 。. 行线电压信号通过键盘开关机械触点的断开、闭合, 输出波形如图10-6。. 2. 按键的确认. 检测行线电平,便可确认按键按下与否。 高电平: 断开; 低电平 :闭合,. 3.如何消除按键的抖动. 常用 软件来消除按键抖动。. 基本思想 : 检测到有键按下,键对应的行线为低,软 件延时10 ms 后,行线如仍为低,则确认该行有键按下。.

lane-walter
Download Presentation

6.3 键盘接口技术

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 6.3 键盘接口技术 输入外设:键盘、BCD码拨盘等; 输出外设:LED显示器、LCD显示器、打印机等。

  2. 6.3.1 键盘接口原理 1. 键盘输入的特点 键盘:一组按键开关的集合。 行线电压信号通过键盘开关机械触点的断开、闭合, 输出波形如图10-6。

  3. 2. 按键的确认 检测行线电平,便可确认按键按下与否。 高电平:断开;低电平:闭合, 3.如何消除按键的抖动 常用软件来消除按键抖动。 基本思想:检测到有键按下,键对应的行线为低,软 件延时10ms后,行线如仍为低,则确认该行有键按下。 当键松开时,行线变高,软件延时10ms后,行线仍为 高,说明按键已松开。 采取以上措施,躲开了两个抖动期t1和t3的影响。

  4. 6.3.2 键盘接口的工作原理 独立式按键接口和行列式键盘接口。 1.独立式键盘接口 各键相互独立,每个按键各接一根输入线,通过检 测输入线的电平状态可很容易判断那个键被按下。 此种接口适于键数较少或操作速度较高的场合。 图(a)为中断方式的独立式键盘工作电路 图(b)为查询方式的独立式键盘工作电路。

  5. 图为8255A扩展I/O口的独立式按键接口电路。

  6. 图用三态缓冲器扩展的I/O口的按键接口电路。

  7. 2. 行列式(矩阵式)键盘接口 用于按键数目较多的场合,由行线和列线组成, 按键位于行、列的交叉点上。如图所示。 按键数目较多的场合,行列式键盘与独立式键盘 相比,要节省很多的I/O口线。

  8. (1)行列式键盘工作原理 无键按下,该行线为高电平,当有键按下时,行线电平有列线的电平来决定。 由于行、列线为多键共用,各按键彼此将相互发 生影响,必须将行、列线信号配合起来并作适当的处 理,才能确定闭合键的位置。 (2)按键的识别方法 a. 扫描法 图(b)中3号键被按下为例,来说明此键 时如何被识别出来的。

  9. 识别键盘有无键被按下的方法,分两步进行: 第1步:识别键盘有无键按下; 第2步:如有键被按下,识别出具体的按键。 把所有列线置0,检查各行线电平是否有变化,如有变化,说明有键按下,如无变化,则无键按下。 上述方法称为扫描法,即先把某一列置低电平, 其余各列为高电平,检查各行线电平的变化,如果某 行线电平为低,可确定此行列交叉点处的按键被按 下。 b. 线反转法 只需两步便能获得此按键所在的行列值,线反转 法的原理如图。

  10. 第1步:列线输出为全低电平,则行线中电平由高变低第1步:列线输出为全低电平,则行线中电平由高变低 的所在行为按键所在行。 第2步:行线输出为全低电平,则列线中电平由高变低 所在列为按键所在列。 结合上述两步,可确定按键所在行和列。 (3)键盘的编码 根据实际需要灵活编码。 6.3.3 键盘的工作方式 单片机在忙于各项工作任务时,如何兼顾键盘的输 入,取决于键盘的工作方式。

  11. 原则:即要保证能及时响应按键操作,又不要过多占原则:即要保证能及时响应按键操作,又不要过多占 用CPU的工作时间。 通常,键盘工作方式有3种,即编程扫描、定时扫 描和中断扫描。 1. 编程扫描方式 只有当单片机空闲时,才调用键盘扫描子程序, 扫描键盘。 工作过程: (1)在键盘扫描子程序中,先判断有无键按下。 方法:PA口8位输出全0,读PC口低4位状态,若PC0~ PC3为全1,则说明键盘无键按下;若不全为1,则说明 键盘可能有键按下。

  12. (2)用软件来消除按键抖动的影响。如有键按下,则(2)用软件来消除按键抖动的影响。如有键按下,则 进行下一步。 (3)求按下键的键号。 (4)等待按键释放后,再进行按键功能的处理操作。 2. 定时扫描工作方式 利用单片机内的定时器,产生10ms的定时中断,对 键盘进行扫描。 3.中断工作方式 只有在键盘有键按下时,才执行键盘扫描程序,如 无键按下,单片机将不理睬键盘。 键盘所做的工作分为三个层次,如图。

  13. 第1层:单片机如何来监视键盘的输入。三种工作方第1层:单片机如何来监视键盘的输入。三种工作方 式:①编程扫描②定时扫描③中断扫描。 第2层:确定具体按键的键号。体现在按键的识别方 法上就是:①扫描法;②线反转法。 第3层:执行键处理程序。 6.3.4 键盘/显示器接口设计实例 一般把键盘和显示器放在一起考虑。 1 利用并行I/O芯片实现键盘/显示器接口 图:8031用扩展I/O接口芯片8155H实现的 6位LED显示和32键的键盘/显示器接口电路。图中的 8155H也可用8255A来替代。

  14. 8031外扩一片8155H。RAM地址为7E00H~7EFFH。 I/O口地址为7F00H~7F05H。 PA口为输出口,控制键盘列线的扫描,同时又是6位共阴极显示器的位扫描口。 PB口作为显示器段码输出口,PC口作为键盘的行线状态的输入口。 75452:反相驱动器,7407:同相驱动器。 1.动态显示程序设计 8031内部RAM设置6个显示缓冲单元79H~7EH,存 放要显示的6位数据。 8155H的PB口输出相应位的段码,依次的改变PA口 输出为高的位使某一位显示某一字符,其它位为暗。 动态地显示出由缓冲区中显示数据所确定的字符。 程序流程如图 。

  15. 2.键盘程序设计 (1)判别键盘上有无键闭合 (2)去除键的机械抖动 (3)判别闭合键的键号 (4)使CPU对键的一次闭合仅作一次处理 键盘程序的流程如图。

  16. 3 利用8031的串行口实现键盘/显示器接口 串行口未作它用,可用来外扩键盘/显示器。 串行口为方式0输出,串行口外接移位寄存器74LS164。 接口电路如图10-17。 74LS164(0)~74LS164(7):作为8位LED的段码输出, 8031的P3.4、P3.5:两行键的行状态输入 P3.3(TXD):同步移位脉冲输出控制线,

  17. 优点:亮度大,容易做到显示不闪烁,且CPU不必 频繁的为显示服务,从而使单片机有更多的时间处理 其它事务。 4利用通用键盘/显示器接口芯片8279实现键盘/ 显示器接口(自学) Intel 8279芯片:通用可编程键盘/显示器接口芯片。 对键盘部分提供扫描工作方式,能对64个键键盘阵 列不断扫描,自动消抖,自动识别出闭合的键并得到键 号,能对双键或N键同时按下进行处理。

  18. 扫描方式作的显示接口,可显示多达16位的字符。扫描方式作的显示接口,可显示多达16位的字符。 1.8279的引脚及内部结构

  19. 2. 引脚功能介绍 (1)与CPU的接口引脚 • DB0~DB7:数据总线、双向、三态,与单片机数据 • 总线相连,在CPU和8279之间传送命令或数据。 • CLK:系统时钟,用于8279内部定时,以产生其工作 • 所需的时序。 • RESET:高电平时,8279被复位,复位后的状态如下: * 16个字符左边输入显示方式 * 编码扫描键盘、双键锁定方式 • CS*:片选

  20. A0:=1,写入的是命令字节; 读出的是状态字节。 =0,写入或读出的字节均为数据。 • RD*、WR*:读、写控制引脚 • IRQ:中断请求线。在键盘方式中,当键盘RAM(先 • 进先出)中存有按下键的数据时,IRQ为高电平,向 • CPU提出中断申请。 CPU每次从键盘RAM中读出一个字节数据时,IRQ就变为低电平。如果键盘RAM中还有未读完的数据,IRQ将再次变为高电平,再次提出中断请求。 (2)扫描信号输出引脚

  21. SL0~SL3 扫描输出。用来扫描键盘和显示器。可编程设定 为编码输出,即SL0~SL3需外接4-16译码器,输出16 取1的扫描信号,也可编程设定为译码输出,即由SL0 ~SL3直接输出4取1的扫描信号。 (3)与键盘连接的引脚 • RL0~RL7 键盘矩阵的行信号输入线。 • SHIFT 输入线,通常用作键盘上、下档功能的控制键。 • CNTL/STB 输入线,高电平有效。在键盘方式时,通常用来 作为键盘控制功能键使用。

  22. (4)与显示器连接的引脚 • OUTA0~OUTA3(A组显示数据)、OUTB0~OUTB3(B • 组显示数据):向LED显示器输出的段码, 与扫描信号 • 线SL0~SL3同步。两组可独立使用,也可合并使用。 • BD*:消隐显示控制。 3. 8279的基本功能部件 (1)扫描计数器 编码方式:扫描线SL0~SL3输出,经外部4-16译码器 译码后,为键盘和显示器提供16取1的扫描线。 译码方式:计数器的最低二位在8279内部译码后,从 SL0~SL3输出,为键盘和显示器提供4取1扫描线。

  23. (2)键盘去抖动及回复缓冲器 RL0~RL7被接到键盘的行线。 在逐列扫描时,当某一键闭合,消抖电路延时等 待10ms之后,再检验该键是否仍闭合。若闭合,则该 键的行、列地址和附加的移位、控制状态一起形成键 盘数据,送入8279内部的键盘RAM存储器。格式为: 控制(CNTL)和移位(SHIFT)的状态由两个独立 的附加开关决定,而扫描(D5、D4、D3)是被按键的 行编码,而回复(D2、D1、D0)则是被按键的列位置 数据。

  24. (3)键盘RAM及其状态寄存器 键盘RAM:8字节先进先出(FIFO)存储器。内部的FIFO 状态寄存器存放FIFO的工作状态,如FIFO是空还是满, 其中存有多少字符,是否操作出错等等。 当FIFO存储器空间不足时,状态逻辑将产生IRQ=1 信号,向CPU发出中断申请。 (4)显示RAM和显示地址寄存器 显示RAM:存显示数据。共16个字节,最多可存放16位 显示信息。显示RAM的输出与显示扫描配合,同时轮流驱动被选中的显示位,使显示器呈现稳定的显示(动态扫描)。 4. 8279的命令字和状态字 命令字:D7、D6、D5为命令特征位,来区分8条不同

  25. 的命令字。 状态字:主要用于键盘工作方式,以指示键盘RAM中 的字符数和有无错误发生。 5. 8279与键盘/显示器的接口 图为8279与8位显示器,4×8键盘的接口电路。 行线接8279的RL0~RL3,8279选用外部译码方式,SL0 ~SL2经74LS138(1)译码输出,接列线,实现键盘逐 列扫描。 SL0~SL2又由74LS138(2)译码输出到显示器各位的公 共阴极,进行逐位扫描显示。OUTB0~3、OUTA 0~3输 出8位段码。 当位切换时,BD*输出为低电平,使74LS138(2)输出 全为高电平,显示消隐。 当键盘上出现有效的闭合键时,键输入数据自动进入

  26. 8279的键盘RAM存储器,并向8031请求中断,8031响应8279的键盘RAM存储器,并向8031请求中断,8031响应 中断读取键盘RAM中的键输入数据。若要更新显示器输 出,仅需改变8279中显示RAM中的内容。 图:8279的命令/状态口地址为7FFFH,数据口 地址为7FFEH。

More Related