微机原理第10章并行接口芯.ppt

上传人:牧羊曲112 文档编号:6284479 上传时间:2023-10-13 格式:PPT 页数:44 大小:313.50KB
返回 下载 相关 举报
微机原理第10章并行接口芯.ppt_第1页
第1页 / 共44页
微机原理第10章并行接口芯.ppt_第2页
第2页 / 共44页
微机原理第10章并行接口芯.ppt_第3页
第3页 / 共44页
微机原理第10章并行接口芯.ppt_第4页
第4页 / 共44页
微机原理第10章并行接口芯.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《微机原理第10章并行接口芯.ppt》由会员分享,可在线阅读,更多相关《微机原理第10章并行接口芯.ppt(44页珍藏版)》请在三一办公上搜索。

1、第10章 并行接口芯片8255,10.1 可编程的并行接口芯片8255A-5的结构10.2 方式选择10.3 方式0的功能10.4 方式1的功能10.5 方式2的功能10.6 8255应用举例,概述,并行接口:实现并行通信的接口就是并行接口,是在多根数据线上,以字节/字为单位与I/O设备交换数据 计算机与外设交换信息的过程中:并行通信:多位数据通过多条数据线同时传送。串行通信:多位数据通过同一条数据线按位传送。并行通信就是把一个字符的各数位用几条线同时进行传输。与串行通信(一位一位传输)相比,在相同传输率下,并行通信的信息实际传输速度快、信息率高。但并行通信比串行通信所用电缆多,随着距离的增加

2、,电缆的开销会成为突出的问题。所以,并行通信总是用在数据传输率要求较高,而传输距离较短的场合。,一个并行接口可以设计为只用来作为输出接口,也可以只用来作为输入接口,此外,还可以把它设计成既作为输入又作为输出的接口。在计算机内部数据是并行传送的。因此,并行接口电路相对简单,串行接口电路由于要进行串并行转换相对复杂。并行接口电路芯片常用的有两类:普通的8位锁存器及缓冲器可编程设置工作方式的并行接口,并行接口连接外设的示意图,10.1 可编程的并行输入/输出接口芯片 8255A-5的结构,它由以下几部分组成:1数据端口A、B、C它有三个输入/输出端口:Port A、Port B和Port C。每一个

3、端口都是8位,都可以选择作为输入或输出。2A组和B组控制电路这是两组根据CPU的命令字控制8255A工作方式的电路。它们有控制寄存器,接受CPU输出的命令字,然后分别决定两组的工作方式,也可根据CPU的命令字对端口C的每一位实现按位“复位”或“置位”操作。,8255A内部结构,3数据总线缓冲器这是一个三态双向8位缓冲器,它是8255A与系统数据总线的接口。4读/写和控制逻辑它与CPU的地址总线中的A1、A0以及有关的控制信号()相连,由它控制把CPU的控制命令或输出数据送至相应的端口;也由它控制把外设的状态信息或输入数据通过相应的端口,送至CPU。,5控制信号功能(1)(Chip Select

4、)选片信号,低电平有效,由它启动CPU与8255A之间的通信(2)读信号,低电平有效。它控制8255A送出数据或状态信息至CPU。(3)写信号,低电平有效。它控制把CPU输出的数据或命令信号写到8255A。(4)RESET复位信号,高电平有效,它清除控制寄存器并置所有端口(A、B、C)为输入方式。,6端口寻址8255A中有三个输入输出端口,另外,内部还有一个控制字寄存器,共有四个端口,要有两个输入端来加以选择,这两个输入端通常接到地址总线的最低两位A1和A0。,(1)与外设一边相连的引脚 PA7PA0:端口A数据线。PB7PB0:端口B数据线。PC7PC0:端口C数据线。,(2)与CPU相连的

5、引脚 D7D0:双向数据线,与系统数据总线相连。CPU通过它向8255A发送命令、数据;8255A向CPU回送状态、数据。CS:片选信号,低电平有效。由系统地址总线经地址译码器产生,是8255A芯片被选中的信号。只有信号有效,CPU才能对8255A进行读写。当为高电平时,切断CPU与芯片的联系。RD:读信号,低电平有效。与系统读控制线相连,当有效时,CPU可以从8255A中读取输入数据。WR:写信号,低电平有效。与系统写控制线相连,当有效时,CPU可以向8255A写入控制字或数据,完成输出指令的功能。A1、A0:端口选择信号。与系统地址总线低位相连,用来对8255A内部三个数据端口及一个控制端

