微型计算机原理及应用课件.ppt
第7章 可编程并行接口8255A并行接口的概述并行接口的概述7.4.2 7.4.2 可编程并行接口可编程并行接口8255A8255A7.4.3 8255A7.4.3 8255A的的0 0方式及其应用方式及其应用7.4.4 8255A7.4.4 8255A的的1 1方式及其应用方式及其应用7.4.5 8255A7.4.5 8255A的的2 2方式及其应用方式及其应用CPUCPU与外设之间的信息传送都是通过接口电路来进行的。与外设之间的信息传送都是通过接口电路来进行的。计计算算机机与与外外部部设设备备、计计算算机机与与计计算算机机之之间间交交换换信信息息称称之之为为计计算机通信算机通信,计算机通信可分为两大类:计算机通信可分为两大类:并行通信:并行通信:8 8位或位或1616位或位或3232位数据同时传输,位数据同时传输,速度快,信息速度快,信息 率高,成本高率高,成本高串行通信串行通信:一位一位数据传送一位一位数据传送(在一条线上顺序传送在一条线上顺序传送),成本低,成本低 实现并行通信的接口就是并行接口。实现并行通信的接口就是并行接口。并行接口的概述一、串行与并行通信一、串行与并行通信并并行行接接口口最最基基本本的的特特点点是是在在多多根根据据数数据据线线上上以以数数据据字字节节(字字)为单位与为单位与I/OI/O设备或被控对象传送信息。设备或被控对象传送信息。如如:打打印印机机接接口口,A/DA/D、D/AD/A转转换换器器接接口口,IEEE-488IEEE-488接接口口,开开关量接口,控制设备接口等。关量接口,控制设备接口等。在在并并行行接接口口中中,除除了了少少数数据据场场合合之之外外,一一般般都都要要求求在在接接口口与与外外设设之之间间设设置置并并行行数数据据线线的的同同时时,至至少少还还要要设设置置两两根根握握手手(联联线线)信信号号线线,以以便便进进行行互互锁锁异异步步握握手手方方式式(即即查查询询方方式式)的通信的通信。在在并并行行接接口口中中,8 8位位或或1616位位是是一一起起行行动动的的,因因此此,当当采采用用并并行行接接口口与与外外设设交交换换数数据据时时,即即使使是是只只用用到到其其中中的的一一位位,也也是是一一次输入次输入/输出输出8 8位或位或1616位。位。并并行行传传送送信信息息,不不要要求求固固定定的的格格式式,这这与与串串行行传传送送的的数数据据格格式的要求不同。式的要求不同。二、并行接口的特点二、并行接口的特点8255A8255A概述概述 Intel8255AIntel8255A是是一一种种通通用用的的可可编编程程序序并并行行I/OI/O接接口口芯芯片片,又又称称“可可编编程程外外设设接接口口芯芯片片”,是是为为Intel8080/8085Intel8080/8085系系列列微微处处理理设设计计的的,也也可可用用于于其其它它系系列列的的微微机机系系统统。可可由由程程序序来来改改变变其其功功能能,通通用用性性强强、使使用用灵灵活活。通通过过8255A8255A,CPUCPU可可直直接接同同外外设相连接,是应用最广的并行设相连接,是应用最广的并行I/OI/O接口芯片。接口芯片。含含3 3个个独独立立的的8 8位位并并行行输输入入/输输出出端端口口,各各端端口口均均具具有有数数据据的的控控制制和和锁锁存存能能力力。可可通通过过编编程程设设置置各端口的工作方式和数据传送方向各端口的工作方式和数据传送方向(入入/出出/双向双向)。并行接口连接外设示意图并行接口连接外设示意图l不可编程并行接口和可编程并行接口不可编程并行接口和可编程并行接口 不可编程并行接口的工作方式和功能不可编程并行接口的工作方式和功能:是由硬件接线决定,不能用软件来控制。是由硬件接线决定,不能用软件来控制。可编程并行接口的工作方式和功能可编程并行接口的工作方式和功能:可用软件编程的方法改变,可用软件编程的方法改变,使接口具有更大的灵活性和通用性。使接口具有更大的灵活性和通用性。一般情况下不交叉使用一般情况下不交叉使用,因为,因为:只有本系列的芯片才能更好地保证时序上的配合只有本系列的芯片才能更好地保证时序上的配合,和各种功能的发挥,使和各种功能的发挥,使CPUCPU可靠与外设交换信息。可靠与外设交换信息。l 在并行接口芯片中,在并行接口芯片中,不同的产品系列研制出与之相匹配的接口芯不同的产品系列研制出与之相匹配的接口芯片。片。例例 在在80X8680X86系列系列中使用中使用8255A8255A芯片芯片 在在Z80Z80系列系列中使用中使用Z80-PIOZ80-PIO芯片芯片 在在68006800系列系列中使用中使用MC6820PIAMC6820PIA芯片芯片8255A8255A8255A的内部结构的内部结构 A组控制组控制数据总线数据总线缓冲器缓冲器读读/写写控制逻辑控制逻辑B组控制组控制A组组A口口(8位)位)A组组C口高位口高位(4位)位)B组组C口低位口低位(4位)位)B组组B口口(8位)位)D0D7RDRDA1A0RESETRDPA0PA7PC4PC7PC0PC3PB0PB78255A8255A1.1.数数据据总总线线缓缓冲冲器器:三三态态8 8位位双双向向缓缓冲冲器器,与与系系统统数数据据总总线线连连接接的缓冲部件;传送数据、控制字、状态字的通道。的缓冲部件;传送数据、控制字、状态字的通道。2.2.3 3个个8 8位位数数据据端端口口(PAPA、PBPB、PC)PC):通通常常PAPA口口与与PBPB口口用用作作输输入入输输出出的的数数据据端端口口,PCPC口口用用作作数数据据传传输输或或提提供供联联络络线线的的端端口口。在在方方式式字字的的控控制制下下,PCPC口口可可以以分分成成两两个个4 4位位的的端端口口,其其中中PCPC7 7PCPC4 4同端口同端口A A配合使用,配合使用,PCPC3 3PCPC0 0同端口同端口B B配合使用配合使用。3.3.A A组组、B B组组控控制制电电路路:这这两两组组控控制制电电路路根根据据CPUCPU发发出出的的方方式式选选择择控控制制字字来来控控制制8255A8255A的的工工作作方方式式,每每个个控控制制组组都都接接收收来来自自读读写写控控制制逻逻辑辑的的“命命令令”,接接收收来来自自内内部部数数据据总总线线的的“控控制制字字”,并并向向与与其其相相连连的的端端口口发发出出适适当当的的控控制制信信号号。A A组组控控制制电电路路控控制制PAPA口口和和PCPC口口高高4 4位位,B B组组控控制制电路控制电路控制PBPB口和口和PCPC口低口低4 4位。位。4.4.读读/写写控控制制逻逻辑辑:用用来来管管理理数数据据、控控制制字字和和状状态态字字的的传传送送,接接收收系系统统总线发来的有关信号,并向总线发来的有关信号,并向A A、B B两组控制部件发送命令。两组控制部件发送命令。DIPDIP封装,共封装,共4040个引脚。个引脚。1.1.连接系统总线的主要引脚连接系统总线的主要引脚D D0 0D D7 7:数据线,双向,连数据线,双向,连CPUCPU数据总线;数据总线;RESETRESET:复位输入,接系统总线的复位输入,接系统总线的RESETRESET;CS*CS*:片选控制输入,接译码器;片选控制输入,接译码器;RD*RD*:读命令输入,接读命令输入,接CPUCPU的的RD*RD*或或IOR*IOR*;WR*WR*:写命令输入,接写命令输入,接CPUCPU的的WR*WR*或或IOW*IOW*;A A0 0,A A1 1:片片内内端端口口地地址址输输入入,可可选选4 4个个片片内内端口。接端口。接ABAB的任的任2 2位。位。1.面向CPU一侧的引脚信号 D7D0,8位,双向,三态数据线位,双向,三态数据线 RESET,复位信号复位信号 CS*,片选信号片选信号RD*,读信号读信号WR*,写信号写信号 A1、A0,端口选择信号,端口选择信号 A1 A0RD*WR*CS*输入操作(输入操作(CPU读)读)001010000111000数据总线数据总线 端口端口A数据总线数据总线 端口端口B 数据总线数据总线 端口端口C 00110111111100000000输出操作输出操作(CPU写写)数据总线数据总线端口端口A 数据总线数据总线端口端口B 数据总线数据总线端口端口C数据总线数据总线控制端口控制端口8255A的读/写操作控制2.面向外设一侧的引脚信号 n端口端口A:PA0PA7nA组,支持工作方式组,支持工作方式0、1、2n端口端口B:PB0PB7nB组,支持工作方式组,支持工作方式0、1n端口端口C:PC0PC7n仅支持工作方式仅支持工作方式0nA组控制高组控制高4位位PC4PC7nB组控制低组控制低4位位PC0PC3n端口端口A:PA0PA7n常作数据端口,功能最强大常作数据端口,功能最强大n端口端口B:PB0PB7n常作数据端口常作数据端口n端口端口C:PC0PC7n可作数据、状态和控制端口可作数据、状态和控制端口n分两个分两个4位,每位可独立操作位,每位可独立操作n控制最灵活,最难掌握控制最灵活,最难掌握功能:8255A与系统的连接示意图D0D7WRRDA1A0CSDBIOWIORA1A0译码器译码器8255A口口B口口C口口D0D7外设1A15A2系系统统总总线线外设2外设38255A8255A的工作方式的工作方式方式方式00基本输入基本输入/输出方式(输出方式(A A、B B、C C口)口)方式方式11选通工作方式(选通工作方式(A A、B B口)口)方式方式22双向选通传送方式(仅双向选通传送方式(仅A A口)口)某某端端口口工工作作于于哪哪一一种种方方式式,可可通通过过软软件件编编程程来来指指定定。即即向向82558255写入方式控制字来决定其工作方式。写入方式控制字来决定其工作方式。8255A8255A的工作方式的工作方式方式方式0(0(基本输入基本输入/输出方式输出方式)特点:特点:8255A8255A相当于三个独立的相当于三个独立的8 8位数据口。位数据口。各端口既可设置为输入口,也可设置为输出口,但不能各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出。同时实现输入及输出。C C端口即可以是一个端口即可以是一个8 8位的简单接口,也可以分为两个独位的简单接口,也可以分为两个独立的立的4 4位端口。位端口。设置为输出口时有锁存能力,设置为输入口时无锁存能设置为输出口时有锁存能力,设置为输入口时无锁存能力。力。适用于:适用于:无条件输入输出方式。无条件输入输出方式。查询输入输出方式:把查询输入输出方式:把A A、B B口作为口作为8 8位数据的输入或输出位数据的输入或输出口,口,C C口的高口的高/低低4 4位分别定义为位分别定义为A A、B B口的控制位和状态位。口的控制位和状态位。8255A的的工工作作方方式式方方式式0(基基本本输入输入/输出方式输出方式)IN AL,PORT外设将数据送到外设将数据送到8255输入缓冲器中;输入缓冲器中;CPU给出有效的给出有效的8255地址;地址;CPU发发读读命命令令,将将8255A输输入入缓缓冲冲器器中中数数据据读读入入CPU的的AL寄存器中。寄存器中。输入缓冲器译码器数据数据DBDBABAB外设8n8255A的工作方式的工作方式方式方式0(基本输入基本输入/输出方式输出方式)方式方式0输入时序:输入时序:8255A的的工工作作方方式式方方式式0(基基本本输出方式输出方式)OUT PORT,AL CPU给出有效的给出有效的8255地址;地址;CPU发发写写命命令令,将将CPU的的AL寄寄存存器器中中数数据据写写入入8255A输出锁存器中。输出锁存器中。输出锁存器译码器数据数据DBDBABAB外设8n8255A的工作方式的工作方式方式方式0(基本输入基本输入/输出方式输出方式)方式方式0输出时序输出时序:有效8255A8255A的工作方式的工作方式方式方式1(1(选通工作方式选通工作方式)利用一组选通控制信号控制利用一组选通控制信号控制A A端口和端口和B B端口的数据输入输出。端口的数据输入输出。特点:特点:1.1.A A、B B口口作作输输入入或或输输出出口口,C C口口分分为为两两部部分分,其其部部分分位位(6 6位位)固固定定用用作作A A口、口、B B口的选通控制信号。口的选通控制信号。2.2.C C口的剩余位仍可作数据位使用。口的剩余位仍可作数据位使用。3.3.A A口、口、B B口在作为输入和输出时的选通信号不同。口在作为输入和输出时的选通信号不同。方式方式1 1的应用:的应用:主要用于中断控制方式下的输入输出。主要用于中断控制方式下的输入输出。说说明明:C C口口除除部部分分位位用用作作选选通通信信号号外外,其其余余位位(2(2位位)可可工工作作在在方方式式0 0下下,作为输入或输出线,用程序指定其数据传送方向。作为输入或输出线,用程序指定其数据传送方向。(1)端口A方式1作输入:数据选通信号数据选通信号表示外设已经准备好数据表示外设已经准备好数据输入缓冲器满信号输入缓冲器满信号表示表示A口已经接收数据口已经接收数据中断请求信号中断请求信号请求请求CPU接收数据接收数据中断允许触发器PA7PA7PA0PA0PC4PC4PC5PC5PC3PC3INTEAINTEAPC4PC4与门与门IBFAIBFASTBASTBAINTRAINTRARDRDD7D7D0D0若若允允许许PAPA口口输输入入时时,产产生生中中断断请请求求,则则必必须须设设置置INTEA=1INTEA=1,即即置置PCPC4 4=1=1;若若禁禁止止它它产产生生中中断断请请求求,则则置置INTEA=0INTEA=0,即置,即置PCPC4 4=0=0,其程序段为:,其程序段为:MOV DX MOV DX,203H 203H ;8255A8255A命令口命令口 MOV AL MOV AL,000000001001001 1B B ;置;置PCPC4 4=1=1,允许中断请求,允许中断请求 OUT DX OUT DX,AL AL MOV AL MOV AL,000000001001000 0B B ;置;置PCPC4 4=0=0,禁止中断请求,禁止中断请求 OUT DX OUT DX,ALALPC2PC1PC0PB7PB0INTEBIBFBINTRBSTBB数据选通信号数据选通信号表示外设已经准备好数据表示外设已经准备好数据输入缓冲器满信号输入缓冲器满信号表示表示A口已经接收数据口已经接收数据中断请求信号中断请求信号请求请求CPU接收数据接收数据中断允许触发器中断允许触发器端口B方式1作输入:方式1输入联络信号定义nSTB*选通信号,低电平有效选通信号,低电平有效由由外外设设提提供供的的输输入入信信号号,当当其其有有效效时时,将将输输入入设设备备送送来的数据锁存至来的数据锁存至8255A的输入锁存器的输入锁存器nIBF输入缓冲器满信号,高电平有效输入缓冲器满信号,高电平有效8255A输输出出的的联联络络信信号号。当当其其有有效效时时,表表示示数数据据已已锁锁存在输入锁存器存在输入锁存器nINTR中断请求信号,高电平有效中断请求信号,高电平有效8255A输输出出的的信信号号,可可用用于于向向CPU提提出出中中断断请请求求,要要求求CPU读取外设数据读取外设数据nINTE 中断允许信号,高电平有效中断允许信号,高电平有效用用于于控制中断允许或中断屏蔽控制中断允许或中断屏蔽联络信号联络信号 端口端口A 端口端口B STB*对应对应PC4 对应对应PC2 IBF对应对应PC5 对应对应PC1 INTR对应对应PC3 对应对应PC0 INTEPC4置位置位 PC2置位置位 8255A方式1作输入时的各联络信号对应关系 8255A工作在方式1下的输入时序(3)端口A方式1作输出:外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据中断允许触发器PA7PA7PA0PA0PC7PC7PC6PC6PC3PC3INTEAINTEAPC6PC6与门与门ACKAACKAOBFAOBFAINTRAINTRAWRWRD7D7D0D0端口B方式1作输出:PC2PC1PC0PB7PB0INTEBOBFBINTRBACKB外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据中断允许触发器方式1输出联络信号nOBF*输出缓冲器满信号,低有效输出缓冲器满信号,低有效n8255A输输出出给给外外设设的的一一个个控控制制信信号号,当当其其有有效效时时,表表示示CPU已把数据输出给指定的端口,外设可以取走已把数据输出给指定的端口,外设可以取走nACK*响应信号,低有效响应信号,低有效n外外设设的的响响应应信信号号,指指示示8255A的的端端口口数数据据已已由由外外设设接接受受nINTR中断请求信号,高有效中断请求信号,高有效n当当输输出出设设备备已已接接受受数数据据后后,8255A输输出出此此信信号号向向CPU提出中断请求,要求提出中断请求,要求CPU继续提供数据继续提供数据联络信号联络信号 端口端口A 端口端口B OBF*对应对应PC7对应对应PC1 ACK对应对应PC6 对应对应PC2 INTR对应对应PC3 对应对应PC0 INTEPC6置位置位 PC2置位置位 8255A方式1作输出时的各联络信号对应关系 8255A工作在方式1下的输出时序A端口、端口、B端口方式端口方式 1 比较比较A A端口输入端口输入用用C C端口位端口位PC3 PC3、PC4 PC4、PC5 PC5 A A端口输出端口输出用用C C端口位端口位PC3 PC3、PC6 PC6、PC7 PC7 B B端口输入端口输入用用C C端口位端口位PC0 PC0、PC1 PC1、PC2 PC2 B B端口输出端口输出用用C C端口位端口位PC0 PC0、PC1 PC1、PC2 PC2A A端口输入、输出用端口输入、输出用不同的不同的C C端口的位端口的位 B B端口输入、输出用端口输入、输出用相同的相同的C C端口的位端口的位B B端口端口只有方式只有方式 1 1 选通输入选通输入/输出输出 A A端口端口还有方式还有方式 2 2 双向数据传送双向数据传送C端口未被使用的位端口未被使用的位A A端口方式端口方式 0 0、B B端口方式端口方式 0 0 C C端口所有位未被端口所有位未被使使用用,PC0 PC7 PC0 PC7 可作可作I/OI/O用用A A端口方式端口方式 0 0、B B端口方式端口方式 1 1 PC0 PC2PC0 PC2被用被用,PC3 PC7PC3 PC7可作可作I/OI/O用用A A端口方式端口方式 1 1输入、输入、B B端口方式端口方式 0 0 PC3PC3、PC4PC4、PC5PC5被用被用,PC0 PC2PC0 PC2、PC6PC6、PC7 PC7 可作可作I/OI/O用用A A端口方式端口方式 1 1输出、输出、B B端口方式端口方式 0 0 PC3PC3、PC6PC6、PC7 PC7 被用被用,PC0 PC2PC0 PC2、PC4PC4、PC5 PC5 可作可作I/OI/O用用A A端口方式端口方式 1 1输入、输入、B B端口方式端口方式 1 1 PC6PC6、PC7 PC7 可作可作I/OI/O用用A A端口方式端口方式 1 1输出、输出、B B端口方式端口方式 1 1 PC4PC4、PC5 PC5 可作可作I/OI/O用用A A端口方式端口方式2 2、B B端口方式端口方式1 1;C C口被用完,口被用完,都不可作都不可作I/OI/O用用3.3.方式方式2 2(双向选通方式)n方方式式2 2将将方方式式1 1的的选选通通输输入入输输出出功功能能组组合合成成一一个个双双向数据端口,可以发送数据和接收数据向数据端口,可以发送数据和接收数据n只只有有端端口口A A可可以以工工作作于于方方式式2 2,需需要要利利用用端端口口C C的的5 5个信号线,其作用与方式个信号线,其作用与方式1 1相同相同n方式方式2 2的数据输入过程与方式的数据输入过程与方式1 1的输入方式一样的输入方式一样n方方式式2 2的的数数据据输输出出过过程程与与方方式式1 1的的输输出出方方式式有有一一点点不不同同:数数据据输输出出时时8255A8255A不不是是在在OBF*OBF*有有效效时时向向外外设设输输出出数数据据,而而是是在在外外设设提提供供响响应应信信号号ACK*ACK*时时才才送出数据送出数据(1)方式2的信号定义PC6PC7PC3PA7PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用用PC6设置设置INTE1(输出)(输出)用用PC4设置设置INTE2(输入)(输入)输入和输出中断通过输入和输出中断通过或门输出或门输出INTRA信号信号8255A工作在方式2下的工作时序当数据端口作为输入工作时,在当数据端口作为输入工作时,在STBSTB有效时,由外设把输入数据送入端口,有效时,由外设把输入数据送入端口,并发出并发出IBFIBF有效信号。当有效信号。当CPUCPU执行执行ININ指令对该数据口进行读入操作后,由指令对该数据口进行读入操作后,由RDRD的上升沿使的上升沿使IBFIBF复位,为下一次输入数据作好准备。如果该数据端口的中断复位,为下一次输入数据作好准备。如果该数据端口的中断允许允许INTEINTE被置位,则在被置位,则在STBSTB信号回复到高电平时,信号回复到高电平时,8255A8255A通过通过INTRINTR向向CPUCPU发中发中断请求。若断请求。若CPUCPU响应该中断请求,读取该数据端口的输入数据,则响应该中断请求,读取该数据端口的输入数据,则RDRD由下降由下降沿使沿使INTRINTR复位,为下一次数据输入请求中断作好准备。复位,为下一次数据输入请求中断作好准备。当数据端口作为输出口时,在当数据端口作为输出口时,在当数据端口作为输出口时,在当数据端口作为输出口时,在CPUCPUCPUCPU把数据写入端口后,由把数据写入端口后,由把数据写入端口后,由把数据写入端口后,由WRWRWRWR的上升沿使的上升沿使的上升沿使的上升沿使OBFOBFOBFOBF有效并使有效并使有效并使有效并使INTRINTRINTRINTR复位。复位。复位。复位。OBFOBFOBFOBF由由由由8255A8255A8255A8255A输出到输出到输出到输出到外设,并通知外设可以取走端口的输出数据。当外设取走外设,并通知外设可以取走端口的输出数据。当外设取走外设,并通知外设可以取走端口的输出数据。当外设取走外设,并通知外设可以取走端口的输出数据。当外设取走一个数据时,应向一个数据时,应向一个数据时,应向一个数据时,应向8255A8255A8255A8255A发回应答信号发回应答信号发回应答信号发回应答信号ACKACKACKACK。ACKACKACKACK的有效低电平可以使的有效低电平可以使的有效低电平可以使的有效低电平可以使OBFOBFOBFOBF恢复高电平,为下一恢复高电平,为下一恢复高电平,为下一恢复高电平,为下一次输出作好准备。次输出作好准备。次输出作好准备。次输出作好准备。方式方式2应用接口电路图应用接口电路图返回8255A8255A的初始化的初始化可可以以利利用用软软件件编编程程确确定定82558255的的3 3个个端端口口工工作作于于何何种种方方式下。式下。8255A8255A的的各各种种工工作作方方式式由由CPUCPU对对8255A8255A写写入入控控制制命命令令字字来来设定,这个过程称为设定,这个过程称为“初始化初始化”。8255A8255A有有2 2种控制命令字:种控制命令字:方式选择控制字方式选择控制字确定确定3 3个端口的工作方式;个端口的工作方式;C C口口置置位位/复复位位控控制制字字确确定定C C口口某某一一位位的的初初始始状状态,或用于设置态,或用于设置INTEINTE位位(方式方式1,2)1,2)。8255A的初始化方式选择控制字D7 D6 D5 D4 D3 D2 D1 D0C口低位选择,口低位选择,1入入0出出B口口I/O选择,选择,1入入0出出B口方式选择,口方式选择,0=方式方式0 1=方式方式1B组组C口高位选择,口高位选择,1入入0出出A口口I/O选择,选择,1入入0出出A口方式选择口方式选择00=方式方式0 01=方式方式1 1X=方式方式2D7=1,方式控制字标志,方式控制字标志A组组8255A的初始化C口置位/复位控制字D7 D6 D5 D4 D3 D2 D1 D0置位置位/复位复位选择选择1=置位,置位,0=复位复位D7=0为置为置位位/复位控制复位控制字标志字标志D3 D2 D1 位选择位选择 0 0 0 PC0 0 0 1 PC1 0 1 0 PC2 0 1 1 PC3 1 0 0 PC4 1 0 1 PC5 1 1 0 PC6 1 1 1 PC7无效无效8255A8255A的初始化的初始化方式选择控制字方式选择控制字 在在方方式式 1 1、2 2下下,C C口口作作为为A A口口、B B口口联联络络信信号号的的引引脚脚,其其动动作作关关系系在在芯芯片片设设计计和和制制造造时时已已固固定定,不不由由用用户户自自己己安安排排,也也不不能能编编程程改改变变。即即C C口口作作为为联联络络信信号号的的引引脚脚:不不受受方方式式控控制制字字的的控制控制。该出则出,该入则入。该出则出,该入则入。8255A的初始化的初始化MOV DX,387H ;设控制口地址;设控制口地址MOV AL,82H ;1 00 0 0 0 1 0OUT DX,AL ;输出控制字;输出控制字XOR AL,AL ;A口输出全口输出全0MOV DX,384H;设;设A口地址口地址OUT DX,AL ;输出到;输出到A口口8255A8255A应用举例应用举例 图中用图中用8255A8255A的的PAPA口作为输出打印数据口作为输出打印数据口,工作于方式口,工作于方式0 0,PCPC口高口高4 4位工作于输位工作于输出方式,出方式,PC6PC6产生产生STB#STB#信号;信号;PCPC口低口低4 4位位工作于输入方式,工作于输入方式,PC2PC2接收打印机的接收打印机的BUSYBUSY信号。程序流程如右示信号。程序流程如右示。CPU PA07PC6PC2地 地BUSYSTBDATA07111298255A打印机插座结 束8255A 初始化BUSY=0?送 数送 STB#开始YN例例:利利用用8255A作作为为打打印印机机的的连连接接接接口口,要要求求CPU通通过过接接口口采采用用查查询询方方式式,把把存存放放在在从从BUF单单元元开开始始的的内内存存缓缓冲冲区区中中的的256个个字字符(符(ASCII码)输出给打印机去打印。码)输出给打印机去打印。假假定定8255A的的 端端口口地地址址范范围围为为0FBD0H0FBD3H,则则8255A与与打打印印机机接接口口的的初初始始化化程序段如下:程序段如下:8255A与打印机接口的初始化程序段与打印机接口的初始化程序段 INIT:MOV DX,0FBD3H ;8255A的的控控制制寄寄存存器器端端口口地地址址 MOV AL,10000001B ;方式选择控制字;方式选择控制字 (A组方式组方式0:A口输出,口输出,PC7PC4输出;输出;B组方式组方式0:B口输出,口输出,PC3PC0输入)输入)OUT DX,AL ;控制字送控制口寄存器;控制字送控制口寄存器 MOV AL,00001101B ;C口口置置位位/复复位位控控制制字字,使使PC6置置位位,即即1 OUT DX,AL ;C口置位口置位/复位控制字送控制寄存器复位控制字送控制寄存器 对对对对8255A8255A初始化编程,并使初始化编程,并使初始化编程,并使初始化编程,并使PC6PC6初始化初始化初始化初始化状态置状态置状态置状态置1 1,为发选通脉冲(负脉冲)准,为发选通脉冲(负脉冲)准,为发选通脉冲(负脉冲)准,为发选通脉冲(负脉冲)准备备备备打印一组字符的程序段如下:打印一组字符的程序段如下:MOV SI,OFFSET BUF;取字符串的内存首地址;取字符串的内存首地址MOV CX,0FFH ;将打印字符长度作为循环次数;将打印字符长度作为循环次数PL:MOV DX,0FBD2H ;C口地址口地址IN AL,DX ;从;从C口查询打印机的状态信息口查询打印机的状态信息BUSY0?(即(即PC20?)AND AL,00000100B JNZ PL ;若若BUSY1,则则循循环环等等待待;BUSY0,则,则向向A口送出数据口送出数据8255A与打印机接口的初始化程序段(续)与打印机接口的初始化程序段(续)MOV AL,SI;否则,从内存中取一个字符准备输出;否则,从内存中取一个字符准备输出MOV DX,0FBD0H;A口地址送口地址送DXOUT DX,AL ;将内存中的一个字符输出到;将内存中的一个字符输出到A口口MOV DX,0FBD3H;控制口地址;控制口地址MOV AL,00001100H;设定设定C口按位操作控制字,置为低(口按位操作控制字,置为低(PC6 0)NOP;使负脉冲宽度延时;使负脉冲宽度延时NOPMOV AL,00001101B;置置为为高高电电平平(PC6 1),在在PC6上上生生成成1个负脉冲个负脉冲OUT DX,ALINC SI ;指向内存中下一个字符;指向内存中下一个字符DEC CX ;字符数减;字符数减1JNZ PL ;若输出字符未完,则继续;若输出字符未完,则继续 HLT ;若输出字符已完,则暂停;若输出字符已完,则暂停返回返回返回返回8255A8255A方式方式1 1 从从图图可可见见,当当CPUCPU通通过过接接口口要要求求打打印印机机打打印印数数据据时时,先先要要查查看看BUSYBUSY信信号号,BUSYBUSY0 0时时,才才能能向向打打印印机机输输出出数数据据,在在把把数数据据送送上上DATADATA线线后后,先先发发STB#=0STB#=0信信号号通通知知打打印印机机,打打印印机机接接到到STB#=0STB#=0后后,发发出出BUSYBUSY1 1,接接收收效效据据,当当数数据据接接收收好好并并存存入入内内部部打打印印缓缓冲冲器器后后,送送出出ACK#=0ACK#=0信信号号,表表示示打打印印机机已已准准备备好好接接收收新新数数据据,并并复位复位BUSY=0BUSY=0。DATA0DATA7STBBUSYACK例例2设设8255A为为工工作作方方式式1,A口口为为输输出出。当当外外设设向向8255A发发回回的的应应答答信信号号变变为为高高电电平平时时,若若允允许许8255A向向CPU发发中中断断请请求求信信号号,则则必必须须设设置置中中断断允允许许信信号号INTEA1,即即置置PC61;若若禁禁止止它它产产生生中中断断请请求求,则则INTEA0,即即置置PC60。假假定定端口的地址范围为端口的地址范围为300H303H,其程序段为:,其程序段为:MOV DX,303H;置;置8255A控制口控制口MOV AL,00001101B ;置置C口口按按位位控控制制字字,使使PC61,允允许发中断请求许发中断请求 OUT DX,ALMOV AL,00001100B ;置;置PC60,禁止发中断请求,禁止发中断请求OUT DS,AL 8255A打印机接口打印机接口8255口线的使用口线的使用A A为数据通道,为数据通道,方式方式1 1,输出,输出PCPC0 0产生打印机的选通脉冲产生打印机的选通脉冲PCPC7 7未用;未用;PCPC6 6为为/ACK/ACK输入输入PCPC3 3自动作自动作INTRINTR,接中断控制,接中断控制器器8259A8259A的的IR3 IR3,中断类型号中断类型号0BH0BH,中断向量在,中断向量在0002CH0002FH0002CH0002FH单元单元 通道通道C C其他位及通道其他位及通道B B未用未用PA7PA7PA0PA0PC7PC7PC6PC6PC3PC3INTEAINTEAPC6PC6与门与门ACKAACKAOBFAOBFAINTRAINTRAWRWRD7D7D0D08255初始化初始化MOV DX,303H;MOV AL,0A0H;初始化,1010XXX0OUT DX,AL ;A口方式1,出;PC0出MOV AL,1;PC0=1,选通无效OUT DX,AL设置中断向量设置中断向量设置中断服务入口设置中断服务入口0100H:2000HPUSH DS;保护原数据段;保护原数据段XOR AX,AXMOV DS,AX;设;设向量表段地址向量表段地址为为0000HMOV AX,2000HMOV WORD PTR 002CH,AX;中断服务程序中断服务程序偏移地址偏移地址MOV AX,0100HMOV WORD PTR 002EH,AX;中断服务程序段地址;中断服务程序段地址POP DS;恢复原数据段;恢复原数据段8255中断设置中断设置MOV AL,0DH;0000 1101;PC6 置1OUT 0C6H,AL;允许8255A中断STI;CPU开中断;主程序中断服务程序中断服务程序中断服务程序发选通信号,将数据送打印机中断服务程序发选通信号,将数据送打印机打打印印机机接接收收并并打打印印字字符符后后发发出出应应答答信信号号,清清除除8255A8255A的的数数据据缓冲区满信号缓冲区满信号RINTRINT:MOV ALMOV AL,DIDI;输出字符送;输出字符送A A通道通道MOV DX,300HMOV DX,300HOUTOUT DX DX,ALALMOVMOV AL AL,0 0;PC PC0 0产生低电平脉冲选通信号产生低电平脉冲选通信号MOV,DX,303HMOV,DX,303HOUTOUT DX DX,ALAL;0 0000 000 0000000 0,PCPC0 0置置0 0INCINCALALOUTOUT0C6H0C6H,ALAL;0 0000 000 0000001 1,PCPC0 0置置1 1 ;后续处理;后续处理IRET IRET ;中断返回;中断返回 当外设向当外设向当外设向当外设向8255A8255A发回发回发回发回的应答信号的应答信号的应答信号的应答信号变为高电平变为高电平变为高电平变为高电平时,若允许时,若允许时,若允许时,若允许8255A8255A向向向向CPUCPU发中断发中断发中断发中断请求信号,请求信号,请求信号,请求信号,即中断允许即中断允许即中断允许即中断允许信号信号信号信号INTEINTEA A1 1,从从从从PC3PC3引引引引脚发出中断脚发出中断脚发出中断脚发出中断申请要求申请要求申请要求申请要求CPUCPU发送新发送新发送新发送新的数据的数据的数据的数据例例3 利用利用OBF#作为触发打印机选通信号方式作为触发打印机选通信号方式1输出输出若若将将8255A8255A的的端端口口A A与与打打印印机机相相连连,使使A A口口工工作作于于方方式式1 1下下输输出出,并并利利用用中中断断方方式式向向打打印印机机输输出出一一组组(字字符符串串长长度度为为256256字字节节)字字符符,打打印印机机接接口口连连接接电电路路如如图图所所示示。试编写采用中断方式传送一组打印字符的程序段。试编写采用中断方式传送一组打印字符的程序段。假假定定8255A8255A的的端端口口地地址址范范围围为为300H300H303H303H,8259A8259A的的端端口口地地址址为为020H020H与与021H021H。初初始始化化时时使使A A口口为为方方式式1 1、输输出出,B B口口可可任任意意设设定定为为方方式式0 0、输输出出,C C口口除除联联络络线线以以外外的的5 5位位 线线 也也 均均 设设 定定 为为 输输