文档详情

微型计算机系统原理(第五版)周明德 第10章.ppt

发布:2017-03-09约8.91千字共66页下载文档
文本预览下载声明
MOV BX,00H MOV CX,3FFH;置字节数 L1: MOV DX,302H;8255A PC口 IN AL,DX;查询甲机的OBF #是否等 于0(PC4=0?) AND AL,10H JNZ L1;无数据,等待 MOV DX,300H;8255A数据口地址 IN AL,DX;输入数据 MOV ES:[BX],AL;存入内存 MOV DX,303H OUT AL;PC0置“0” OUT DX,AL;产生ACK #信号 NOP NOP MOV AL;PC0置“1” OUT DX,AL;ACK变高 INC BX DEC CX JNZ L1;未接收完,循环 MOV AX,4C00H INT 21H;接收完,返回DOS 作业:p275,9.11; p294,10.15 2. 方式0的输出时序 可编程并行接口芯片8255A方式0的基本输出时序,如图10-9所示。 要由写指令把CPU的数据输出给外设,对于8255A,要求写脉冲宽度至少为400ns。且地址信号必须在写信号前tAW时间有效。并保持tWA时间。另外要写出的数据必须在写信号结束前tDW时间有效(出现在数据总线上),且保持tWD时间。这样,在写信号后最多tWB时间,写出的数据在输出端口出现。 经分析,I/O写周期也要求8088插入一个等待状态。 10.4 方式1的功能 这是一种选通的I/O方式。在这种方式时,端口A或端口B仍作为数据的输入/输出口,但同时规定端口C的某些位作为控制或状态信息。 10.4.1 方式1的主要功能 8255A的端口工作在方式1时,具有以下主要功能: (1) 用作一个或两个选通端口; (2) 每一个端口包含: 8位的数据端口,三条控制线(是固定指定的,不能用程序改变),提供中断逻辑; (3) 任何一个端口都可作为输入或输出; (4) 若只有一个端口工作于方式1,余下的13位,可以工作在方式0(由控制字决定); (5) 若两个端口都工作于方式1,端口C还留下两位,这两位可以由程序指定作为输入或输出,也具有置位/复位功能。 10.4.2 方式1输入 当任一端口工作于方式1输入时,如图10-9所示。其各个控制信号的意义为: STB#(Strobe)——选通输入,低电平有效。这是由外设供给的输入信号,当其有效时,把输入装置来的数据送入输入锁存器。 IBF(Input Buffer Full)——输入缓冲器满,高电平有效。这是一个8255A输出至外设的联络信号。当其有效时,表示数据已输入至输入锁存器,它由STB#信号置位(高电平),而RD#信号的上升沿使其复位。 INTR(Interrupt Request)——中断请求信号,高电平有效。这是8255A的一个输出信号,可用于作为向CPU的中断请求信号,以要求CPU服务。它是当STB#为高电平、IBF为高电平和INTE(中断允许)为高电平时被置为高,而由RD#信号的下降沿清除。 INTEA(Interrupt Enable A)——端口A中断允许信号,可由用户通过对PC4的按位置位/复位来控制(PC4=1,允许中断)。 而INTEB由PC2的置位/复位控制。 方式1的输入时序,如图10-10所示。 当外设的数据已经输至8255A的端口数据线上,用选通信号把数据锁入8255A的输入锁存器,选通信号的宽度至少为500ns。选通信号经过时间tSIB后,IBF信号有效,输送给外设,阻止外设输入新的数据,也可供CPU查询。在选通信号结束后,经过tSIT向CPU发出INTR信号(中断是允许的话)。CPU响应中断,发出RD#信号,把数据读入CPU。在RD#信号有效后经过tRIT就清除中断请求,当RD#信号结束后,数据已读至CPU,使IBF变低。表示输入缓冲器已空,通知外设可以输入新的数据。 10.4.3 方式1输出 8255A的端口工作在方式1输出时,如图10-11所示。 1. 主要的控制信号 OBF#(Output Buffer Full)——输出缓冲器满信号,低电平有效。这是8255A输出给外设的一个控制信号。当其有效时,表示CPU已经把数据输出给指定的端口,外设可以把数据输出。它由输出命令WR#的上升沿设置为有效,由ACK#的有效信号使其恢复为高。 ACK#(Acknowledge)——低电平有效,这是一个外设的响应信号,指示CPU输出给8255A的数据已经由外设接收。 INTR——中断请求信号,高电平有效。当输出装置已经接收了CP
显示全部
相似文档