《输入输出接口》PPT课件.ppt_第1页
《输入输出接口》PPT课件.ppt_第2页
《输入输出接口》PPT课件.ppt_第3页
《输入输出接口》PPT课件.ppt_第4页
《输入输出接口》PPT课件.ppt_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章 可编程接口芯片,可编程接口概术 可编程并行输入输出接口芯片8255A,可编程接口概术 一个简单的具有输入功能和输出功能的可编程接口电路如下图,它包括一个输入接口,其组成主要是八位的三态门;一个输出接口,其组成主要是八位的锁存器;另外还有八位的多路转换开关及控制这个开关的寄存器FF。,用户对寄存器FF写入的内容称为命令字或方式控制字,而寄存器FF称为命令寄存器,相应的端口称为命令端口或控制端口,对可编程芯片初始化过程实际上就是对芯片的控制端口写入各种命令字的操作过程。,并行接口电路: 微处理器与I/O设备进行数据传输时均需经过接口电路实现系统与设备互连的匹配。 并行接口电路中每个信息位有自己的传输线,一个数据字节各位可并行传送,速度快,控制简单。由于电气特性的限制,传输距离不能太长。 8255A是通用的可编程并行接口芯片,功能强,使用灵活。适合一些并行输入/输出设备的使用。,一、功能 8255A(8155A)是一种通用的可编程并行IO接口芯片,广泛用于几乎所有系列的微型机系统中,如8086、MCS51、Z80CPU系统等。8255A具有3个带锁存或缓冲的数据端口,可与外设并行进行数据交换。用户可用程序来选择多种操作方式,通用性强。使用灵活,可为CPU与外设之间提供并行输入输出通道。,二、 8255引脚及内部结构,1、8255A的引脚 8255有40个引脚,采用双列直插式封装形式。其引脚如图所示。,二、 8255A的内部结构,1、与外设连接的管脚 我们已经知道8255A有三个数据端口,每个端口是8位的,由此可推算与外设相连接的管脚共有24位。其中A口有PA7PA0八个I/O引脚,B口有PB7PB0八个I/O引脚,C口有PC7PC0八个I/O引脚。特别地对于PC7PC0,其中可有若干根复用线可用于“联络”信号或状态信号,其具体定义与端口的工作方式有关。,PA0PA7 PB0PB7 PC0PC7,端口A:PA0PA7 A组,支持工作方式0、1、2 端口B:PB0PB7 B组,支持工作方式0、1 端口C:PC0PC7 仅支持工作方式0 A组控制高4位PC4PC7 B组控制低4位PC0PC3,端口A:PA0PA7 常作数据端口,功能最强大 端口B:PB0PB7 常作数据端口 端口C:PC0PC7 可作数据、状态和控制端口 分两个4位,每位可独立操作 控制最灵活,最难掌握,2、与CPU连接的管脚 包括数据线D7D0,读写控制线和,复位线RESET,以及和CPU地址线相连接的片选信号、端口地址控制线A0和A1。,D0 D7数据线 A0 A1地址线 RD*读信号 WR*写信号 CS*片选信号 RESET复位信号,8255A端口选择及操作功能表,D0D7 A0 A1 /CS /WR /RD RESET,三、8255A的控制字,8255A可以通过指令在控制端口中设置控制 字来决定它的工作。 8255A的控制字有两 个,共用一个地址,根据D7位的值来区分。 控制字分为两类: 1.方式选择控制字 2.C口置位/复位控制字,8255A的工作方式可由CPU写一个工作方式选择控制字到8255A的控制寄存器来选择。 其格式如上图所示,可以分别选择端口A、端口B和端口C上下两部分的工作方式。端口A有方式0、方式1和方式2三种工作方式,端口B只能工作于方式0和方式1,而端口C仅工作于方式0。注意8255A工作方式选择控制字的最高位D7(特征位)应为1。,8255A的C口按位置位/复位控制字,8255A的C口具有位控功能,即端口C的8位中的任一位都可通过CPU向8255A的控制寄存器写入一个按位置位/复位控制字来置1或清0,而C口中其他位的状态不变。 其格式如上图所示,注意8255A的C口按位置位/复位控制字的最高位D7(特征位)应为0。,例如:设有一片8255A的口地址为60H-63H,PC5平时为低电平,要求从PC5的引脚输出一个正脉冲。可使用程序先将PC5置1,输出一个高电平,再把PC5清零,输出一个低电平,结果PC5引脚输出一个正脉冲。程序如下: MOV AL,00001011B OUT 63H, AL MOV AL,000001010B OUT 63H,AL,四、 8255A的工作方式及编程,8255A端口功能表,工作方式,方式0,A口,B口,C口,方式1,方式2,基本输入输出端口 输入不锁存,输出锁存,同A口,同A口,应答式输入输出端口 输入输出均可锁存,双向应答式输入输出, 输入输出均可锁存,同A口,不用,上C口作为应答式A口 的应答线;下C口作为 应答式B口的应答线,用作A口的双向应答 控制线, 三种可编程的工作方式: 方式 0 基本的字节输入/输出方式 方式 1 选通的字节输入/输出方式 方式 2 带选通的双向字节输入/输出方式,8255A有三种工作方式: 方式0 基本输入/输出方式 方式1 选通输入/输出方式 方式2 双向传输方式 可以通过往控制寄存器中写入控制字来选择其工作方式。,方式0:基本输入输出方式 适用于无条件传送和查询方式的接口电路 方式1:选通输入输出方式 适用于查询和中断方式的接口电路 方式2:双向选通传送方式 适用于与双向传送数据的外设 适用于查询和中断方式的接口电路,1、8255A工作在方式0 方式0也叫基本输入输出方式。 在这种方式下,端口A和端口B可以通过方式选择控制字规定为输入口或者输出口; 端口C分为高4位(PC7PC4) 和低4位(PC3PC0) 两个4位端口,这两个4位端口也可由方式选择控制字分别规定为输入口或输出口。 这四个并行口共可构成16种不同的使用组态。 利用8255A的方式0进行数据传输时,由于没有规定专门的应答信号,所以这种方式常用于与简单外设之间的数据传送,如向LED显示器的输出,从二进制开关装置的输入等。,需要说明的是,这里所说的输入或输出是相对于8255A芯片而言的。当数据从外设送往8255A时为输入,反之,数据从8255A送往外设则为输出。 方式0也可以用于查询方式的输入或输出接口电路,此时端口A和B分别作为一个数据端口,而用端口C的某些位作为这两个数据端口的控制和状态信息。下图是一个A口和B口工作在方式0时利用C口某些位作为联络信号的接口电路。 在此例中将8255A设置为:A口输出,B口输入,C口高4位输入(现仅用PC7、PC6两位输入外设的状态),C口低4位输出(现仅用PC1、PC0两位输出选通及清除信号)。此时8255A的工作方式控制字为10001010B(8AH)。,方式0查询方式的接口电路,其工作原理如下: 在向输出设备送数据前,先通过PC7查询设备状态,若设备准备好则从A口送出数据,然后通过PC1发选通信号使输出设备接收数据。 从输入设备取数据前,先通过PC6查询设备状态,设备准备好后,再从B口读入数据,然后通过PC0发清除信号,以便输入后续字节。,2.方式1选通的输入输出方式,特点: (1)两组端口A和B都可以工作在方式1,每一组包含一个8位的数据端口和一个3位的控制端口。 (2)8位数据端口可以是输入或者输出,输入/出均带锁存。 (3) C口有6位固定作为A口、 B口的状态和控制信号,剩下2位可由程序指定为输入和输出。,在方式1输入情况下,C口被定义的状态和控制信号有 、 IBF和INTR, 其含义如下: : 选通信号, 低电平有效, 由外设提供。 有效时,外设把数据送入8255A的A口或B口。 IBF:输入缓冲器满,高电平有效,由8255A输出给外设。当该信号有效时表明,外设已将数据送到A口或B口的输入缓冲器。IBF由 置位, 的上升沿使它复位。 IBF可作为8255A与外设的联络信号。当IBF=0时,允许外设向8255A传送一个数据; 当IBF=1时,表示外设送来的数据还未被CPU取走,这时禁止外设向8255A传送数据。IBF也可作为CPU的查询信号,当IBF=1时,告诉CPU应该从8255A的端口读取数据。,INTR:中断请求信号,高电平有效,由8255A发出。 在程序设置的中断允许信号INTE=1的条件下,当 =1和IBF=1时,INTR被置为1, 的上升沿使它复位。 INTE是端口内部的中断允许信号,是内部中断允许触发器的状态,由C口的位控字来设置。若位控字使PC4=1,则A口的中断允许信号INTEA=1;若位控字PC2=1,则B口的中断允许信号INTB=1。这一点对于PC4和PC2两引的 、 功能并无影响。,方式1输入引脚:B端口,方式1需借用端口C用做联络信号 同时还具有中断请求和屏蔽功能,方式1输入联络信号,STB*选通信号,低电平有效 由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器 IBF输入缓冲器满信号,高电平有效 8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器 INTR中断请求信号,高电平有效 8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据,方式1输入的时序,方式1输出时,各个控制信号的意义,OBF(Output Buffer Full):输出缓冲器满信号,输出,低电平有效。当CPU把数据写入端口A或B的输出缓冲器时,写信号WR的上升沿把OBF置成低电平,通知外设到端口A或B来取走数据,当外设取走数据时向8255A发应答信号ACK,ACK的下降沿使OBF恢复为高电平。,ACK(Acknowledge):外设应答信号,输入,低电平有效。当ACK有效时,表示CPU输出到8255A的数据已被外设取走。 INTR(Interrupt Request):中断请求信号,输出,高电平有效。该信号由ACK的后沿(上升沿)在INTE=1且OBF=1的条件下产生,该信号使8255A向CPU发出中断请求。若CPU响应此中断请求,则向数据口写入一,方式1输出时,各个控制信号的意义,新的数据,写信号WR上升沿(后沿)使INTR复位,变为低电平。 INTE(Interrupt Enable):中断允许信号,与方式1输入类似,端口A的输出中断请求INTRA可以通过对PC6的置位或复位来加以允许或禁止。端口B的输出中断请求信号INTRB可以通过对PC2的置位或复位来加以允许或禁止。,方式1输出时,各个控制信号的意义,方式1输出引脚:A端口,方式1输出引脚:B端口,方式1输出的时序,3方式2双向传输方式 此方式只适用于端口A。这时,在PA0PA7的8位数据线上,外设既可以从8255A获取数据;也可以向8255A发送数据。传输过程既可以工作于查询方式,也可以工作于中断方式。 方式2的主要特点 (1)仅限于端口A。 (2)一个双向8位数据总线端口A和一个5位的控制/状态端口C。 (3) 输入/输出均锁存。,方式2将方式1的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据 只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同 方式2的数据输入过程与方式1的输入方式一样 方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF*有效时向外设输出数据,而是在外设提供响应信号ACK*时才送出数据,方式2的控制和状态信息,方式2的控制和状态信息,8255A工作于方式2的状态字,当A口工作于方式2时,允许中断,此时若B口工作于方式1,则也允许中断。 这时就有三个中断源(A口的输入和输出、B口)、两个中断请求信号(INTRA、INTRB)。 CPU在响应8255A的中断请求时,先要查询PC3(INTRA)和PC0(INTRB),以判断中断源是A口还是B口。如果中断源是A口, 还要进一步查询PC5(IBFA)和PC7( ), 以确定是输入中断还是输出中断。 8255A的工作方式2是A口方式1输出和方式1输入两种操作的组合,所以方式2的工作过程也同上述工作方式1的输出和输入过程。,INTR,1,2,3,4,9,7,IBFA,方式2的时序,8255A的编程,初始化编程:一个方式控制字 采用控制I/O地址:A1A011 工作过程中:通过数据端口对外设数据进行读写 数据读写利用端口A、B和C的I/O地址,A1A0依次等于00、01、10 IBM PC/XT机上,端口A、B、C和控制端口的I/O地址为60H、61H、62H和63H,1. 写入方式控制字:控制字格式,1. 写入方式控制字:示例,要求: A端口:方式1输入 C端口上半部:输出,C口下半部:输入 B端口:方式0输出 方式控制字:10110001B或B1H 初始化的程序段: mov dx,0fffeh ;假设控制端口为FFFEH mov al,0b1h ;方式控制字 out dx,al ;送到控制端口,2. 读写数据端口,初始化编程后: 当数据端口作为输入接口时,执行输入IN指令将从输入设备得到外设数据 当数据端口作为输出接口时,执行输出OUT指令将把CPU的数据送给输出设备 8255A具有锁存输出数据的能力 对输出方式的端口同样可以输入 不是读取外设数据 读取的是上次CPU给外设的数据,2. 读写数据端口:示例,利用8255A的输出锁存能力,可实现按位输出控制 对输出端口B的PB7位置位的程序段: mov dx,0fffah ;B端口假设为FFFAH in al,dx ;读出B端口原输出内容 or al,80h ;使PB71 out dx,al ;输出新的内容,3. 读写端口C:归纳1,C端口被分成两个4位端口,两个端口只能以方式0工作,可分别选择输入或输出,在控制上,C端口上半部和A端口编为A组,C端口下半部和B端口编为B组,3. 读写端口C:归纳2,当A和B端口工作在方式1或方式2时,C端口的部分或全部引脚将被征用,其余引脚仍可设定工作在方式0,3. 读写端口C:归纳3,对端口C的数据输出有两种办法 通过端口C的I/O地址:向C端口直接写入字节数据。这一数据被写进C端口的输出锁存器,并从输出引脚输出,但对设置为输入的引脚无效 通过控制端口:向C端口写入位控字,使C端口的某个引脚输出1或0,或置位复位内部的中断允许触发器,端口C的位控制字,位控制字写入控制端口 特别便于置位复位内部中断允许触发器INTE,3. 读写端口C:归纳4,读取的C端口数据有两种情况 未被A和B端口征用的引脚:将从定义为输入的端口读到引脚输入信息;将从定义为输出的端口读到输出锁存器中的信息 被A和B端口征用作为联络线的引脚:将读到反映8255A状态的状态字,端口C的状态字,七、8255应用举例,作为通用的并行接口电路芯片,825A具有广泛的应用 应用在IBM PC/XT微机上 应用于打印机接口电路 连接简易键盘 驱动LED数码管 1、LED显示器接口 2、并行打印机接口电路 3、键盘接口,1、LED显示器接口,例:8255A作为开关K0K3及七段LED显示器接口。要求开关设置的二进制信息,由PC0PC3输入,经程序转换为对应的七段LED显示器的字形代码后,由PA口输出显示。,各端口地址为:E8HEEH,8255A各端口地址确定:,8255A方式选择控制字:,81H,LED显示器的结构,LED显示器的结构可分为共阳极和共阴极两种,若要显示某个字符首先需要将它转换成对应的字形码(也称为段码),然后送到LED显示。这一转换过程称为译码。译码方法分为软件译码法和硬件译码法两种,方案1 共阳极LED显示器与同相驱动器接口,LED显示器的工作原理,软件译码:,D7 D6 D5 D4 D3 D2 D1 D0 dp g f e d c b a,0(C0H) 1 1 0 0 0 0 0 0,9(90H) 1 0 0 1 0 0 0 0,1(F9H) 1 1 1 1 1 0 0 1,2(A4H) 1 0 1 0 0 1 0 0,3(B0H) 1 0 1 1 0 0 0 0,4(99H) 1 0 0 1 1 0 0 1,5(92H) 1 0 0 1 0 0 1 0,6(82H) 1 0 0 0 0 0 1 0,7(F8H) 1 1 1 1 1 0 0 0,8(80H) 1 0 0 0 0 0 0 0,LED显示器的工作原理,方案2 共阳极LED显示器与反相驱动器接口,D7 D6 D5 D4 D3 D2 D1 D0 dp g f e d c b a,0(3FH) 0 0 1 1 1 1 1 1,9(6FH) 0 1 1 0 1 1 1 1,1(05H) 0 0 0 0 0 1 1 0,2(5BH) 0 1 0 1 1 0 1 1,3(4FH) 0 1 0 0 1 1 1 1,4(66H) 0 1 1 0 0 1 1 0,5(6DH) 0 1 1 0 1 1 0 1,6(7DH) 0 1 1 1 1 1 0 1,7(07H) 0 0 0 0 0 1 1 1,8(7FH) 0 1 1 1 1 1 1 1,编程:,实现操作的具体程序如下:,MOV DX, 0E8H ;指向端口A OUT DX, AL ;输出字形码显示 HLT,MOV DX,0EEH ;设置8255A工作方式 MOV AL,81H OUT DX,AL,MOV DX,0ECH ;指向端口C,读开关状态 IN AL,DX AND AL,0FH,LEA BX,TABLE ;显示代码表首地址送BX XLAT ;查表,取出相应的字形码送AL,硬件译码:,利用专用接口芯片7447驱动LED显示器,7447为BCD七段译码器 与单个LED的连接,R=(51.5 0.2)V/ 20mA=168 取R=150 ,LED显示器的电路设计分为两种,静态显示和动态显示,两种电路各有长处和缺点,在不同情况下可采用不同的连接方式。 下面是两种连接方式:,静态显示器的设计,器件多,输出显示后若不改变显示内容CPU不用干预,动态显示器控制程序的设计,LEA SI,BUFF MOV CX,07H MOV DL,01H,MOV AL,SI,OUT POTB,AL MOV AL,DL OUT POTA,AL,INC SI ROL DL,LEA SI,BUFF MOV CL,40H MOV BX,LED-ADD,DISI:MOV AL,SI XLAT,MOV DX, POTB OUT DX,AL MOV AL,CL MOV DX, POTA OUT DX,AL,INC SI SHR CL,JNZ DISI,二、键盘接口,键盘是微型计算机系统中最常用的一种输入设备。键盘有两种类型:编码键盘和非编码键盘。,编码键盘能自动提供对应于被按键的编码,如ASCII码,并能同时产生一个脉冲通知CPU。编码键盘还具有处理抖动和多键串键的保护电路。这种键盘的优点是使用方便,但需要较多的硬件,价格昂贵。,非编码键盘有一组开关组成,提供行和列的键盘矩阵,其工作过程:按键的识别;按键代码的产生;防止串键和消除抖动等均由程序来实现。故这种键盘的优点是所需要的硬件较少,价格便宜,宜用微机化仪表的面板的键盘。 这里只介绍非编码键盘,工作原理,键盘扫描过程:,(1)检测键盘上所有的键是否都松开,反复检测直至全松开。,(2)检测键盘上是否有键按下,反复检测直至有键按下。,(3)若有键按下,则消除键抖动后(硬件消抖动电路,软件延时消抖动下),再确认该键是否按下。,(4)对按下的键进行编码,即将该键所在的行号和列号转换成16进制代码。,(6)根据代码转相应功能子程序。,注:若在按键时,多个键盘同时按下,可取最后松开的按键作为本次按下的键。,(5)检测该键是否松开,反复检测直至松开。,初始化: PORT-A EQU 0FF9H ;8255A口地址 PORT-B EQU 0FFBH ;8255B口地址 PORT-CTL EQU 0FF9H ;8255控制口地址 TABLE DB 77H, 7BH, 7DH,7EH DB 0B7H, 0BBH, 0BDH,0BEH DB 0D7H, 0DBH, 0DDH,0DEH DB 0E7H, 0EBH, 0EDH,0EEH,8255初始化:方式0,A口输出,B口、C口输入 MOV DX, PORT-CTL ;DX指向控制口 MOV AL, 10001011B ;控制字 OUT DX, AL ;写入控制字,MOV DX, PORT-A ;DX指向A口 MOV AL, 00H OUT DX, AL,WO: MOV DX, PORT-B ;DX指向B口 IN AL, DX ;输入B口 AND AL,OFH COM AL,OFH ;各键均未按下 JNE WO ;否,继续等,WR: IN AL, DX ;输入B口 AND AL,OFH COM AL,OFH ;是否有键按下 JE WR ;否,等待,MOV CX, 16EAH DELAY: LOOP DELAY,WR: IN AL, DX ;输入B口 AND AL,OFH COM AL,OFH ;是否有键按下 JE WR ;否,等待,MOV AL,0FEH ;置行扫描初值 MOV CL,AL ;暂存于C N-R: MOV DX,PORT-A OUT DX, AL ;输出行扫描值 MOV DX, PORT-B ;DX指向B口 IN AL, DX ;输入B口 AND AL, OFH COM AL, OFH ;有键按下 JNE ENCODE ;是,转编码 ROL CL, 01 ;否,修改扫描初值 MOV CL, AL JMP N-R ;扫描下一行,ENCODE: MOV BX,000FH ;置键代码初值 IN AL,DX ;读入行列号 NEXT-T: COM AL, TABLEBX ;与表中行列号相等吗 JE DONE ;相等转DONE DEC BX ;不相等,修改位置 JNS NEXT-T ;未查完,继续 MOV AH, 01 ;查完,未查到,置出错标志 JMP EXIT ;退出 DONE: MOV AL, BL ;键代码送AL MOV AH, 00 ; 键有效标志00AL EXIT: RET,8行8列 键盘,CPU向端口A送全“0”到行线,再从B口读入列状态。若读入的状态为全“1”,表示无键按下。,CPU向端口A的PA0送“0” ,其余行线送“1”,再从B口读入列状态。若读入的状态为全“1”,表示第0行无键按下;否则闭合键在第0行上。,在第0行无键按下的情况下,依此对行1,行2,行7进行上述操作,找出按键所在的行和列的编号。,三、与打印机接口 例:在某一8086系统中接有一个打印机,8255A作为输出接口。工作在方式0,试编一程序将缓冲区BUFF内的400H个字节的ASCII码送打印机打印。 总线式接口的缺点 8255接口的优点,打印机具体工作过程如下: 1、数据线D7D0出现有效数据; 2、STB有效,通知打印机,接口给打印机一个数据,数据从数据线进入打印机; 3、BUSY有效,告诉接口,打印机正在打印数据。打印完毕,BUSY变为无效,表示打印结束。,1,2,3,print_data proc ;打印子程序,入口在dl中 print1: in al,c_port ;无条件读C口数据 test al, 00010000b ;测试busy线 jnz print1 ;busy有效,循环测试 mov al,dl out a_port,al ;打印数据进入A口 mov al,00000000b ;发选通信号 out ctrl_port,al mov al,00000001b out ctrl_port,al ret ;返回主程序 print_datA endp,2、人机交互接口动态显示 例:常用的显示称为动态显示,它采用扫描显示技术,可以使硬件开销降低很多。对于一个8位数据显示,它就需要两个输出端口就可以了。其电路如图所示。在两个输出端口中,一个称为段信号通道,它用来输出要显示数据的段码;另一个称为位信号通道,用来决定当前要显示数据的位置。,动态显示电路图,显示系统的具体工作步骤如下: a、 设要显示的初始位码i0; b、 送第i位的段信号; c、 送第i位的位信号; d、 延时; e、 i1i f、 如果i小于8,转b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论