数字量输入输出-并行通信.ppt_第1页
数字量输入输出-并行通信.ppt_第2页
数字量输入输出-并行通信.ppt_第3页
数字量输入输出-并行通信.ppt_第4页
数字量输入输出-并行通信.ppt_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

1、可编程并行输入输出接口,教学重点 8255A的工作方式和编程 8255A的应用,并行数据传输方式,以计算机的字长,通常是8位、16位或32位为传输单位,一次传送一个字长的数据 适合于外部设备与微机之间进行近距离、大量和快速的信息交换 例如:微机与并行接口打印机、磁盘驱动器 微机系统中最基本的信息交换方法 例如:系统板上各部件之间,接口电路板上各部件之间,8255A的基本性能,Intel 8086/8088 系列的可编程外设接口电路(Programmable Peripheral Interface)简称 PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可

2、编程的通用并行输入/输出接口电路。它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。,8255引脚图,8255A的内部结构和引脚,数据 总线 缓冲器,内部控制线,内部数据线,D0D7,A组 控制,A组 端口A,A组 端口C 上部,B组 控制,B组 端口B,B组 端口C 下部,PC0PC3,PB0PB7,PC4PC7,PA0PA7,RD WR A0 A1 CS RESET,读写 控制 逻辑,8255A内部结构由以下四部分组成:,数据端口A、B、C; A组控制和B组控制; 读/写控制逻辑电路; 数据总线缓冲器。,三个相互独立

3、的输入/输出通道,8255A具有三个相互独立的输入/输出通道:通道A、通道B、通道C A,B,C三通道可以联合使用,构成单线、双线或三线联络信号的并行接口。此时C口完全服务于A、B口。 A口有三种工作方式:方式0、方式1、方式2。 B口有两种工作方式:方式0、方式1。,8255A的工作方式,方式0:基本输入输出方式 适用于无条件传送和查询方式的接口电路 方式1:选通输入输出方式 适用于查询和中断方式的接口电路 方式2:双向选通传送方式 适用于与双向传送数据的外设 适用于查询和中断方式的接口电路,8255A的三个端口,端口A:包括一个 8 位的数据输出锁存/缓冲器和一个 8位的数据输入锁存器,可

4、作为数据输入或输出端口, 并工作于三种方式中的任何一种。 端口B: 包括一个 8 位的数据输出锁存/缓冲器和一个 8位的数据输入缓冲器,可作为数据输入或输出端口, 但不能工作于方式2。 端口C: 包括一个 8 位的数据输出锁存/缓冲器和一个 8位的数据输入缓冲器, 可在方式字控制下分为两个4位的端口(C端口上和下),每个4位端口都有4位的锁存器, 用来配合端口A与端口B锁存输出控制信号和输入状态信号,不能工作于方式1或2。,A组和B组控制的作用,A组和B组控制的作用如下:,A组控制逻辑控制端口A及端口C的上半部; B组控制逻辑控制端口B及端口C的下半部。,C端口置1置0控制字,端口C的数位常常

5、作为控制位来使用,所以,在设计8255A芯片时,应使端口C中的各位可以用置1置0控制字来单独设置。,说明: C端口置1置0控制字尽管是对端口C进行操作,但此控制字必须写入控制口,而不是写入C端口.,8255内部寄存器选择,/CS A1 A0 /RD /WR 0 0 0 A口-数据总线 数据总线-A口 0 0 1 B口-数据总线 数据总线-B口 0 1 0 C口-数据总线 数据总线-C口 0 1 1 数据总线-控制寄存器,写入方式控制字:控制字格式,写入方式控制字:示例,要求: A端口:方式1输入 C端口上半部:输出,C口下半部:输入 B端口:方式0输出 方式控制字:10110001B或B1H

6、初始化的程序段: mov dx,2A3h;假设控制端口为2A3H mov al,0b1h;方式控制字 out dx,al;送到控制端口,端口C的位控制字,位控制字写入控制端口 特别便于置位复位内部中断允许触发器INTE,关于端口C(1),C端口被分成两个4位端口,两个端口只能以方式0工作,可分别选择输入或输出 在控制上,C端口上半部和A端口编为A组,C端口下半部和B端口编为B组 当A和B端口工作在方式1或方式2时,C端口的部分引脚将被征用,其余引脚仍可设定工作在方式0,对端口C的数据输出有两种办法 通过端口C的I/O地址:向C端口直接写入字节数据。这一数据被写进C端口的输出锁存器,并从输出引脚