6、口寄存器进行寻址。RESET:复位信号,高电平有效。与系统复位信号线,或自行设置的复位信号线相连。复位造成的结果是把所有内部寄存器清“0”,且三个数据端口被自动设置为输入端口。,二.8255A引脚说明,(3)电源和地线:Vcc和GND。,8255A的控制信号和传输动作的对应关系,10.2 方式选择,8255A有三种基本的工作方式。(1)方式0(Mode 0)基本输入/输出;(2)方式1(Mode 1)选通输入/输出;(3)方式2(Mode 2)双向传送。,8255A的工作方式,可由CPU用I/O指令输出一个控制字到8255A的控制字寄存器来选择。这个控制命令字的格式如图所示。可以分别选择端口A

7、和端口B的工作方式,端口C分成两部分,上半部随端口A,下半部随端口B。端口A能工作于方式0、1和2,而端口B只能工作于方式0和1。,对A1A0=11的端口写入D7=1的数据,工作方式控制字:,端口C的8位中的任一位,可用一条输出指令来置位或复位(其它位的状态不变)。这个功能主要用于控制。,对A1A0=11的端口写入D7=0的数据表示对口C进行位操作。(注意:对A1A0=10的端口操作表示对C口进行字节操作。),端口C置1/置0控制字:,1 例如,设一片8255A的口地址为60H63H,PC5平时为低电平,要求从PC5的引脚输出一个正脉冲。可以用程序先将PC5置1,输出一个高电平,再把PC5清O

8、,输出一个低电平,结果,PC5引脚上便输出一个正脉冲。实现这个功能的程序段如下:,MOV AL,00001011BOUT 63H,ALMOV AL,00001010BOUT 63H,AL,2、A口方式0,输出、B口方式0,输入,C口高4位输出,C口低4位输入 MOV AL,1000 0011B OUT 63H,AL,3、PC7置1,PC3置0,MOV DX,263HMOV AL,0000 1111B;PC7置1OUT DX,ALMOV AL,0000 0110B;PC3置0OUT DX,AL,10.3 方式 0 的功能,方式0是一种基本的输入或输出方式。在这种工作方式下,方式0不使用联络信号,

9、也不使用中断,A口和B口可定义为输入或输出口,C口分成两个部分(高四位和低四位),C口的两个部分也可分别定义为输入或输出。在方式0,所有口输出均有锁存,输入只有缓冲,但无锁存,C口还具有按位将其各位清0或置1的功能。,10.4 方式1的功能,A口借用C口的一些信号线用作控制和状态线,形成A组,B口借用C口的一些信号线用作控制和状态线,组成B组。在方式1下,A口和B口的输入输出均带有锁存。A口、B口可以分别作为数据口工作在方式1。需要使用C口中特定的引脚作为选通和应答使用。C口中其余的引脚仍可工作在方式0,定义为输入或输出使用。适合用于中断式传送和程序查询方式I/O传送。,数据选通信号表示外设已

10、经准备好数据,输入缓冲器满信号表示A口已经接收数据,中断请求信号请求CPU接收数据,PC4,PC5,PC3,PA7PA0,INTEA,IBFA,INTRA,STBA,A口、方式1、输入,可通过对PC4置位或复位来设置INTEa。,说明:当外设数据准备好以后,发出一个负脉冲选通信号STB,使A口打开锁存器接收数据。A口接收到数据以后,发出IBFA,由RD信号的上升沿使IBFA恢复低电平。STB和IBFA都变为高电平以后,如果INTEA允许,则8255A发出中断请求信号,以便使CPU接收数据。RD信号的下降沿使INTRA恢复低电平。可以通过对PC4的置位和复位来设置INTEA。,可通过对PC2置位

