360 likes | 457 Views
6.3 键盘接口技术. 输入外设: 键盘、 BCD 码拨盘等;. 输出外设: LED 显示器、 LCD 显示器、打印机等。. 6.3.1 键盘接口原理. 1. 键盘输入的特点. 键盘:一组按键开关的集合 。. 行线电压信号通过键盘开关机械触点的断开、闭合, 输出波形如图10-6。. 2. 按键的确认. 检测行线电平,便可确认按键按下与否。 高电平: 断开; 低电平 :闭合,. 3.如何消除按键的抖动. 常用 软件来消除按键抖动。. 基本思想 : 检测到有键按下,键对应的行线为低,软 件延时10 ms 后,行线如仍为低,则确认该行有键按下。.
E N D
6.3 键盘接口技术 输入外设:键盘、BCD码拨盘等; 输出外设:LED显示器、LCD显示器、打印机等。
6.3.1 键盘接口原理 1. 键盘输入的特点 键盘:一组按键开关的集合。 行线电压信号通过键盘开关机械触点的断开、闭合, 输出波形如图10-6。
2. 按键的确认 检测行线电平,便可确认按键按下与否。 高电平:断开;低电平:闭合, 3.如何消除按键的抖动 常用软件来消除按键抖动。 基本思想:检测到有键按下,键对应的行线为低,软 件延时10ms后,行线如仍为低,则确认该行有键按下。 当键松开时,行线变高,软件延时10ms后,行线仍为 高,说明按键已松开。 采取以上措施,躲开了两个抖动期t1和t3的影响。
6.3.2 键盘接口的工作原理 独立式按键接口和行列式键盘接口。 1.独立式键盘接口 各键相互独立,每个按键各接一根输入线,通过检 测输入线的电平状态可很容易判断那个键被按下。 此种接口适于键数较少或操作速度较高的场合。 图(a)为中断方式的独立式键盘工作电路 图(b)为查询方式的独立式键盘工作电路。
2. 行列式(矩阵式)键盘接口 用于按键数目较多的场合,由行线和列线组成, 按键位于行、列的交叉点上。如图所示。 按键数目较多的场合,行列式键盘与独立式键盘 相比,要节省很多的I/O口线。
(1)行列式键盘工作原理 无键按下,该行线为高电平,当有键按下时,行线电平有列线的电平来决定。 由于行、列线为多键共用,各按键彼此将相互发 生影响,必须将行、列线信号配合起来并作适当的处 理,才能确定闭合键的位置。 (2)按键的识别方法 a. 扫描法 图(b)中3号键被按下为例,来说明此键 时如何被识别出来的。
识别键盘有无键被按下的方法,分两步进行: 第1步:识别键盘有无键按下; 第2步:如有键被按下,识别出具体的按键。 把所有列线置0,检查各行线电平是否有变化,如有变化,说明有键按下,如无变化,则无键按下。 上述方法称为扫描法,即先把某一列置低电平, 其余各列为高电平,检查各行线电平的变化,如果某 行线电平为低,可确定此行列交叉点处的按键被按 下。 b. 线反转法 只需两步便能获得此按键所在的行列值,线反转 法的原理如图。
第1步:列线输出为全低电平,则行线中电平由高变低第1步:列线输出为全低电平,则行线中电平由高变低 的所在行为按键所在行。 第2步:行线输出为全低电平,则列线中电平由高变低 所在列为按键所在列。 结合上述两步,可确定按键所在行和列。 (3)键盘的编码 根据实际需要灵活编码。 6.3.3 键盘的工作方式 单片机在忙于各项工作任务时,如何兼顾键盘的输 入,取决于键盘的工作方式。
原则:即要保证能及时响应按键操作,又不要过多占原则:即要保证能及时响应按键操作,又不要过多占 用CPU的工作时间。 通常,键盘工作方式有3种,即编程扫描、定时扫 描和中断扫描。 1. 编程扫描方式 只有当单片机空闲时,才调用键盘扫描子程序, 扫描键盘。 工作过程: (1)在键盘扫描子程序中,先判断有无键按下。 方法:PA口8位输出全0,读PC口低4位状态,若PC0~ PC3为全1,则说明键盘无键按下;若不全为1,则说明 键盘可能有键按下。
(2)用软件来消除按键抖动的影响。如有键按下,则(2)用软件来消除按键抖动的影响。如有键按下,则 进行下一步。 (3)求按下键的键号。 (4)等待按键释放后,再进行按键功能的处理操作。 2. 定时扫描工作方式 利用单片机内的定时器,产生10ms的定时中断,对 键盘进行扫描。 3.中断工作方式 只有在键盘有键按下时,才执行键盘扫描程序,如 无键按下,单片机将不理睬键盘。 键盘所做的工作分为三个层次,如图。
第1层:单片机如何来监视键盘的输入。三种工作方第1层:单片机如何来监视键盘的输入。三种工作方 式:①编程扫描②定时扫描③中断扫描。 第2层:确定具体按键的键号。体现在按键的识别方 法上就是:①扫描法;②线反转法。 第3层:执行键处理程序。 6.3.4 键盘/显示器接口设计实例 一般把键盘和显示器放在一起考虑。 1 利用并行I/O芯片实现键盘/显示器接口 图:8031用扩展I/O接口芯片8155H实现的 6位LED显示和32键的键盘/显示器接口电路。图中的 8155H也可用8255A来替代。
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口 输出为高的位使某一位显示某一字符,其它位为暗。 动态地显示出由缓冲区中显示数据所确定的字符。 程序流程如图 。
2.键盘程序设计 (1)判别键盘上有无键闭合 (2)去除键的机械抖动 (3)判别闭合键的键号 (4)使CPU对键的一次闭合仅作一次处理 键盘程序的流程如图。
3 利用8031的串行口实现键盘/显示器接口 串行口未作它用,可用来外扩键盘/显示器。 串行口为方式0输出,串行口外接移位寄存器74LS164。 接口电路如图10-17。 74LS164(0)~74LS164(7):作为8位LED的段码输出, 8031的P3.4、P3.5:两行键的行状态输入 P3.3(TXD):同步移位脉冲输出控制线,
优点:亮度大,容易做到显示不闪烁,且CPU不必 频繁的为显示服务,从而使单片机有更多的时间处理 其它事务。 4利用通用键盘/显示器接口芯片8279实现键盘/ 显示器接口(自学) Intel 8279芯片:通用可编程键盘/显示器接口芯片。 对键盘部分提供扫描工作方式,能对64个键键盘阵 列不断扫描,自动消抖,自动识别出闭合的键并得到键 号,能对双键或N键同时按下进行处理。
扫描方式作的显示接口,可显示多达16位的字符。扫描方式作的显示接口,可显示多达16位的字符。 1.8279的引脚及内部结构
2. 引脚功能介绍 (1)与CPU的接口引脚 • DB0~DB7:数据总线、双向、三态,与单片机数据 • 总线相连,在CPU和8279之间传送命令或数据。 • CLK:系统时钟,用于8279内部定时,以产生其工作 • 所需的时序。 • RESET:高电平时,8279被复位,复位后的状态如下: * 16个字符左边输入显示方式 * 编码扫描键盘、双键锁定方式 • CS*:片选
A0:=1,写入的是命令字节; 读出的是状态字节。 =0,写入或读出的字节均为数据。 • RD*、WR*:读、写控制引脚 • IRQ:中断请求线。在键盘方式中,当键盘RAM(先 • 进先出)中存有按下键的数据时,IRQ为高电平,向 • CPU提出中断申请。 CPU每次从键盘RAM中读出一个字节数据时,IRQ就变为低电平。如果键盘RAM中还有未读完的数据,IRQ将再次变为高电平,再次提出中断请求。 (2)扫描信号输出引脚
SL0~SL3 扫描输出。用来扫描键盘和显示器。可编程设定 为编码输出,即SL0~SL3需外接4-16译码器,输出16 取1的扫描信号,也可编程设定为译码输出,即由SL0 ~SL3直接输出4取1的扫描信号。 (3)与键盘连接的引脚 • RL0~RL7 键盘矩阵的行信号输入线。 • SHIFT 输入线,通常用作键盘上、下档功能的控制键。 • CNTL/STB 输入线,高电平有效。在键盘方式时,通常用来 作为键盘控制功能键使用。
(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扫描线。
(2)键盘去抖动及回复缓冲器 RL0~RL7被接到键盘的行线。 在逐列扫描时,当某一键闭合,消抖电路延时等 待10ms之后,再检验该键是否仍闭合。若闭合,则该 键的行、列地址和附加的移位、控制状态一起形成键 盘数据,送入8279内部的键盘RAM存储器。格式为: 控制(CNTL)和移位(SHIFT)的状态由两个独立 的附加开关决定,而扫描(D5、D4、D3)是被按键的 行编码,而回复(D2、D1、D0)则是被按键的列位置 数据。
(3)键盘RAM及其状态寄存器 键盘RAM:8字节先进先出(FIFO)存储器。内部的FIFO 状态寄存器存放FIFO的工作状态,如FIFO是空还是满, 其中存有多少字符,是否操作出错等等。 当FIFO存储器空间不足时,状态逻辑将产生IRQ=1 信号,向CPU发出中断申请。 (4)显示RAM和显示地址寄存器 显示RAM:存显示数据。共16个字节,最多可存放16位 显示信息。显示RAM的输出与显示扫描配合,同时轮流驱动被选中的显示位,使显示器呈现稳定的显示(动态扫描)。 4. 8279的命令字和状态字 命令字:D7、D6、D5为命令特征位,来区分8条不同
的命令字。 状态字:主要用于键盘工作方式,以指示键盘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)输出 全为高电平,显示消隐。 当键盘上出现有效的闭合键时,键输入数据自动进入
8279的键盘RAM存储器,并向8031请求中断,8031响应8279的键盘RAM存储器,并向8031请求中断,8031响应 中断读取键盘RAM中的键输入数据。若要更新显示器输 出,仅需改变8279中显示RAM中的内容。 图:8279的命令/状态口地址为7FFFH,数据口 地址为7FFEH。