7、输出,但对设置为输入的引脚无效 通过控制端口:向C端口写入位控字,使C端口的某个引脚输出1或0,或置位复位内部的中断允许触发器,关于端口C(2),读取的C端口数据有两种情况 未被A和B端口征用的引脚:将从定义为输入的端口读到引脚输入信息;将从定义为输出的端口读到输出锁存器中的信息 被A和B端口征用作为联络线的引脚:将读到反映8255A状态的状态字,关于端口C(3),端口C的状态字,方式1输入,INTRA,INTE2,IBFA,INTE1,OBFA,INTRB,OBFB,INTEB,INTRA,I/O,I/O,INTEA,OBFA,方式2双向,方式1输出,INTRB,IBFB,INTEB,INT

8、RA,INTEA,IBFA,I/O,I/O,D0,D1,D2,D3,D4,D5,D6,D7,方式0,方式0是一种基本输入或输出方式,它适用于无需握手信号的简单输入输出应用场合, 端口A、B、C都可作为输入或输出数据使用,输出有锁存而输入无锁存。,方式0输入时序,方式0输出时序,方式1,方式1也称选通的输入/输出方式。在这种方式下,无论是输入还是输出都通过应答关系实现, 这时端口A或B用作数据口,端口C的一部分引脚用作握手信号线与中断请求线。,若端口A工作于方式1,则B可工作于方式0; 若端口B工作于方式1,则A可工作于方式0或余下的13位可工作于方式0; 若端口A和B同时工作于方式1,端口C余

9、下的两位还可用于传送数据或控制信号。,方式1,方式1输入引脚:A端口,数据选通信号 表示外设已经准备好数据,输入缓冲器满信号 表示A口已经接收数据,中断请求信号 请求CPU接收数据,PC4,PC5,PC3,PA7PA0,INTEA,IBFA,INTRA,STBA,方式1输入引脚:B端口,方式1输入联络信号,STB*选通信号,低电平有效 由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器 IBF输入缓冲器满信号,高电平有效 8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器 INTR中断请求信号,高电平有效 8255A输出的信号,可用于向CPU提出中

10、断请求,要求CPU读取外设数据,方式1输入时序,方式1的输入过程,1、当输入设备已准备好一个新数据时,首先检测IBF线的状态,若为低(表示输入锁存器空),则输入设备将数据放入PA7-PA0。 2、然后发出选通信号STB,STB将PA7-PA0上的数据置入数据锁存器,这时8255A使IBF有效,指示输入锁存器已满。 3、STB变为无效后,8255A使INTR由低变高,通过8259A向CPU发出中断请求,CPU响应请求并进入相应的中断服务程序。 4、在中断服务程序中,CPU读端口A,RD的下降沿使INTR无效。 5、RD的上升沿使IBF变无效,指示输入锁存器的数据已传送给CPU,处于空状态,准备接

11、收新的数据。,方式1输出引脚:A端口,外设响应信号 表示外设已经接收到数据,输出缓冲器满信号 表示CPU已经输出了数据,中断请求信号 请求CPU再次输出数据,PC6,PC7,PC3,PA7PA0,INTEA,OBFA,INTRA,ACKA,方式1输出引脚:B端口,PC2,PC1,PC0,PB7PB0,INTEB,OBFB,INTRB,ACKB,外设响应信号 表示外设已经接收到数据,输出缓冲器满信号 表示CPU已经输出了数据,中断请求信号 请求CPU再次输出数据,方式1输出联络信号,OBF*输出缓冲器满信号,低有效 8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端

