版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《微机原理与接口技术》
第七章
输入/输出接口7.1I/O接口概述为什么需要I/O接口(电路)?微机的外部设备多种多样工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大它们不能与CPU直接相连必须经过中间电路再与系统相连这部分电路被称为I/O接口电路什么是I/O接口(电路)?I/O接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路PC机系统板的可编程接口芯片、I/O总线槽的电路板(适配器)都是接口电路CPU接口电路
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指令没有存储器指令丰富内存空间I/O空间FFFFF0FFFF80x86采用I/O端口独立编址I/O端口与存储器统一编址优点:不需要专门的I/O指令I/O数据存取与存储器数据存取一样灵活缺点:I/O端口要占去部分存储器地址空间程序不易阅读(不易分清访存和访问外设)内存部分I/O部分存储器空间00000FFFFF7.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译码电路接口芯片内部译码A0~A4DMA控制器1中断控制器1定时计数器并行接口电路DMA页面寄存器中断控制器2DMA控制器2协处理器A5A6A7A8A9ALS138译码器HLDAMASTERABCE1E2E3Y0Y1Y2Y3Y4Y5Y6Y7IBMPC/XT主机板的I/O译码电路Y0Y1Y2Y3Y4Y5Y6Y7A5A6A7A8A9AENIOWAB
CG2BG2AG174LS138DMACS(8237)INTRCS(8259)T/CCS(8253)PPICS(8255)WRTDMAPG(写DMA页面寄存器)WRTNMIREG(写NMI屏蔽寄存器)逻辑门电路进行I/O地址译码A9A8A7A6A5A2A4A3AENA1A074LS033E7H7.2输入/输出控制方式传送特点:CPU无需查询状态,直接用IN和OUT指令完成与接口之间的数据传送。使用条件:传送不能太频繁,以保证每次传送时外设处于“就绪”状态无条件传送方式一般用在对简单外设的操作。如开关、七段显示器等。7.2.1.无条件传送方式输入:由于数据保持时间相对于CPU的处理时间长,可直接将输入缓冲器与CPU的数据总线相连。当CPU执行IN指令时,I/O读信号IOR#有效,来自输入设备的数据到达数据总线,传给CPU输出:由于外设速度较慢,要求接口有锁存能力。当CPU执行OUT指令时,I/O读信号IOW#有效,CPU输出的信息经数据总线进入输出锁存器并保存着,直到外设取走。无条件传输过程演示无条件传送:输入示例MOV DX,160HIN AL,DX无条件传送:输入实例MOV DX,160HIN AL,DX74LS244+5V10Kx8G1G2数据总线CSRD无条件传送:输出实例MOVDX,160HMOVAL,[BX]OUTDX,AL+5V74LS373300
x8LEOE数据总线CSWRK7K1K0+5VD0~D7A0~A15CLKLS06反相驱动器LS2738D锁存器LS244三态缓冲器8000H译码+5VLED0LED7……GIOWIOR无条件传送:输入输出接口next: mov dx,8000h ;DX指向数据端口
in al,dx
;从输入端口读开关状态
not al ;反相
out dx,al
;送输出端口显示
call delay ;调子程序延时
jmp next ;重复7.2.2查询方式查询方式传送信息过程有三个环节组成:CPU从I/O端口读取状态字;CPU检测状态字,判断是否满足“准备就绪”条件,若不满足,则再读状态字;若满足“就绪”,则传送数据。演示查询式输入过程当数据准备好后,输入设备发送选通信号,其作用是把数据存入数据锁存器,并使得三态缓冲器的READY位置‘1’;CPU读状态口,当查询到READY位为‘1’,就表示输入数据已准备就绪;CPU读数据口,取走数据,并使三态缓冲器的READY位清‘0’,为输入下一个数据作准备。查询式输入流程图与程序:SCAN:IN AL,状态口地址TEST AL,80HJZ SCANIN AL,数据口地址读数据口→AL读取状态信息YesNo数据准备好?查询式输出过程
CPU读取状态字,若查询到“BUSY”为0,表示输出设备处于空闲态,CPU执行输出指令,发出选通信号:把数据送入输出锁存器;并使“BUSY
”置1;“BUSY
”为1,表示输出为忙状态,告知输出设备来提取数据;告之CPU不能输出新的数据;输出设备取得数据后,发确认信号ACK#,将“BUSY”位清0,表示输出设备空闲为CPU输出下一数据作准备。查询式输出的流程图与程序Yes读取状态信息输出设备忙?输出数据→ALNoSCAN:IN AL,状态口地址 ;读状态信息TEST AL,01H ;检测BUSY标志JNZ SCAN ;忙,继续查状态MOV AL,数据OUT 数据口地址,AL ;空,输出数据例7.1从终端往缓冲区输入一字符行,当遇到回车符(ODH)或字符行超过80个字符时,输入结束,并自动加上换行符(OAH),若在输入的81个字符中未见回车符,则在终端上输出信息“BUFFEROVERFLOW”。假设数据输入口地址为0052H,输出口为0054H,状态口地址为0056H状态寄存器中第1位为1表示输入准备好,第0位为1表示输出空闲。例7.1程序段:data_seg segmentmessage db‘bufferoverflow’,0dh,0ah,‘$’…data_seg endscom_seg segmentbuffer db82dup(?) ;接收缓冲区count db? ;计数器com_seg endscode_seg segmentassume cs:codseg,ds:data_seg,es:com_seg
例7.1程序段(续)start:movax,data_segmov
ds,axmovax,com_segmov
es,axmov
di,offsetbuf
;计数器指向缓冲区首址mov count,dimov
cx,81 ;字符行长度cld
;清方向标志next in:inal,56h ;读入状态test al,02h
;测状态标志第一位jz
nest_in
;未准备好,等待,再测in al,52h
;准备好则输入字符or al,0
;校验jpe
no_error
;正确则转no_error程序段jmp error ;出错则转error程序段no_error:and al,7fh
;清除校验位stosb
;将字符送入缓冲区cmp al,0dh
;是否为回车符?Loopne
next_in
;不是回车符则继续输入Jnz overflow ;不是回车符且溢出,则转overflow例7.1程序段(续)例7.1程序段(续)mov al,0ah ;加一个换行符stosb
;存入缓冲区sub di,count ;计算输入字符数overflow:mov
si,offsetmessage ;si中为字符串首址mov
cx,17
;字符数next_out:in al,56h
;读状态寄存器test al,01
;测状态寄存器第0位jz
next_out
;没就绪,再测lodsb
;将字符取到al中out 54h,al
;输出字符loopnext_out
;输出下一个字符mov ax,4c00h ;退出到DOSint 21hcodeendsendstart例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传送流程HLDA发存储器地址传送数据传送结束?DMA结束修改地址指针noyes传送方式的比较无条件传送:慢速,外设需与CPU保持同步查询传送:简单实用,效率较低中断传送:外设主动,可与CPU并行工作,但每次传送需要大量额外时间开销DMA传送:DMAC控制,外设直接和存储器进行数据传送,适合大量、快速数据传送7.3并行接口通信方式并行通信方式
多位数据信息在多根传输线上同时被传输串行通信方式
多位数据信息在一根传输线上按时间先后逐位顺序传送7.3.1基本概念
并行接口的特点计算机的并行通信通常以8位、16位、32位为传输单位并行传送的信息不要求固定的格式并行方式速度快,传输效率高,但费用高,适用于信息传输率要求高,而传输距离短的场合微机系统中最基本的信息交换方法7.3.2可编程并行接口芯片8255AINTEL8255A是可编程并行接口芯片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设备的信号线PA7~PA0:A口输入/输出数据线PB7~PB0
:B口输入/输出数据线PC7~PC0
:C口输入/输出数据线面向系统的信号线D7~D0:双向数据线CS#:片选信号,当CS#=0,选中该8255A图示面向系统的信号线(续)A1
、A0
:端口选择信号RD#:读信号,低电平有效WR#:写信号,低电平有效RESET:复位信号,高电平有效,有效时,使内部寄存器清0;3个数据端口自动设为输入8255A的外部引脚(续)图示表7.18255A端口编址与读写操作A1A0RDWRCS#操作00010从A口读取数据01010从B口读取数据10010从C口读取数据00100向A口写入数据01100向B口写入数据10100向C口写入数据11100向控制口写入命令字11010非法条件××110总线悬浮××××1总线悬浮3.8255A的编程使用方式选择控制字8255A的控制字C口按位清0/置1控制字写入内容写入位编码×××0D0D1D2D3D4D5D6D7D3D2D1C口000PC0001PC1010PC2011PC3100PC4101PC5110PC6111PC71-置10-置0特征位0有效例7.2要求设定8255A的A口为方式1,输入,C口高4位为输出;B口指定为0方式,输出;C口低4位为输入,写出初始化程序段。
(8255A的端口地址300H,301H,302H,303H)初始化程序段:MOV DX,303H
;303H:8255A的控制口地址MOV AL,0B1H
;0B1H:工作方式控制字OUT DX,AL
;送到控制口程序段为:MOV DX,303H ;8255A控制口地址MOV AL,05H ;使PC2=1控制字OUT DX,AL ;送控制口C口的按位置位/复位控制字虽然是对C口进行操作,但控制字必须写入控制口。例7.3要求把C口的PC2引脚置‘1’(高电平)。8255A的工作方式无条件输入/输出,无联络信号引脚,A口、B口和C口可分别设置成输入或输出不能提供中断信号虽然0方式下不能自动生成联络信号,但可以通过传送数据作为应答信号,用查询方式传送信号方式0-基本输入/输出方式方式0输入时序datadata输入端口D0~D7RD#CS#,A1,A0请体会这里8255A的数据缓冲作用方式0输出时序WR#datadata输出端口D0~D7CS#,A1,A08255A对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#图示②工作过程:打印机信号与时序BUSYDATA0~7ACK#STROBE#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:MOV DX,302H
;
302H:C口地址IN AL,DX
;查BUSY=0?(PC2=0)AND AL,
04HJNZ L
;忙(PC2=1),继续查询MOV DX,300H
;300H:
A口地址MOV AL,[SI] ;从内存取数OUT DX,AL ;向A口输出一个数据MOV DX,303H
;303H:
8255命令口MOV AL,00001110B
;置STB#为低(PC7=0)OUT DX,AL ;形成负脉冲的下降沿NOP
;负脉冲宽度(延时)NOPMOV AL,00001111B ;置STB#为高(PC7=1)OUT DX,AL ;形成负脉冲的下上升沿INC SI ;修改指针DEC CX ;修改计数JNZ L ;未传完,继续HLT ;已完,暂停③驱动程序(续)方式1-选通输入/输出方式选通型输入/输出,设置了联络信号线和中断请求信号;A口、B口为数据口,C口作为联络口;各联络信号之间有固定时序关系;可用查询方式或中断方式传送数据。INTRASTBAPC4PC5PC3(PC4)PA7~0PC7,6IBFAI/ORDINTEA2中断允许触发器中断请求信号请求CPU接收数据输入缓冲器满信号表示A口已经接收数据数据选通信号表示外设已经准备好数据方式1输入的引脚定义:A口PA7~PA0:输入数据线;PC4:输入,选通信号线STB#A;PC5:输出,输入缓冲器满信号IBFA;PC3:输出,中断请求信号线INTRA;PC7,PC6:空闲,可设置为输入或输出。方式1输入的引脚定义:A口INTRBSTBBPC2PC1PC0(PC2)PB7~0IBFBRDINTEB中断允许触发器数据选通信号表示外设已经准备好数据输入缓冲器满信号表示A口已经接收数据中断请求信号请求CPU接收数据方式1需借用端口C用做联络信号同时还具有中断请求和屏蔽功能方式1输入的引脚定义:B口方式1输入的引脚定义:B口PB7~PB0:输入数据线;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输入的工作时序(续)INTRAOBFAPC7PC6PC3(PC6)PA7~0PC5,4ACKAI/OWRINTEA2外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据中断允许触发器方式1的输出的引脚定义:A口PA7~PA0:输出数据线;PC7:输出,输出缓冲器满信号OBF#A;PC6:输入,外设应答信号ACK#A;PC3:
输出,作中断请求信号线INTRA;PC5,PC4:
空闲,可定义为输入或输出。A组工作在方式1输出的引脚定义:INTRBOBFBPC1PC2PC0(PC2)PA7~0ACKBWRINTEB外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据中断允许触发器方式1的输出的引脚定义:B口B组工作在方式1输出的引脚定义:PB7~PB0:输出数据线;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输入的状态字格式B组状态A组状态INTRBIBFBINTEBINTRAINTEAIBFAI/OI/OD0D1D2D3D4D5D6D7方式1输出的状态字格式B组状态A组状态INTRBOBFBINTEBINTRAI/OI/OINTEAOBFAD0D1D2D3D4D5D6D7方式1的状态字(续)注意:状态字通过读C口获得;状态字的各位与其C口引脚定义不完全一样;查询状态字时,一般查询INTR是否置位,也可查询IBF和OBF#位。例7.5采用8255A配置打印机接口,设置8255A为方式1,用查询方式传送数据。用8255A方式1与打印机的连接8255A方式1与打印机接口的时序配合图示图示主机把数据送给引脚DATA0~DATA7,同时送出数据选通信号STROBE#打印机在BUSY信号线上发出忙信号打印机处理好输入的数据时撤消忙信号同时又送出一个响应信号ACK#mov dx,0fffehmov al,0a0hout dx,almov al,0ch ;使INTEA(PC6)为0,禁止中断out dx,al ……mov cx,counter ;打印字节数送CXmov bx,offsetbuffer ;取字符串首地址call prints
;调用打印子程序8255A的初始化prints proc push ax
;保护寄存器
push dxprint1: mov al,[bx]
;取一个数据
mov dx,0fff8h
out dx,al
;从端口A输出
打印子程序:输出打印子程序:查询 mov dx,0fffchprint2:
in al,dx test al,80h ;检测(PC7)为1否? jz print2 ;为0,说明打印机没有响应, ;继续检测
inc bx ;为1,说明打印机已接受数据
loop print1
;准备取下一个数据输出
pop dx ;打印结束,恢复寄存器
pop ax ret ;返回prints endp打印子程序:返回要求:甲、乙两机之间传送1K字节数据,甲发,乙收;甲机的8255A采用方式1工作,乙机一侧的8255A采用0方式工作,两机的CPU与接口之间都采用查询方式交换数据。硬件连接:甲机8255A是方式1,A口输出,作发送数据用;PC7和PC6固定作联络线OBF#和ACK#;乙机的8255A为方式0,A口输入,接收数据;选PC4输入,接收OBF#信号;PC0输出,用作发送ACK#信号。例7.6双机并行接口设计。MOV DX,303H
;303H:8255A命令口地址MOV AL,10100000B
;A口方式1,输出OUT DX,ALMOV AL,00001101B ;置中断允许INTEA=1OUT DX,AL ;PC6=1MOV AX,030H
;030H:发送数据内存首址MOV ES,AXMOV BX,00HMOV CX,3FFH
;发送字节数1KMOV AL,ES:[BX] ;取第一个数MOV DX,300H
;300H:A口地址OUT DX,AL
;向A口写一个数甲机发送程序:INC BX ;修改指针,指向下一单元DEC CX ;字节数减1L:MOV DX,302H ;302H:8255A的C口(状态口)IN AL,DX
;查发送请求INTRA=1?AND AL,08H
;PC3=1?JZ L
;若无中断请求,继续查询MOV DX,300H
;300H:A口地址MOV AL,ES:[BX] ;从内存取数OUT DX,AL
;从A口输出数据甲机发送程序(续)INC BX ;修改指针DEC CX ;计数器减1JNZ L
;未传送完,继续MOV AX,4C00H ;传送完,退出INT 21H ;返回DOS程序中,也可查询OBFA(PC7)的状态IN AL,DX ;查OBFA=1?AND AL,80H ;PC7=1?JZ L ;若OBFA=0,则继续查询甲机发送程序(续)乙机接收程序:MOV DX,303H ;303H:命令口MOV AL,10011000B ;方式0,C口高4位输入OUT DX,AL
;C口低4位输出MOV AL,00000001B ;置ACK=1(PC0=1)OUTDX,ALMOV AX,040H ;接收数据内存区首址MOV ES,AXMOV BX,00HMOV CX,3FFH
;接收字节数L1:MOV DX,302H
;C口地址IN AL,DX ;查甲机的OBF=0(PC4=0)AND AL,10H ;取PC4位值JNZ L1
;无数据来,等待MOV DX, ;300H:A口地址IN AL,DX
;从A口读入一个数MOV ES:[BX],AL ;存入内存MOV DX,303H ;303H:命令口MOV AL,0 ;使PC0=0乙机接收程序OUT DX,AL
;产生ACK信号下降沿NOP ;延时NOP ;形成一定宽度负脉冲MOV AL,01H
;使PC0置1OUT DX,AL
;形成ACK的上升沿INC BXDEC CXJNZ L1
;未接收完,继续MOV AX,4C00H ;完毕,返回DOSINT 21H乙机接收程序(续)方式2-双向选通输入/输出方式方式2为双向选通输入/输出方式只有A口可工作在方式2一次初始化可设置A口既作输出口又作输入口;在方式2下可采用中断方式或查询方式与CPU交换数据A口在方式2时,B组(PB7~PB0,PC2~PC0)可设置为方式0或方式1工作PC3PC7PC5PC4PC6INTE1(PC6)INTE2(PC4)PA7~0STBIBFINTROBFACKWRRD8PC2~PC03I/O用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口得到D7~D3属于A组,反映A口的工作状态D2~D0属于B组,反映B口的工作状态INTRAINTE2IBFAINTE1OBFAD0D1D2D3D4D5D6D7例7.7中断方式的双机并行接口设计要求:主从两个微机进行并行传送,共传送256个字节。设计:主机8255A采用方式2,PA口作双向传送数据主机8255A采用中断方式传送数据,INTR端接到8259A的IR2上。从机的8255A为0方式,PA口输出,PB口输入。从机8255A采用查询方式传送数据传送程序;8255a的初始化mov dx,303h
;8255a的控制口mov al,0c0h
;方式字,a口为方式2out dx,almoval,09h
;置位pc4,设置inte2=1out dx,al
;输入中断允许mov al,0dh
;置位pc0,设置inte1=1out dx,al
;输出中断允许;预置寄存器,计数值mov si,300h
;发送数据区首地址mov di,410h
;接收数据区首地址mov cx,0ffh ;发送与接收的字节数
…again:sti ;开中断hlt ;等待中断cli ;关中断dec cx ;计数减1jnz again ;未完,继续传在此期间进入中断传送程序(续)中断服务子程序t-rprocfarmov dx,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高考地理一轮复习课件微专题3光照图的判读
- 年安徽省中考英语二轮复习语法专项课件介词和介词短语
- 产业转移课件高二上学期地理人教版选择性必修()-
- 学校业务承包合同范本
- 氯气及其化合物课件-高一上学期化学人教版
- Unit6Fantasticfriends单词课件-外研版七年级英语上册
- 工程代扣代缴合同范本
- 承接运营铺面合同范本
- 宠物医院医生合同范本
- 工程炮机加工合同范本
- 2026届江苏省常州市高一上数学期末联考模拟试题含解析
- 艺考机构协议书
- 2025年12月27日四川省公安厅遴选面试真题及解析
- 2026年农业科技领域人才选拔与专业技能考核要点解析
- 《生态环境重大事故隐患判定标准》解析
- 2025年度吉林省公安机关考试录用特殊职位公务员(人民警察)备考笔试试题及答案解析
- 2025年中国作家协会所属单位公开招聘工作人员13人备考题库及一套参考答案详解
- 走进歌乐山课件
- 茶叶对外贸易科普
- 青海西宁市2024-2025学年七年级上学期末调研测英语试卷
- 2025年度科室护士长工作总结与2026年工作计划
评论
0/150
提交评论