Presentation is loading. Please wait.

Presentation is loading. Please wait.

微机原理及应用 主讲:郑海春.

Similar presentations


Presentation on theme: "微机原理及应用 主讲:郑海春."— Presentation transcript:

1 微机原理及应用 主讲:郑海春

2 第8章 并行接口芯片8255 8.1 可编程并行I/O接口芯片8255A的结构 8.2 8255A的工作方式选择 8.3 方式0的功能
8.3 方式0的功能 8.4 方式1的功能 8.5 方式2的功能 A应用举例

3 8.1 可编程并行I/O接口芯片8255A的结构 在接口电路中,要有输入输出数据的锁存器和缓冲器,要有状态(如Ready,Busy等)和控制命令寄存器,以便于CPU与接口电路之间采用程序条件查询方式来交换信息,也便于接口电路与外设之间传送信息。随着大规模集成电路技术的发展,生产了许多通用的可编程序的接口芯片。这些接口芯片按数据传送的方式可以分为并行接口和串行接口两大类。 并行接口和串行接口的“并行”和“串行”的含义不是指接口与CPU之间的数据传输(接口与CPU系统总线一侧的数据传输当然是并行的),而是指接口与外部设备一侧的数据传输。并行接口与外部设备之间用4根、8根或16根数据线同时传输4位、8位或16位二进制数,数据是并行传输的;串行接口与外部设备之间在1根数据线上,1位位串行传输二进制数据。 回顾: 问题:输入输出能不能由一个芯片来完成?

4 并行接口可以设计成单独的输入接口或单独的输出接口,还可以设计成输入/输出接口,即双向通信接口。例如:计算机系统连接打印机的接口是输出并行接口,连接磁盘驱动器的接口是双向通信接口。
并行口适用范围:并行接口与其相应的串行接口相比,具有传输速度快、信息率高等优点。但是,由于并行通信所用的传输线较多,在长距离传输时,电缆的损耗会成为突出的问题。所以,并行通信适用于数据传输速率较高、传输距离较短的场合。

5 8255的内部结构图

6 8255A由以下几个部分组成: (1)数据端口A、B、C
每一个端口都是8位,都可以作为输入或输出,通常端口A或B作为数据端口,而端口C作为控制或状态信息的端口,端口C分成两个4位的端口,它们分别与端口A和B配合使用,可以作为控制信号输出,或者作为状态信号输入。 (2)A组和B组控制电路 这是两组根据CPU的命令字控制8255A工作方式的电路。它们有控制寄存器,接受CPU输出的命令字,然后分别决定两组的工作方式。 A组控制电路控制端口A和端口C的上半部(PC7~PC4) B组控制电路控制端口B和端口C的下半部(PC3~PC0)

7 (3)数据总线缓冲器 这是一个8位双向三态数据缓冲器。8255A通过它与系统数据总线相连。输入数据、输出数据、CPU发给8255A的控制字和从8255A读入的外设状态信息等都是通过这个缓冲器,在8255A的内、外数据总线之间传递。 (4)读/写和控制逻辑 它与CPU的地址总线中的A1、A0以及有关的控制信号(RD,WR,RESET)相连,由它控制把CPU的控制命令或输出数据送至相应的端口,也由它控制把外设的状态信息或输入数据通过相应的端口,送至CPU。

8 8255的引脚图

9 8255的端口选择和操作 -CS A1 A0 读操作-RD 写操作-WR 0 0 0 读端口A 写端口A 0 0 1 读端口B 写端口B
读端口A 写端口A 读端口B 写端口B 读端口C 写端口C 非法 写方式字和位控字 补充: IBM PC/XT机上,数据口A/B/C和控制口的I/O地址分别为:60H、61H、62H和63H

10 第8章 并行接口芯片8255 8.1 可编程并行I/O接口芯片8255A的结构 8.2 8255A的工作方式选择 8.3 方式0的功能
8.3 方式0的功能 8.4 方式1的功能 8.5 方式2的功能 A应用举例

