第3章2并行接口ppt课件.ppt

上传人:本田雅阁 文档编号:2525844 上传时间:2019-04-05 格式:PPT 页数:76 大小:1.30MB
返回 下载 相关 举报
第3章2并行接口ppt课件.ppt_第1页
第1页 / 共76页
第3章2并行接口ppt课件.ppt_第2页
第2页 / 共76页
第3章2并行接口ppt课件.ppt_第3页
第3页 / 共76页
亲,该文档总共76页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第3章2并行接口ppt课件.ppt》由会员分享,可在线阅读,更多相关《第3章2并行接口ppt课件.ppt(76页珍藏版)》请在三一文库上搜索。

1、内容提要: 并行接口的特点 可编程并行接口8255A,第3章 基本的I/O接口 - 并行接口,3.4 可编程并行接口8255A,并行接口的特点 并行接口最基本的特点是在多根据数据线上以数据字节(字)为单位与I/O设备或被控对象传送信息。 如: 打印机接口,A/D、D/A转换器接口,IEEE-488接口,开关量接口,控制设备接口等。 在并行接口中,除了少数据场合之外,一般都要求在接口与外设之间设置并行数据线的同时,至少还要设置两根握手(联线)信号线,以便进行互锁异步握手方式(即查询方式)的通信。,在并行接口中,8位或16位是一起行动的,因此,当采用并行接口与外设交换数据时,即使是只用到其中的一位

2、,也是一次输入/输出8位或16位。 并行传送信息,不要求固定的格式,这与串行传送的数据格式的要求不同。 对于各种型号的CPU都有与其配套的并行接口芯片。如Intel公司8255A(PPI),Zilog公司Z-80PIO,MC6820(PIO)等,它们的功能虽有差异,但工作原理基本相同。,3.4.1 8255A的基本特性,具有两个8位(A口和B口)和两个4位(C口高/低4位)并行I/O端口的接口芯片。 能适应CPU与I/O接口间的多种数据传送方式的要求 可执行功能很强,内容丰富的命令(方式字和控制字)为用户如何根据外界条件(I/O设备需要哪些信号线以及它能提供哪些状态线)来使用8255A构成多种

3、接口电路,组成微机应用系统提供了灵活方便的编程环境。 PC口的使用比较特殊,除作数据口外,当工作在1方式和2方式时,它的大部分引脚被分配作专用联络信号;PC口可以进行按位控制;在CPU读取8255A状态时,PC口又作1,2方式的状态口用,等等。 8255芯片内部主要由控制寄存器、状态寄存器和数据寄器组成。,3.4.2 8255A的内部结构, 数据总线缓冲器。这是一个三态双向8位缓冲器,它是8255A与CPU系统数据总线的接口。 读/写控制逻辑。读/写控制逻辑由读信号RD、写信号WR、选片信号CS以及端口选择信号A1A0等组成。 输入/输出端口A、B、C。8255A包括3个8位输入输出端口(po

4、rt)。每个端口都有一个数据输入寄存器和一个数据输出寄存器。 A组和B组控制电路。控制A、B和C三个端口的工作方式。,8255A的内部结构由4个部分组成,端口A:PA0PA7 A组,支持工作方式0、1、2 常作数据端口,功能最强大 端口B:PB0PB7 B组,支持工作方式0、1 常作数据端口 端口C:PC0PC7 仅支持工作方式0 可作数据、状态和控制端口 分两个4位,每位可独立操作 A组控制高4位PC4PC7 B组控制低4位PC0PC3,外设数据端口,8255A是一个单+5V电源供电, 40个引脚的双列直插式组件。,3.4.3 8255A的外部引脚,面向数据总线的有: D0D7:双向数据线,

5、用于CPU向8255A发送命令、数据和8255A向CPU回送状态、数据和8255A向CPU回送状态、数据。 面向地址总线的有:A0、A1、CS# 面向控制总线的有: RD#:读信号,低电平有效 WR#:写信号,低电平有效 RESET:复位信号,高电平有效。它清除控制寄存器并将8255A 的A、B、C三个端口均置为输入方式;输入寄存器和状态寄存器被复位,并且屏蔽中断请求;24条面向外设信号线呈现高阻悬浮状态。,与系统总线的连接信号,PA0PA7:端口A的输入/输出线。 PB0PB7:端口B的输入/输出线。 PC0PC7:端口C的输入/输出线。 这24根信号线均可用来连接I/O设备和传送信息。其中

