1、第第9 9章章 并行通信及其接口电路并行通信及其接口电路本章主要内容本章主要内容(1)可编程并行接口电路可编程并行接口电路8255A的结构及工作原理的结构及工作原理(2)8255A的应用的应用n在计算机和数据通信系统中,有两种基本的数据传送在计算机和数据通信系统中,有两种基本的数据传送方式,即串行数据传送方式和并行数据传送方式,也方式,即串行数据传送方式和并行数据传送方式,也称称串行通信和并行通信。串行通信和并行通信。n数据在单条一位宽的传输线上按时间先后一位一位地数据在单条一位宽的传输线上按时间先后一位一位地进行传送,称为串行传送;进行传送,称为串行传送;n数据在多位宽的传输线上各位同时进行
2、传送,称为并数据在多位宽的传输线上各位同时进行传送,称为并行传送。行传送。n和串行传送相比,在同样的时钟速率下,并行传送的和串行传送相比,在同样的时钟速率下,并行传送的数据传输率较高。数据传输率较高。n并行通信往往适用于信息传输率要求较高,而传输距离较并行通信往往适用于信息传输率要求较高,而传输距离较短的场合。短的场合。n本章重点介绍并行通信及其所要求的并行接口电路,研究本章重点介绍并行通信及其所要求的并行接口电路,研究它们的组成、功能及典型的并行接口芯片的工作原理及使它们的组成、功能及典型的并行接口芯片的工作原理及使用方法。用方法。n着重介绍着重介绍可编程可编程并行接口电路并行接口电路825
3、5A及其典型应用。及其典型应用。9.1 可编程并行接口的组成及工作过程可编程并行接口的组成及工作过程9.1.1 可编程并行接口的组成及其与可编程并行接口的组成及其与CPU和和外设的连接外设的连接n通常,一个可编程并行接口电路应包括下列组成部分:通常,一个可编程并行接口电路应包括下列组成部分:(1)两个或两个以上具有缓冲能力的数据寄存器。两个或两个以上具有缓冲能力的数据寄存器。(2)可供可供CPU访问的控制及状态寄存器。访问的控制及状态寄存器。(3)片选和内部控制逻辑电路。片选和内部控制逻辑电路。(4)与外设进行数据交换的控制与联络信号线。与外设进行数据交换的控制与联络信号线。(5)与与CPU用
4、中断方式传送数据的相关中断控制电路。用中断方式传送数据的相关中断控制电路。n典型的可编程并行接口及其与典型的可编程并行接口及其与CPU和外设的连接示意和外设的连接示意图如图图如图9.1所示。所示。图图9.1 可编程并行接口电路及其与可编程并行接口电路及其与CPU和外设的连接和外设的连接CPU输输出出设设备备输输入入设设备备并行接口电路并行接口电路数据总线数据总线读控信号读控信号写控信号写控信号复位信号复位信号中断响应信号中断响应信号中断请求信号中断请求信号地址地址译码器译码器片选片选输出缓冲寄存器输出缓冲寄存器输入缓冲寄存器输入缓冲寄存器控制寄存器控制寄存器状态寄存器状态寄存器中断逻辑中断逻辑
5、并行输出数据并行输出数据并行输入数据并行输入数据输出准备好输出准备好输出回答输出回答输入准备好输入准备好输入回答输入回答n由图由图9.1可以看出,可编程并行接口电路内部具有接收可以看出,可编程并行接口电路内部具有接收CPU控制命令的控制命令的“控制寄存器控制寄存器”,提供各种状态信息的,提供各种状态信息的“状态寄存器状态寄存器”以及用来同外设交换数据的以及用来同外设交换数据的“输出缓冲输出缓冲寄存器寄存器”和和“输入缓冲寄存器输入缓冲寄存器”。n可编程并行接口与可编程并行接口与CPU之间的连接信号通常有:之间的连接信号通常有:双向数双向数据总线,读、写控制信号,复位信号,中断请求信号,据总线,
6、读、写控制信号,复位信号,中断请求信号,中断响应信号以及地址信号等中断响应信号以及地址信号等。n可编程并行接口与外设之间除了必不可少的并行输入可编程并行接口与外设之间除了必不可少的并行输入数据线和并行输出数据线之外,还有专门用于两者之数据线和并行输出数据线之外,还有专门用于两者之间进行数据传输的应答信号,也称间进行数据传输的应答信号,也称“握手握手”信号。信号。n既然是握手,就一定是双方的动作,所以这种信号线既然是握手,就一定是双方的动作,所以这种信号线总是成对出现的,如图总是成对出现的,如图9.1中所示的中所示的“输出准备好输出准备好”与与“输出回答输出回答”就是一对握手信号;就是一对握手信
7、号;“输入准备好输入准备好”与与“输入回答输入回答”是另一对握手信号是另一对握手信号 9.1.2 可编程并行接口的数据输入输出过程可编程并行接口的数据输入输出过程 将以将以8255A为例进行讨论。为例进行讨论。9.2 可编程并行通信接口可编程并行通信接口8255A9.2.1 8255A的性能概要的性能概要nIntel 8255A是一个为是一个为Intel 8080和和8085微机系统设计的微机系统设计的通用可编程并行接口芯片,也可应用于其他微机系统通用可编程并行接口芯片,也可应用于其他微机系统之中。之中。n8255A采用采用40脚双列直插封装,单一脚双列直插封装,单一+5V电源,全部输电源,全
8、部输入输出与入输出与TTL电平兼容。电平兼容。n用用8255A连接外部设备时,通常不需要再附加其他电连接外部设备时,通常不需要再附加其他电路,给使用带来很大方便。路,给使用带来很大方便。n8255A 有三个输入输出端口:有三个输入输出端口:端口端口A、端口、端口B、端口、端口C。n每个端口都可通过编程设定为输入端口或输出端口,每个端口都可通过编程设定为输入端口或输出端口,但有各自不同的方式和特点。但有各自不同的方式和特点。n端口端口C可作为一个独立的端口使用,但通常是配合端可作为一个独立的端口使用,但通常是配合端口口A和端口和端口B的工作,为这两个端口的输入输出提供控的工作,为这两个端口的输入
9、输出提供控制联络信号。制联络信号。9.2.2 8255A芯片引脚分配及引脚信号说明芯片引脚分配及引脚信号说明n8255A芯片引脚分配如图芯片引脚分配如图9.2所示。所示。n8255A芯片的芯片的40条引脚,大致可分为三类:条引脚,大致可分为三类:(1)电源与地线共电源与地线共2条:条:Vcc、GND。(2)与外设相连的共与外设相连的共24条:条:nPA7PA0:端口端口A数据信号。数据信号。nPB7PB0:端口端口B数据信号。数据信号。nPC7PC0:端口端口C数据信号。数据信号。图图9.2 8255 A芯片引脚分配芯片引脚分配14023933843753663573483398255A 32
10、10311130122913281427152616251724182319222021PA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC3PC2PC1PC0PB0PB1PB2PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VCCPB7PB6PB5PB4PB314023933843753663573483398255A 3210311130122913281427152616251724182319222021PA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC3PC2PC1PC0PB0PB1PB2PA4PA5PA6PA7WR
11、RESETD0D1D2D3D4D5D6D7VCCPB7PB6PB5PB4PB3(3)与与CPU相连的共相连的共14条:条:nRESET:复位信号,高电平有效。当复位信号,高电平有效。当RESET信号有效信号有效时,所有内部寄存器都被清除。同时,时,所有内部寄存器都被清除。同时,3个数据端口个数据端口被自动设置为输入端口。被自动设置为输入端口。nD7D0:双向数据线,在双向数据线,在8080、8085系统中,系统中,8255A的的D7D0与系统的与系统的8位数据总线相连;位数据总线相连;n在在8086系统中,采用系统中,采用16位数据总线,位数据总线,8255A的的D7D0通常是接在通常是接在1
12、6位数据总线的低位数据总线的低8位上。位上。nCS:片选信号,低电平有效。该信号来自译码器的输片选信号,低电平有效。该信号来自译码器的输出,只有当出,只有当CS有效时,读信号有效时,读信号RD和写信号和写信号WR才对才对8255A有效。有效。nRD:读信号,低电平有效。它控制从读信号,低电平有效。它控制从8255A读出数据读出数据或状态信息。或状态信息。nWR:写信号,低电平有效。它控制把数据或控制命写信号,低电平有效。它控制把数据或控制命令字写入令字写入8255A。nA1、A0:端口选择信号。端口选择信号。8255A内部共有内部共有4个端口个端口(即即寄存器寄存器):3个数据端口个数据端口(
13、端口端口A、端口、端口B、端口、端口C)和和1个个控制端口控制端口,当片选信号当片选信号CS有效时,规定有效时,规定A1、A0为为00、01、10、11时,分别选中时,分别选中端口端口A、端口、端口B、端口、端口C和控和控制端口。制端口。nCS、RD、WR、A1、A0 这五个信号的组合决定了对这五个信号的组合决定了对三个数据端口和一个控制端口的读写操作,三个数据端口和一个控制端口的读写操作,如表如表9-1所所示。示。表表9-1 8255A端口选择和基本操作端口选择和基本操作A1A0输入操作(输入操作(读读)00010端口端口A数据总线数据总线01010端口端口B数据总线数据总线10010端口端
14、口C数据总线数据总线输出操作(输出操作(写写)00100数据总线数据总线端口端口A01100数据总线数据总线端口端口B10100数据总线数据总线端口端口C11100数据总线数据总线控制字寄存器控制字寄存器无操作情况无操作情况XXXX1数据总线为三态(高阻)数据总线为三态(高阻)11010非法操作非法操作XX110数据总线为三态(高阻)数据总线为三态(高阻)RDWRcs9.2.3 8255A内部结构框图内部结构框图n8255A内部结构方块图如图内部结构方块图如图9.3所示。所示。图图9.3 8255A内部结构方块图内部结构方块图RESETA组组端口端口A(8位)位)A组组端口端口C(高(高4位)
15、位)B组组端口端口C(低(低4位)位)B组组端口端口B(8位)位)I/O PA7PA0I/O PC7PC4I/O PC3PC0I/O PB7PB0A组控制组控制B组控制组控制数据总线数据总线缓冲器缓冲器读写读写控制控制逻辑逻辑_RD_WRA1A0_CS电源电源+5VGND8位内部数据总线位内部数据总线D7D0双向数据总线双向数据总线n由图由图9.3可以看出,可以看出,8255A由以下几部分组成:由以下几部分组成:1)数据总线缓冲器数据总线缓冲器n这是一个双向三态这是一个双向三态8位数据缓冲器,它是位数据缓冲器,它是8255A与与CPU数据总线的接口。数据总线的接口。n输入数据、输出数据以及输入
16、数据、输出数据以及CPU发给发给8255A的控制字和的控制字和从从8255A读出的状态信息都是通过该缓冲器传送的。读出的状态信息都是通过该缓冲器传送的。2)端口端口A、端口、端口B、端口、端口Cn8255A有三个有三个8位端口位端口(端口端口A、端口、端口B、端口、端口C),各端,各端口可由程序设定为输入端口或输出端口。口可由程序设定为输入端口或输出端口。n在使用中,端口在使用中,端口A和端口和端口B常常作为独立的输入端口或常常作为独立的输入端口或输出端口。输出端口。n端口端口C也可以作为输入端口或输出端口,但往往是用也可以作为输入端口或输出端口,但往往是用来配合端口来配合端口A和端口和端口B
17、的工作。的工作。n在方式字的控制下,端口在方式字的控制下,端口C可以分成两个可以分成两个4位的端口,位的端口,分别用来为端口分别用来为端口A和端口和端口B提供控制和状态信息。提供控制和状态信息。3)A组控制和组控制和B组控制组控制nA组控制组控制控制端口控制端口A及端口及端口C的高的高4位。位。nB组控制组控制控制端口控制端口B及端口及端口C的低的低4位。位。4)读写控制逻辑读写控制逻辑n读写控制逻辑负责管理读写控制逻辑负责管理8255A的数据传输过程。的数据传输过程。9.2.4 8255A的控制字的控制字1.方式选择控制字方式选择控制字n方式选择控制字的格式如图方式选择控制字的格式如图9.4
18、所示。所示。图图9.4 8255A方式选择控制字方式选择控制字1D6D5D4D3D2D1D0方式选择控方式选择控制字标识位制字标识位A组方式选择组方式选择00 方式方式001 方式方式11x 方式方式2端口端口A1 输入输入0 输出输出 PC3PC0:1 输入输入 (方式(方式0时)时)0 输出输出端口端口B:1 输入输入 0 输出输出B组方式选择:组方式选择:0 方式方式0 1 方式方式1 PC7PC4:1 输入输入(方式(方式0时)时)0 输出输出 n假定要求假定要求8255A的各个端口工作于如下方式:的各个端口工作于如下方式:n端口端口A方式方式0,输出;,输出;n端口端口B方式方式0,
19、输入;,输入;n端口端口C的高的高4位位方式方式0,输出;,输出;n端口端口C的低的低4位位方式方式0,输入。,输入。n相应的方式选择控制字应为相应的方式选择控制字应为10000011B(83H)。n设在设在8086系统中系统中8255A控制口的地址为控制口的地址为D6H,则执行,则执行如下两条指令即可实现上述工作方式的设定。如下两条指令即可实现上述工作方式的设定。nMOV AL,83HnOUT 0D6,AL ;将方式选择控制字写入控制口将方式选择控制字写入控制口2.端口端口C按位置按位置1置置0控制字控制字n可以用专门的控制字实现对端口可以用专门的控制字实现对端口C按位置按位置1置置0操作,
20、操作,用以产生所需的控制功能,这种控制字就是用以产生所需的控制功能,这种控制字就是“端口端口C按位置按位置1置置0控制字控制字”。n该控制字的具体格式该控制字的具体格式如图如图9.5所示。所示。图图9.5 端口端口C按位置按位置1/置置0控制字控制字0D6D5D4D3D2D1D0 xxx无关无关 1:置置1 0:置置000001111端口端口C按位置按位置1/置置0控制字标识位控制字标识位位选择位选择PC0PC1PC2PC3PC4PC5PC6PC70011001101010101n需要指出的是,端口需要指出的是,端口C按位置按位置1置置0控制字是对端口控制字是对端口C的操作控制信息,因此的操作
21、控制信息,因此该控制字必须写入控制口,而该控制字必须写入控制口,而不应写入端口不应写入端口C。n控制字的控制字的D0位决定是置位决定是置“1”操作还是置操作还是置“0”操作,操作,但究竟是对端口但究竟是对端口C的哪一位进行操作,则决定于控制的哪一位进行操作,则决定于控制字中的字中的D3、D2、D1位。位。n例如,要实现对端口例如,要实现对端口C的的PC6位置位置“0”,则控制字应,则控制字应为为00001100B(0CH)。n设设8255A的控制口地址同上,则执行下列指令即可实的控制口地址同上,则执行下列指令即可实现指定的功能:现指定的功能:nMOV AL,0CHnOUT 0D6H,AL ;将
22、将“端口端口C按位置按位置1置置0控制字控制字”写入写入 控制口,实现对控制口,实现对PC6位置位置“0”9.2.5 8255A的工作方式的工作方式1.方式方式0n方式方式0也叫也叫基本输入输出方式基本输入输出方式。n在这种方式下,端口在这种方式下,端口A和端口和端口B可以通过可以通过方式选择控制方式选择控制字字规定为输入口或者输出口;规定为输入口或者输出口;n端口端口C分为高分为高4位位(PC7PC4)和低和低4位位(PC3PC0)两个两个4位端口,这两个位端口,这两个4位端口也可由方式选择控制字分别位端口也可由方式选择控制字分别规定为输入口或输出口。规定为输入口或输出口。n这这4个并行口共
23、可构成个并行口共可构成24=16种不同的使用组态。种不同的使用组态。n利用利用8255A的方式的方式0进行数据传输时,由于没有规定专进行数据传输时,由于没有规定专门的应答信号,所以这种方式常用于与简单外设之间门的应答信号,所以这种方式常用于与简单外设之间的数据传送,如向的数据传送,如向LED显示器的输出,从二进制开关显示器的输出,从二进制开关装置的输入等。装置的输入等。2.方式方式1n方式方式1也叫也叫选通的输入输出方式选通的输入输出方式。n和方式和方式0相比,最主要的差别就是当端口相比,最主要的差别就是当端口A和端口和端口B工工作于方式作于方式1时,要利用端口时,要利用端口C来接收选通信号或
24、提供有来接收选通信号或提供有关的状态信号,而这些信号是由端口关的状态信号,而这些信号是由端口C的固定数位来的固定数位来接收或提供的,即信号与数位之间存在着对应关系。接收或提供的,即信号与数位之间存在着对应关系。n这种关系不可以用程序的方法予以改变。这种关系不可以用程序的方法予以改变。1)方式方式1输入输入n当端口当端口A和端口和端口B工作于工作于“方式方式1输入输入”时,端口时,端口C控制控制信号定义如图信号定义如图9.6 所示。所示。n该图中还给出了相应的方式选择控制字。该图中还给出了相应的方式选择控制字。图图9.6 8255A方式方式1输入输入 1 0 1 1 1/0 A组方式组方式1D7
25、 D6 D5 D4 D3 D2 D1 D0PC6,71 输入输入0 输出输出端口端口A输入输入INTEBPC2PC1_STBBIBFBPB7PB0_RDPC0D7D0INTRB方式方式1输入(端口输入(端口B)INTEAPC4PC5PC6,72I/O_STBAIBFAPA7PA0_RDPC3D7D0INTRA方式方式1输入(端口输入(端口A)1 1 1 D7 D6 D5 D4 D3 D2 D1 D0B组方式组方式1端口端口B输入输入n对于图对于图9.6中所示的控制信号说明如下:中所示的控制信号说明如下:nSTB:选通信号选通信号,低电平有效。它是由外设送给,低电平有效。它是由外设送给8255A
26、的输入信号,当其有效时,的输入信号,当其有效时,8255A接收外设送来的一接收外设送来的一个个8位数据。位数据。nIBF:“输入缓冲器满输入缓冲器满”信号,高电平有效,它是一个信号,高电平有效,它是一个8255A送给外设的联络信号。送给外设的联络信号。n当当IBF为高电平时,表示外设的为高电平时,表示外设的数据已送进输入缓冲器数据已送进输入缓冲器中中,但,但尚未被尚未被CPU取走,通知外设不能送新数据取走,通知外设不能送新数据;n只有当只有当IBF变为低电平时,即变为低电平时,即CPU已读取数据,输入已读取数据,输入缓冲器变空时,才允许外设送新数据。缓冲器变空时,才允许外设送新数据。nINTR
27、:中断请求信号,高电平有效。它是中断请求信号,高电平有效。它是8255A的一的一个输出信号,用于向个输出信号,用于向CPU发出中断请求。发出中断请求。nINTEA:端口端口A中断允许信号。中断允许信号。INTEA没有外部引出端,没有外部引出端,它实际上就是端口它实际上就是端口A内部的中断允许触发器的状态信内部的中断允许触发器的状态信号。号。nINTEA由由PC4的置位复位来控制的置位复位来控制,PC4=1时,使端口时,使端口A处于中断允许状态。处于中断允许状态。nINTEB:端口端口B中断允许信号。与中断允许信号。与INTEA类似,类似,INTEB也没有外部引出端,它是端口也没有外部引出端,它
28、是端口B内部的中断允许触发器内部的中断允许触发器的状态信号。的状态信号。n它由它由PC2的置位复位来控制,的置位复位来控制,PC2=1时,使端口时,使端口B处处于中断允许状态。于中断允许状态。n在方式在方式1输入时,输入时,PC6和和PC7两位还闲着未用。如果要两位还闲着未用。如果要利用它们,可用方式选择控制字中的利用它们,可用方式选择控制字中的D3位来设定。位来设定。n方式方式1输入工作时序图如图输入工作时序图如图9.7所示。所示。图图9.7 方式方式1输入工作时序图输入工作时序图来自外设的来自外设的输入数据输入数据_STBIBFINTR_RDtRIBtSTtSIBTSITtRITtPStP
29、H2)方式方式1输出输出 当端口当端口A和端口和端口B工作于方式工作于方式1输出时,方式选择控输出时,方式选择控制字及相应的端口制字及相应的端口C控制信号定义如图控制信号定义如图9.8所示。所示。图图9.8 8255A方式方式1输出输出 1 0 1 0 1/0 A组方式组方式1D7 D6 D5 D4 D3 D2 D1 D0PC4,51 输入输入0 输出输出端口端口A输出输出 1 1 0 D7 D6 D5 D4 D3 D2 D1 D0B组方式组方式1端口端口B输出输出INTEAPC7PC6PC4,52I/O_OBFAACKAPA7PA0_WRPC3D7D0INTRA方式方式1输出(端口输出(端口
30、A)INTEBPC1PC2_OBFBACKBPB7PB0_WRPC0D7D0INTRB方式方式1输出(端口输出(端口B)对图对图9.8中所示的控制信号说明如下:中所示的控制信号说明如下:OBF:“输出缓冲器满输出缓冲器满”信号,低电平有效,它是信号,低电平有效,它是8255A输出给外设的一个控制信号。输出给外设的一个控制信号。当其有效时,表示当其有效时,表示CPU已经把数据输出给指定端口,已经把数据输出给指定端口,通知外设把数据取走。通知外设把数据取走。它是由写信号它是由写信号WR的上升沿置成有效的上升沿置成有效(低电平低电平),而由,而由ACK信号的有效电平使其恢复为高电平。信号的有效电平使
31、其恢复为高电平。ACK:外设响应信号,低电平有效。当其有效时,表明外设响应信号,低电平有效。当其有效时,表明CPU通过通过8255A输出的数据已经由外设接收。它是对输出的数据已经由外设接收。它是对OBF的回答信号。的回答信号。INTR:中断请求信号,高电平有效。它是中断请求信号,高电平有效。它是8255A的一个输出的一个输出信号,用于向信号,用于向CPU发出中断请求。发出中断请求。INTR是当是当ACK、OBF和和INTE都为都为“1”时才被置成高电平时才被置成高电平(向向CPU发出中发出中断请求信号断请求信号);写信号;写信号WR的上升沿使其变为低电平的上升沿使其变为低电平(清除清除中断请求
32、信号中断请求信号)。INTEA:端口端口A中断允许信号,由中断允许信号,由PC6的置位的置位/复位来控制,复位来控制,PC6=1时,端口时,端口A处于中断允许状态。处于中断允许状态。INTEB:端口:端口B中断允许信号,由中断允许信号,由PC2的置位的置位/复位来控制,复位来控制,PC2=1时,端口时,端口B处于中断允许状态。处于中断允许状态。n另外,在方式另外,在方式1输出时,输出时,PC4、PC5两位还闲着未用,如果两位还闲着未用,如果要利用它们可用方式选择控制字的要利用它们可用方式选择控制字的D3位来设定。位来设定。n方式方式1输出工作时序图如图输出工作时序图如图9.9所示所示。图图9.
33、9 方式方式1输出工作时序图输出工作时序图INTR_WR_OBF_ACK输出输出tAKtAITtWITtWOBtAOBtWB3.方式方式2n方式方式2也叫双向传输方式,也叫双向传输方式,只有端口只有端口A才能工作于方式才能工作于方式2。在方式。在方式2,外设既可以在,外设既可以在8位数据线上往位数据线上往CPU发送数发送数据,又可以从据,又可以从CPU接收数据。接收数据。n当端口当端口A工作于方式工作于方式2时,端口时,端口C的的PC7PC3用来提供用来提供相应的控制和状态信号,配合端口相应的控制和状态信号,配合端口A的工作。此时端的工作。此时端口口B以及端口以及端口C的的PC2PC0则可工作
34、于方式则可工作于方式0或方式或方式1,如果端口如果端口B工作于方式工作于方式0,那么端口,那么端口C的的PC2PC0 可用作数据输入可用作数据输入/输出输出(I/O);如果端口;如果端口B工作于方式工作于方式1,那么端口那么端口C的的PC2PC0用来为端口用来为端口B提供控制和状态提供控制和状态信号。信号。n当端口当端口A工作于方式工作于方式2时,方式选择控制字及端口时,方式选择控制字及端口C控控制信号的定义如图制信号的定义如图9.10所示。所示。图图9.10 8255A方式方式21)方式)方式2输出操作的有关控制联络信号输出操作的有关控制联络信号nOBFA:端口:端口A“输出缓冲器满输出缓冲
35、器满”信号,输出,低电平信号,输出,低电平有效。当有效。当OBFA有效时,表示有效时,表示CPU已经将一个数据写入已经将一个数据写入8255A的端口的端口A,通知外设将数据取走。,通知外设将数据取走。nACKA:外设对外设对OBFA的回答信号,输入,低电平有效。的回答信号,输入,低电平有效。当它有效时,表明外设已收到端口当它有效时,表明外设已收到端口A输出的数据。输出的数据。nINTE1:输出中向输出中向CPU发中断请求断允许信号。当发中断请求断允许信号。当INTE1为为1时,允许时,允许8255A由由INTRA信号;当信号;当INTE1为为0时,则屏蔽了该中断请求。时,则屏蔽了该中断请求。n
36、INTE1的状态由的状态由“端口端口C按位置按位置1/置置0控制字控制字”所设定所设定的的PC6位的内容来决定。位的内容来决定。2)方式)方式2输入操作的有关控制联络信号输入操作的有关控制联络信号nSTBA:端口:端口A选通信号,输入,低电平有效。当它有选通信号,输入,低电平有效。当它有效时,端口效时,端口A接收外设送来的一个接收外设送来的一个8位数据。位数据。nIBFA:端口:端口A“输入缓冲器满输入缓冲器满”信号,输出,高电平信号,输出,高电平有效。当有效。当IBFA=1时,表明外设的数据已送进输入缓冲时,表明外设的数据已送进输入缓冲器;当器;当IBFA=0时,外设可以将一个新的数据送入端
37、口时,外设可以将一个新的数据送入端口A。nINTE2:输入中断允许信号。它的作用与前述:输入中断允许信号。它的作用与前述INTE1类类似,其状态由似,其状态由“端口端口C按位置按位置1/置置0控制字控制字”所设定的所设定的PC4位的内容来决定。位的内容来决定。n对于对于INTRA,在,在INTE1=1和和INTE2=1的情况下,无论的情况下,无论OBFA1或者或者IBFA=1都可能使都可能使INTRA=1,向,向CPU请求请求中断。至于如何识别中断请求是来自输入还是输出,中断。至于如何识别中断请求是来自输入还是输出,CPU可以通过测试可以通过测试8255A的状态字的内容来实现。的状态字的内容来
38、实现。n方式方式2是一种双向传输工作方式。如果一个并行外部设是一种双向传输工作方式。如果一个并行外部设备既可以作为输入设备,又可以作为输出设备,并且备既可以作为输入设备,又可以作为输出设备,并且输入输出动作不会同时进行,那么,将这个外部设备输入输出动作不会同时进行,那么,将这个外部设备 和和8255A的端口的端口A相连,并让它工作于方式相连,并让它工作于方式2就很合适。就很合适。n磁盘系统就是这样一种外设,主机既可以往磁盘控制磁盘系统就是这样一种外设,主机既可以往磁盘控制器输出数据,也可以从磁盘控制器输入数据,但数据器输出数据,也可以从磁盘控制器输入数据,但数据输出与输入过程不是同时进行的。输
39、出与输入过程不是同时进行的。n可以把磁盘控制器的数据线与可以把磁盘控制器的数据线与8255A的的PA7PA0相连,相连,再使再使PC7PC3和磁盘控制器的控制线和状态线相连即和磁盘控制器的控制线和状态线相连即可。可。9.2.6 8255A的状态字的状态字 8255A工作于方式工作于方式1和方式和方式2时的状态字是通过读端口时的状态字是通过读端口C的内容来获得的。的内容来获得的。1.方式方式1状态字格式状态字格式 方式方式1状态字格式如图状态字格式如图9.11所示。所示。图图9.11 方式方式1状态字格式状态字格式D7 D6 D5 D4 D3 D2 D1 D0A组组B组组(b)方式)方式1输出状
40、态字格式输出状态字格式 _ _ OBFA INTEA I/O I/O INTRA INTEB OBFB INTRB D7 D6 D5 D4 D3 D2 D1 D0A组组B组组(a)方式)方式1输入状态字格式输入状态字格式 I/O I/O IBFA INTEA INTRA INTEB IBFB INTRB 2.方式方式2状态字格式状态字格式n 方式方式2的状态字也是从端口的状态字也是从端口C读取。读取。n 方式方式2状态字的格式如图状态字的格式如图9.12所示。所示。图图9.12 方式方式2状态字格式状态字格式D7 D6 D5 D4 D3 D2 D1 D0A组状态组状态B组状态组状态 OBFA
41、INTE1 IBFA INTE2 INTRA_I/O I/O I/O 方式方式1方式方式0INTEB OBFB INTRB INTEB IBFB INTRB 输出时输出时输入时输入时_9.2.7 8255A应用举例应用举例例例9.1 8255A工作于方式工作于方式0,利用,利用8255A将外设开关的二进将外设开关的二进制状态从端口制状态从端口A输入,经程序转换为对应的输入,经程序转换为对应的LED段选段选码码(字形码字形码)后,再从端口后,再从端口B输出到输出到LED显示器。显示器。n具体连线图如图具体连线图如图9.13(a)所示。所示。nLED显示器如图显示器如图 9.13(b)所示。所示。
42、图图9.13 8255A 的应用的应用地地址址译译码码地址地址CPU(8088)RDWRA0A1_D7D08255ARDWRA0A1_PA0PA1PA2PA3PB0PB1PB2PB3PB4PB5PB6PB7+5V2K4K0K1K2K3abcdefgh+5V12074LS04LED(a)连线图连线图地地址址译译码码地址地址CPU(8088)RDWRA0A1_D7D08255ARDWRA0A1_PA0PA1PA2PA3PB0PB1PB2PB3PB4PB5PB6PB7+5V2K4K0K1K2K3abcdefgh+5V120欧姆欧姆74LS04LED(a)连线图连线图abcdefg(b)LED显示器显
43、示器h设设8255A的端口地址为:的端口地址为:端口端口AD0H,端口,端口BD1H,端口,端口CD2H,控制口控制口D3H。则本例的初始化及输入、输出控制程序如下所示。则本例的初始化及输入、输出控制程序如下所示。nDATA SEGMENTn SSEGCODE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07Hn DB 7FH,67H,77H,CH,39H,5EH,79H,71HnDATA ENDSnCODE SEGMENTn ASSUME CS:CODE,DS:DATAnSTART:MOV AX,DATAn MOV DS,AXn MOV AL,90H ;设置方式选择控制字,
44、;设置方式选择控制字,A口工作于口工作于 n 方式方式0输入,输入,B 口工作于方式口工作于方式0输出输出n OUT 0D3H,AL n RDPORTA:n IN AL,0D0H ;读;读A口口n AND AL,0FH ;取;取A口低口低4位位n MOV BX,OFFSET SSEGCODE;取;取LED段选码表首地址段选码表首地址n XLAT ;查表,;查表,AL(BX+AL)n OUT 0D1H,AL ;从从B口输出口输出LED段选码,显示相应字形符号段选码,显示相应字形符号 n MOV AX,XXXXH ;延时延时n DELAY,DEC AX n JNZ DELAY n MOV AH,1
45、 ;判断是否有键按下判断是否有键按下n INT 16H n JZ RDPORTA ;若无,则继续读端口若无,则继续读端口An MOV AH,4CH ;否则返回否则返回DOSn INT 21HnCODE ENDSn END START 第第9章章 作业作业9.1 9.2 9.4 9.5 9.7 9.8 9.9 9.10 P245 习题习题9.13解:程序流程框图:初始化及有关控制程序设置8255方式选择控制字:A口方式O输出,B口方式O输出,C口方式O输入。向A口输出01H,使主道绿灯亮;向B口输出04H,使副道红灯亮 延迟延迟40秒秒 PC0=1?Yes 向A口输出02H,使主道黄灯亮 延迟延迟5秒秒 向A口输出04H,使主道红灯亮;向B口输出01H,使副道绿灯亮 延迟延迟20秒秒 向B口输出02H,使副道黄灯亮 延迟延迟5秒秒图图9.16 交通灯控制交通灯控制8255APC0 PA2 PA1 PA0 PB2 PB1 PB0 接系统总线接系统总线 K R Y G R Y G(开关)(开关)主道灯主道灯副道灯副道灯