11 8.2 8255A的工作方式选择 8255A的三种基本工作方式: 方式0 ——基本输入输出 方式1 ——选通输入输出 方式2 ——双向传送
其中端口A可以被选择工作于方式0,1和2三种中的任何一种。端口B只能被选择工作于方式0和1中的一种。当端口A和端口B被选择工作于方式0时,端口C也可以工作于方式0,一旦端口A和端口B中任一个工作于方式1或2时,端口C被分解成两部分,上半部随端口A,下半部分随端口B。这时端口C已经不再作为数据信息的通道,而是作为它的附属于端口的状态信息。

12 8255A的编程控制字: 8255A有两个控制字:工作方式控制字和端口C置位/复位控制字。这两个控制字共用一个地址,即当端口选择A0、A1都为1时,就是访问8255A控制字寄存器的地址。用控制字的D7位作为标识位来区分是方式选择控制字,还是端口C置位/复位控制字。D7位为1,为方式选择控制字;D7位为0,为端口C置位/复位控制字。 (1)工作方式控制字:用来设定通道的工作方式及数据的传送方向的。 (2)端口C置位/复位控制字:向控制寄存器写入控制字,而使C口的某一位置位或复位。

13 (1)工作方式控制字

14 工作方式控制字举例: 例1:端口A方式0输入,端口B方式0输出,端口C方式0输出,请写出工作方式控制字。

15 工作方式控制字举例: 例2:端口A方式1输入,端口B方式1输出,请写出工作方式控制字。

16 工作方式控制字举例: 例3:端口A方式2双向,端口B方式1输入,请写出工作方式控制字。

17 (2)端口C置位/复位控制字

18 端口C置位/复位控制字举例: 例1:对C3位清0,请写出控制字。

19 端口C置位/复位控制字举例: 例2:对C4位置1,请写出控制字。

20 第8章 并行接口芯片8255 8.1 可编程并行I/O接口芯片8255A的结构 8.2 8255A的工作方式选择 8.3 方式0的功能
8.3 方式0的功能 8.4 方式1的功能 8.5 方式2的功能 A应用举例

21 8.3 方式0的功能 1、两个8位端口(A、B),和两个4位端口(端口C) 2、任一个端口可以作为输入或输出 3、输出是锁存的
8.3 方式0的功能 1、两个8位端口(A、B),和两个4位端口(端口C) 2、任一个端口可以作为输入或输出 3、输出是锁存的 4、输入是不锁存的 方式0是一种基本的输入或输出方式。这种方式没有规定固定的用于应答式的联络信号线。方式0可作为查询式输入或输出的接口电路,此时端口A和B可分别作为一个数据端口,而取端口C的某些位作为这两个数据端口的控制和状态信息。

22 方式0 —示例1 已知条件: A口地址:300H B口地址:301H C口地址:302H 控制口地址:303H 8255A Vcc PA0
. Vcc PB0 PB7 CS D0~D7 数据总线 RD WR A0 A1 RESET 地址总线 A0~A15 时钟发生 器RESET 8255A

23 程序框图 code segment assume cs:code start: mov dx,303h ;8255控制端口地址
B口方式0 code segment assume cs:code start: mov dx,303h ;8255控制端口地址 mov al,90h ; B 工作方式控制字 out dx,al ;设置A口输入,B口输出 next: mov dx,300H ;A口地址 in al,dx ;读开关量 mov dx,301H ;B口地址 out dx,al ;写发光二极管状态 jmp next code ends end start B口输出

24 方式0 —示例2 已知条件: A口地址:300H B口地址:301H C口地址:302H 控制口地址:303H

25

26 out dx,al ;设置A口输出,B口输入,PC0输入 next: mov dx,303h ;8255控制端口地址 mov al,00h
code segment assume cs:code start: mov dx,303h ;8255控制端口地址 mov al,83h ; B 工作方式控制字 out dx,al ;设置A口输出,B口输入,PC0输入 next: mov dx,303h ;8255控制端口地址 mov al,00h out dx, al ;使PC0复位 mov dx, 302h ;C端口地址 que:in al,dx ;查询PC0是否为1 test al,01h jz que ;PC0为0则继续查询 mov dx,301h ;B口地址 in al,dx ;读开关量 mov dx,300h ; A口地址 out dx,al ;写发光二极管状态 jmp next code ends end start A口方式0 A口输出 B口输入 C口下输入 B口方式0