11、或复位来设置INTEB。,外设响应信号表示外设已经接收到数据,输出缓冲器满信号表示CPU已经输出了数据,中断请求信号请求CPU再次输出数据,可通过对PC6置位或复位来设置INTEa。,说明:当CPU向端口A输出数据以后,在WR的上升沿使OBFA变为低电平。当外设接收到数据以后,发出一个负脉冲ACKA送给8255A,使OBFA变为高电平。ACKA和OBFA都变为高电平以后,如果INTEA允许,则8255A发出中断请求信号,以便使CPU再次输出数据。WR的下降沿使INTRA恢复低电平。可以通过对PC6的置位和复位来设置INTEA。,B口、方式1、输出,可通过对PC2置位或复位来设置INTEB。,1

12、0.5 方式2的功能方式2是A组独有的工作方式。外设既能在A口的8条引线上发送数据,又能接收数据。此方式也是借用C口的5条信号线作控制和状态线,A口的输入和输出均带有锁存。,A口可以作为数据口工作在方式2。相当于是A口工作在方式1的输入和输出的叠加。,用PC6设置INTE1,用PC4设置INTE2。,输入和输出中断通过或门输出INTR信号。,8255应用举例 P319,双机并行通信接口,乙机(接收),甲机(发送),CPU,PA07,未用,CPU,8255,PC7,PC6,PC3,PB07,PC07,8255,PC4,PC0,PC57,PB07,PC,PA07,0方式,1方式,OBF,ACK,I

13、NTRa,要求:在甲乙2台微型计算机之间并行传送1KB数据。甲机发送,乙机接收。甲机一侧的8255采用方式1工作,乙机一侧的8255采用方式0工作。两台微机的CPU与接口之间都采用查询方式交换数据。分析:双机均采用可编程并行接口芯片8255构成接口电路,只是8255的工作方式不同。设计:硬件连接如图 甲机:方式1,A口,输出,PC6为ACK信号,PC7为OBF信号 乙机:方式0,A口,输入,任选PC0,PC4作为联络信号 端口地址均为300h303h,INC BX DEC CXL:MOV DX,302H IN AL,DX AND AL,08H JZ L MOV DX,300H MOV AL,E

14、S:BX OUT DX,AL INC BX DEC CX JNZ L MOV AX,4C00H INT 21H,编程,甲机发送程序:MOV DX,303HMOV AL,1010 0000B;OUT DX,ALMOV AL,0000 1101BOUT DX,ALMOV AX,030HMOV ES,AXMOV BX,00HMOV CX,3FFHMOV DX,300HMOV AL,ES:BXOUT DX,AL,端口a,方式1,输出端口c的PC6置1将030h:0000h内存中的一个字节送甲机8255的A口,产生OBF信号,将端口C读入al,检查PC3(intra)上是否为高电平若有中断请求,则继续送

15、数,乙机接收程序:MOV DX,303HMOV AL,1001 1000BOUT DX,ALMOV AL,0000 0001BOUT DX,ALMOV AX,040HMOV ES,AXMOV BX,00HMOV CX,3FFHL1:MOV DX,302H IN AL,DX AND AL,10H JNZ L1,MOV DX,300HIN AL,DXMOV ES:BX,ALMOV DX,303Hmov AL,0000 0000BOUT DX,ALNOPNOPMOV AL,0000 0001BOUT DX,ALINC BXDEC CXJNZ L1MOV AH,4CHINT 21H,端口a,方式0,输

16、入,c口高四位输入,c口低四位输出端口c的PC0置1将c口读入al,检查PC4是否为0,即甲机是否发送给乙机有效的OBF信号,将端口a读入al,再送入内存中端口c的PC0置0产生ACK端口c的PC0置1,ack置1,甲机的PC3会给cpu发出intra请求再送数据,应用举例,例1:在一系统中,要求8255工作在方式0,A口为输入,B口、C口为输出。,Mov al,1001 0000B Out 63h,al;送控制字到控制字寄存器。Call delay1 In al,60h;从A口输入数据 Call delay2 mov al,data1 Out 61h,al;从B口输出数据 Call dela

17、y3 mov al,data2 Out 62h,al;从C口输出数据,例2:假定在一个系统中,要求8255A.B均工作在方式1,端口A为输出,端口B为输入,PC4PC5为输入,禁止端口B中断,允许端口A中断,设端口地址为1230h1233h,Mov al,1010 1111B;控制字Mov dx,1233h;控制寄存器地址 Out dx,al;送入控制字寄存器Mov al,0000 1001B;A口的INTE(PC4)置1Out dx,al;送入控制字寄存器Mov al,0000 0100B;B口的INTE(PC2)置0Out dx,al;送入控制字寄存器,8255A的应用举例一、基本输入输出