6、,A口和B口只作输入/输出的数据口用,尽管有时也利用它们从I/O设备读取一些状态信号,如打印机的“忙”(Busy)状态信号、A/D转换器的“转换结束”(EOC)状态信号,但对A口和B口来说,都是作8255A的数据口读入,而不是作8255A的状态口读入的。,与外部设备的连接信号,C口的作用与8255A的工作方式有关,它除了作数据口以外,还有其他用途,故C口的使用比较特殊,单独介绍如下: a.作数据口。 b.作状态口。 c.作专用(固定)联络(握手)信号线。 d.作按位控制用。,C口的作用,3.4.4 8255A基本操作与端口地址,方式命令(Add: +3) 按位置位/复位命令(Add: +3),

7、3.4.5 8255A的编程命令,作用:指定8255A的工作方式及其方式下3个并行端口(PA、PB、PC)的功能,是作输入还是作输出。 格式:8位,其中最高位是特征位,一定要写1,其余各位定义如下,应根据用户的设计要求填写1或0。,1、方式命令(Add: +3),工作方式命令代码是:10010001B或91H。 若将此命令代码写到8255A的命令寄存器,即实现了对8255A工作方式及端口功能的指定,或者说完成了对8255A的初始化。初始化的程序段为: MOV DX,303H ;8255A命令口地址 MOV AL,091H ;初始化命令 OUT DX,AL ;送到命令口,举例:把A口指定为0方式

8、,输入,C口上半部为输出;B口指定为0方式,输出,C口下半部定为输入。,作用:指定PC口的某一位(某一个引脚)输出高平或低电平。 格式:8位,其中最高位是特征位,一定要写0,其余各位的定义如下,应根据用户的设计要求填写1或0.,2、按位置位/复位命令(Add: +3),命令字应该为00000101B或05H。 将该命令的代码写入8255A的命令寄存器,就会使得从PC口的PC2引脚输出高电平,其程序段为: MOV DX,303H ;8255A命令口地址 MOV AL,05H ;使PC2=1的命令字 OUT DX,AL ;送到命令口 如果要使引脚PC2输出低电位,则程序段为: MOV DX,303

9、H ;8255A命令口地址 MOV AL,04H ;使PC2=0的命令字 OUT DX,AL ;送到命令口,举例:把C口的PC2引脚置成高电平输出,利用C口的按位控制特性还可以产生、负脉冲或方波输出,对外设进行控制。该例程序段为: MOV DX,303H ;8255A命令口 MOV AL,00001110B ;置PC7=0 OUT DX,AL NOP ;维持低电平 NOP MOV AL,00001111B ;置PC7=1 OUT DX,AL,举例:利用8255A的PC7产生负脉冲, 作打印机接口电路的数据选通信号, 方式命令是对8255A的3个端口的工作方式及功能进行指定,即进行初始化,初始工

10、作要在使用8255A之前做。 按位置位/复位命令只是对PC口的输出进行控制,实现动态控制的一种支持。它可放在初始化程序以后的任何地方。 两个命令的最高位(D7)都分配作了特征位,之所以要设置特征位,是为了识别两个不同的命令。 按位置位/复位的命令代码只能写入命令口。,3、关于两个命令的讨论,A口、B口也可以按位输出高低电平,但是,它与前面的按位置位/复位命令有本质的差别,并且实现的方法也不同C口。按位输出是以送数据到A口、B口来实现的,其具体作法是:若要使某一位置高电平,则先对端口进行读操作,将读入的原输出值,“或”上一个字节,字节中使该位为1,其他位为0,然后再送到同一端口,即可使该位为0,

