输入 输出接口-微机原理与接口.ppt_第1页
输入 输出接口-微机原理与接口.ppt_第2页
输入 输出接口-微机原理与接口.ppt_第3页
输入 输出接口-微机原理与接口.ppt_第4页
输入 输出接口-微机原理与接口.ppt_第5页
已阅读5页,还剩135页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理与接口技术,第七章输入/输出接口,7.1I/O接口概述,为什么需要I/O接口(电路)?微机的外部设备多种多样工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大它们不能与CPU直接相连必须经过中间电路再与系统相连这部分电路被称为I/O接口电路,什么是I/O接口(电路)?I/O接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路PC机系统板的可编程接口芯片、I/O总线槽的电路板(适配器)都是接口电路,I/O外设与CPU之间交换信息分为三类信号数据信号数字量:以二进制形式表示的数或以ASCII码表示的数或字符模拟量:模拟电压或电流开关量:两个状态的量,只用一位二进制数可表示。,CPU与外设间交换信息,CPU与外设间交换信息,状态信号是指CPU与I/O外设之间交换数据时的联络信息。CPU通过对外设状态信号的读取,来判断外设的工作状态,以控制与外设的数据交流。控制信号用于设置I/O外设(包括I/O接口)的工作模式,处理微机系统与外设间联系的技术注意其软硬结合的特点根据应用系统的需要,使用和构造相应的接口电路,编制配套的接口程序,支持和连接有关的设备,什么是微机接口技术?,7.1.1接口电路的功能,数据缓冲与锁存,用于解决高速主机与低速外设处理数据速度差异的矛盾输出接口有锁存环节,输入接口有缓冲环节实际的电路常用:输出锁存缓冲环节,输入锁存缓冲环节,联络功能接口电路应提供外设的状态设备选择能进行I/O端口地址译码信号与信息格式的转换能进行数据格式的转换,正负逻辑转换、串并行间的转换等,7.1.1接口电路的功能(续),中断管理功能建立中断请求、进行中断优先权排队、提供中断识别码等。能提供有关电器特性的适配能提供时序控制等,7.1.1接口电路的功能(续),7.1.2I/O接口的基本结构,I/O端口在I/O接口电路中的用于与CPU交换信息的寄存器称为I/O端口寄存器,简称“端口”。,端口可分三类数据端口:存放数据信状态端口:存放状态信息控制端口:存放控制信息,1.接口电路的内部结构,CPU与外设主要有数据、状态和控制信息需要相互交换,于是从应用角度看内部:数据寄存器保存外设给CPU和CPU发往外设的数据状态寄存器保存外设或接口电路的状态控制寄存器保存CPU给外设或接口电路的命令,2.接口电路的外部特性,主要体现在引脚上,分成两侧信号面向CPU一侧的信号:用于与CPU连接主要是数据、地址和控制信号面向外设一侧的信号:用于与外设连接提供的信号五花八门功能定义、时序及有效电平等差异较大,3.接口电路芯片的分类,接口电路核心部分往往是一块或数块大规模集成电路芯片(接口芯片):通用接口芯片支持通用的数据输入输出和控制的接口芯片面向外设的专用接口芯片针对某种外设设计、与该种外设接口面向微机系统的专用接口芯片与CPU和系统配套使用,以增强其总体功能,4.接口电路的可编程性,许多接口电路具有多种功能和工作方式,可以通过编程的方法选定其中一种接口需要进行物理连接,还需要编写接口软件接口软件有两类:初始化程序段设定芯片工作方式等数据交换程序段管理、控制、驱动外设,负责外设和系统间信息交换,7.1.3I/O端口编址方式,I/O端口有两种编址方式:I/O端口单独编址内存地址空间和I/O端口地址是相对独立在8086CPU中,内存地址为:00000H-FFFFFH端口和存储单元统一编址I/O端口地址和内存地址统一安排在内存地址空间中,I/O端口单独编址,优点:I/O端口的地址空间独立控制和地址译码电路相对简单专门的I/O指令使程序清晰易读缺点:I/O指令没有存储器指令丰富,80 x86采用I/O端口独立编址,I/O端口与存储器统一编址,优点:不需要专门的I/O指令I/O数据存取与存储器数据存取一样灵活缺点:I/O端口要占去部分存储器地址空间程序不易阅读(不易分清访存和访问外设),7.1.48088/8086的输入输出指令,输入指令INAL,PORT;字节输入,直接寻址INAL,DX;字节输入,间接寻址INAX,PORT;字输入,直接寻址INAX,DX;字输入,间接寻址输出指令OUTPORT,AL;字节输出,直接寻址OUTDX,AL;字节输出,间接寻址OUTPORT,AX;字输出,直接寻址OUTDX,AX;字输出,间接寻址,演示,演示,7.1.5I/O地址的译码,I/O地址的译码方法的特点:部分译码时,通常是中间地址线不连接,也有最低地址线不连接的情况每个接口电路通常只占用几个I/O地址,这时可以利用基本逻辑门电路进行地址译码除采用译码器、门电路进行译码外,I/O地址译码还经常采用可编程逻辑器件PLD为了给系统一定的选择余地,有些接口电路利用比较器、开关或跨接器等进行多组I/O地址的译码,IBMPC/AT主机板的I/O译码电路,IBMPC/XT主机板的I/O译码电路,逻辑门电路进行I/O地址译码,7.2输入/输出控制方式,传送特点:CPU无需查询状态,直接用IN和OUT指令完成与接口之间的数据传送。使用条件:传送不能太频繁,以保证每次传送时外设处于“就绪”状态无条件传送方式一般用在对简单外设的操作。如开关、七段显示器等。,7.2.1.无条件传送方式,输入:由于数据保持时间相对于CPU的处理时间长,可直接将输入缓冲器与CPU的数据总线相连。当CPU执行IN指令时,I/O读信号IOR#有效,来自输入设备的数据到达数据总线,传给CPU输出:由于外设速度较慢,要求接口有锁存能力。当CPU执行OUT指令时,I/O读信号IOW#有效,CPU输出的信息经数据总线进入输出锁存器并保存着,直到外设取走。,无条件传输过程,演示,无条件传送:输入示例,MOVDX,160HINAL,DX,无条件传送:输入实例,MOVDX,160HINAL,DX,无条件传送:输出实例,MOVDX,160HMOVAL,BXOUTDX,AL,无条件传送:输入输出接口,next:movdx,8000h;DX指向数据端口inal,dx;从输入端口读开关状态notal;反相outdx,al;送输出端口显示calldelay;调子程序延时jmpnext;重复,7.2.2查询方式,查询方式传送信息过程有三个环节组成:CPU从I/O端口读取状态字;CPU检测状态字,判断是否满足“准备就绪”条件,若不满足,则再读状态字;若满足“就绪”,则传送数据。,演示,查询式输入过程,当数据准备好后,输入设备发送选通信号,其作用是把数据存入数据锁存器,并使得三态缓冲器的READY位置1;CPU读状态口,当查询到READY位为1,就表示输入数据已准备就绪;CPU读数据口,取走数据,并使三态缓冲器的READY位清0,为输入下一个数据作准备。,查询式输入流程图与程序:,SCAN:INAL,状态口地址TESTAL,80HJZSCANINAL,数据口地址,查询式输出过程,CPU读取状态字,若查询到“BUSY”为0,表示输出设备处于空闲态,CPU执行输出指令,发出选通信号:把数据送入输出锁存器;并使“BUSY”置1;“BUSY”为1,表示输出为忙状态,告知输出设备来提取数据;告之CPU不能输出新的数据;输出设备取得数据后,发确认信号ACK#,将“BUSY”位清0,表示输出设备空闲为CPU输出下一数据作准备。,查询式输出的流程图与程序,SCAN:INAL,状态口地址;读状态信息TESTAL,01H;检测BUSY标志JNZSCAN;忙,继续查状态MOVAL,数据OUT数据口地址,AL;空,输出数据,例7.1从终端往缓冲区输入一字符行,当遇到回车符(ODH)或字符行超过80个字符时,输入结束,并自动加上换行符(OAH),若在输入的81个字符中未见回车符,则在终端上输出信息“BUFFEROVERFLOW”。假设数据输入口地址为0052H,输出口为0054H,状态口地址为0056H状态寄存器中第1位为1表示输入准备好,第0位为1表示输出空闲。,例7.1程序段:,data_segsegmentmessagedbbufferoverflow,0dh,0ah,$data_segendscom_segsegmentbufferdb82dup(?);接收缓冲区countdb?;计数器com_segendscode_segsegmentassumecs:codseg,ds:data_seg,es:com_seg,例7.1程序段(续),start:movax,data_segmovds,axmovax,com_segmoves,axmovdi,offsetbuf;计数器指向缓冲区首址movcount,dimovcx,81;字符行长度cld;清方向标志nextin:inal,56h;读入状态,testal,02h;测状态标志第一位jznest_in;未准备好,等待,再测inal,52h;准备好则输入字符oral,0;校验jpeno_error;正确则转no_error程序段jmperror;出错则转error程序段no_error:andal,7fh;清除校验位stosb;将字符送入缓冲区cmpal,0dh;是否为回车符?Loopnenext_in;不是回车符则继续输入Jnzoverflow;不是回车符且溢出,则转overflow,例7.1程序段(续),例7.1程序段(续),moval,0ah;加一个换行符stosb;存入缓冲区subdi,count;计算输入字符数overflow:movsi,offsetmessage;si中为字符串首址movcx,17;字符数next_out:inal,56h;读状态寄存器testal,01;测状态寄存器第0位jznext_out;没就绪,再测,lodsb;将字符取到al中out54h,al;输出字符loopnext_out;输出下一个字符movax,4c00h;退出到DOSint21hcodeendsendstart,例7.1程序段(续),7.2.3中断控制传送方式,外设的输入数据已准备好或接收数据锁存器为空时,主动发出中断请求信号;CPU响应中断,转而去执行为外设服务的中断程序,完成数据的输入或输出服务完毕后,返回到断点,继续原来的程序。,演示,中断控制传送过程,当输入设备输入一个数据时,发送选通信号:把数据存入锁存器;将D触发器置1,发出中断请求信号;CPU响应中断后,发回中断响应信号INTA#:使D触发器复位,并由外设将中断向量送到数据总线上,CPU取得中断向量转而执行中断服务程序,输入数据;中断处理完毕,CPU返回被中断的程序继续执行。,中断控制方式的优缺点,传送的适时性强,CPU效率较高CPU内部必须要增加中断控制线路CPU的中断响应过程要花时间该传送方式适于传送少量数据的中慢速外设的场合。,7.2.4直接存储器存取(DMA)方式,DMA(directmemoryaccess)CPU不介入传送控制,用专用硬件DMA控制器直接控制数据的传送。DMA方式的优缺点优点:传送速度快。缺点:要有专门的硬件电路,电路复杂。,DMA传送方式,希望克服程序控制传送的不足:外设CPU存储器外设CPU存储器直接存储器存取DMA:外设存储器外设存储器CPU释放总线,由DMA控制器管理,演示,DMA传送的工作过程,CPU对DMA控制器进行初始化设置外设、DMAC和CPU三者通过应答信号建立联系:CPU将总线交给DMAC控制DMA传送DMA读存储器:存储器外设DMA写存储器:存储器外设自动增减地址和计数,判断传送完成否,DMA传送流程,no,yes,传送方式的比较,无条件传送:慢速,外设需与CPU保持同步查询传送:简单实用,效率较低中断传送:外设主动,可与CPU并行工作,但每次传送需要大量额外时间开销DMA传送:DMAC控制,外设直接和存储器进行数据传送,适合大量、快速数据传送,7.3并行接口,通信方式并行通信方式多位数据信息在多根传输线上同时被传输串行通信方式多位数据信息在一根传输线上按时间先后逐位顺序传送,7.3.1基本概念,并行接口的特点,计算机的并行通信通常以8位、16位、32位为传输单位并行传送的信息不要求固定的格式并行方式速度快,传输效率高,但费用高,适用于信息传输率要求高,而传输距离短的场合微机系统中最基本的信息交换方法,7.3.2可编程并行接口芯片8255A,INTEL8255A是可编程并行接口芯片8255A采用40脚双列直插封装,单一+5V电源,全部输入输出与TTL电平兼容8255A有3个独立的输入输出端口,每个端口都可以通过编程来设定工作方式,8255A的内部结构,结构主要分四大部分:数据总线缓冲器:双向三态8位缓冲器,可直接与系统数据总线相连。读/写控制逻辑:完成内部端口选择和读写控制。I/O端口:A口、B口、C口。它们都可编程设定为输入/输出,具有锁存功能。控制逻辑,分为A、B两组控制,确定工作方式,输入输出。,图示,8255A有三个8位I/O端口,即A口,B口,C口,他们分成A、B两组进行控制。A组控制模块A口(PA7-PA0)和C口的高4位(PC7-PC4)B组控制模块B口(PB7-PB0)和C口的低4位(PC3-PC0),8255A的内部结构(续),图示,8255A的外部引脚,面向I/O设备的信号线PA7PA0:A口输入/输出数据线PB7PB0:B口输入/输出数据线PC7PC0:C口输入/输出数据线,面向系统的信号线D7D0:双向数据线CS#:片选信号,当CS#=0,选中该8255A,图示,面向系统的信号线(续)A1、A0:端口选择信号RD#:读信号,低电平有效WR#:写信号,低电平有效RESET:复位信号,高电平有效,有效时,使内部寄存器清0;3个数据端口自动设为输入,8255A的外部引脚(续),图示,表7.18255A端口编址与读写操作,3.8255A的编程使用,方式选择控制字,8255A的控制字,C口按位清0/置1控制字,1置10置0,特征位0有效,例7.2要求设定8255A的A口为方式1,输入,C口高4位为输出;B口指定为0方式,输出;C口低4位为输入,写出初始化程序段。(8255A的端口地址300H,301H,302H,303H),初始化程序段:MOVDX,303H;303H:8255A的控制口地址MOVAL,0B1H;0B1H:工作方式控制字OUTDX,AL;送到控制口,程序段为:MOVDX,303H;8255A控制口地址MOVAL,05H;使PC2=1控制字OUTDX,AL;送控制口,C口的按位置位/复位控制字虽然是对C口进行操作,但控制字必须写入控制口。,例7.3要求把C口的PC2引脚置1(高电平)。,8255A的工作方式,无条件输入/输出,无联络信号引脚,A口、B口和C口可分别设置成输入或输出不能提供中断信号虽然0方式下不能自动生成联络信号,但可以通过传送数据作为应答信号,用查询方式传送信号,方式0基本输入/输出方式,方式0输入时序,请体会这里8255A的数据缓冲作用,方式0输出时序,8255A对CPU通过它输出给外设的数据进行锁存,打印机接口电路8255A的引脚分配PA口输出,输出打印数据,工作于方式0;PC7输出,它产生一个负脉冲,作为数据选通信号STB#,将数据送入打印机缓冲器;PC2输入,接收打印机的忙信号(BUSY)。,图示,例7.4某系统用8255A配置一并行打印机接口,CPU用方式0实现查询方式传送,将存放在200H单元开始的256个字符(ASCII码)送打印机打印。,CPU查询BUSY,若BUSY=1(忙),继续查;当BUSY=0(空闲),CPU输出数据到接口;CPU发出数据选通信号STB#,将数据送入打印机缓冲器;打印机接收到数据后,发出忙信号(BUSY=1),并处理数据数据处理完,撤销忙信号(BUSY=0),发响应信号ACK,图示,工作过程:,打印机信号与时序,MOVDX,303H;303H:8255A命令口地址MOVAL,10000001B;工作方式字,0方式,;A口输出,C口高4位输出,C口低4位输入OUTDX,AL;送入控制口MOVAL,00001111B;PC7位为高,STB#=1OUTDX,AL;送入控制口MOVSI,200H;打印字符的内存首地址MOVCX,0FFH;打印字符个数,FFH=255,驱动程序:,驱动程序(续),L:MOVDX,302H;302H:C口地址INAL,DX;查BUSY=0?(PC2=0)ANDAL,04HJNZL;忙(PC2=1),继续查询MOVDX,300H;300H:A口地址MOVAL,SI;从内存取数OUTDX,AL;向A口输出一个数据MOVDX,303H;303H:8255命令口MOVAL,00001110B;置STB为低(PC7=0),OUTDX,AL;形成负脉冲的下降沿NOP;负脉冲宽度(延时)NOPMOVAL,00001111B;置STB为高(PC7=1)OUTDX,AL;形成负脉冲的下上升沿INCSI;修改指针DECCX;修改计数JNZL;未传完,继续HLT;已完,暂停,驱动程序(续),方式1选通输入/输出方式,选通型输入/输出,设置了联络信号线和中断请求信号;A口、B口为数据口,C口作为联络口;各联络信号之间有固定时序关系;可用查询方式或中断方式传送数据。,中断请求信号请求CPU接收数据,输入缓冲器满信号表示A口已经接收数据,数据选通信号表示外设已经准备好数据,方式1输入的引脚定义:A口,PA7PA0:输入数据线;PC4:输入,选通信号线STB#A;PC5:输出,输入缓冲器满信号IBFA;PC3:输出,中断请求信号线INTRA;PC7,PC6:空闲,可设置为输入或输出。,方式1输入的引脚定义:A口,数据选通信号表示外设已经准备好数据,输入缓冲器满信号表示A口已经接收数据,中断请求信号请求CPU接收数据,方式1需借用端口C用做联络信号同时还具有中断请求和屏蔽功能,方式1输入的引脚定义:B口,方式1输入的引脚定义:B口,PB7PB0:输入数据线;PC2:输入,作选通信号线STB#B;PC1:输出,作输入缓冲器满信号IBFB;PC0:输出,作中断请求信号线INTRB;,STB#(Strobe):选通信号,低电平有效,输入;有效信号将外设数据送入8255A的输入缓冲器中锁存。IBF(InputBufferFull):输入缓冲器满信号,高电平有效,输出;IBF=1,通知外设暂缓输入下一数据;当CPU查询IBF=1时,才能从A口或B口读取输入的数据;,方式1输入联络信号,STB和IBF是外设和8255A间的一对应答联络信号,为的是可靠地输入数据,方式1输入联络信号(续),INTR(InterruptRequest):中断请求信号,高电平有效,输出。当允许中断(INTE=1),且8255A接收到数据(IBF=1)后,发出中断请求INTE(InterruptEnable):中断控制逻辑INTE=1,开中断;INTE=0,关中断。INTE受C口复位/置位字控制:PC4=1时,INTEA=1,A口允许中断;PC2=1时,INTEB=1,B口允许中断。,方式1输入的工作时序,外设输入数据,并发出选通信号STB#(低电平),将数据送入输入缓冲器中锁存;8255A接收数据,IBF变成高电平,表示输入缓冲器满,禁止输入新的数据;在STB#的上升沿之后,若中断允许(INTE=1),INTR信号有效,向CPU发出中断请求;,图示,CPU响应中断请求,进入中断服务,读入数据;若CPU采用查询方式,则查询INTR位或IBF位来控制读数据;CPU执行读操作,RD#的下降沿使INTR复位RD#的上升沿使IBF变低,为输入下一个数据作准备。,方式1输入的工作时序(续),外设响应信号表示外设已经接收到数据,输出缓冲器满信号表示CPU已经输出了数据,中断请求信号请求CPU再次输出数据,方式1的输出的引脚定义:A口,PA7PA0:输出数据线;PC7:输出,输出缓冲器满信号OBF#A;PC6:输入,外设应答信号ACK#A;PC3:输出,作中断请求信号线INTRA;PC5,PC4:空闲,可定义为输入或输出。,A组工作在方式1输出的引脚定义:,外设响应信号表示外设已经接收到数据,输出缓冲器满信号表示CPU已经输出了数据,中断请求信号请求CPU再次输出数据,中断允许触发器,方式1的输出的引脚定义:B口,B组工作在方式1输出的引脚定义:,PB7PB0:输出数据线;PC1:输出,输出缓冲器满信号OBF#B;PC2:输入,外设应答信号ACK#B;PC0:输出,作中断请求信号线INTRB。,OBF#(OutputBufferFull)输出缓冲器满信号。输出,低电平有效,它有效表示输出缓冲内有数据,通知外设取走数据ACK#(Acknowledge)外设应答信号。输入,低电平有效。当其有效,表示数据已被外设取走,并清OBF#,使之为高;,方式1输出的联络信号,OBF#和ACK#是外设和8255A间的一对应答联络信号,为的是可靠地输出数据,INTR中断请求信号。当满足INTE=1,且OBF#=1,发中断请求;INTE中断控制逻辑,受C口的置0/置1命令字控制;PC6=1时,INTEA=1,A口允许中断PC2=1时,INTEB=1,B口允许中断,方式1输出的联络信号,方式1的输出时序,CPU向8255A写一个数据时,WR#的上升沿使OBF#有效,表示输出缓冲器满,告之外设可取数据。WR#还使INTR变低,封锁中断请求;外设取走数据后,用ACK#回答8255A,表示数据已收到;,图示,ACK#的下降沿使OBF#成为高电平;在中断允许(INTE=1)条件下,ACK#的上升沿使INTR成为高电平,产生中断请求;CPU响应中断,执行OUT指令,向8255A输出一个数据。CPU也可查询INTR或OBF#位来控制输出数据。,方式1的输出时序(续),图示,方式1的状态字,8255A状态字为查询方式提供了状态标志位:IBF、OBF、INTR的状况。8255A不能直接提供中断矢量,在采用中断方式时,CPU可通过读状态字来确定中断源。,方式1输入的状态字格式,方式1输出的状态字格式,方式1的状态字(续),注意:状态字通过读C口获得;状态字的各位与其C口引脚定义不完全一样;查询状态字时,一般查询INTR是否置位,也可查询IBF和OBF#位。,例7.5采用8255A配置打印机接口,设置8255A为方式1,用查询方式传送数据。,用8255A方式1与打印机的连接8255A方式1与打印机接口的时序配合,图示,图示,主机把数据送给引脚DATA0DATA7,同时送出数据选通信号STROBE#打印机在BUSY信号线上发出忙信号打印机处理好输入的数据时撤消忙信号同时又送出一个响应信号ACK#,movdx,0fffehmoval,0a0houtdx,almoval,0ch;使INTEA(PC6)为0,禁止中断outdx,almovcx,counter;打印字节数送CXmovbx,offsetbuffer;取字符串首地址callprints;调用打印子程序,8255A的初始化,printsprocpushax;保护寄存器pushdxprint1:moval,bx;取一个数据movdx,0fff8houtdx,al;从端口A输出,打印子程序:输出,打印子程序:查询,movdx,0fffchprint2:inal,dxtestal,80h;检测(PC7)为1否?jzprint2;为0,说明打印机没有响应,;继续检测,incbx;为1,说明打印机已接受数据loopprint1;准备取下一个数据输出popdx;打印结束,恢复寄存器popaxret;返回printsendp,打印子程序:返回,要求:甲、乙两机之间传送1K字节数据,甲发,乙收;甲机的8255A采用方式1工作,乙机一侧的8255A采用0方式工作,两机的CPU与接口之间都采用查询方式交换数据。硬件连接:甲机8255A是方式1,A口输出,作发送数据用;PC7和PC6固定作联络线OBF#和ACK#;乙机的8255A为方式0,A口输入,接收数据;选PC4输入,接收OBF#信号;PC0输出,用作发送ACK#信号。,例7.6双机并行接口设计。,MOVDX,303H;303H:8255A命令口地址MOVAL,10100000B;A口方式1,输出OUTDX,ALMOVAL,00001101B;置中断允许INTEA=1OUTDX,AL;PC6=1MOVAX,030H;030H:发送数据内存首址MOVES,AXMOVBX,00HMOVCX,3FFH;发送字节数1KMOVAL,ES:BX;取第一个数MOVDX,300H;300H:A口地址OUTDX,AL;向A口写一个数,甲机发送程序:,INCBX;修改指针,指向下一单元DECCX;字节数减1L:MOVDX,302H;302H:8255A的C口(状态口)INAL,DX;查发送请求INTRA=1?ANDAL,08H;PC3=1?JZL;若无中断请求,继续查询MOVDX,300H;300H:A口地址MOVAL,ES:BX;从内存取数OUTDX,AL;从A口输出数据,甲机发送程序(续),INCBX;修改指针DECCX;计数器减1JNZL;未传送完,继续MOVAX,4C00H;传送完,退出INT21H;返回DOS,程序中,也可查询OBFA(PC7)的状态INAL,DX;查OBFA=1?ANDAL,80H;PC7=1?JZL;若OBFA=0,则继续查询,甲机发送程序(续),乙机接收程序:,MOVDX,303H;303H:命令口MOVAL,10011000B;方式0,C口高4位输入OUTDX,AL;C口低4位输出MOVAL,00000001B;置ACK=1(PC0=1)OUTDX,ALMOVAX,040H;接收数据内存区首址MOVES,AXMOVBX,00HMOVCX,3FFH;接收字节数,L1:MOVDX,302H;C口地址INAL,DX;查甲机的OBF=0(PC4=0)ANDAL,10H;取PC4位值JNZL1;无数据来,等待MOVDX,;300H:A口地址INAL,DX;从A口读入一个数MOVES:BX,AL;存入内存MOVDX,303H;303H:命令口MOVAL,0;使PC00,乙机接收程序,OUTDX,AL;产生ACK信号下降沿NOP;延时NOP;形成一定宽度负脉冲MOVAL,01H;使PC0置1OUTDX,AL;形成ACK的上升沿INCBXDECCXJNZL1;未接收完,继续MOVAX,4C00H;完毕,返回DOSINT21H,乙机接收程序(续),方式2双向选通输入/输出方式,方式2为双向选通输入/输出方式只有A口可工作在方式2一次初始化可设置A口既作输出口又作输入口;在方式2下可采用中断方式或查询方式与CPU交换数据A口在方式2时,B组(PB7PB0,PC2PC0)可设置为方式0或方式1工作,用PC6设置INTE1(输出)用PC4设置INTE2(输入)输入和输出中断通过或门输出INTR信号,方式2的引脚定义,各引脚的意义与方式1相同,A口方式2的输入/输出共用一个INTR信号,它由PC3提供,既为可作为输入中断请求,也可作输出中断请求;INTE1:输出中断允许,由PC6设定,INTE2:输入中断允许,由PC4设定。,方式2的引脚定义,方式2的工作时序,输入,输出的先后顺序是任意的;输出过程由CPU执行对A口的输出指令而引发WR#信号使INTR信号无效,WR#的上升沿使OBF#有效,通知外设取数据;外设取走数据后向8255A发应答信号ACK#;ACK#有效使OBF#复位,开始下一数据的输出,图示,输入过程由外设发选通信号STB#引发它将输入数据锁存到A口的输入锁存器中,IBF变为高电平STB#信号结束时,中断请求信号INTR变为高电平CPU响应中断进行读操作,RD#有效,将数据从A口读到CPU中IBF和INTR变为低电平,结束一次数据输入过程,方式2的工作时序(续),图示,方式2的状态字,方式2的状态字通过读C口得到D7D3属于A组,反映A口的工作状态D2D0属于B组,反映B口的工作状态,例7.7中断方式的双机并行接口设计,要求:主从两个微机进行并行传送,共传送256个字节。设计:主机8255A采用方式2,PA口作双向传送数据主机8255A采用中断方式传送数据,INTR端接到8259A的IR2上。从机的8255

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论