您好,欢迎访问三七文档
2020/3/31第11章并行I/O接口2020/3/32主要内容8255A的内部结构及外部引脚8255A的控制字及初始化编程8255A的工作方式8255A的应用2020/3/33把一个字符的各数位用几条线同时进行传输,传输速度快,信息率高。并行通信并行接口实现并行通信的接口就是并行接口。具有一个或多个I/O端口每个端口具有与CPU及I/O设备进行联络控制的功能可用查询或中断方式交换数据2020/3/348255A是Intel86系列微处理机的配套并行接口芯片,它可为86系列CPU与外部设备之间提供并行输入/输出的通道。可编程可以通过软件来设置芯片的工作方式,所以,用8255A连接外部设备时,通常不用再附加外部电路,给使用者带来很大方便。11.1可编程并行I/O接口芯片8255A2020/3/358255A芯片内部结构及其功能数据总线缓冲器内部控制线内部数据线D0~D7A组控制A组端口AA组端口C上部B组控制B组端口BB组端口C下部读写控制逻辑PC0~PC3PB0~PB7PC4~PC7PA0~PA7RDWRA0A1CSRESET2020/3/362020/3/378255A芯片内部包含3个8位端口1.并行输入/输出端口A,B,C2.A组和B组控制部件A组和B组各有一个控制单元,可接收来自读/写控制部件的命令和CPU通过数据总线(D7~D0)送来的控制字,并根据它们来定义各个端口的操作方式。端口A与端口C的高4位(PC7~PC4)构成A组,由A组控制部件实现控制功能端口B与端口C的低4位(PC3~PC0)构成B组,由B组控制部件实现控制功能2020/3/383.数据总线缓冲存储器这是一个三态双向8位数据缓冲存储器,它是8255A与8086CPU之间的数据接口。CPU执行输出指令时,可将控制字或数据通过数据总线缓冲存储器传送给8255A。CPU执行输入指令时,8255A可将状态信息或数据通过总线缓冲存储器向CPU输入。2020/3/394.读/写控制部件这是8255A内部完成读/写控制功能的部件,它能接收CPU的控制命令,并根据它们向片内各功能部件发出操作命令。可接收的控制命令如下:(1)CS——片选信号。由CPU输入,通常由端口的高位地址码(A15~A2)译码得到,CS有效,表示该8255A被选中。(2)RD,WR——读、写控制信号。由CPU输入,RD有效,表示CPU读8255A,应由8255A向CPU传送数据或状态信息。WR有效,表示CPU写8255A,应由CPU将控制字或数据写入8255A。2020/3/310(3)RESET——复位信号。由CPU输入。RESET有效时,清除8255A中所有控制字寄存器内容,并将各端口置成输入方式。(4)A1和A0——端口选择信号。当A1A0=00,选择端口A;当A1A0=01,选择端口B;当A1A0=10,选择端口C;当A1A0=11,选择控制字寄存器。2020/3/311与处理器接口CS*A1A0I/O地址读操作RD*写操作WR*00000101001160H61H62H63H读端口A读端口B读端口C非法写端口A写端口B写端口C写控制字2020/3/3128255A芯片的控制字及其工作方式8255A中各端口可有3种基本工作方式:方式0:基本输入输出方式适用于无条件传送和查询方式的接口电路方式1:选通输入输出方式适用于查询和中断方式的接口电路方式2:双向选通传送方式适用于与双向传送数据的外设适用于查询和中断方式的接口电路2020/3/313端口A可处于3种工作方式(方式0,方式1和方式2)端口B只可处于两种方式(方式0和方式1)端口C常常被分成高4位和低4位两部分,可分别用来传送数据或控制信息.用户可用软件来分别定义3个端口的工作方式,可使用的控制字有定义工作方式控制字和置位/复位控制字。2020/3/314控制字(1)定义工作方式控制字2020/3/315(2)置位/复位控制字只对端口C有效,其使用格式如下图所示2020/3/316工作方式0这是8255A中各端口的基本输入/输出方式。它只完成简单的并行输入/输出操作,CPU可从指定端口输入信息,也可向指定端口输出信息。2020/3/317方式1输入引脚:A端口数据选通信号表示外设已经准备好数据输入缓冲器满信号表示A口已经接收数据中断请求信号请求CPU接收数据PC4PC5PC3PA7~PA0INTEAIBFAINTRASTBA中断允许触发器PC6、72I/O2020/3/318方式1输入引脚:B端口PC2PC1PC0PB7~PB0INTEBIBFBINTRBSTBB数据选通信号表示外设已经准备好数据输入缓冲器满信号表示B口已经接收数据中断请求信号请求CPU接收数据中断允许触发器方式1需借用端口C用做联络信号同时还具有中断请求和屏蔽功能2020/3/319方式1输入联络信号STB*——选通信号,低电平有效由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器IBF——输入缓冲器满信号,高电平有效8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器INTR——中断请求信号,高电平有效8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据2020/3/3208255A工作在方式1(输入)当A口已接受外设数据后,有两种方式通知CPU取数:条件查询方式,通过查询缓冲器是否“满”,即IBFA是否为高电平来取数。中断方式。2020/3/321在条件传送中,一般要有所谓的“握手”信号来协调数据的传送。“握手”信号至少要有两位信号线:其中一位是由接口电路发给外设,功能是向外设提供接口电路的信息。另一位是由外设发给接口,功能是向接口提供外设的信息。显然在8255A的选通输入方式中STBA和IBFA是一对“握手”信号。2020/3/322例2:8255A的A口和B口分别工作在方式1和方式0,A口为输入端口,接有8个开关。B口为输出端,接有8个发光二极管,连接电路如图所示。现要求用方式1把改变后的键信息输入到CPU并通过B口显示。8255AKK7K0PA0PA7……PC4PB0PB7PC5LED0LED7LED……STBAIBFA2020/3/3231、用户通过改变K0~K7,产生新的键信息;2、按下开关K,产生选通信号,数据进入A口的缓冲器,此步骤实际上告诉CPU,8255的A口来了一个新数据;3、IBFA有效使LED点亮。这里含有两个信息,一个是8255A通知CPU其A口来了一个新数据,另一个是告诉用户CPU尚未取走这个这个数据,用户不得再送其他数据;4、CPU取走这个数据,LED熄灭;5、转步骤1。这个系统的工作过程如下:2020/3/324设8255的I/O地址分布为88H—8EH,相应的程序段如下:moval,10111001b;设置A口为方式1的输入,loop1:inal,8ch;取C口的状态线testal,00100000b;测试IBFA信息jzloop1;等待用户设定新的键值movcx,0ffffh;延时,LED灯亮(相对于步骤3)loop2:looploop2inal,80h;取数。LED灯灭(相对于步骤4)out82h,al;更新B口的显示jmploop1;重复2020/3/325方式1中断控制8255A的中断由中断允许触发器INTE控制置位允许中断,复位禁止中断对INTE的操作通过写入端口C的对应位实现,INTE触发器对应端口C的位是作应答联络信号的输入信号的那一位,只要对那一位置位/复位就可以控制INTE触发器选通输入方式下端口A的INTEA对应PC4端口B的INTEB对应PC22020/3/326方式1输出引脚:A端口外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据PC6PC7PC3PA7~PA0INTEAOBFAINTRAACKA中断允许触发器2020/3/327方式1输出引脚:B端口PC2PC1PC0PB7~PB0INTEBOBFBINTRBACKB外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据中断允许触发器2020/3/328方式1输出联络信号OBF*——输出缓冲器满信号,低有效8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走ACK*——响应信号,低有效外设的响应信号,指示8255A的端口数据已由外设接受INTR——中断请求信号,高有效当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据端口A的INTEA对应PC6端口B的INTEB对应PC22020/3/329方式1的应用端口A和端口B均工作于工作方式1A、B都完成输入操作功能A、B都完成输出操作功能A、B其中一个输入,另一个输出2020/3/330端口A、B都为方式1输入操作工作方式控制字可设置如下2020/3/331端口状态如下图所示2020/3/332当端口A和端口B同时被定义为工作方式1完成输入操作时,端口C的PC5~PC0被用作控制信号,只有PC7和PC6位可完成数据输入或输出操作。因此这实际上可构成两种组合状态:端口A,B输入,PC7,PC6输入端口A,B输入,PC7,PC6输出。当A、B同时完成输出或其中一个输入、一个输出情况类似,只是使用信号和控制字不同。2020/3/333方式2-双向方式8255A中只允许端口A处于工作方式2方式2将方式1的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据,可用来在两台处理机之间实现双向并行通信。当端口A工作于方式2时,允许端口B工作方式0或方式1完成输入/输出功能。方式2的数据输入过程与方式1的输入方式一样方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF*有效时向外设输出数据,而是在外设提供响应信号ACK*时才送出数据2020/3/334方式2双向引脚PC6PC7PC3PA7~PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6设置INTE1(输出)用PC4设置INTE2(输入)输入和输出中断通过或门输出INTRA信号端口A工作于方式2所需要的5个控制信号分别由端口C的PC7~PC3来提供。如果端口B工作于方式0,那么PC2~PC0可用作数据输入/输出;如果端口B工作于方式1,那么PC2~PC0用来作端口B的控制信号2020/3/335当端口A工作于方式2时,允许端口B工作方式0或方式1完成输入/输出功能,其方式控制字格式如下图所示。2020/3/3368255A并行接口应用举例可编程并行接口8255A可为86系列微处理机提供3个独立的并行输入/输出端口。利用输出端口与数模转换器相连,可控制输出模拟量的大小。利用模数转换器又可将它们变换为数字量,通过并行输入端口送回微机系统中。一个由8086CPU和8255A为主体构成的闭环调节系统的结构流程图如图8.20所示。由图可看出,8255A中端口A工作在方式0,完成输出功能,用来向数模转换器输出8位数字信息。端口B工作在方式1,完成输入功能,用来接收由模数转换器输入的8位数字信息。端口C作控制用,PC7用作模数转换器ADC0809的启动信号,PC2用作输入的STBB信号,PC0用作中断请求信号INTRB,通过中断控制器8259A可向CPU发中断请求,这些都要由初始化程序来定义。2020/3/3372020/3/338例1:8255A的A口和B口工作在方式0,A口为输入端口,接有四个开关。B口为输出端,接有一个七段发光二极管,连接电路如图所示。试编一程序要求七段发光二班管显示开关所拨通的数字。2020/3/339agDPfedbc电路LED数码管段码表2020/3/
本文标题:11_并行IO接口
链接地址:https://www.777doc.com/doc-4126730 .html