微型计算机原理及应用课件.ppt

上传人:小飞机 文档编号:5975646 上传时间:2023-09-10 格式:PPT 页数:81 大小:1.11MB
返回 下载 相关 举报
微型计算机原理及应用课件.ppt_第1页
第1页 / 共81页
微型计算机原理及应用课件.ppt_第2页
第2页 / 共81页
微型计算机原理及应用课件.ppt_第3页
第3页 / 共81页
微型计算机原理及应用课件.ppt_第4页
第4页 / 共81页
微型计算机原理及应用课件.ppt_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《微型计算机原理及应用课件.ppt》由会员分享,可在线阅读,更多相关《微型计算机原理及应用课件.ppt(81页珍藏版)》请在三一办公上搜索。

1、第7章 可编程并行接口8255A,并行接口的概述7.4.2 可编程并行接口8255A7.4.3 8255A的0方式及其应用7.4.4 8255A的1方式及其应用7.4.5 8255A的2方式及其应用,CPU与外设之间的信息传送都是通过接口电路来进行的。计算机与外部设备、计算机与计算机之间交换信息称之为计算机通信,计算机通信可分为两大类:并行通信:8位或16位或32位数据同时传输,速度快,信息 率高,成本高串行通信:一位一位数据传送(在一条线上顺序传送),成本低 实现并行通信的接口就是并行接口。,并行接口的概述,一、串行与并行通信,并行接口最基本的特点是在多根据数据线上以数据字节(字)为单位与I

2、/O设备或被控对象传送信息。如:打印机接口,A/D、D/A转换器接口,IEEE-488接口,开关量接口,控制设备接口等。在并行接口中,除了少数据场合之外,一般都要求在接口与外设之间设置并行数据线的同时,至少还要设置两根握手(联线)信号线,以便进行互锁异步握手方式(即查询方式)的通信。在并行接口中,8位或16位是一起行动的,因此,当采用并行接口与外设交换数据时,即使是只用到其中的一位,也是一次输入/输出8位或16位。并行传送信息,不要求固定的格式,这与串行传送的数据格式的要求不同。,二、并行接口的特点,8255A8255A,概述 Intel8255A是一种通用的可编程序并行I/O接口芯片,又称“

3、可编程外设接口芯片”,是为Intel8080/8085系列微处理设计的,也可用于其它系列的微机系统。可由程序来改变其功能,通用性强、使用灵活。通过8255A,CPU可直接同外设相连接,是应用最广的并行I/O接口芯片。含3个独立的8位并行输入/输出端口,各端口均具有数据的控制和锁存能力。可通过编程设置各端口的工作方式和数据传送方向(入/出/双向)。,并行接口连接外设示意图,不可编程并行接口和可编程并行接口 不可编程并行接口的工作方式和功能:是由硬件接线决定,不能用软件来控制。可编程并行接口的工作方式和功能:可用软件编程的方法改变,使接口具有更大的灵活性和通用性。,一般情况下不交叉使用,因为:只有

4、本系列的芯片才能更好地保证时序上的配合,和各种功能的发挥,使CPU可靠与外设交换信息。,在并行接口芯片中,不同的产品系列研制出与之相匹配的接口芯片。,例 在80X86系列中使用8255A芯片 在Z80系列中使用Z80-PIO芯片 在6800系列中使用MC6820PIA芯片,8255A8255A,8255A的内部结构,8255A8255A,数据总线缓冲器:三态8位双向缓冲器,与系统数据总线连接的缓冲部件;传送数据、控制字、状态字的通道。3个8位数据端口(PA、PB、PC):通常PA口与PB口用作输入输出的数据端口,PC口用作数据传输或提供联络线的端口。在方式字的控制下,PC口可以分成两个4位的端

5、口,其中PC7PC4同端口A配合使用,PC3PC0同端口B配合使用。A组、B组控制电路:这两组控制电路根据CPU发出的方式选择控制字来控制8255A的工作方式,每个控制组都接收来自读写控制逻辑的“命令”,接收来自内部数据总线的“控制字”,并向与其相连的端口发出适当的控制信号。A组控制电路控制PA口和PC口高4位,B组控制电路控制PB口和PC口低4位。读/写控制逻辑:用来管理数据、控制字和状态字的传送,接收系统总线发来的有关信号,并向A、B两组控制部件发送命令。,DIP封装,共40个引脚。1.连接系统总线的主要引脚D0D7:数据线,双向,连CPU数据总线;RESET:复位输入,接系统总线的RES