27 第8章 并行接口芯片8255 8.1 可编程并行I/O接口芯片8255A的结构 8.2 8255A的工作方式选择 8.3 方式0的功能
8.3 方式0的功能 8.4 方式1的功能 8.5 方式2的功能 A应用举例

28 8.4 方式1的功能 1、用作一个或两个选通端口 2、每个端口包括:8位数据和三条控制线,提供中断逻辑 3、任何一个端口都可作为输入或输出 4、输入输出都是锁存的 这是一种选通的I/O方式。在这种方式时,端口A或端口B仍作为数据的输入/输出口,但同时规定端口C的某些位作为控制或状态信息。

29 方式1输入:外设->CPU zhc 说明:STB和IBF是一对用于和外设联络的信号,INTR是用于向CPU发出中断请求的信号。此外,还有决定INTR能否发出的中断允许INTE信号(此信号是不与端口C的实际引脚有联系的内部信号)。 总结:STB选通信号,由外部输入,低电平有效。它有效时,将外部输入的数据锁存到所选端口的输入锁存器中。 IBF输入缓冲器满信号。8255A向外部输出,高电平有效。当其有效时,表示数据已输入至输入锁存器,它由STB信号置位,而RD信号的上升沿使其复位。 INTR中断请求信号,高电平有效。这是8255A给CPU输出的中断请求信号,以请求CPU服务。它是当STB为高电平、IBF为高电平和INTE(中断允许)为高电平时被置为高,而由RD信号的下降沿清除。 INTEA端口A中断允许信号,可由用户通过对PC4的按位置位/复位来控制(PC4=1,允许中断)。而INTEB由PC2的置位/复位控制。 过程:-STB=0, 数据锁存入8255A,IBF=1;-STB↑,片内INTE=1,INTR ↑,向CPU发出中断请求;CPU响应中断后,-RD↓,CPU读8255A中数据,INTR ↓,-RD ↑使IBF复位↓。

30 zhc 说明:STB和IBF是一对用于和外设联络的信号,INTR是用于向CPU发出中断请求的信号。此外,还有决定INTR能否发出的中断允许INTE信号(此信号是不与端口C的实际引脚有联系的内部信号)。 总结:STB选通信号,由外部输入,低电平有效。它有效时,将外部输入的数据锁存到所选端口的输入锁存器中。 IBF输入缓冲器满信号。8255A向外部输出,高电平有效。当其有效时,表示数据已输入至输入锁存器,它由STB信号置位,而RD信号的上升沿使其复位。 INTR中断请求信号,高电平有效。这是8255A给CPU输出的中断请求信号,以请求CPU服务。它是当STB为高电平、IBF为高电平和INTE(中断允许)为高电平时被置为高,而由RD信号的下降沿清除。 INTEA端口A中断允许信号,可由用户通过对PC4的按位置位/复位来控制(PC4=1,允许中断)。而INTEB由PC2的置位/复位控制。 方式1的输入时序图

31 方式1输出:CPU - >外设 zhc 说明:ACK和OBF是一对用于和外设联络的信号,INTR是用于向CPU发出中断请求的信号。此外,还有决定INTR能否发出的中断允许INTE信号(此信号是不与端口C的实际引脚有联系的内部信号)。 总结:OBF输出缓冲器满信号。8255A向外部输出,低电平有效。当其有效时,表示CPU已经把数据输出给指定的端口,外设可以把数据输出。它由输出命令WR的上升沿设置为有效,由ACK的有效信号使其恢复为高。 ACK低电平有效,这是一个外设的响应信号,指示CPU输出给8255A的数据已经由外设接收。 INTR中断请求信号,高电平有效。当输出装置已经接收了CPU输出的数据后,它用来作为向CPU提出新的中断请求,要求CPU继续输出数据。当OBF为“1”(高电平)ACK为“1”(高电平)和INTE为“1”(高电平)时,使其置位(高电平),INTR信号的复位,是由写信号WR的下降沿触发的。 INTEA端口A中断允许信号,可由用户通过对PC6的按位置位/复位来控制(PC6=1,允许中断)。而INTEB由PC2的置位/复位控制。 过程:-ACK=0, 外设从8255A取走数据,-OBF↑, 输出锁存器空,INTR ↑, 向CPU申请,望CPU再输出下一数据; CPU响应中断后, -WR↓, CPU写数据到8255A,-WR=0,INTR ↓, 撤消中断,-WR ↑使-OBF复位↓,向外设表明8255有新数据。