18、应用举例 在工业控制等实际应用中,经常需要检测某些开关量的状态。例如,在某一系统中,有8个开关K 7K0,要求不断检测它们的通断状态,并随时在发光二极管lED7LED0上显示出来。开关断开,相应的LED点亮;开关合上,lED熄灭。我们选用8086 CPU,8255A和74LSl38译码器等芯片,构成如图所示的硬件电路,,8255A的A口作输入口,8个开关K7K0。分别接PA7PA0,B口为输出口,PB7PB0分别接显示LED7LED0。,8255A的RD、WR和RESET引脚分别与CPU的相应输出相连。8255A的数据线D7D0与8086的低8位数据总线D7D0相连,从上一章的讨论可知,这时8

19、255A的4个口地址都应为偶地址,A0必须总等于0,用地址线的A2、A1来选择片内的4个端口。图中,地址线A7接译码器的G1,MIO而与G2A相连,A6、A5接与非门输入端,与非门输出与G2B相连。当A7A6A5=111,A4A3A0=100时,Y4=0,选中8255A。这样,4个端口地址分别为F0H、F2H、F4H和F6H,对应于8255A的A口、B口、C口和控制字寄存器。,编程时先要确定方式选择控制字。由于A口工作于方式0输入,B口为方式O输出,C口未用,控制字中与C口对应的位可以被置为0,这样写入控制端口F6H的控制字为10010000B。完成初始化后,即可将A口的开关状态读入寄存器AL

20、若开关合上,AL中的相应位为O,断开则为1。当把AL中的内容从B口输出时,相应于O的位上的LED熄灭,表示对应的开关是合上的;否则LED点亮,指示开关断开。具体程序如下:,M0V DX,OF6H MOV AL,1001OOOOB OUT DX,ALTEST-IT:MOV DX,OFOH IN AL,DX MOV DX,OF2H OUT DX,AL JMP TEST-IT,;控制字寄存器;控制字;写入控制字;指向A口;从A口读入开关状态;指向B口;B口控制LED,指示开关状态;循环检测,习题1:8255A为连接打印机的接口,工作在方式0,输出 工作过程:需要打印时,查询打印机是否忙?不忙时通过8

21、255A发送一个字符给打印机。为使打印机接收数据,要生成一个选通脉冲(初始值是1,置0,再置1)。,8086,8255A,打印机,D7D0,PA,PC6,PC2,STB,BUSY,查询式打印机接口示意图,习题1 题解:,A口:方式0、输出数据下C口:方式0、PC2输入状态信号上C口:方式0、PC6输出选通信号,方式控制字为:10000001B。,为增强驱动能力,可加门电路驱动,设端口地址:0D0H0D3H,要打印的字符放在BL中。程序如下:Setup:MOVAL,81H;设置工作方式OUT0D3H,ALMOV AL,0DH;PC6置1,0DH=0000,1101OUT0D3H,ALReady:

22、IN AL,0D2H;读PC口TESTAL,04H;打印机忙否(PC2=BUSY=?)JNZReady;PC2=1,打印机忙,等待MOVAL,BL;打印的字符送AL中OUT0D0H,AL;BL中的字符送PA口MOV AL,0CH;置PC6为0OUT0D3H,AL;置PC6=0,即=0;00001100=0CHINC AL;置PC6为1OUT0D3H,AL;置PC6=1,即=1,00001101=0DH,设8255的端口A、B、C和控制寄存器的地址为F4H、F5H、F6H、F7H,要使A口工作于方式0输出,B口工作于方式1输入,C口上半部输入,下半部输出,且要求初始化时PC6=0,试编写初始化程序。8255A的方式选择字和置位复位字都写入什么端口?用什么方式区分他们?若要使8255A的三个端口和控制寄存器的地址均为偶地址,则8255的A0.A1应与系统地址总线怎么连接?8255的端口地址分别为80H,82H,84H,86H,若A口工作在方式0输入,B口工作在方式1输出,C口各位的作用是什么?控制字是什么?若B口工作在方式0输出,A口工作在方式1输入,C口各位的作用是什么?控制字是什么?,作业,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号