第7章并行接口.ppt
《第7章并行接口.ppt》由会员分享,可在线阅读,更多相关《第7章并行接口.ppt(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、7.4 8255A的1方式及其应用一、特点 1方式是一种选通输入/输出方式或叫应答方式,因此,需设置专用的联络信号线或应答信号线,以便对I/O设备和CPU两侧 进行联络。这种方式通常用于查询(条件)传送或中断传送。数据的输入输出都有锁存功能。PA和PB为数据口,而PC口的大部分引脚分配作专用(固定)的联络信号的C口引脚,用户不能再指定作其他作用。各联络信号线之间有固定的时序关系,传送数据时,要严格按照时序进行。输入/输出操作过程中,产生固定的状态字,这些状态信息可作为查询或中断请求之用。状态字从PC口读取。单向传送。一次初始化只能设置在一个方向上传送,不能同时作两个方向的传送。二、1方式下联络
2、信号线的定义及其时序1.1方式下输入的联络信号线定义及时序(1)联络信号的定义 因为输入是从I/O设备向8255A送数据进来,所以I/O设备应先把数据准备好,并送到8255A,然后CPU再从8255A读取数据。这个传递过程中需要使用一些联络信号线。所以当A口和B口为输入时,各指定了C口的3根线作为8255A与外设及CPU之间应答信号,如图7.8所示。图7.8 1方式输入时联络信号线定义STB-:外设给8255A的“输入选通”信号,低电平有效。IBF:8255A给外设的回答信号“输入缓冲器满”,高电平有效。INTR:8255A给CPU的“中断请求”信号,高电平有效。&PC4PC5PC3INTEA
3、PA70PC6,7RDI/O2INTRAIBFASTBA81方式输入(端口A)&PC2PC1CP0INTEBPB70RD2INTRBIBFBSTBB81方式输入(端口B)数据输入时,外设处于主动地位,当外设准备好数据并放到数据线上后,首先发STB信号,由它把数据输入到8255A。在STB的下降沿约300ns,数据已锁存到8255A的缓冲器后,引起IBF变高,表示8255A的“输入缓冲器满”,禁止输入新数据。(2)1方式输入的工作时序:在STB的上升沿约300ns后,在中断允许(INTE=1)的情况下IBF的高电平产生中断请求,使INTR上升变高,通知CPU,接口中已有数据,请求CPU读取。CP
4、U得知INTR信号有效之后,执行读操作时,RD信号的下降沿使INTR复位,撤消中断请求,为下一次中断请求作好准备。从上述分析,可知在1方式下,数据从I/O设备发出,通过8255A,送到CPU的整个过程有如下4步:CPU8255AI/O设备 STB INTR IBF RD1方式输入的工作过程:2.1方式下输出的联络信号线定义及时序(1)联络信号的定义WR&PC7PC6PC3INTEAPA70PC4,5I/O2INTRAACKAOBFA8&PC1PC2PC0INTEBPA70WRINTRBACKBOBFB81方式输出(端口A)1方式输出(端口B)图7.10 1方式输出时联络信号线定义(2)1方式输
5、出的工作时序1 方式输出的工作时序,如图7.11所示。tWOBtWITtAOBtAKtAITtWBWRINTROBFACK输出图7.11 1方式输出时工作时序 其信号交接的过程如下:数据输出时,CPU应先准备好数据,并把数据写到8255A输出数据寄存器。当CPU向8255A写完一个数据后,WR的上升沿使OBF有效,表示8255A的输出缓冲器已满,通知外设读取数据。并且WR使中断请求INTR变低,封锁中断请求。外设得到OBF有效的通知后,开始读数。当外设读取数据后,用ACK回答8255A,表示数据已收到。ACK的下降沿将OBF置高,使OBF无效,表示输出缓冲器变空,为下一次输出作准备,在中断允许
6、(INTE=1)的情况下ACK上升沿使INTR变高,产生中断请求。CPU响应中断后,在中断服务程序中,执行OUT指令,向8255A写下一个数据。从上述分析,在1方式下,数据从CPU,通过8255A送到I/O设备有4步:CPU8255AI/O设备 WR ACK OBF INTR三、1方式的状态字1.状态字的作用 在1方式下8255A有固定的状态字。状态字为查询方式提供了状态标志位,如IBF和OBF,同时,由于8255A不能直接提供中断矢量,因此当8255A采用中断方式时,CPU也要通过读状态字来确定中断源,实现查询中断。2.状态字的格式状态字的格式如图7.12所示。D7D6D5D4D3D2D1D
7、0A组状态B组状态I/OI/OIBFA INTEA INTRAPC7PC6PC5PC4PC3OBFA INTEAI/O I/O INTRAPC7PC6PC5PC4PC3 INTEB IBFB INTRBPC2PC1PC0 输入时 输出时 INTEB OBFB INTRBPC2PC1PC0图7.12 1方式的状态字状态字有8位,分A和B两组,A组状态位占高5位,B组状位占低3位,并且输入和输出时的状态字不相同。3.使用状态字时要注意的几个问题状态字是在8255A输入/输出操作过程中由内部产生,从C口读取的,因此从C口读出的状态字是独立于C口的外部引脚的,或者说与C口的外部引脚 无关。状态字中供C
8、PU查询的状态位有:输入时-IBF位和INTR位;输出-OBF位和INTR位。状态字中的INTE位,是控制标志位,控制8255A能否提出中断请求,因此它不是I/O操作过程中自动产生的状态,而是由程序通过按位置位/复位命令来设置或清除的。例1:若允许PA口输入时,产生中断请求,则必须设置INTEA=1,即置PC4=1;若禁止它产生中断请求,则置INTEA=0,即置PC4=0,其程序段为:MOV DX,63H ;8255A命令口 MOV AL,00001001B ;置PC4=1,允许中断请求 OUT DX,AL MOV AL,00001000B ;置PC4=0,禁止中断请求 OUT DX,AL五、
9、1方式应用举例:两种方式并行传送接口设计1.要求 在甲乙两台微机之间并行传送1K字节数据。甲机发送,乙机接收。甲机一侧的8255A采用1方式工作,乙机一侧的8255A采用0方式工作。两机的CPU与接口之间都采用查询方式交换数据。2.分析 双机均采用可编程并行接口芯片8255A构成接口电路,只是8255A的工作方式不同。此时,双方的8255A把对方视为I/O设备。3.设计(1)硬件连接:根据上述要求,接口电路的连接如图7.13所示。(2)软件编程:接口驱动程序包含发送与接收两个程序。其程序流程图 如图7.14所示。0方式1方式8255APA07PC7PC3PC46PC02PB07PA07PC7P
10、C6PC46PC02PB07未用8255A甲(发送)CPU乙(接收)CPUACKOBF图7.13 两种方式的并行传送接口电路框图甲机发送程序段:MOV DX,63H ;8255A命令口MOV AL,10100000B ;初始化工作方式字OUT DX,AL MOV AL,0DH ;置发送中断允许INTEA=1OUT DX,AL ;PC6=1MOV SI,OFFSET BUFS ;设置发送数据区的指针MOV CX,3FFH ;发送字节数MOV DX,60H ;向A口写第一个数,产生第一 ;个 OBF-信号MOV AL,SI ;送给乙方,以便获取乙方的ACK-信号OUT DX,AL INC SI ;
11、内存地址加1 DEC CX ;传送字节数减1L:MOV DX,62H ;8255A状态口 IN AL,DX ;查发送断请求INTRA=1?AND AL,08H ;PC3=1?JZ L ;若无中断请求,则等待;若有中断请求,则向A口写数 MOV DX,60H ;8255APA口地址 MOV AL,SI ;从内存取数 OUT DX,AL ;通过A口向乙机发送第二个数据 INC SI ;内存地址加1 DEC CX ;字节数减1 JNZ L ;字节未完,继续 MOV AH,4C00H ;已完,退出 INT 21H ;返回 BUFS DB 1024个数据乙机接收程序段:MOV DX,303H ;8255
12、A命令口MOV AL,10100000B ;初始化工作方式字OUT DX,AL MOV AL,00000111B ;置ACK=1(PC3=1)OUT DX,AL ;MOV DI,OFFSET BUFS ;设置接收数据区的指针MOV CX,3FFH ;接受字节数L1:MOV DX,302H ;8255A PC口 IN AL,DX;查甲机的OBF=0?AND AL,80H ;查甲机是否有数据发来 JNZ LI ;若无数据发来,则等待,否则从A口读数MOV DX,300H ;8255APA口地址IN AL,DX ;从A口读数 MOV DI,AL ;向内存存数 OUT DX,303H ;产生ACK信号
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 并行 接口
限制150内