12、口,外设可以取走 ACK*响应信号,低有效 外设的响应信号,指示8255A的端口数据已由外设接受 INTR中断请求信号,高有效 当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据,方式1输出时序,方式1的输出过程,1、以端口A为例,当输出设备接收了前一次数据后,8255A通过8259A向CPU请求中断。 2、在中断服务程序中,CPU将数据写入指定的端口,WR变为有效,于是数据写入输出锁存器并出现在PA7-PA0。 3、写信号WR的上升沿使OBF变为有效,指示输出设备PA7-PA0上,已有新的数据,同时还使INTR变为无效。 4、在PA7-PA0上输出数据。

13、 5、输出设备接收到数据后,向8255A发回ACK信号,ACK的上升沿通常表示输出设备已准备好再接收新的数据。 6、8255A在ACK出现上升沿之前使OBF变为无效,若INTE=1,则还使INTR变为有效,再次请求中断。,关于方式1中断控制,8255A的中断由中断允许触发器INTE控制 置位允许中断,复位禁止中断 对INTE的操作通过写入端口C的对应位实现,INTE触发器对应端口C的位是作应答联络信号的输入信号的哪一位,只要对那一位置位/复位就可以控制INTE触发器 选通输入方式下 端口A的INTEA对应PC4 端口B的INTEB对应PC2,方式2:双向方式,方式2将方式1的选通输入输出功能组

14、合成一个双向数据端口,可以发送数据和接收数据 只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同 方式2的数据输入过程与方式1的输入方式一样 方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF*有效时向外设输出数据,而是在外设提供响应信号ACK*时才送出数据,方式2双向引脚,用PC6设置INTE1(输出) 用PC4设置INTE2(输入) 输入和输出中断通过 或门输出INTRA信号,方式2双向时序,应用举例1:用8255A方式0与打印机接口,BUSY,DATA07,8255A,PC7,PC2,PA0PA7,打印机,打印机接口的信号,主机把数

15、据送给引脚DATA0DATA7 同时送出数据选通信号STROBE* 打印机在BUSY信号线上发出“忙”信号 打印机处理好输入的数据时,撤消“忙”信号,打印机接口时序,8255A的初始化,mov dx,0fffeh ;控制端口地址 mov al,10000001B ;方式控制字:91H out dx,al ;A端口方式0输出,C端口上输出、下输入 mov al,00001111B;端口C的复位置位控制字,使PC71 out dx,al,打印子程序:查询,printcproc push ax push dx prn:mov dx,0fffch;读取端口C in al,dx ;查询打印机状态 and

16、 al,04h;PC2BUSY0? jnz prn;PC21,打印机忙,则循环等待,打印子程序:输出,mov dx,0fff8h ;PC20,打印机不忙,则输出数据 mov al,ah out dx,al ;将打印数据从端口A输出,打印子程序:打印,mov dx,0fffeh;从PC7送出控制低脉冲 mov al,00001110B;置STROBE*0 out dx,al nop;产生一定宽度的低电平 nop mov al,00001111B;置=1 out dx,al,打印子程序:返回,pop dx pop ax ret printcendp,用8255A方式1与打印机接口,8255A方式1

17、与打印机接口时序配合,PA0PA7 (DATA07),8255A的初始化,mov dx,0fffeh ;控制口地址0fffeh mov al,0a0h ; 控制字 1010 0000 out dx,al mov al,0ch ;0000 1100 使INTEA(PC6)为0,禁止中断 out dx,al mov cx,counter;打印字节数送CX mov bx,offset buffer;取字符串首地址 call prints;调用打印子程序,打印子程序:输出,printsproc push ax;保护寄存器 push dx print1:mov al,bx;取一个数据 mov dx,0fff8h out dx,al;从端口A输出,打印子程序:查询,mov dx,0fffch print2:in al,dx test al,80h;检测(PC7)为1否? jz print2;为0,说明打印机没有响应,继续检测,打印子程序:返回,inc bx;为1,说明打印机已接受数据 loop print1 ;准备取下一个数据输出 pop dx;打印结束,恢复寄存器 pop ax ret ;返回 printsendp,8255内部寄存器选择,/CS A1 A0 /RD /WR 0 0 0 A口-数据总线 数据总线-A口 0 0 1 B口-数据总线 数据总线-B口 0 1 0 C口-

温馨提示

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

评论

0/150

提交评论