6、ET;CS*:片选控制输入,接译码器;RD*:读命令输入,接CPU的RD*或IOR*;WR*:写命令输入,接CPU的WR*或IOW*;A0,A1:片内端口地址输入,可选4个片内端口。接AB的任2位。,1.面向CPU一侧的引脚信号,D7D0,8位,双向,三态数据线 RESET,复位信号 CS*,片选信号RD*,读信号WR*,写信号 A1、A0,端口选择信号,8255A的读/写操作控制,2.面向外设一侧的引脚信号,端口A:PA0PA7A组,支持工作方式0、1、2端口B:PB0PB7B组,支持工作方式0、1端口C:PC0PC7仅支持工作方式0A组控制高4位PC4PC7B组控制低4位PC0PC3,端口

7、A:PA0PA7常作数据端口,功能最强大端口B:PB0PB7常作数据端口端口C:PC0PC7可作数据、状态和控制端口分两个4位,每位可独立操作控制最灵活,最难掌握,功能:,8255A与系统的连接示意图,8255A的工作方式方式0基本输入/输出方式(A、B、C口)方式1选通工作方式(A、B口)方式2双向选通传送方式(仅A口)某端口工作于哪一种方式,可通过软件编程来指定。即向8255写入方式控制字来决定其工作方式。,8255A的工作方式方式0(基本输入/输出方式)特点:8255A相当于三个独立的8位数据口。各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出。C端口即可以是一个8位的

8、简单接口,也可以分为两个独立的4位端口。设置为输出口时有锁存能力,设置为输入口时无锁存能力。适用于:无条件输入输出方式。查询输入输出方式:把A、B口作为8位数据的输入或输出口,C口的高/低4位分别定义为A、B口的控制位和状态位。,8255A的工作方式方式0(基本输入/输出方式)IN AL,PORT外设将数据送到8255输入缓冲器中;CPU给出有效的8255地址;CPU发读命令,将8255A输入缓冲器中数据读入CPU的AL寄存器中。,8255A的工作方式方式0(基本输入/输出方式)方式0输入时序:,8255A的工作方式方式0(基本输出方式)OUT PORT,AL CPU给出有效的8255地址;C

9、PU发写命令,将CPU的AL寄存器中数据写入8255A输出锁存器中。,8255A的工作方式方式0(基本输入/输出方式)方式0输出时序:,有效,8255A的工作方式方式1(选通工作方式)利用一组选通控制信号控制A端口和B端口的数据输入输出。特点:A、B口作输入或输出口,C口分为两部分,其部分位(6位)固定用作A口、B口的选通控制信号。C口的剩余位仍可作数据位使用。A口、B口在作为输入和输出时的选通信号不同。方式1的应用:主要用于中断控制方式下的输入输出。说明:C口除部分位用作选通信号外,其余位(2位)可工作在方式0下,作为输入或输出线,用程序指定其数据传送方向。,(1)端口A方式1作输入:,数据

10、选通信号表示外设已经准备好数据,输入缓冲器满信号表示A口已经接收数据,中断请求信号请求CPU接收数据,若允许PA口输入时,产生中断请求,则必须设置INTEA=1,即置PC4=1;若禁止它产生中断请求,则置INTEA=0,即置PC4=0,其程序段为:MOV DX,203H;8255A命令口 MOV AL,00001001B;置PC4=1,允许中断请求 OUT DX,AL MOV AL,00001000B;置PC4=0,禁止中断请求 OUT DX,AL,端口B方式1作输入:,方式1输入联络信号定义,STB*选通信号,低电平有效由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的

11、输入锁存器IBF输入缓冲器满信号,高电平有效8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器INTR中断请求信号,高电平有效8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据INTE 中断允许信号,高电平有效用于控制中断允许或中断屏蔽,8255A方式1作输入时的各联络信号对应关系,8255A工作在方式1下的输入时序,(3)端口A方式1作输出:,外设响应信号表示外设已经接收到数据,输出缓冲器满信号表示CPU已经输出了数据,中断请求信号请求CPU再次输出数据,端口B方式1作输出:,方式1输出联络信号,OBF*输出缓冲器满信号,低有效8255A输出给外设的一个控

