300 likes | 650 Views
任务 6 用 8255A 设计矩阵键盘 扫描 接口电路. 工作任务描述 :. 用实验箱上 8255A 可编程并行接口芯片设计 4X4 矩阵键盘,要求在键盘上每按一个数字键,用发光二极管将代码显示出来。. 学习内容:. 一、可编程 I/O 口 8255A 扩展技术 二、键盘扫描技术. 一、可编程 I/O 口 8255A 扩展技术. (一) 8255A 的概述 (二) 8255A 的内部结构及原理 (三) 8255A 的控制字 (四) 8255A 的工作方式. (一) 8255A 的概述.
E N D
任务6用8255A设计矩阵键盘扫描 接口电路 微型计算机控制技术
工作任务描述: 用实验箱上8255A可编程并行接口芯片设计4X4矩阵键盘,要求在键盘上每按一个数字键,用发光二极管将代码显示出来。 微型计算机控制技术
学习内容: • 一、可编程I/O口8255A扩展技术 • 二、键盘扫描技术 微型计算机控制技术
一、可编程I/O口8255A扩展技术 • (一)8255A的概述 • (二)8255A的内部结构及原理 • (三) 8255A的控制字 • (四)8255A的工作方式 微型计算机控制技术
(一)8255A的概述 • Intel8255A是一种通用的可编程序并行I/O接口芯片,又称“可编程外设接口芯片”,是为Intel8080/8085系列微处理设计的,也可用于其它系列的微机系统。可由程序来改变其功能,通用性强、使用灵活。通过8255A,CPU可直接同外设相连接,是应用最广的并行I/O接口芯片。含3个独立的8位并行输入/输出端口,各端口均具有数据的控制和锁存能力。可通过编程设置各端口的工作方式和数据传送方向(入/出/双向)。 微型计算机控制技术
(二)8255A的内部结构及原理 8255A的内部结构 微型计算机控制技术
(二) 8255A的内部结构及原理 • 1、数据总线缓冲器:三态8位双向缓冲器,与系统数据总线连接的缓冲部件;传送数据、控制字、状态字的通道。 • 2、3个8位数据端口(PA、PB、PC):通常PA口与PB口用作输入输出的数据端口,PC口用作数据传输或提供联络线的端口。在方式字的控制下,PC口可以分成两个4位的端口,其中PC7~PC4同端口A配合使用, PC3~PC0同端口B配合使用。 • 3、A组、B组控制电路:这两组控制电路根据CPU发出的方式选择控制字来控制8255A的工作方式,每个控制组都接收来自读写控制逻辑的“命令”,接收来自内部数据总线的“控制字”,并向与其相连的端口发出适当的控制信号。A组控制电路控制PA口和PC口高4位,B组控制电路控制PB口和PC口低4位。 • 4、读/写控制逻辑:用来管理数据、控制字和状态字的传送,接收系统总线发来的有关信号,并向A、B两组控制部件发送命令。 微型计算机控制技术
(二)8255A的内部结构及原理 DIP封装,共40个引脚。 一、面向CPU一侧的引脚信号 ⑴D7~D0,8位,双向,三态数据线 ⑵RESET,复位信号 ⑶CS*,片选信号 ⑷RD*,读信号 ⑸WR*,写信号 ⑹A1 、A0,端口选择信号 二、面向外设一侧的引脚信号 (1)端口A:PA0~PA7;A组,支持工作方式0、1、2; (2)端口B:PB0~PB7;B组,支持工作方式0、1; (3)端口C:PC0~PC7;仅支持工作方式0;A组控制 高4位PC4~PC7;B组控制低4位PC0~PC3 功能: 端口A:PA0~PA7;常作数据端口,功能最强大。 端口B:PB0~PB7;常作数据端口。 端口C:PC0~PC7;可作数据、状态和控制端口;分 两个4位,每位可独立操作;控制最灵活,最难掌握。 微型计算机控制技术
(二) 8255A的内部结构及原理 微型计算机控制技术
(三) 8255A的控制字 • 1、工作方式控制字8255A的工作方式控制字的格式,如下图: 微型计算机控制技术
(三) 8255A的控制字 • 2、C口按位置位/复位控制字C口按位置位/复位控制字的格式如图10-4所示。 (1)仅C口可按位置位/复位,且只对C口的输出 • 状态进行控制(对输入无作用)。 (2)一次只能设置C口1位的状态。 (3)这个控制字应写入控制口,而不是C口。 如下图: 微型计算机控制技术
(四) 8255A的工作方式 • 方式0——基本输入/输出方式(A、B、C口) • 方式1——选通工作方式(A、B口) • 方式2——双向选通传送方式(仅A口) • 某端口工作于哪一种方式,可通过软件编程来指定。即向8255写入方式控制字来决定其工作方式。 • 8255A的工作方式——方式0(基本输入/输出方式) • 特点:8255A相当于三个独立的8位数据口。各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出。C端口即可以是一个8位的简单接口,也可以分为两个独立的4位端口。设置为输出口时有锁存能力,设置为输入口时无锁存能力。 • 适用于:无条件输入输出方式。查询输入输出方式:把A、B口作为8位数据的输入或输出口,C口的高/低4位分别定义为A、B口的控制位和状态位。 微型计算机控制技术
(四) 8255A的工作方式 • 1、8255A的工作方式——方式0(基本输入/输出方式) • 在方式0下,A、B、C三个端口均用作输入/输出用,这种输入/输出只是简单的输入/输出,无联络信号。如下图所示。 微型计算机控制技术
(四) 8255A的工作方式 • 2、方式1:带选通的输入/输出 • (1)方式1的输入 • A口和B口都设置为方式1输入时的情况,如下图1所示。当A口设定为方式1输入时,A口所用三条联络信号线是C口的PC3、PC4、PC5,B口则用了C口的PC0、PC1、PC2作为联络信号。各联络线的定义如下:STB:外设送来的输入选通信号,低电平有效。IBF:8255A送外设的输入缓冲器满信号,高电平有效。INTR:8255A送到CPU或系统总线的中断请求信号,高电平有效。该信号另外受INTE控制。INTE:中断允许信号。 微型计算机控制技术
A口和B口在方式1输入时的情况 (四)8255A的工作方式 • (2)方式1的输出A口和B口都设置为方式1输出时的情况如下图2所示。当A口与B口设为方式1输出时,也分别指定C口的三条线为联络信号,A口所用三条联络信号线是C口的PC3、PC6、PC7,B口则用了PC0、PC1、PC2。各联络线的定义如下: 微型计算机控制技术
(四) 8255A的工作方式 OBF:送外设的输出缓冲器满信号, 低电平有效。、 ACK:外设送来的响应信号, 低电平有效。INTR:中断请求信号,高电平有效。 该信号另受INTE控制。INTE:它功能和输入方式一样。 微型计算机控制技术
(四) 8255A的工作方式 • 3、方式2:带选通的双向输入/输出方式2是一种双向选通输入/输出方式,只适用于A口,方式2下的引脚定义如图3所示。在方式2下,各联络信号的含义如下:INTR:中断请求信号,高电平有效。OBF:输出缓冲器满,低电平有效。ACK:来自外设的响应信号,低电平有效。INTE1:A口输出中断允许。STB:来自外设的选通输入,低电平有效。IBF:输入缓冲器满,高电平有效。INTE2:A口输入中断允许。 微型计算机控制技术
(四) 8255A的工作方式 微型计算机控制技术
(四) 8255A的工作方式 • ☆ 8255A的举例 • 【例】如图4所示,设8255端口地址为2F80~2F83H,编程设置8255 A组、B组均工作于方式0,A口输出,B口输出,C口高4位输入,低4位输出。然后,读入开关K的状态,若K打开,则使发光二极管熄灭;若K闭合,则使发光二极管点亮。 程序如下:MOV AL,88HMOV DX,2F83HOUT DX,ALMOV DX,2F82HIN AL,DXMOV DX,2F81HAND AL,20HJZ L1 ;条件成立时PC5=0,K闭合MOV AL,0 OUT DX,AL JMP END1 L1:MOV AL,40H OUT DX,AL END 微型计算机控制技术
二、键盘扫描技术 • (一)引入:(预备知识) • (二)独立式按键及其接口电路 • (三)矩阵式键盘及其接口电路 微型计算机控制技术
(一)引入:(预备知识) • 1.键盘的作用: • 键盘在单片机系统中是个很重要的部件,为了输入数据、查询和控制系统的工作状态都要用到键盘,键盘是人工干预计算机的手段 • 2.键盘接口概述 • 〔1〕按键的分类 • 按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触点式开关按键。 • 按键按照接口原理可分为编码键盘与非编码键盘两类,这两类键盘的主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软件来实现键盘的定义与识别。 微型计算机控制技术
(一)引入:(预备知识) • 全编码键盘能够由硬件逻辑自动提供与键对应的编码,此外,一般还具有去抖动和多键、窜键保护电路,这种键盘使用方便,但需要较多的硬件,价格较贵,一般的单片机应用系统较少采用。非编码键盘只简单地提供行和列的矩阵,其它工作均由软件完成。由于其经济实用,较多地应用于单片机系统中。下面将重点介绍非编码键盘接口。 • 〔2〕键输入原理 • 在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,键信息输入是与软件结构密切相关的过程。 • 对于一组键或一个键盘,总有一个接口电路与CPU相连。CPU可以采用查询或中断方式了解有无将键输入并检查是哪一个键按下,将该键号送入累加器ACC,然后通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。 微型计算机控制技术
(一)引入:(预备知识) • 〔3〕按键开关去抖动问题 • 微机键盘通常使用机械触点式按键开关,其主要功能是把机械上的通断转换成为电气上的逻辑关系。也就是说,它能提供标准的TTL逻辑电平,以便与通用数字系统的逻辑电平相容。 • 机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如下图所示,抖动时间的长短与开关的机械特性有关,一般为510ms。 微型计算机控制技术
(一)引入:(预备知识) • 在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施。 • 硬件去抖法:就是在键盘中附加去抖动电路,从根上消除抖动产生的可能性,在硬件上可采用在键输出端加 R-S 触发器 ( 双稳态触发器 ) 或单稳态触发器构成去抖动电路。 • 软件去抖法:在检测到有按键按下时,执行一个 10 ms 左右(具体时间应视所使用的按键进行调整)的延时程序后,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态。同理,在检测到该键释放后,也应采用相同的步骤进行确认,从而可消除抖动的影响。 微型计算机控制技术
(一)引入:(预备知识) • 〔4〕按键的连接方式 • 按键与CPU的连接方式可分为独立式按键和矩阵式键盘 • 独立式按键结构:独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。 • 矩阵式键盘:矩阵式键盘又称行列式键盘,矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上,按键按下时,行线和列线连通。 • 〔5〕 键盘扫描控制方式 • CPU对键盘处理控制的工作方式有三种: • 程序控制扫描方式:是CPU在工作之余,调用键盘扫描子程序,响应键输入信号要求。 • 定时控制扫描方式:是利用定时计数器每隔一段时间产生定时中断,CPU响应中断后对键盘进行扫描。 • 中断控制方式:是利用外部中断源,响应键输入信号。 微型计算机控制技术
+5V 80C51 P1.0 P1.1 P1.2 K0 K1 K2 a (二)独立式按键及其接口电路 • 判断有无按键按下只需根据响应端口电平高低。 • 如下图,为80C51与3个独立式按键直接连接的电路,对于图a,当按键按下时输入低电平。 微型计算机控制技术
(二)独立式按键及其接口电路 • 图a编程如下: • KEYA: ORL P1, #07H ;置P1.0-P1.2为输入态 • MOV A,P1 ;读键值,键闭合相应为0 • CPL A ;取反,键闭合相应为1 • ANL A,#00000111B ;屏蔽高5位,保留有键值信息的低3位 • JZ GRET ;全0,无键闭合,返回 • LCALL DY10MS ;非全0,有键闭合,延时去抖 • MOV A,P1 ;重读键值,键闭合相应位为0 • CPL A ;取反,键闭合相应为1 • ANL A,#0000011B ;屏蔽高5位,保留有键值信息的低3位 • JZ GRET ;全0,无键闭合,返回 • JB ACC.0,KA0 ;转K0键功能程序 • JB ACC.1,KA1 ;转K1键功能程序 • JB ACC.2,KA2 ;转K2键功能程序 • GRET: RET • KA0: LCALL WORK0 ;执行K0键功能子程序 • RET • KA1: LCALL WORK1 ;执行K1键功能子程序 • RET • KA2: LCALL WORK2 ;执行K2键功能子程序 • RET 微型计算机控制技术
(三)矩阵式键盘及其接口电路 微型计算机控制技术
(三)矩阵式键盘及其接口电路 • (1)键盘扫描子程序KEY:MOV A, #0F0HMOV P1,AXRL A,P1JZ KEYR ;无键按下返回ACALL DELAY ;延时去抖动MOV 30H,P1 ;读闭合键行位置MOV P1,#0FH ;反转MOV A,P1 ;读闭合键列位置ORL 30H,A ;合成键盘位置码LOOP:MOV A,P1 ;等待键释放XRL A, #0FHJNZ LOOPACALL DELAY ;延时去抖动KEYR :RET 微型计算机控制技术
(三)矩阵式键盘及其接口电路 • (2)键值转换 • 键盘矩阵中各键的位置码的特点是:对应该键行、列的位为“ 0 ” ,其他各位均为“ 1 ” 。例如: S7 键的位置码是: 11010111B = 0D7H ; S12 键的位置码是: 01111110B = 7EH 。将各键的位置码顺序排列成键值表,用查表法进行键值转换。 键值转换子程序TRAN:MOV DPTR,#KEYTAB ; DPTR 指向键值表MOV R2,#0 ;键值初值送 R2MOV R3,#10H ;循环次数送 R3LOOPT:MOV A,R2MOVC A, @A+DPTR ;读键值表XRL A,30H ;与位置码比较JZ KTR ;相等返回,键值在 R2 中INC R2 ;键值 +1DJNZ R3,LOOPTKTR:RET ;若返回时 R2=10H 为错KEYTAB:DB 0EEH,0EDH,0EBH,0E7H ;键值表DB 0DEH,0DDH,0DBH,0D7HDB 0BEH,0BDH,0BBH,0B7HDB 7EH,7DH,7BH,77H 微型计算机控制技术