版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第8章 可编程并行接口8255A1 1并行接口的概述并行接口的概述2 2 可编程并行接口可编程并行接口8255A8255A3 8255A3 8255A的的0 0方式及其应用方式及其应用4 8255A4 8255A的的1 1方式及其应用方式及其应用5 8255A5 8255A的的2 2方式及其应用方式及其应用1并行接口的概述 CPU与外设之间的信息传送都是通过接口电路来进行的。 计算机与外部设备、计算机与计算机之间交换信息称之为计算机通信,计算机通信可分为两大类:并行通信:8位或16位或32位数据同时传输, 速度快,信息 率高,成本高串行通信:一位一位数据传送(在一条线上顺序传送),成本低 实现
2、并行通信的接口就是并行接口。 一、串行与并行通信一、串行与并行通信二、并行接口的特点 并行接口最基本的特点是在多根数据线上以数据字节(字)为单位与I/O设备或被控对象传送信息。 如: 打印机接口,A/D、D/A转换器接口,IEEE-488接口,开关量接口,控制设备接口等。 在并行接口中,除了少数场合之外,一般都要求在接口与外设之间设置并行数据线的同时,至少还要设置两根握手(联线)信号线,以便进行互锁异步握手方式(即查询方式)的通信。 在并行接口中,8位或16位是一起行动的,因此,当采用并行接口与外设交换数据时,即使是只用到其中的一位,也是一次输入/输出8位或16位。 并行传送信息,不要求固定的
3、格式,这与串行传送的数据格式的要求不同。8255A8255A概述 Intel8255A是一种通用的可编程序并行I/O接口芯片,又称“可编程外设接口芯片”,是为Intel8080/8085系列微处理设计的,也可用于其它系列的微机系统。可由程序来改变其功能,通用性强、使用灵活。通过8255A,CPU可直接同外设相连接,是应用最广的并行I/O接口芯片。 含3个独立的8位并行输入/输出端口,各端口均具有数据的控制和锁存能力。可通过编程设置各端口的工作方式和数据传送方向(入/出/双向)。CPUCPU控制寄存器控制寄存器输入缓冲寄存器输入缓冲寄存器输出缓冲寄存器输出缓冲寄存器状态寄存器状态寄存器数据总线数
4、据总线地址地址译码译码读出信号读出信号写入信号写入信号复位复位准备好准备好中断请求中断请求地址地址片选片选A A0 0A A1 1输输入入设设备备数据输入数据输入数据输入准备好数据输入准备好数据输入回答数据输入回答输输出出设设备备数据输出数据输出数据输出准备好数据输出准备好数据输出回答数据输出回答并行接口连接外设示意图并行接口连接外设示意图l不可编程并行接口和可编程并行接口不可编程并行接口和可编程并行接口 不可编程并行接口的工作方式和功能不可编程并行接口的工作方式和功能: : 是由硬件接线决定,不能用软件来控制。是由硬件接线决定,不能用软件来控制。 可编程并行接口的工作方式和功能可编程并行接口
5、的工作方式和功能: : 可用软件编程的方法改变,可用软件编程的方法改变, 使接口具有更大的灵活性和通用性。使接口具有更大的灵活性和通用性。一般情况下不交叉使用一般情况下不交叉使用,因为,因为: :只有本系列的芯片才能更好地保证时序上的配合只有本系列的芯片才能更好地保证时序上的配合, ,和各种功能的发挥,使和各种功能的发挥,使CPUCPU可靠与外设交换信息。可靠与外设交换信息。l 在并行接口芯片中,在并行接口芯片中, 不同的产品系列研制出与之相匹配的接口芯不同的产品系列研制出与之相匹配的接口芯片。片。例例 在在80X8680X86系列系列中使用中使用8255A8255A芯片芯片 在在Z80Z80
6、系列系列中使用中使用Z80-PIOZ80-PIO芯片芯片 在在68006800系列系列中使用中使用MC6820PIAMC6820PIA芯片芯片8255A8255A8255A的内部结构 A组控制组控制数据总线数据总线缓冲器缓冲器读读/写写控制逻辑控制逻辑B组控制组控制A组组A口口(8位)位)A组组C口高位口高位(4位)位)B组组C口低位口低位(4位)位)B组组B口口(8位)位)D0D7RDWRA1A0RESETPA0PA7PC4PC7PC0PC3PB0PB78255A8255A1. 数据总线缓冲器:三态8位双向缓冲器,与系统数据总线连接的缓冲部件;传送数据、控制字、状态字的通道。2. 3个8位数
7、据端口(PA、PB、PC):通常PA口与PB口用作输入输出的数据端口,PC口用作数据传输或提供联络线的端口。在方式字的控制下,PC口可以分成两个4位的端口,其中PC7PC4同端口A配合使用, PC3PC0同端口B配合使用。 3. A组、B组控制电路:这两组控制电路根据CPU发出的方式选择控制字来控制8255A的工作方式,每个控制组都接收来自读写控制逻辑的“命令”,接收来自内部数据总线的“控制字”,并向与其相连的端口发出适当的控制信号。A组控制电路控制PA口和PC口高4位,B组控制电路控制PB口和PC口低4位。4. 读/写控制逻辑:用来管理数据、控制字和状态字的传送,接收系统总线发来的有关信号,
8、并向A、B两组控制部件发送命令。DIP封装,共40个引脚。1. 连接系统总线的主要引脚D0D7:数据线,双向,连CPU数据总线;RESET:复位输入,接系统总线的RESET; CS*:片选控制输入,接译码器;RD*:读命令输入,接CPU的RD*或IOR*;WR*:写命令输入,接CPU的WR*或IOW*;A0,A1:片内端口地址输入,可选4个片内端口。接AB的任2位。WRD0D1D2D3D4D5D6D7VCCPB7RDCSGNDA1A0PA4PA5PA6PA7PB5PB6PB4PB3RESETPB1PB2PB0PC3PC2PC1PC0PC4PC5PC6PC7PA3PA2PA1PA05110153
9、5403025211.面向CPU一侧的引脚信号 D7D0,8位,双向,三态数据线位,双向,三态数据线 RESET,复位信号复位信号 CS*,片选信号片选信号RD*,读信号读信号WR*,写信号写信号 A1 、A0,端口选择信号,端口选择信号 A1 A0RD*WR*CS*输入操作(输入操作(CPU读)读)001010000111000数据总线数据总线 端口端口A数据总线数据总线 端口端口B 数据总线数据总线 端口端口C 00110111111100000000输出操作输出操作( (CPU写写) )数据总线数据总线端口端口A 数据总线数据总线端口端口B 数据总线数据总线端口端口C数据总线数据总线控制
10、端口控制端口8255A的读/写操作控制2.面向外设一侧的引脚信号 n端口端口A:PA0PA7nA组,支持工作方式组,支持工作方式0、1、2n端口端口B:PB0PB7nB组,支持工作方式组,支持工作方式0、1n端口端口C:PC0PC7n仅支持工作方式仅支持工作方式0nA组控制高组控制高4位位PC4PC7nB组控制低组控制低4位位PC0PC3n端口端口A:PA0PA7n常作数据端口,功能最强大常作数据端口,功能最强大n端口端口B:PB0PB7n常作数据端口常作数据端口n端口端口C:PC0PC7n可作数据、状态和控制端口可作数据、状态和控制端口n分两个分两个4位,每位可独立操作位,每位可独立操作n控
11、制最灵活,最难掌握控制最灵活,最难掌握功能:8255A与系统的连接示意图D0D7WRRDA1A0CSDBIOWIORA1A0译码器译码器8255A口口B口口C口口D0D7外设1A15A2系系统统总总线线外设2外设38255A的工作方式 方式0基本输入/输出方式(A、B、C口) 方式1选通工作方式(A、B口) 方式2双向选通传送方式(仅A口)某端口工作于哪一种方式,可通过软件编程来指定。即向8255写入方式控制字来决定其工作方式。端口A输入输出均能锁存B端口输出时能锁存,输入时不能锁存C端口没有输入锁存器,输出可以锁存三个端口输出都可锁存/缓冲8255A的工作方式方式0(基本输入/输出方式)特点
12、:8255A相当于三个独立的8位数据口。各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出。C端口即可以是一个8位的简单接口,也可以分为两个独立的4位端口。设置为输出口时有锁存能力,设置为输入口时无锁存能力。适用于:无条件输入输出方式。查询输入输出方式:把A、B口作为8位数据的输入或输出口,C口的高/低4位分别定义为A、B口的控制位和状态位。8255A的工作方式方式0(基本输入/输出方式) IN AL,PORT外设将数据送到8255输入缓冲器中;CPU给出有效的8255地址;CPU发读命令,将8255A输入缓冲器中数据读入CPU的AL寄存器中。输入缓冲器译码器数据数据DBDBA
13、BAB外设8nIO/MRD8255A的工作方式方式0(基本输入/输出方式)方式0输入时序:8255A的工作方式方式0(基本输出方式) OUT PORT,AL CPU给出有效的8255地址; CPU发写命令,将CPU的AL寄存器中数据写入8255A输出锁存器中。输出锁存器译码器数据数据DBDBABAB外设8nIO/MWR8255A的工作方式方式0(基本输入/输出方式) 方式0输出时序:数据有效数据有效A1、A2D7 D0WRCS输出数据tWWtDWtWDtWAtWBtAW有效8255A的工作方式方式1(选通工作方式) 利用一组选通控制信号控制A端口和B端口的数据输入输出。特点: 1. A、B口作
14、输入或输出口,C口分为两部分,其部分位(6位)固定用作A口、B口的选通控制信号。2. C口的剩余位仍可作数据位使用。3. A口、B口在作为输入和输出时的选通信号不同。方式1的应用: 主要用于中断控制方式下的输入输出。说明:C口除部分位用作选通信号外,其余位(2位)可工作在方式0下,作为输入或输出线,用程序指定其数据传送方向。(1)端口A方式1作输入:数据选通信号数据选通信号表示外设已经准备好数据表示外设已经准备好数据输入缓冲器满信号输入缓冲器满信号表示表示A口已经接收数据口已经接收数据中断请求信号中断请求信号请求请求CPU接收数据接收数据中断允许触发器PA7PA7PA0PA0PC4PC4PC5
15、PC5PC3PC3INTEAINTEAPC4PC4与门与门IBFAIBFASTBASTBAINTRAINTRARDRDD7D7D0D0若允许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,ALPC2PC1PC0PB7PB0INTEBIBFBINTRBSTBB数据选通信号数据选通信号表示外设已经准备好
16、数据表示外设已经准备好数据输入缓冲器满信号输入缓冲器满信号表示表示B口已经接收数据口已经接收数据中断请求信号中断请求信号请求请求CPU接收数据接收数据中断允许触发器中断允许触发器端口B方式1作输入:方式1输入联络信号定义nSTB*选通信号,低电平有效选通信号,低电平有效由外设提供的输入信号,当其有效时,将输入设备送来的数据由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至锁存至8255A的输入锁存器的输入锁存器nIBF输入缓冲器满信号,高电平有效输入缓冲器满信号,高电平有效8255A输出的联络信号。当其有效时,表示数据已锁存在输入输出的联络信号。当其有效时,表示数据已锁存在输入锁存器
17、锁存器nINTR中断请求信号,高电平有效中断请求信号,高电平有效8255A输出的信号,可用于向输出的信号,可用于向CPU提出中断请求,要求提出中断请求,要求CPU读读取外设数据取外设数据nINTE 中断允许信号,高电平有效中断允许信号,高电平有效用用于于控制中断允许或中断屏蔽控制中断允许或中断屏蔽联络信号联络信号 端口端口A 端口端口B STB*对应对应PC4 对应对应PC2 IBF对应对应PC5 对应对应PC1 INTR对应对应PC3 对应对应PC0 INTEPC4置位置位 PC2置位置位 8255A方式1作输入时的各联络信号对应关系 8255A工作在方式1下的输入时序(3)端口A方式1作输
18、出:外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据中断允许触发器PA7PA7PA0PA0PC7PC7PC6PC6PC3PC3INTEAINTEAPC6PC6与门与门ACKAACKAOBFAOBFAINTRAINTRAWRWRD7D7D0D0端口B方式1作输出:PC2PC1PC0PB7PB0INTEBOBFBINTRBACKB外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据中断允许触发器方式1输出联络信号nOBF*输出缓冲器满信号,低有效输出缓冲器满信号,低有效n8255A输
19、出给外设的一个控制信号,当其有效时,输出给外设的一个控制信号,当其有效时,表示表示CPU已把数据输出给指定的端口,外设可以取走已把数据输出给指定的端口,外设可以取走nACK*响应信号,低有效响应信号,低有效n外设的响应信号,指示外设的响应信号,指示8255A的端口数据已由外设的端口数据已由外设接受接受nINTR中断请求信号,高有效中断请求信号,高有效n当输出设备已接受数据后,当输出设备已接受数据后,8255A输出此信号向输出此信号向CPU提出中断请求,要求提出中断请求,要求CPU继续提供数据继续提供数据联络信号联络信号 端口端口A 端口端口B OBF*对应对应PC7对应对应PC1 ACK对应对
20、应PC6 对应对应PC2 INTR对应对应PC3 对应对应PC0 INTEPC6置位置位 PC2置位置位 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 、 PC2 A端口输入、输出用不同的C端口的位 B端口输入、输出用相同的C端口的位 B端口只有方式 1 选通输入/输出 A端口还有方式 2 双向数据传送C端口未被使用的位A端口方式 0、B端口方式
21、 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 可作I/O用A端口方式2、B端口方式1;C口被用完,都不可作I/O用3. 3. 方式方式2 2(双向选通方式)n方式方式2 2将方式
22、将方式1 1的选通输入输出功能组合成一个双向数据的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据端口,可以发送数据和接收数据n只有端口只有端口A A可以工作于方式可以工作于方式2 2,需要利用端口,需要利用端口C C的的5 5个信号个信号线,其作用与方式线,其作用与方式1 1相同相同n方式方式2 2的数据输入过程与方式的数据输入过程与方式1 1的输入方式一样的输入方式一样n方式方式2 2的数据输出过程与方式的数据输出过程与方式1 1的输出方式有一点的输出方式有一点不同:不同:数据输出时数据输出时8255A8255A不是在不是在OBFOBF* *有效时向外设输出数据,有效时向外设
23、输出数据,而是在外设提供响应信号而是在外设提供响应信号ACKACK* *时才送出数据时才送出数据(1)方式2的信号定义PC6PC7PC3PA7PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用用PC6设置设置INTE1(输出)(输出)用用PC4设置设置INTE2(输入)(输入)输入和输出中断通过输入和输出中断通过或门输出或门输出INTRA信号信号8255A工作在方式2下的工作时序M MO OD DE E 2 2 B B1 1- -D DI IR RE EC CT TI IO ON NA AL L B BU US SO OU UT TW WR RO OB BF F
24、I IN NT TR RA AC CK KS ST TB BI IB BF FP PA A7 7- -P PA A0 0R RD DI IN NO OU UT TD DA AT TA A F FR RO OM MD DA AT TA A F FR RO OM MP PE ER RI IP PH HE ER RA AL L T TO O 8 82 25 55 58 82 25 55 5 T TO O P PE ER RI IP PH HE ER RA AL LC CP PU UD DA AT TA A B BU US SC CP PU U 8 82 25 55 5C CP PU U 8 82 2
25、5 55 5当数据端口作为输入工作时,在当数据端口作为输入工作时,在STBSTB有效时,由外设把输入数据送入端口,有效时,由外设把输入数据送入端口,并发出并发出IBFIBF有效信号。当有效信号。当CPUCPU执行执行ININ指令对该数据口进行读入操作后,由指令对该数据口进行读入操作后,由RDRD的上升沿使的上升沿使IBFIBF复位,为下一次输入数据作好准备。如果该数据端口的中断复位,为下一次输入数据作好准备。如果该数据端口的中断允许允许INTEINTE被置位,则在被置位,则在STBSTB信号回复到高电平时,信号回复到高电平时,8255A8255A通过通过INTRINTR向向CPUCPU发中发中
26、断请求。若断请求。若CPUCPU响应该中断请求,读取该数据端口的输入数据,则响应该中断请求,读取该数据端口的输入数据,则RDRD由下降由下降沿使沿使INTRINTR复位,为下一次数据输入请求中断作好准备。复位,为下一次数据输入请求中断作好准备。方式方式2应用接口电路图应用接口电路图系统总线IRQ0IRQ1IRQ2IRQ7主机INTR8259AINT主机 8255PC3(INTR)返回8255A的初始化 可以利用软件编程确定8255的3个端口工作于何种方式下。 8255A的各种工作方式由CPU对8255A写入控制命令字来设定,这个过程称为“初始化”。8255A有2种控制命令字: 方式选择控制字确
27、定3个端口的工作方式; C口置位/复位控制字确定C口某一位的初始状态,或用于设置INTE位(方式1,2)。8255A的初始化方式选择控制字D7 D6 D5 D4 D3 D2 D1 D0C口低位选择,口低位选择,1入入0出出B口口I/O选择,选择,1入入0出出B口方式选择,口方式选择,0=方式方式0 1=方式方式1B组组C口高位选择,口高位选择,1入入0出出A口口I/O选择,选择,1入入0出出A口方式选择口方式选择00=方式方式0 01=方式方式1 1X=方式方式2D7=1,方式控制字标志,方式控制字标志A组组8255A的初始化C口置位/复位控制字D7 D6 D5 D4 D3 D2 D1 D0置
28、位置位/复位复位选择选择1=置位,置位,0=复位复位D7=0为置为置位位/复位控复位控制字标志制字标志D3 D2 D1 位选择位选择 0 0 0 PC0 0 0 1 PC1 0 1 0 PC2 0 1 1 PC3 1 0 0 PC4 1 0 1 PC5 1 1 0 PC6 1 1 1 PC7无效无效8255A的初始化方式选择控制字 在方式 1、2下,C口作为A口、B口联络信号的引脚,其动作关系在芯片设计和制造时已固定,不由用户自己安排,也不能编程改变。即C口作为联络信号的引脚:不受方式控制字的控制。该出则出,该入则入。8255A的初始化MOV DX,387H ;设控制口地址MOV AL,82H
29、 ;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信号。程序流程如右示。 CPU PA07PC6PC2地 地BUSYSTBDATA07111298255A打印机插座结 束8255A 初始化BUSY=0?送 数送 STB#开始YN 例:利用8255A作为打印机的连接接口,要求CPU通过接口采用查询方式
30、,把存放在从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置位,即1 OUT DX, AL ;C口置
31、位/复位控制字送控制寄存器打印一组字符的程序段如下: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, 0FBD0H;A口地址送DXOUT DX,AL ;将内存中的一个字符输出到A口MOV DX, 0FBD3
32、H ;控制口地址MOV AL, 00001100H ;设定C口按位操作控制字,置为低( PC6 0)NOP ;使负脉冲宽度延时NOPMOV AL, 00001101B ;置为高电平 ( PC6 1),在PC6上生成1个负脉冲OUT DX, ALINC SI ;指向内存中下一个字符DEC CX ;字符数减1JNZ PL ;若输出字符未完,则继续 HLT ;若输出字符已完,则暂停方式1输出的联络信号定义ACK:应答信号,外设 8255A, 表示外设已取走数据 PC6 PC2INTR:中断申请,8255A CPU,高有效,请求CPU写数 PC3 PC0PA口PB口OBF:输出缓冲器满,8255A 外
33、设,低电平通知外设取数 PC7 PC1中断产生条件:INTE1,ACK=OBF=1,则INTR=1INTE:中断允许,内部控制,1:允许中断,=0:禁止 对PC6置/复位 对PC2置/复位8255A方式1 从图可见,当CPU通过接口要求打印机打印数据时,先要查看BUSY信号,BUSY0时,才能向打印机输出数据,在把数据送上DATA线后,先发STB#=0信号通知打印机,打印机接到STB#=0后,发出BUSY1,接收效据,当数据接收好并存入内部打印缓冲器后,送出ACK#=0信号,表示打印机已准备好接收新数据,并复位BUSY=0。DATA0DATA7STBBUSYACK例2 设8255A为工作方式1
34、,A口为输出。当外设向8255A发回的应答信号变为高电平时,若允许8255A向CPU发中断请求信号,则必须设置中断允许信号INTEA1,即置PC61;若禁止它产生中断请求,则INTEA0,即置PC60。假定端口的地址范围为300H303H,其程序段为: MOV DX, 303H;置8255A控制口MOV AL, 00001101B ;置C口按位控制字,使PC61,允许发中断请求 OUT DX, ALMOV AL, 00001100B ;置PC60,禁止发中断请求OUT DS,AL 8255A打印机接口8255口线的使用 A为数据通道,方式1,输出 PC0产生打印机的选通脉冲 PC7未用;PC6
35、为/ACK输入 PC3自动作INTR,接中断控制器8259A的IR3 ,中断类型号0BH,中断向量在0002CH0002FH单元 通道C其他位及通道B未用PA7PA7PA0PA0PC7PC7PC6PC6PC3PC3INTEAINTEAPC6PC6与门与门ACKAACKAOBFAOBFAINTRAINTRAWRWRD7D7D0D08255初始化MOV DX,303H;MOV AL,0A0H;初始化,1010XXX0OUT DX,AL ;A口方式1,出;PC0出MOV AL,1;PC0=1,选通无效OUT DX,AL设置中断向量设置中断服务入口0100H:2000HPUSH DS;保护原数据段XO
36、R AX,AXMOV DS,AX;设向量表段地址为0000HMOV AX,2000HMOV WORD PTR 002CH,AX;中断服务程序偏移地址MOV AX,0100HMOVWORD PTR 002EH,AX;中断服务程序段地址POPDS;恢复原数据段8255中断设置MOV AL,0DH;0000 1101;PC6 置1OUT 0C6H,AL ;允许8255A中断STI;CPU开中断;主程序中断服务程序 中断服务程序发选通信号,将数据送打印机 打印机接收并打印字符后发出应答信号,清除8255A的数据缓冲区满信号RINT:MOV AL,DI;输出字符送A通道MOV DX,300HOUT DX
37、,ALMOV AL,0; PC0产生低电平脉冲选通信号MOV,DX,303HOUT DX,AL;0000 0000, PC0置0INCALOUT0C6H,AL; 0000 0001, PC0置1 ;后续处理IRET ;中断返回 例3 利用OBF#作为触发打印机选通信号方式1输出若将8255A的端口A与打印机相连,使A口工作于方式1下输出,并利用中断方式向打印机输出一组(字符串长度为256字节)字符,打印机接口连接电路如图所示。试编写采用中断方式传送一组打印字符的程序段。 假定8255A的端口地址范围为300H303H,8259A的端口地址为020H与021H。初始化时使A口为方式1、输出,B口
38、可任意设定为方式0、输出,C口除联络线以外的5位线也均设定为输出,则方式选择控制字为10100000B(0A0H)。允许A口输出中断请求的INTEA中断允许信号,由C口置位/复位控制字对PC6置位来设定。 中断打印输出字符的程序由主程序MAIN和中断服务子程序SUBP两部分组成。主程序MAIN MAIN:PUSH DS ;保存原DSMOV AX,SEG SUBP ;为打印驱动子程序入口SUBP设置新的中断向量DS:DXMOV DS,AX ;SUBP的段地址送DSMOV DX,OFFSET SUBP ;SUBP的偏移地址送DXMOV AH,25H ;设置中断向量的功能号AHMOV AL,0AH
39、;为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,00H ;设置空白字符的ASCII码 OUT DX,AL ;A口输出一个空白字符,以引发第一次中断请求MOV AX,OFFSET DATA ;打印字符串的标号DATA(首地址)的偏移地址送AXM
40、OV 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位字符送ALMOV STR _ PTR,SI;将自动增1后的SI保存于新的字符串指针MOV DX,300H ;8255A的A口地址OUT DX,AL;将AL的一个打印字符输出到A口 MOV CX
41、,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; 中断返回 8255A应用举例LED开关接口。8086CPU通过8255用开关与8段LED显示器的接口如图示。8255A PA口加驱动器接LED显示输出;PB口低4位接开关输入;PC
42、口不用。8255A的A0、A1接地址总线的A1、A2,其端口地址为:0FFF8H、0FFFAH、0FFFCH、0FFFEH。要求:开关设置的二进制信息由8255A的PB口输入后,通过PA口输出给8段LED显示器,显示开关状态所对应的十六进制值,试编制其控制程序。1K0K0PA1PA2PA3PA4PA5PA6PA7PAV53K2KV507DD0A1ACSRDWRRESETA8255译码器锁存器07ADAD1A2ARDWRRESET819ADADALE319AA8086abcdefgDP3PB2PB1PB0PB8255A应用举例(1)控制字的设置 8255A的负载能力较小,PA输出口加驱动。 PA
43、口设为方式0输出,PB口设为方式0输入。 由于地址总线的A0位未用,则8255A的每个端口有两个地址。通常使用A0=0的地址。 则方式选择控制字为:100001B 因未使用C口,故不需设置置位/复位控制字。8255A应用举例(2)开关状态与LED显示值关系 开关Ki闭合,则PBi=0,否则PBi=1。PB3PB0值与LED显示值关系:PB3PB0LED显示显示PB3PB0LED显示显示00000100080001110019001021010a001131011b010041100b010151101d011061110e011171111f8255A应用举例(3)PA口输出值与LED显示值间
44、关系8段码.gfedcba形状LED显示8段码.gfedcba形状LED显示10001111F11111000710000110E10000010610100001D10010010511000110C10011001410000011B10110000310001000A1010010021001100091111100111000000081100000008255A应用举例(4) PB口输入值转换成PA口输出值方法 将前述8段码按0F顺序连续存放于内存中; 将PB3PB0对应值置于AL中; 执行换码指令XLAT。指令执行:(AL+BX)AL8255初始化B口输入开关信息屏蔽B口信息的高4
45、位转换成8位进制数经A口输出延时8255A应用举例 ORG 2000H ;定位程序的段内地址;定位程序的段内地址 MOV AL,82H ;82H=10000010B MOV 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;开关值段选码输出
46、显示;开关值段选码输出显示 MOV AX,56CH ;显示延时;显示延时 DEC AX JNZ DELAY JMP RDPORTB ;循环读开关新状态;循环读开关新状态 HLT ORG 2500H ;定位段选码表的段内地址;定位段选码表的段内地址SSEGCODE DB 0C0H,0F9H,0A4H ,0B0H,99H,92H,82H ;段码表;段码表 DB 0F8H,80H, 98H,88H,83H, 0C6H,0A1H,86H, 8EHRDPORTB:DELAY:8255初始化初始化B口输入开关信息口输入开关信息屏蔽屏蔽B口信息的高口信息的高4位位转换成转换成8位进制数位进制数经经A口输出口
47、输出延时延时两种方式并行传送接口设计1 .要求 在甲乙两台微机之间并行传送1K字节数据。甲机发送, 乙机接收。甲机一侧的8255A采用1方式工作,乙机一侧的8255A采用0方式工作。两机的CPU与接口之间都采用查询方式交换数据。2.分析 双机均采用可编程并行接口芯片8255A构成接口电路,只是8255A的工作方式不同。此时,双方的8255A把对方视为I/O设备。3.设计(1)硬件连接 根据上述要求,接口电路的连接如图所示。(2)软件编程 接口驱动程序包含发送与接收两个程序。0方式方式1方式方式8255APA07PC7PC3PC46PC02PB07PA07PC7PC6PC3PC02、45PB07
48、未未用用8255A甲甲(发送发送)CPU乙乙(接收接收)CPUACKOBF两种方式的并行传送接口电路框图两种方式的并行传送接口电路框图甲机发送程序段:MOV DX,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 ,A
49、L INC SI INC SI ;内存地址加;内存地址加1 1 DEC CX DEC CX ;传送字节数减;传送字节数减1 1L L: MOV DXMOV DX,202H 202H ;8255A8255A状态口状态口 IN ALIN AL, DX DX ;查发送断请求;查发送断请求INTRINTRA A=1=1? AND ALAND AL,08H 08H ;PCPC3 3=1=1? JZ L JZ L ;若无中断请求,则等待;若无中断请求,则等待; ;若有中断请求,则向;若有中断请求,则向A A口写数口写数 MOV DXMOV DX,200H 200H ;8255APA8255APA口地址口地址 MOV ALMOV AL,SI SI ;从内存取数;从内存取数 OUT DXOUT DX,AL AL ;通过;通过A A口向乙机发送第二个数据口向乙机发送第二个数据 INC SI INC SI ;内存地址加
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环保公司解除租赁协议
- 污水处理招投标委托书范例
- 农业物流服务合同管理指南
- 文化产业严禁参与盗版侵权承诺书
- 公共广场地砖铺设合同
- 建筑加固改造升级劳务协议
- 上海市工业园区基础设施施工合同
- 医疗机构用工规范承诺书
- 石油开采设备日常养护管理办法
- 渔业捕捞与加工合同
- 2022年火力发电建设工程启动试运及验收规程
- 妇产科病史采集临床思维
- 资产评估的应急措施
- 5G定制网核心网练习试题附答案
- 背景调查表(标准样本)
- 汽车构造复习
- 【酒店人力资源管理问题研究文献综述3000字】
- 读书分享交流会《亲爱的安德烈》课件
- 2022年英语二真题(含答案及解析)【可编辑】
- 月度安全管理综合考核表
- 以案说法发言材料范文九篇
评论
0/150
提交评论