11、然后再送到同一端口,即可使该位置位。,4、A口和B口另一个有趣的使用方法,程序段为: MOV DX,300H ;PA数据口地址 IN AL,DX ;读入A口原输出内容 MOV AH,AL ;保存原输出内容 OR AL,80H ;使PA7=1 OUT DX,AL ;输出PA7 MOV AL,AH ;恢复原输出内容 OUT DX,AL,举例:使PA7位输出高电平,MOV DX,300H ; A口地址 IN AL,DX ;读入端口原输出值 MOV AH,AL ;保存原输出值 AND AL,7FH ;使PA7=0 OUT DX,AL ;输出PA7 MOV AL,AH ;恢复原输出内容 OUT DX,A

12、L,举例:使PA7位输出低电平,8255A的工作方式与端口有关, PA口有三种方式(0方式、1方式、2方式),PB口和PC口只有两种方式(0方式、1方式)。,3.4.6 8255A的工作方式,(1)特点 0方式是一种基本输入/输出工作方式。通常不用联络信号,或不使用固定的联络信号。 基本I/O方式是指查询方式传送,也包括无条件传送。 在0方式下,彼此独立的两个8位和两个4位并行口,都能被指定作为输入或者输出用。,1、 0方式及其应用,在0方式下不设置专用联络信号线,需要联络时,可由用户任意指定C口中的哪根线完成某种联络功能,这与后面要讨论的在1方式、2方式下设置固定的专用联络信号线不同。 是单

13、向I/O,一次初始化只能指定端口(PA、PB和PC)作输入或输出,不能指定端口同时既作输入又作输出。,(2)应用 作为通用的并行接口电路芯片,8255A 具有广泛的应用。 驱动LED数码管 打印机接口电路 ,LED数码管及其接口,发光二极管LED是最简单的显示设备 由7段LED就可以组成的LED数码管 LED数码管广泛用于单板微型机、微型机控制系统及数字化仪器中 LED数码管可以显示内存地址和数据等,LED数码管的工作原理,主要部分是7段发光管(拼成一个8字 ) 顺时针分别称为a、b、c、d、e、f、g 有的产品还附带有一个小数点h 通过7个发光段的不同组合 显示09 显示AF(实现16进制数

14、的显示) 显示个别特殊字符,如、P 等,LED数码管的结构,共阳极,共阴极,LED正极接到一块 应用时这个脚接VCC,LED负极接到一块 应用时这个脚接GND,单个LED数码管的显示,mov dx, 2F7H ; 2F7H为控制口地址 mov al, 10010000B ; 0方式,端口A输入,端口B输出 out dx, al ; 设置8255的工作方式 mov dx, 2F4H ; 2F4H为口A地址 in al,dx ; 读入端口A的值 mov dx, 2F5H ; 2F5H为口B地址 out dx, al ; 写B口,P125 例3.1 8086CPU通过8255A与开关和7段LED的接

15、口,MOV AL,82H ; 0方式,口A输出,口B输入 MOV DX,0FFFEH ;控制口地址 OUT DX,AL ;设置工作方式,初始化程序段,RDPORTB: MOV DL,0FFFAH ;口B地址 IN AL,DX ;读入开关的状态 AND AL,0FH ;取低4位 MOV BX,OFFSET SSECODE ;段码表首地址送BX XLAT ; ALDS:BXAL MOV AL,OF8H ;口A地址 OUT DX,AL ;将段码写A口至LED显示 MOV AX,56CH DEC AX JNZ DELAY ;显示延时 JMP RDPORTB ;重新取新的开关值 HLT ORG 2500

16、H ;断码表,首址 2500H ;十六进制数的显示代码表 SSEG CODE: DB 0C0H,0F9H,0A4H;OB0H,99H,92H,82H,0F8H DB 80H,98H,88H,83H,0C6H,0A1H,86H,8EH,根据开关状态显示程序段,单个LED数码管的显示,8086 CPU,tab db 3fh,06h,5bh,6fh ; 显示代码表 num db xx ; xx是要显示的一个数,只是 09中的一个 mov dx, controlport ; controlport为控制口地址 mov al, 10000000B ; 端口A工作在0方式,输出,其它口任意 out dx,