12、制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走ACK*响应信号,低有效外设的响应信号,指示8255A的端口数据已由外设接受INTR中断请求信号,高有效当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据,8255A方式1作输出时的各联络信号对应关系,8255A工作在方式1下的输出时序,A端口、B端口方式 1 比较,A端口输入用C端口位PC3、PC4、PC5 A端口输出用C端口位PC3、PC6、PC7 B端口输入用C端口位PC0、PC1、PC2 B端口输出用C端口位PC0、PC1、PC2A端口输入、输出用不同的C端口的位 B端口输入、输出

13、用相同的C端口的位B端口只有方式 1 选通输入/输出 A端口还有方式 2 双向数据传送,C端口未被使用的位,A端口方式 0、B端口方式 0 C端口所有位未被使用,PC0 PC7 可作I/O用A端口方式 0、B端口方式 1 PC0 PC2被用,PC3 PC7可作I/O用A端口方式 1输入、B端口方式 0 PC3、PC4、PC5被用,PC0 PC2、PC6、PC7 可作I/O用A端口方式 1输出、B端口方式 0 PC3、PC6、PC7 被用,PC0 PC2、PC4、PC5 可作I/O用A端口方式 1输入、B端口方式 1 PC6、PC7 可作I/O用A端口方式 1输出、B端口方式 1 PC4、PC5

14、 可作I/O用A端口方式2、B端口方式1;C口被用完,都不可作I/O用,3.方式2(双向选通方式),方式2将方式1的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同方式2的数据输入过程与方式1的输入方式一样方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF*有效时向外设输出数据,而是在外设提供响应信号ACK*时才送出数据,(1)方式2的信号定义,用PC6设置INTE1(输出)用PC4设置INTE2(输入)输入和输出中断通过或门输出INTRA信号,8255A工作在方式2下的工作

15、时序,当数据端口作为输入工作时,在STB有效时,由外设把输入数据送入端口,并发出IBF有效信号。当CPU执行IN指令对该数据口进行读入操作后,由RD的上升沿使IBF复位,为下一次输入数据作好准备。如果该数据端口的中断允许INTE被置位,则在STB信号回复到高电平时,8255A通过INTR向CPU发中断请求。若CPU响应该中断请求,读取该数据端口的输入数据,则RD由下降沿使INTR复位,为下一次数据输入请求中断作好准备。,当数据端口作为输出口时,在CPU把数据写入端口后,由WR的上升沿使OBF有效并使INTR复位。OBF由8255A输出到外设,并通知外设可以取走端口的输出数据。当外设取走一个数据

16、时,应向8255A发回应答信号ACK。ACK的有效低电平可以使OBF恢复高电平,为下一次输出作好准备。,方式2应用接口电路图,返回,8255A的初始化可以利用软件编程确定8255的3个端口工作于何种方式下。8255A的各种工作方式由CPU对8255A写入控制命令字来设定,这个过程称为“初始化”。8255A有2种控制命令字:方式选择控制字确定3个端口的工作方式;C口置位/复位控制字确定C口某一位的初始状态,或用于设置INTE位(方式1,2)。,8255A的初始化方式选择控制字,8255A的初始化C口置位/复位控制字,8255A的初始化方式选择控制字 在方式 1、2下,C口作为A口、B口联络信号的

17、引脚,其动作关系在芯片设计和制造时已固定,不由用户自己安排,也不能编程改变。即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口,8255A应用举例 图中用8255A的PA口作为输出打印数据口,工作于方式0,PC口高4位工作于输出方式,PC6产生STB#信号;PC口低4位工作于输入方式,PC2接收打印机的BUSY信号。程序流程如右示。,例:利用825

18、5A作为打印机的连接接口,要求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置位,

19、即1 OUT DX,AL;C口置位/复位控制字送控制寄存器,对8255A初始化编程,并使PC6初始化状态置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,

