8279 - 可编程键盘



8279 可编程键盘/显示控制器由英特尔设计,用于将键盘与 CPU 接口连接。键盘首先扫描键盘并识别是否有任何键被按下。然后,它将所按下键的相对响应发送到 CPU,反之亦然。

键盘与 CPU 接口连接的方式有多少种?

键盘可以通过中断或轮询模式与 CPU 接口连接。在**中断模式**下,只有在按下任何键时才会请求处理器服务,否则 CPU 将继续执行其主要任务。

在**轮询模式**下,CPU 定期读取 8279 的内部标志以检查是否有键被按下或按键压力。

8279 键盘是如何工作的?

键盘最多包含 64 个键,通过使用键码与 CPU 接口连接。这些键码经过去抖动并存储在 8 字节 FIFO RAM 中,CPU 可以访问该 RAM。如果在 FIFO 中输入了超过 8 个字符,则表示一次按下了超过 8 个键。此时将设置溢出状态。

如果 FIFO 包含有效的键输入,则 CPU 在中断模式下被中断,否则 CPU 在轮询中检查状态以读取输入。一旦 CPU 读取键输入,FIFO 就会更新,并且键输入会从 FIFO 中弹出以为空新输入腾出空间。

架构和描述

8279 Architecture

I/O 控制和数据缓冲区

此单元控制数据通过微处理器的流程。仅当 D 为低电平时启用。其数据缓冲区将系统的外部总线与微处理器的内部总线接口连接。A0、RD 和 WR 引脚用于命令、状态或数据读/写操作。

控制和定时寄存器以及定时控制

此单元包含寄存器,用于存储键盘、显示模式和其他由 CPU 编程的操作。定时和控制单元处理电路操作的定时。

扫描计数器

它有两种模式,即**编码模式**和解码模式。在编码模式下,计数器提供二进制计数,该计数需要外部解码以提供键盘和显示的扫描线。

在**解码扫描模式**下,计数器内部解码最低有效 2 位,并在 SL0-SL3 上提供 1/4 的解码扫描。

返回缓冲区、键盘去抖动和控制

此单元首先逐行扫描键闭合,如果找到则键盘去抖动单元对键输入进行去抖动。如果检测到相同的键,则该键的代码将与 SHIFT 和 CONTROL 键状态一起直接传输到传感器 RAM。

FIFO/传感器 RAM 和状态逻辑

此单元充当 8 字节先进先出 (FIFO) RAM,其中每个按下键的键码都按照其顺序输入到 RAM 中。状态逻辑在每次 FIFO 读取操作后生成中断请求,直到 FIFO 变为空。

在扫描的传感器矩阵模式下,此单元充当传感器 RAM,其每一行都加载了其对应传感器行的状态到矩阵中。当传感器改变其状态时,IRQ 线变为高电平并中断 CPU。

显示地址寄存器和显示 RAM

此单元由显示地址寄存器组成,这些寄存器保存 CPU 当前从显示 RAM 读/写到的字的地址。

8279 - 引脚描述

下图显示了 8279 的引脚图 -

8279 Pin Diagram

数据总线线,DB0 - DB7

这些是 8 条双向数据总线,用于传输到/从 CPU 的数据。

CLK

时钟输入用于生成微处理器所需的内部定时。

RESET

顾名思义,此引脚用于复位微处理器。

CS 片选

当此引脚设置为低电平时,它允许读/写操作,否则此引脚应设置为高电平。

A0

此引脚指示命令/状态信息的传输。当它为低电平时,表示数据传输。

RD,WR

此读/写引脚使数据缓冲区能够通过数据总线发送/接收数据。

IRQ

当 FIFO 传感器 RAM 中有数据时,此中断输出线变为高电平。中断线在每次 FIFO RAM 读取操作时变为低电平。但是,如果 FIFO RAM 进一步包含任何需要 CPU 读取的键码输入,则此引脚再次变为高电平以向 CPU 生成中断。

Vss,Vcc

这些是微处理器的接地和电源线。

SL0 − SL3

这些是用于扫描键盘矩阵和显示数字的扫描线。可以使用模式控制寄存器将这些线编程为编码或解码。

RL0 − RL7

这些是返回线,连接到键的一个端子,而键的另一个端子连接到解码的扫描线。当按下任何键时,这些线将设置为 0。

SHIFT

Shift 输入线状态与扫描键盘模式下 FIFO 中的每个键码一起存储。在它被键闭合拉低之前,它在内部被拉高以保持高电平。

CNTL/STB - 控制/锁存输入模式

在键盘模式下,此线用作控制输入并在键闭合时存储在 FIFO 中。在锁存输入模式下,该线是锁存线,将数据输入到 FIFO RAM 中。它有一个内部上拉。该线在键闭合时被拉低。

BD

表示空白显示。它用于在数字切换期间使显示屏变暗。

OUTA0 – OUTA3 和 OUTB0 – OUTB3

这些是两个 16x4 或一个 16x8 内部显示刷新寄存器的输出端口。来自这些线的数据与扫描线同步,以扫描显示和键盘。

8279 的操作模式

8279 有两种操作模式 - **输入模式**和**输出模式**。

输入模式

此模式处理键盘给出的输入,并且此模式进一步分为 3 种模式。

  • **扫描键盘模式** - 在此模式下,可以使用编码或解码扫描将键矩阵接口连接。在编码扫描中,可以接口连接 8×8 键盘,或者在解码扫描中,可以接口连接 4×8 键盘。按下键的代码以及 SHIFT 和 CONTROL 状态存储到 FIFO RAM 中。

  • **扫描传感器矩阵** - 在此模式下,可以使用编码器或解码器扫描将传感器阵列接口连接到处理器。在编码器扫描中,可以接口连接 8×8 传感器矩阵,或者在解码器扫描中,可以接口连接 4×8 传感器矩阵。

  • **锁存输入** - 在此模式下,当控制线设置为 0 时,返回线上的数据将逐字节存储在 FIFO 中。

输出模式

此模式处理与显示相关的操作。此模式进一步分为两种输出模式。

  • **显示扫描** - 此模式允许将 8/16 字符多路复用显示器组织为双 4 位/单 8 位显示单元。

  • **显示输入** - 此模式允许从右侧/左侧输入要显示的数据。

广告