17、 al ; 设置8255的工作方式 mov bx, offset tab mov al, num xlat ; 换码:ALDS:BXAL mov dx, porta ; porta为口A地址 out dx, al ; 将段码写A口,多个LED数码管的显示,8个数码管:用2个8位输出端口控制 硬件上用公用的驱动电路来驱动各数码管 软件上用扫描方法实现数码显示 每个显示2ms,8个LED数码管的接口电路,段选择码 (字符),位选择码,1)要求 为某应用系统配置一个并行打印机接口,并且通过接口CPU采用查询方式把存放在BUF缓冲区的256个字(ASCII码)送去打印。 2)分析 由于打印接口直接面向

18、的对象是打印机接口标准,而不是打印机本身,因此打印机接口要按照接口标准的要求进行设计。,并行打印机接口设计,Centronics并行打印接口标准的信号线定义,Centronics并行接口时序,过程:采用查询方式时,打印机与CPU之间传送数据的过程是: 首先查询BUSY。若BUSY=1,打印机忙,则等待;若BUSY=0,打印机不忙,则送数据。 通过并行接口把数据送给标准插座DATA BIT1DATA BIT8 数据线上,此时数据并未送入打印机。 再送出一个数据选通信号DATA STROBE-(负脉冲)给标准插座的1号引脚,把数据线上的数据打入到打印机的内部缓冲器。 打印机在收到数据后,通过插座的

19、11号引脚发出“忙”(BUSY=1)信号,表明打印机正在处理输入的数据。 最后在10号引脚上送出一个回答信号ACK-给主机,表示上一个字符已经处理完毕。,3)设计 接口电路的设计包括硬件接口电路和软件驱动程序两部分。 打印机接口电路。该电路的设计思路是:按照Centronicss 标准对打印机接口信号线的定义,最基本的信号线需要8根数据线(D07)、 1根控制线(STB),1根状态线(BUSY)和1根地线。选用8255A的PA口作数据口输出8位打印数据,工作方式为0方式。打印机接口电路原理框图如下图所示。,接口驱动程序 其程序流程图如右图所示。驱动程序的程序段如下:,CODE SEGMENT

20、ASSUME CS:CODE,DS:CODE ORG 100H START: MOV AX,CODE MOV CS,AX MOV DS,AX MOV DX,303H ;8255A命令口 MOV AL,10000001B ;工作方式字 OUT DX,AL ;(A口0方式,输出, C4C7输出,C0C3输入),MOV AL,00001111B ;PC7位置高,使STB-=1 OUT DX,AL MOV SI, OFFSET BUF ;打印字符内存首地址 MOV CX,OFFH ;打印字符个数 MOV DX,302H ;PC口地址 IN AL,DX ;查BUSY=0?(PC2=0) AND AL,0

21、4H ;00000100B JNZ L ;忙,则等待;不忙,则向A口送数 MOV DX,300H ;PA口地址 MOV AL,SI ;从内存取数 OUT DX,AL ;送数据到A口 MOV DX,303H ;8255A命令口 MOV AL,00001110B ;置STB-信号为低(PC7=0),L:,OUT DX,AL NOP ;负脉冲宽度(延时) NOP MOV AL,00001111B ;置STB-为高(PC7=1) OUT DX,AL INC SI ;内存地址加1 DEC CX ;字符数减1 JNZ L ;未完,继续 MOV AX,4C00H ;已完,退出 INT 21H BUF DB

22、256个ASCII字符代码 CODE ENDS END START,(1)特点 1方式是一种选通输入/输出方式或叫应答方式,因此,需设置专用的联络信号线或应答信号线,以便对I/O设备和CPU两侧进行联络。这种方式通常用于查询(条件)传送或中断传送。数据的输入输出都有锁存功能。 PA和PB为数据口,而PC口的大部分引脚分配作专用(固定)的联络信号的C口引脚,用户不能再指定作其他作用。,2、1方式及其应用, 各联络信号线之间有固定的时序关系,传送数据时,要严格按照时序进行。 输入/输出操作过程中,产生固定的状态字,这些状态信息可作为查询或中断请求之用。状态字从PC口读取。 单向传送。一次初始化只能