20、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;若输出字符已完,则暂停,返回,方式1输出的联络信号定义,8255A方式1 从图可见,当CPU通过接口要求打印机打印数据时,先要查看BUSY信号,BUSY0时,才能向打印机输

21、出数据,在把数据送上DATA线后,先发STB#=0信号通知打印机,打印机接到STB#=0后,发出BUSY1,接收效据,当数据接收好并存入内部打印缓冲器后,送出ACK#=0信号,表示打印机已准备好接收新数据,并复位BUSY=0。,例2,设8255A为工作方式1,A口为输出。当外设向8255A发回的应答信号变为高电平时,若允许8255A向CPU发中断请求信号,则必须设置中断允许信号INTEA1,即置PC61;若禁止它产生中断请求,则INTEA0,即置PC60。假定端口的地址范围为300H303H,其程序段为:MOV DX,303H;置8255A控制口MOV AL,00001101B;置C口按位控制

22、字,使PC61,允许发中断请求 OUT DX,ALMOV AL,00001100B;置PC60,禁止发中断请求OUT DS,AL,8255A打印机接口,8255口线的使用,A为数据通道,方式1,输出PC0产生打印机的选通脉冲PC7未用;PC6为/ACK输入PC3自动作INTR,接中断控制器8259A的IR3,中断类型号0BH,中断向量在0002CH0002FH单元 通道C其他位及通道B未用,8255初始化,MOV DX,303H;MOV AL,0A0H;初始化,1010XXX0OUT DX,AL;A口方式1,出;PC0出MOV AL,1;PC0=1,选通无效OUT DX,AL,设置中断向量,设

23、置中断服务入口0100H:2000HPUSH DS;保护原数据段XOR AX,AXMOV DS,AX;设向量表段地址为0000HMOVAX,2000HMOV WORD PTR 002CH,AX;中断服务程序偏移地址MOVAX,0100HMOVWORD PTR 002EH,AX;中断服务程序段地址POPDS;恢复原数据段,8255中断设置,MOV AL,0DH;0000 1101;PC6 置1OUT 0C6H,AL;允许8255A中断STI;CPU开中断;主程序,中断服务程序,中断服务程序发选通信号,将数据送打印机打印机接收并打印字符后发出应答信号,清除8255A的数据缓冲区满信号RINT:MO

24、V AL,DI;输出字符送A通道MOV DX,300HOUT DX,ALMOV AL,0;PC0产生低电平脉冲选通信号MOV,DX,303HOUT DX,AL;0000 0000,PC0置0INCALOUT0C6H,AL;0000 0001,PC0置1;后续处理IRET;中断返回,当外设向8255A发回的应答信号变为高电平时,若允许8255A向CPU发中断请求信号,即中断允许信号INTEA1,从PC3引脚发出中断申请要求CPU发送新的数据,例3 利用OBF#作为触发打印机选通信号方式1输出,若将8255A的端口A与打印机相连,使A口工作于方式1下输出,并利用中断方式向打印机输出一组(字符串长度

25、为256字节)字符,打印机接口连接电路如图所示。试编写采用中断方式传送一组打印字符的程序段。假定8255A的端口地址范围为300H303H,8259A的端口地址为020H与021H。初始化时使A口为方式1、输出,B口可任意设定为方式0、输出,C口除联络线以外的5位线也均设定为输出,则方式选择控制字为10100000B(0A0H)。允许A口输出中断请求的INTEA中断允许信号,由C口置位/复位控制字对PC6置位来设定。,中断打印输出字符的程序由主程序MAIN和中断服务子程序SUBP两部分组成。,主程序MAIN,MAIN:PUSH DS;保存原DSMOV AX,SEG SUBP;为打印驱动子程序入

26、口SUBP设置新的中断向量DS:DXMOV DS,AX;SUBP的段地址送DSMOV DX,OFFSET SUBP;SUBP的偏移地址送DXMOV AH,25H;设置中断向量的功能号AHMOV AL,0AH;为8259A的IR2建立0AH号中断向量表项INT 21H POP DS;恢复原DSMOV DX,303H;设定8255A控制端口地址MOV AL,0A0H;8255A初始化,设置方式选择控制字OUT DX,AL;控制字送端口 MOV AL,00001101B;设定C口置位/复位控制字MOV DX,AL;置PC61,使INTEA1,允许8255A产生中断MOV DX,300HMOV AL,

