键盘显示器接口8279

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

补充:键盘接口
补充:键盘接口
AGAIN:XOR AL,AL MOV DX,PORT0 OUT DX,AL MOV DX,PORT1 IN AL,DX CMP AL,0FFH JZ AGAIN CALL DELAY
PROG:MOV BL,0;键号初值为0
MOV BH,0FEH;送扫描初值 MOV CX,8;计数值为行数
补充:键盘接口
补充:键盘接口
4) 回复缓冲器、键盘消抖及控制
回复缓冲器来自RL0—RL7的8根回复线的回复信号,由回复缓 冲器缓冲并锁存。 在键盘工作方式下,这些线接到键盘矩阵的列线。在逐行 扫描时,回复搜索一行中闭合的键。当某一键闭合时,消抖电 路被置位,延时等待10ms之后,再检验该键是否仍闭合。若闭 合,则该键的行、列地址和附加的移位、控制状态一起形成键 盘数据,送8279内部的FIFO先进先出存储器。
补充:键盘接口
FROW :MOV AL,BH;扫描一行 MOV DX,PORT0 FCOL: RCR AL,1
OUT DX,AL
ROL BH,1 MOV DX,PORT1;读进列值 IN AL,DX CMP AL,0FFH
JNC PROCE
INC BL JMP FCOL PROCE:….;键译码程序 DONE : …;后序处理程序
5) FIFO /传感器RAM 及其状态寄存器
FIFO/传感器RAM是一个8*8位RAM。 在键盘方式时,它是FIFO存储器,每次以新的顺序写入到 RAM单元中;而每次读出时,总是按输入的先后顺序,将最先 输入的数据读出。
FIFO状态寄存器用来存放FIFO RAM的工作状态,像FIFO RAM是空还是满,其中存有多少个字符,是否操作出错等。 当FIFO RAM不空时,状态逻辑将产生IRQ=1信号,向CPU发 出中断申请。
补充:键盘接口
(二)8279的工作方式
1 数据输入方式 :8279有三种数据输入方式 (1)键盘扫描方式
补充:键盘接口
行反转法
补充:键盘接口
8255A的A口行线,B口列线。
补充:键盘接口
START:MOV AL,82H OUT 63H,AL WAIT0: MOV AL,0 CALL DELAY MOV AL,90H OUT 63H,AL
OUT 60H,AL
IN AL,61H CMP AL, 0FFH JZ WAIT0 PUSH AX PUSH AX
补充:键盘接口
2)控制与定时寄存器及定时控制
控制与定时寄存器用来寄存键盘及显示的工作方式以及CPU编 程的其他方式。这些寄存器一旦接收并锁存送来的命令,就通 过译码产生相应的控制信号,从而完成相应的控制功能。
定时控制包括基本的计数链。首级计数器是一个可编程的N级计 数器,N可以在2—31之间由软件编程,以便从外部时钟CLK得 到内部所需要的100KHz时钟。然后经过分频为键盘扫描提供适 当的逐行扫描频率和显示扫描时间。
补充:键盘接口
第二节 8279可编程键盘/显示器接口芯片
8279是一种通用的可编程的键盘、显示器接口芯片,能 完成键盘输入和显示控制的功能,可以大大提高CPU效率,并 可使接口电路更具有通用性。 8279的功能主要包括键盘输入和显示控制两部分,其中 键盘部分提供扫描工作方式,可连接64个键的矩形键盘,并 具有自动消抖和多键同时按下保护功能。显示部分则提供扫 描方式的显示接口,可与8位或16位LED数码管连接构成。 实现对键盘和显示器的自动扫描 识别闭合键的键号 完成显示器的动态扫描
补充:键盘接口
3)扫描计数器
4位的计数器,有译码、编码两种方式,由编程设定. 扫描计数器有两种工作方式。 按编码方式工作时,计数器作二进制计数,四位计数状态 从扫描线SL0—SL3输出,经外部译码器译码后,为键盘和显示 器提供扫描线; 按译码方式工作时,扫描计数器的最低二位被译码后,从 SL0—SL3输出,因此SL0—SL3提供4中取1的扫描译码。
补充:键盘接口
6)显示RAM和显示地址寄存器
显示RAM用来存放显示数据,它有16*8位的容量位,最多可存 放16位的显示信息。在显示过程中,这些信息被轮流从显示寄 存器输出。
显示寄存器则分为A、B两组,即OUTA0—OUTA3和OUTB0—OUTB3, 它们可以单独送数,也可以组成8位的字节。显示寄存器的输出 与显示扫描配合,不断从显示RAM中读出显示数据,同时轮流 驱动被选中的显示位,以达到多路复用的目的,使显示器呈现 出稳定的显示状态。 显示地址寄存器用来寄存由CPU进行读/写的显示RAM的地址, 它由命令设定,也可以设置成每次读出或写入之后自动递增。
补充:键盘接口
二、8279的组成原理和工作原理
8279内部结构框图
补充:键盘接口
工作原理
• 由SL0~SL3输出键盘和显示器的扫描线 • 回复线RL0~RL7作为键盘的列线以搜索闭合键将 键盘数据送入FIFO存储器, • 有键闭合时数据进入FIFO存储器,使IRQ置位向 CPU申请中断。 • 显示缓冲区(RAM)存放显示数据的段码,数据 轮流从显示寄存器输出,在SL0~SL3的配合下, 实现动态显示。(OUTA和OUTB)
补充:键盘接口
补充:键盘接口
1)数据缓冲器及输入输出控制
数据缓冲器是双向缓冲器,它将内部总线和外部总线连通,用于 传送CPU和8279之间的命令和数据。
输入输出控制线控制数据向各种内部寄存器和缓冲器发送或接收。 CS是片选信号,只有CS=0时,8279才被选通,CPU才能对其进行 读写操作。 RD、WR来自CPU的读、写控制信号。 A0用于区分信息的特征,当A0=0时,表示输入输出的信息是数 据;当A0=1时,表示输入的信息是指令,而输出的信息是状态 字。
补充:键盘接口
“1”
“0” <10ms
抖动时间 <10ms
开关动作时间 >100ms
补充:键盘接口
有按键信号? Y
N
延时等待10ms
仍有按键信号? N Y 键盘处理 按键释放? Y N
补充:键盘接口
串键问题
所谓的串键是指在键盘上同时按下两个或多个键。防 止因串键而产生错误代码的方法很多,常用的方法: 采用软件进行扫描,直到检测到只有一个键闭合时, 才从键盘读取代码。这种方法认定最后一个仍然保持按下 的键是正确的键,它一般用于采用软件对键盘进行扫描的 场合。 硬件方法进行锁定,在第一个键未释放之前,按其它 的键不产生选通信号。这种方法认为第一个按下的键有效。
补充:键盘接口
一、 8279引脚及逻辑符号
补充:键盘接口 8279采用40引脚封装,其管脚、引线功能如图所示。其引脚功 能如下: D0~D7(数据总线):双向、三态总线,和系统数据总线相连; 用于CPU和8279间的数据/命令传递。 CLK(系统时钟):输入线,为8279提供内部时钟的输入端。 RESET(复位):输入线,当RESET=1时,8279复位,其复位状 态为:16个字符显示; 编码扫描键盘--双键锁定; 程序时钟 编码为31。 CS(片选):输入线,当CS=0时8279被选中,允许CPU对其读、 写,否则被禁止。 A0(C/D):输入线。当A0=1时CPU写入数据为命令字,读出数 据为状态字;A0=0时CPU读、写的字节均为数据。
补充:键盘接口
本讲重点:
键盘接口(键盘种类,矩阵键盘的行 扫描与线反转法的电路、原理与编程)
8279的使用
补充:键盘接口
补充:键盘接口
补充:键盘接口
键盘的分类
(1)编码键盘 编码键盘带有必要的硬件电路,能自动提供按键的 ASCII编码,并能将数据保持到新键按下为止,还有去抖 动和防止多键、串键等保护装置。编码键盘软件简短, 它根据编码就能识别是什么键按下,但硬件电路复杂, 价格较贵。 (2)非编码键盘 它仅仅是按行、列排列起来的矩阵开关,其它的工作如 识别键、提供代码、去抖动等均由软件来解决。目前微 型机中,一般为了降低成本,简化硬件电路,大多采用 非编码键盘,所以下面仅介绍非编码键盘的接口电路。
JNZ FCOL
ADD BL,8 LOOP FROW JMP DONE
补充:键盘接口
行反转法识别按键
将行线接一个并行口,先让它工作在输出方式,将 列线出接到一个并行口,先让它工作在输入方式。编程使 CPU通过输出端口往各行线全部送低电平,然后读入列线 的值。如果有某一个键被按下,则必有一条列线为低电平。 然后进行线反转,通过编程对两个并行端口进行方式设置, 使连接行线的端口工作在输入方式,并将刚才读到的列线 值通过所连接的并行口再输出到列线,然后读取行线的值, 那么闭合键所对应的行线必为低电平,这样当一个键被按 下时,就可以读到一对唯一的列值和行值。
补充:键盘接口 控制(CNTL)和移位(SHIFT)的状态由两个独立的附加 开关状态决定,而扫描(D5D4D3)和回复(D2D1D0)则是被按 键的行列位置数据。D5D4D3三位来自扫描计数器,是被按键的 行编码,而D2D1D0三位则是来自列计数器,它们是根据回复信 息而确定的列编码。
补充:键盘接口
补充:键盘接口 CNTL/STB控制:输入线,高电平,在键盘方式下,该输入信号 是键盘数据的最高位,通常用来扩充键盘开头的控制功能,作为 控制键用。 OUTA0~OUTA3(A组显示信号):输出线。 OUTB0~OUTB3(B组显示信号):输出线。 这两组引线都是显示数据输出线,与多位数字显示的扫描线 SL0~SL3同步,两组可以独立使用,也可以合并使用。 BD(显示消隐):显示熄灭控制输出线,它输出一个控制信号, 低电平有效。通过硬件使七段LED显示熄灭。
补充:键盘接口
非编码键盘按键的识别:
行扫描法和线反转法
补充:键盘接口
(1)行扫描法识别按键
行扫描法识别按键的过程是:首先判断是否有键被按下, 即先进行全扫描,将所有行线置成低电平;然后扫描全部 列线,如果扫描的列值全是高电平,则说明没有任何一个 键被按下;如果读入的列值不是全1,则说明有键按下, 再用逐行扫描的方法确定哪一个键被按下。先扫描第一行, 即置该行为低电平,其他行为高电平,然后检查列线,如 果某条列线为低电平,则说明第一行与该列相交的位置上 的按键被按下;如果所有列线全是高电平,则说明第一行 没有键被按下,接着扫描第二行,以此类推,直到找到被 按下的键。
补充:键盘接口
去抖动和防串键
在键盘设计时,除了对键码的识别外,还有两个问题 需要解决:抖动和串键。 当用手按下一个键时,往往会出现按键在闭合位置 和断开位置之间跳几下才稳定到闭合状态的情况;在释放 一个键时,也会出现类似的情况,这就是抖动。抖动的持 Байду номын сангаас时间随操作员而异,不过通常总是不大于10ms。大家容 易想到,抖动问题不解决就会引起对闭合键的错误识别。
POP AX
OUT 61H,AL IN AL,60H POP BX MOV AH,BL;列值送AH,行值送AL LEA SI,TABLE;取键码表首址
补充:键盘接口
MOV CX,40H
LOOP1: CMP AX,[SI] JZ KEYPRO INC SI INC SI LOOP LOOP1;未完,继续。 JMP START;未找到相同码,重新开始找。 KEYPRO:…;键译码程序 TABLE:DW 0FEFEH;键码表,K0 DW 0FEFDH DW 0FEFBH DW 0FEF7H………..
补充:键盘接口
RD、WR(读、写信号):输入线。低电平有效,来自CPU的控制信 号,控制8279的读、写操作。 IRQ(中断请求):输出线。高电平有效。 在键盘工作方式中,当FIFO/传感器RAM存有数据时,IRQ为高电平。 CPU每次从RAM中读出数据时,IRQ变为低电平。若RAM中仍有数据, 则IRQ再次恢复高电平。 在传感器工作方式中,每当检测到传感器状态变化时,IRQ就出现 高电平。 SL0~SL3(扫描线):输出线。用来扫描键盘和显示器。它们可以 编程设定为编码(4中取1)或译码输出(16取1)。 RL0~RL7(回复线):输入线。它们是键盘矩阵或传感矩阵的列 (或行)信号输入线。 SHIFT(移位信号):输入线,高电平有效,该信号是8279键盘数 据的次高位D6,通常用来补充键盘开关的功能,可以用作键盘上 下档功能键。
相关文档
最新文档