32 zhc 说明:STB和IBF是一对用于和外设联络的信号,INTR是用于向CPU发出中断请求的信号。此外,还有决定INTR能否发出的中断允许INTE信号(此信号是不与端口C的实际引脚有联系的内部信号)。 总结:STB选通信号,由外部输入,低电平有效。它有效时,将外部输入的数据锁存到所选端口的输入锁存器中。 IBF输入缓冲器满信号。8255A向外部输出,高电平有效。当其有效时,表示数据已输入至输入锁存器,它由STB信号置位,而RD信号的上升沿使其复位。 INTR中断请求信号,高电平有效。这是8255A给CPU输出的中断请求信号,以请求CPU服务。它是当STB为高电平、IBF为高电平和INTE(中断允许)为高电平时被置为高,而由RD信号的下降沿清除。 INTEA端口A中断允许信号,可由用户通过对PC4的按位置位/复位来控制(PC4=1,允许中断)。而INTEB由PC2的置位/复位控制。 方式1的输出时序图

33 方式1 —示例 已知条件: A口地址:300H B口地址:301H C口地址:302H 控制口地址:303H 8255A PA0 PA7 .
Vcc PB0 PB7 CS D0~D7 数据总线 RD WR A0 A1 RESET 地址总线 A0~A15 时钟发生 器RESET 8255A PC4 PC2

34 PA: 方式1,输入; PB: 方式1,输出 Proceeding:-STB , -ACK input from a pulse, then test PC5 (IBF) and test PC1 (-OBF)

35 START: MOV AL, 0B4H; B MOV DX, 303H OUT DX, AL ;write mode CW LP1: MOV DX, 302H IN AL, DX TEST AL, B ;test PC5 (IBF) JZ LP1 MOV DX, 300H IN AL, DX ; read Port A (switch status) LP2: MOV DX, 302H IN AL, DX TEST AL, B ;test PC1 (-OBF) JZ LP2 MOV DX,301H OUT DX, AL ;port B output JMP START

36 第8章 并行接口芯片8255 8.1 可编程并行I/O接口芯片8255A的结构 8.2 8255A的工作方式选择 8.3 方式0的功能
8.3 方式0的功能 8.4 方式1的功能 8.5 方式2的功能 A应用举例

37 8.5 方式2的功能 方式2的功能 1、方式2只用于端口A 2、一个8位的双向总线端口(A)和一个5位控制端口(端口C),提供中断逻辑
8.5 方式2的功能 方式2的功能 1、方式2只用于端口A 2、一个8位的双向总线端口(A)和一个5位控制端口(端口C),提供中断逻辑 3、输入输出都是锁存的 4、5位控制端口用作端口A的控制和状态信息 这种工作方式,使外设可以在单一的8位总线上,即能发送数据也能接收数据(双向总线I/O)。工作时可用程序查询方式,也可工作在中断方式。

38 方式2双向传输

39 输入:外设发-STBa=0将数据存入A口,8255发IBFa给外设,A口收到数据,INTE1=1,向CPU发INTRa,CPU响应后,CPU可以从A口读入数据。
输出:CPU输出数据琐存到A口,-OBFa↓,通知外设可从A口读取数据。外设需要读数据,给8255发-ACKa=0,将锁存于A口的数据输出到外设。 方式2实质就是方式1输入与输出的综合。

40 问题:为什么8255A要提供三种工作方式? 为了满足并行输入输出的不同需要,实现可靠的数据传输。若不需要考虑外部设备的状态,则可以选择方式0,若需要考虑外部设备的状态就需要用选通输入输出,方式1,若需要双向传送则需要用方式2。


Download ppt "微机原理及应用 主讲:郑海春."

Similar presentations


Ads by Google