27、00H;设置空白字符的ASCII码 OUT DX,AL;A口输出一个空白字符,以引发第一次中断请求MOV AX,OFFSET DATA;打印字符串的标号DATA(首地址)的偏移地址送AXMOV STR _ PTR,AX;设置增1的打印字符串指针的偏移地址MOV AX,SEG DATAMOV STR _ PTR+2,AX;设置增1的打印字符串指针的段地址STI;CPU开中,中断服务子程序SUBP,SUBP:PUSH SIPUSH DSPUSH AXLDS SI,DWORD PTR STR _ PTR;设置打印字符串地址的指针DS:SICLDLODSB:从SI寻址的字符串中取一个8位字符送ALMO

28、V STR _ PTR,SI;将自动增1后的SI保存于新的字符串指针MOV DX,300H;8255A的A口地址OUT DX,AL;将AL的一个打印字符输出到A口 MOV CX,0FFHDEC CXJNZ NEXT;字符送完否?未完,转NEXTMOV AL,00001100B;已送完,重设C口置位/复位控制字MOV DX,303H;8255A控制端口地址MOV DX,AL;置PC60,使INTEA0,禁止8255A产生中断NEXT:MOV AL,20H;设置8259A的OCW2命令OUT 20H,AL;送中断结束命令给8259A的端口POP AXPOP DSPOP SIIRET;中断返回,82

29、55A应用举例LED开关接口。8086CPU通过8255用开关与8段LED显示器的接口如图示。8255A PA口加驱动器接LED显示输出;PB口低4位接开关输入;PC口不用。8255A的A0、A1接地址总线的A1、A2,其端口地址为:0FFF8H、0FFFAH、0FFFCH、0FFFEH。要求:开关设置的二进制信息由8255A的PB口输入后,通过PA口输出给8段LED显示器,显示开关状态所对应的十六进制值,试编制其控制程序。,8255A应用举例(1)控制字的设置8255A的负载能力较小,PA输出口加驱动。PA口设为方式0输出,PB口设为方式0输入。由于地址总线的A0位未用,则8255A的每个端

30、口有两个地址。通常使用A0=0的地址。则方式选择控制字为:100001B因未使用C口,故不需设置置位/复位控制字。,8255A应用举例(2)开关状态与LED显示值关系 开关Ki闭合,则PBi=0,否则PBi=1。PB3PB0值与LED显示值关系:,8255A应用举例(3)PA口输出值与LED显示值间关系,8255A应用举例(4)PB口输入值转换成PA口输出值方法将前述8段码按0F顺序连续存放于内存中;将PB3PB0对应值置于AL中;执行换码指令XLAT。指令执行:(AL+BX)AL,8255A应用举例,ORG 2000H;定位程序的段内地址 MOV AL,82H;82H=10000010B M

31、OV DX,0FFFEH;设控制口地址 OUT DX,AL;写方式控制字 MOV DL,0FAH;设PB口地址 IN AL,DX;读开关状态 AND AL,0FH;屏蔽掉无用的高4位 MOV BX,OFFSET SSEGCODE XLAT;查表取段选码 MOV DL,0F8H;设PA口地址 OUT DX,AL;开关值段选码输出显示 MOV AX,56CH;显示延时 DEC AX JNZ DELAY JMP RDPORTB;循环读开关新状态 HLT ORG 2500H;定位段选码表的段内地址SSEGCODE DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H;段码表 DB 0F

32、8H,80H,98H,88H,83H,0C6H,0A1H,86H,8EH,RDPORTB:,DELAY:,两种方式并行传送接口设计1.要求 在甲乙两台微机之间并行传送1K字节数据。甲机发送,乙机接收。甲机一侧的8255A采用1方式工作,乙机一侧的8255A采用0方式工作。两机的CPU与接口之间都采用查询方式交换数据。,2.分析 双机均采用可编程并行接口芯片8255A构成接口电路,只是8255A的工作方式不同。此时,双方的8255A把对方视为I/O设备。3.设计(1)硬件连接 根据上述要求,接口电路的连接如图所示。(2)软件编程 接口驱动程序包含发送与接收两个程序。,甲机发送程序段:MOV DX

