单片机7.3

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

方式0适用于无条件数据传送,也可以把C口的某一 位作为状态位,实现查询方式的数据传送。由于方式0没 有固定的应答信号,这时通常将C口的高4位定义为输入 口,用来接受外设的状态信号,C口的低4位定义为输出 口,输出控制信息。
8255A与外设的连接
(2)方式1 方式1是选通输入输出方式,此时A口和B口与 外设之间进行输入或输出操作时,需要C口的部分 I/O线提供联络信号。方式1有如下特点: a. 只有A口和B口可工作在方式1。 b. 可作为一个或两个选通输入或输出端口,每个 选通端口包括8位数据端口、3条状态或控制线,提 供中断逻辑。 c. A口或B口工作在方式1时,C口的一部分位线 用于提供联络信号,剩下的位线仍可工作在方式 0。
8255A在使用前要先写入一个工作方式控制 字到控制寄存器,以指定A、B、C三个端口各自 的工作方式。 8255A共有三种工作方式:方式0、方式1和 方式2。 其中A口可以工作在方式0、方式1和方式2, B口可以工作在方式0、方式1,而C口只能工作在 方式0。
(1)方式0 方式0称为基本输入输出方式,即无须联络就 可以直接进行8255A与外设之间的数据输入或输 出操作。 ①A口、B口都可置为输入方式或输出方式, 但不能既作为输入又作为输出,且C口不提供固定 的联络信号。 ②C口的高4位和低4位均可置为输入方式或 输出方式,但在4位中不能既作为输入又作为输出 。
Review
7.3 简单I/O接口扩展
80C51单片机有4个并行I/O口,当系统需要扩展 外存储器时,真正可用的并行口只有一个P1口,故经 常需要扩展并行I/O口。扩展I/O口可分为可编程和不 可编程两大类,用户可根据需要选择不同的芯片达到 目的。 80C51通过P0口扩展I/O口,而P0口是地址/数据端 口,只能分时复用。在扩展输出接口时,电路必须具 有锁存功能。在扩展输入接口时,若数据是常态的, 则接口电路应有三态缓冲功能;若输入数据是暂态的, 则接口电路除有三态缓冲功能外还应有锁存选通功能。
工作在方式2的A口,可以认为是前面方式1的输 入和输出相结合而分时工作的。实际传输过程中,输 入和输出的顺序以及各自操作的次数是任意的,只要 WR 在ACK A之前发出,STB A在 RD之前发出就可以 了。 在输入时,外设向8255A送来数据,同时发 STB A信号给8255A。该信号将数据锁存到8255A的A 口,从而使IBF有效。 STB A信号结束使INTRA有效, 向CPU请求中断。CPU响应中断,发出读信号 RD , 从A口将数据读走。信号会使INTRA和IBFA无效,从 而开始下一个数据的读入过程。
7.4.1 8255A的引脚功能和内部结构
(1)8255A的引脚功能
(2)8255A的内部结构 8255A的内部结构框图如图所示,其内部由 以下四部分组成。 ①端口A、端口B和端口C ②工作方式控制电路 ③数据总线缓冲器 ④读/写控制逻辑
8255A的内部结构框图
(3)8255A寻址方式
7.4.2 8255A的工作方式
a.因为在方式2下,A口既作为输入又作为输出, 因此只有当 ACKA有效时,才能打开A口输出数据 三态门,使数据由PA7~PA0输出。当 ACK A无效 时,数据三态门呈高阻状态。 b.此时A口输入、输出均有数据的锁存能力。 c. 方式2下,A口的数据输入或输出均可引起中断。 输入或输出中断还受到中断允许状态INTE1和 INTE2的影响。INTE2和INTE1分别受PC4和PC6 控制。利用C口的按位操作,使PC4或PC6置位复 位,可用允许或禁止相应的中断请求。
7.3.1 扩展输入口
扩展输入口常用的芯片是74LS373和 74LS244。
一个典型的74LS373与80C51的接口电路如图7-8 所示。该芯片的口地址为7FFFH。
一个典型的74LS244与80C51的接口电路如图7 -10所示。
7.3.2 扩展输出口
在80C51系统中,扩展输出口的电路最为简 单、代价最低的芯片之一为74LS377。
c. INTR(Interrupt Request):中断请 求信号,高电平有效。由8255A发出,向 CPU请求中断,CPU可在中断服务程序中读取 输入设备输入的数据。INTR的置位条件是 INTE=1、 STB =1、IBF=1。也就是说, 当外设将数据锁存于接口中,且又允许中断请 求发生(INTE=1)时,就会产生中断请求。 RD 信号下降沿将使INTR复位。
一个典型的74LS377与80C51的接口电路如图 所示。
7.4 用8255A扩展I/O接口
8255A是Intel公司生产的一种可编程并行I/O 接口芯片,是专门针对单片微机而开发设计的, 其内部集成了锁存、缓冲及与CPU联络的控制逻 辑,通用性强、应用广泛。通过对其进行编程, 可以实现多种不同的功能,很适合作为80C51型 单片机的扩展并行接口。
②方式1输出 下图为8255A工作在方式1输出时A口和B口的 功能图。
8255A工作在方式1输出时的选通信号定义
a. OBF(Output Buffer Full):输出缓冲器满信 号,低电平有效,8255A输出至外设的信号。它有 效时,表示CPU已将数据输出到8255A的端口,外 设可以从该端口取走数据。 b. ACK (Acknowledge):外设响应信号,低电平 有效。它有效时,表示外设已从该端口取走数据。 ACK 信号有效时,还使 OBF =1。
②C口按位置位/复位控制字 C口按位置位/复位控制字同样由8位构成。C 口按位置位/复位控制字的标志是控制字的D7位为 “0”。 D3~D1:用于选择PC7~PC0中某一位。 D0:置位/复位的控制位。当D0为0时,控制C口 的某位复位;当D0为1时,控制C口的某位置位。
C口按位置位/复位控制字
①工作方式选择控制字 8255A的方式选择控制字由8位构成。
例如,要把A口指定为方式1,输入,C口上 半部为输出;B组指定为方式0,输出,C口下半 部定为输入,则工作方式选择控制字是: 10110001B或B1H。 若将此控制字写到8255A的控制寄存器,即 实现了对8255A工作方式及端口功能的指定,或 者说完成了对8255A的初始化。
d. INTE(Interrupt Enable):8255A内部的中 断允许信号,是内部中断允许触发器的状态。A口、 B口的INTE分别为INTEA和INTEB。其中INTEA由 PC4控制,CPU置PC4=1时,INTEA=1,允许A 口中断;置PC4=0时,则禁止A口中断。INTEB 由PC2控制。 需要说明,PC4、PC2控制INTEA和INTEB时, 对PC4、PC2的另一个功能 STB A和 STB B没有影 响。
在输出时,CPU发出写脉冲 WR ,向A口写入数据。 WR 信号使INTRA变低电平,同时使OBF A有效。外设接 到 OBFA信号后发出 ACKA信号,从A口读出数据。ACK A信号使 OBFA无效,并使INTRA变高.产生中断请求。 CPU响应中断,输出下一个数据,如此循环。 从上面的分析可以看出,方式2的输入输出过程和方 式1很类似,只是要注意以下两点:一是要正确判断中断 请求是由输入设备引起的还是输出设备引起的;二是在 PA7~PA0上,随时有可能出现输出到外设的数据,也可 能出现外设送给8255A的数据,wenku.baidu.com就要防止CPU和外设同 时竞争PA7~PA0数据线的问题。
(3)方式2 方式2又称为双向传输 方式,只有A口可以工作在 该方式下。双向方式使外 设能利用8位数据线与CPU 进行双向通信,既能发送 数据,也能接收数据。 8255A工作在方式2时的功 能如图所示。 8255A工作在方式2时选通信号定义
在A口工作在方式2时,B口可以工作在方式0 或方式1。C口高5位为A口提供联络信号,C 口低3位可作为输入输出线使用或用作B口方式 1之下的控制线。 ACK 当A口工作于方式2时.其控制信号 OBFA、 A、STBA、IBFA以及INTRA的含义与方式1 时相同。但在时序上有一些不同,主要原因是 :
①方式1输入 图为8255A工作在方式1输入时A口和B口的功能图 。PA或PB作为输入数据口,C口的某些位作为联络信号 ,各信号的定义如下:
图7-16 8255A工作在方式1输入时的信号定义
a. STB (Strobe):输入选通信号,低电平有效。它由输 入设备提供,当它有效时,将输入设备送来的数据存于 8255A的输入数据缓冲器。 b. IBF(Input Buffer Full):输入缓冲器满信号,高电 平有效,它是8255A送给外设的信号。当IBF有效时,表示 8255A的缓冲器中有一个数据尚未被CPU读走。外设可利 用此信号来决定是否能送下一个数据。它可以看成是 STB 的应答信号。IBF也可看作CPU向8255A的查询信号,IBF =1,CPU应该从8255A端口读取数据。IBF由输入设备提 供的 STB信号置位,由CPU读取数据时发出的信号的上升 沿复位。
例如,将C口的PC1置位的控制字为00000011B或03H, 若将此控制字写入8255A的控制寄存器,就可使PC1置位。
(2) 状态字 状态字反映了C口各位当前的状态,当 8255A的A口、B口工作在方式1或A口工作 在方式2,通过读C口的状态,可以检测A口和 B口当前的工作情况。下图给出了A口、B口工 作在不同方式下的状态字各位的含义。
c. INTR:中断请求信号,高电平有效。当外设取走数 据后,其 ACK 信号上升沿产生有效的INTR信号,该信 号用于通知CPU可以再输出下一个数据。INTR有效是 条件是OBF=1、 ACK =1、INTE=1。 d. INTE:8255A内部的中断允许信号,是内部中断 允许触发器的状态。A口、B口的INTE分别为INTEA 和INTEB。其中INTEA由PC6控制,CPU置PC6=1 时,INTEA=1,允许A口中断;置PC6=0时,则禁 止A口中断。INTEB由PC2控制。当INTE=1,且OBF 也变高时,产生有效的INTR信号。
8255A工作在方式1输入时的时序图如图所示。下面 结合此时序图说明8255A工作于选通输入时的工作过程。
方式1下数据输入时序图
当外设要发送数据时,就将数据送到8255A 的A口或B口,并利用 STB 脉冲将数据锁存到 8255A的输入锁存器,同时使IBF=1并产生 INTR信号(要求INTE=1),IBF=1还通 知外设数据已被锁存。INTR信号可向CPU请 求中断(注意,对于80C51需要将INTR信号 取反后接入 INT 0 或 INT1),CPU响应中断读 取数据。 读信号 RD 使INTR和IBF变为无 效。
(a)、(b)分别示出了当8255A的A口、B 口工作在方式1输入和输出时的状态字格式,状态 字中的INTEA和INTEB分别为A组和B组的中断允 许触发器状态,其余各位为相应引脚上的电平信 号。 (c)为8255A在方式2下的状态字格式。在 这个状态字中,INTE1和INTE2为8255A的允许中 断触发器状态,它们由C口的置位/复位控制字决 定,其余各位为同名引脚上的电平信号。D2~D0 由B组工作方式决定。
7.4.3 方式控制字和状态字
(1)方式控制字
8255A有3种工作模式,CPU通过向8255A中的控 制寄存器写入不同的控制字,可以确定8255A的工作 方式。控制字有两个,一个是工作方式选择控制字, 用于8255A的初始化;另一个是C口按位置位/复位 控制字,用于C口的位操作。这两个控制字使用同一口 地址,由最高位D7区分,若D7为1,此控制字为 8255A的工作方式选择控制字;若D7为0,此控制字 为8255A的C口按位置位/复位控制字。
方式1下数据输出时序图
当CPU向接口写数据时,(执行一条MOVX @DPTR,A指令),在 WR 有效期间将数据锁存 于A口或B口,之后 WR 上升沿使INTR=0(即撤 除中断请求信号)、 OBF=0(PC7输出负脉冲), 通知外设A口或B口已准备好数据。一旦外设将数 据取走,就送出一个有效的 ACK 脉冲,该脉冲使 OBF =1,若CPU预置PC6=1(A口)或PC2=1 (B口)使INTE=1,从而产生有效的INTR信号, 进而向CPU发出中断请求。CPU响应中断后就可向 端口写下一个数据,如此重复而已。
相关文档
最新文档