23、设置在一个方向上传送,不能同时作两个方向的传送。,1方式输入的联络信号线定义 因为输入是从I/O设备向8255A送数据进来,所以I/O设备应先把数据准备好,并送到8255A,然后CPU再从8255A读取数据。这个传递过程中需要使用一些联络信号线。所以当A口和B口为输入时,各指定了C口的3根线作为8255A与外设及CPU之间应答信号。 STB#:外设给8255A的“输入选通”信号,低电平有效。 IBF:8255A给外设的回答信号“输入缓冲器满”,高电平有效 INTR:8255A给CPU的“中断请求”信号,高电平有效。,(2)1方式下联络信号线的定义及其时序,1方式输入时联络信号线定义,1方式输入

24、的工作时序,tps,tST,tSTB,tSIT,tRIT,tRIB,tPH,IBF,INTR,来自外设的 输入数据,1方式输入时工作时序图,数据输入时,外设处于主动地位,当外设准备好数据并放到数据线上后,首先发STB-信号,由它把数据输入到8255A。 在STB的下降沿约300ns,数据已锁存到8255A的缓冲器后,引起IBF变高,表示8255A的“输入缓冲器满”,禁止输入新数据。 在STB的上升沿约300ns后,在中断允许(INTE=1)的情况下IBF的高电平产生中断请求,使INTR上升变高,通知CPU,接口中已有数据,请求CPU读取。 CPU得知INTR信号有效之后,执行读操作时,RD信号

25、的下降沿使INTR复位,撤消中断请求,为下一次中断请求作好准备。,信号交接的过程,从上述分析,可知在1方式下,数据从I/O设备发出,通过8255A,送到CPU的整个输入过程有如下4步:,CPU,8255A,I/O设备, STB-, INTR, IBF, RD-,1方式下输出的联络信号线定义(自学),&,PC7,PC6,PC3,INTE A,PA70,PC4,5,I/O,2,INTRA,ACKA,OBFA,8,&,PC1,PC2,PC0,INTE A,PA70,INTRB,ACKB,OBFB,8,1方式输出(端口A),1方式输出(端口B),1方式输出时联络信号线定义,1方式输出的工作时序,数据输

26、出时,CPU应先准备好数据,并把数据写到8255A输出数据寄存器。当CPU向8255A写完一个数据后,WR的上升沿使OBF有效,表示8255A的输出缓冲器已满,通知外设读取数据。并且WR使中断请求INTR变低,封锁中断请求。 外设得到OBF有效的通知后,开始读数。当外设读取数据后,用ACK回答8255A,表示数据已收到。 ACK的下降沿将OBF置高,使OBF无效,表示输出缓冲器变空,为下一次输出作准备,在中断允许(INTE=1)的情况下ACK上升沿使INTR变高,产生中断请求。CPU响应中断后,在中断服务程序中,执行OUT指令,向8255A写下一个数据。,信号交接的过程,从上述分析,在1方式下

27、,数据从CPU,通过8255A送到I/O设备有4步:,状态字的作用 在1方式下8255A有固定的状态字。状态字为查询方式提供了状态标志位,如IBF和OBF,同时,由于8255A不能直接产生中断矢量,因此当8255A采用中断方式时,CPU也要通过读状态字来确定中断源,实现查询中断。,(3)1方式的状态字,状态字的格式,状态字有8位,分A和B两组,A组状态位占高5位,B组状位占低3位,并且输入和输出时的状态字不相同。,状态字是在8255A输入/输出操作过程中由内部产生,从C口读取的,因此从C口读出的状态字是独立于C口的外部引脚的,或者说与C口的外部引脚无关。 状态字中供CPU查询的状态位有:输入时

28、-IBF位和INTR位;输出-OBF位和INTR位。 状态字中的INTE位,是控制标志位,控制8255A能否提出中断请求,因此它不是I/O操作过程中自动产生的状态,而是由程序通过按位置位/复位命令来设置或清除的。,使用状态字时要注意的几个问题,例:若允许PA口输入时,产生中断请求,则必须设置INTEA=1,即置PC4=1;若禁止它产生中断请求,则置INTEA=0,即置PC4=0,其程序段为: MOV DX,303H ;8255A命令口 MOV AL,00001001B ;置PC4=1,允许中断请求 OUT DX,AL MOV AL,00001000B ;置PC4=0,禁止中断请求 OUT DX