33、,203H;8255A命令口MOV AL,10100000B;初始化工作方式字OUT DX,AL MOV AL,00001101B;置发送中断允许INTEA=1OUT DX,AL;PC6=1MOV SI,OFFSET BUFS;设置发送数据区的指针MOV CX,3FFH;发送字节数MOV DX,200H;向A口写第一个数,产生第一个 OBF-信号MOV AL,SI;送给乙方,以便获取乙方的ACK-信号OUT DX,AL,INC SI;内存地址加1 DEC CX;传送字节数减1L:MOV DX,202H;8255A状态口 IN AL,DX;查发送断请求INTRA=1?AND AL,08H;PC3

34、=1?JZ L;若无中断请求,则等待;若有中断请求,则向A口写数 MOV DX,200H;8255APA口地址 MOV AL,SI;从内存取数 OUT DX,AL;通过A口向乙机发送第二个数据 INC SI;内存地址加1,DEC CX;字节数减1 JNZ L;字节未完,继续 MOV AH,4CH;已完,退出 INT 21H;返回 BUFS DB 1024个数据乙机接收程序段:(略),例设甲、乙两机之间进行并行通信,共传送1KB数据。甲机一方的8255A的PA口采用方式2并用中断方式传送数据。乙机一方8255A的PA口与PB口采用方式0输出与输入,按查询方式传送数据。两机的CPU与接口之间都采用

35、查询方式交换数据。硬件设计:接口电路的连接如图所示。甲机一侧的8255A的A口作双向传送,既作输出又作输入,它的中断请求线由PC3接到8259A的IR2上。乙机一侧的8255A的A口和B口是单向传送,分别作输出与输入。,8255A的应用举例(续1),;8255A初始化MOV DX,303H;8255A控制口MOV AL,11000000B;方式选择字:A口为方式2,输出;B口未用OUT DX,ALMOV AL,00001001B;置位PC4,设置INTE21,A口输入中断允许OUT DX,ALMOV AL,00001101B;置位PC6,设置INTE11,A口输出中断允许OUT DX,ALMO

36、V SI,300H;发送数据块内存首地址MOV DI,410H;接收数据块内存首地址MOV CX,3FFH;置发送与接收字节数,8255A的应用举例(续2),MAIN:STI;CPU开中断HLT;等待中断DEC CX;字节数减1JNZ AGAIN;未完,继续MOV AX,4C00H;已完,推出INT 21H;返回DOS;中断服务程序ROUT PROC FAR;中断服务程序入口ASSUME CS:CODE,DS:DATA,SS:STACKPUSH AXPUSH DXPUSH DIPUSH SI MOV DX,303H;8255A控制口MOV AL,08H;复位PC4,使INTE20,禁止输入中断

37、OUT DX,AL,8255A的应用举例(续3),MOV AL,0CH;复位PC6,使INTE10,禁止输入中断OUT DX,ALCLI;关中断MOV DX,302H;8255A状态口IN AL,DX;查中断源,读状态字MOV AH,AL;保存状态字AND AL,20H;查状态位IBF1?即判是输入?JZ OUTP;不是,则跳转至输出程序OUTPINP:MOV DX,300H;是,则由A口读取数据IN AL,DXMOVDI,AL;将输入数据存入内存区INC DI;接收数据块内存地址加1JMP RETURN;跳转RETURN OUTP:MOV DX,300H;8255A 数据口AMOV AL,S

38、I;从发送数据块内存取数OUT DX,AL;由A口输出INC SI;发送数据块内存地址加1,8255A的应用举例(续4),RETURN:MOV DX,303H;8255A控制口 MOV AL,00001101B;置位PC6,设置INTE11,允许A口输出 中断 OUT DX,AL MOV AL,00001001B;置位PC4,设置INTE21,允许A口输 入 中断 OUT DX,AL MOV AL,62H;设置OCW2为特殊EOI中断结束方式,清 除ISR2 OUT 20H,AL POP SI POP DI POP DX POP AX IRET;中断返回ROUT ENDP,本 章 结 束,谢谢您的合作!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号