29、,AL, 要求 在甲乙两台微机之间并行传送1K字节数据。甲机发送,乙机接收。甲机一侧的8255A采用1方式工作,乙机一侧的8255A采用0方式工作。两机的CPU与接口之间都采用查询方式交换数据。 分析 双机均采用可编程并行接口芯片8255A构成接口电路,只是8255A的工作方式不同。此时,双方的8255A把对方视为I/O设备。,两种方式并行传送接口设计, 设计 (1)硬件连接:接口电路的连接如图所示。 (2)软件编程:接口驱动程序包含发送与接收两个程序。,MOV DX,303H ;8255A命令口 MOV AL,10100000B ;初始化工作方式字 OUT DX,AL MOV AL,0DH

30、;置发送中断允许INTEA=1 OUT DX,AL ;PC6=1 MOV SI,OFFSET BUFS ;设置发送数据区的指针 MOV CX,3FFH ;发送字节数 MOV DX,300H ;向A口写第一个数, ; 产生第一个 OBF-信号 MOV AL,SI ;送给乙方,以便获取乙方的ACK-信号 OUT DX ,AL,甲机发送程序段:,INC CX ;内存地址加1 DEC CX ;传送字节数减1 L:MOV DX,302H ;8255A状态口 IN AL, DX ;查发送断请求INTRA=1? AND AL,08H ;PC3=1? JZ L ;若无中断请求,则等待; ;若有中断请求,则向A

31、口写数 MOV DX,300H ;8255APA口地址 MOV AL,SI ;从内存取数 OUT DX,AL ;通过A口向乙机发送第二个数据,INC SI ;内存地址加1 DEC CX ;字节数减1 JNZ L ;字节未完,继续 MOV AH,4000H ;已完,退出 INT 21H ;返回 BUFS DB 1024个数据,乙机发送程序段:,; 初始化程序段 MOV DX,303H ;命令口 MOV AL,98H ;A口方式0输入,C口高4位输入 OUT DX,AL MOV AL,07H ; PC3(ACK#)=1,因尚未收到数据 OUT DX,AL ; 查询接受程序段 receive: MO

32、V DX,302H ;C口 IN AL,DX ; PC7(OBF#)=0 ? AND AL , 80H JNZ receive MOV DX,300H ;A口 IN AL,DX,; 响应接受程序段 MOV DX,303H ;命令口 MOV AL,06H ; PC3(ACK#)=0 OUT DX,AL NOP ; 适当延时,产生一定宽度的低脉冲 NOP MOV AL,07H ; PC3(ACK#)=1, OUT DX,AL,(1)特点 PA口为双向选通输入/输出或叫双向应答式输入/输出。一次初始化可指定PA口既作输入口又作输出口。 设置专用的联络信号线和中断请求号信线,因此,2方式下可采用中断方

33、式和查询方式与CPU交换数据。 各联络线的定义及其时序关系和壮态基本上是在1方式下输入和输出两种操作的组合。,3、2方式及其应用,(2)2方式下联络信号线的定义,2方式是一种双向选通输入输出方式,它把A口作为双向输入/输出口,把C口的5根线(PC3PC7)作为专用应答线,所以,8255A只有A口才有2方式。其引脚定义如图所示。,(3)工作时序,2方式的状态字的含义是在1方式下输入和输出状态位的组合,不再述。,(3)状态字,要求 主从两个微机进行并行传送,共传送256个字节。主机一侧的8255A采用2方式并且用中断方式传送数据。从机一侧8255A工作在0方式,采用查询方式传送数据。 设计 硬件设计 从图7.19可知主机一侧的8255A的PA口作双向传送,既输出又输入,它的中断请示线接到8259A的IP2上。从机一侧的8255A的PA和PB口是单向传送,分别作输出和输入。 软件设计,(4)中断方式的双向并行接口设计,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1