第8章可编程接口芯片及应用_第1页
第8章可编程接口芯片及应用_第2页
第8章可编程接口芯片及应用_第3页
第8章可编程接口芯片及应用_第4页
第8章可编程接口芯片及应用_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第8章可编程接口芯片及应用 第8章可编程接口芯片及应用 8.1概述概述 8.2可编程定时可编程定时/计数器计数器Intel 8253 8.3可编程可编程I/O接口接口8255A 第8章可编程接口芯片及应用 8.1 概述概述 第8章可编程接口芯片及应用 8.2可编程计数器可编程计数器/定时器定时器8253 8.2.1 定时/计数的基本概念 所谓定时(计数)就是通过硬件或软件的方法产生一个时 间基准,以此来实现对系统的定时或延时控制。要实现定时或 延时控制,有三种主要方法:软件定时、纯硬件定时及可编程 的硬件定时器/计数器。 第8章可编程接口芯片及应用 1. 软件定时软件定时 软件定时的方法是:由

2、于执行每条指令都需要时间,则执 行一个程序段就需要一个固定的时间,通过适当地挑选指令和 安排循环次数来实现软件的定时。这种方法由于要完全占用 CPU的时间,因而降低了CPU的利用率。 第8章可编程接口芯片及应用 2. 纯硬件定时纯硬件定时 它采用固定的电路,如可以采用小规模集成电路555,外接 电阻和电容构成单稳延时电路。这样的定时电路简单,而且通 过改变电阻和电容,可以使定时在一定的范围内调整。但它由 纯硬件来完成,给使用带来不便。 第8章可编程接口芯片及应用 3. 可编程硬件定时器可编程硬件定时器/计数器计数器 这是目前在控制系统中广泛使用的方法,它通过编程来 控制电路的定时值及定时范围,

3、功能强,使用灵活。在计算 机系统中,象定时中断、定时检测、定时扫描等等都是用可 编程定时器来完成定时控制的。 Intel 系列的8253、8254就是常用的可编程定时/计数器。 第8章可编程接口芯片及应用 8.2.2 Intel 8253的主要性能和内部结构的主要性能和内部结构 1. Intel 8253的主要性能的主要性能 Intel 8253有3个独立的16位计数器,每个计数器都可以按照 二进制或BCD码进行计数,计数速率可达2MHz(8254为 10MHZ),每个计数器有6种工作方式,可编程设置和改变。 它可用在多种场合,如方波发生器、分频器、实时时钟、事件 计数等方面。 第8章可编程接

4、口芯片及应用 2. Intel 8253的内部结构的内部结构 数据总线缓冲器 它与CPU的数据总线相连,是8位双向三态缓冲器。CPU通 过这个缓冲器对8253进行读/写操作。 控制字寄存器 此寄存器只能写入而不能读出。在8253初始化时,由CPU 写入控制字来设置计数器的工作方式。 计数器 计数器0、计数器1、计数器2是三个完全独立、结构相同的 计数器,每一个都是由一个16位的可预置的减法计数器构成。 第8章可编程接口芯片及应用 图8.1 Intel 8253的内部结构 数据总线 缓冲器 读/写 逻辑 控制字 寄存器 计数器 0 计数器 1 计数器 2 RD WR CS A 0 A 1 CLK

5、 0 GATE 0 OUT 0 CLK 1 GATE 1 OUT 1 CLK 2 GATE 2 OUT 2 D 7 D0 第8章可编程接口芯片及应用 8.2.3 Intel 8253的外部性能的外部性能 图8.2 Intel 8253的外部引脚图 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 CLK 0 OUT 0 GATE 0 GNDOTU 1 GATE 1 CLK 1 GATE 2 CLK 2 A 0 A 1 OTU 2 WR RD CS V CC 8253 PIT 24 23 22 21 20 19 18 17 16 15 14 13 1 2 3 4 5 6 7 8 9

6、 10 11 12 第8章可编程接口芯片及应用 GATE:门控信号,当GATE为低电平时,禁止计数器工作; GATE为高电平时,才允许计数器工作。 CLK:计数脉冲输入。 OUT:脉冲输出。当计数到“0”时,从OUT端输出信号, 输出信号的波形取决于工作方式。 CS、RD、WR、A0、A1共同结合,用于对8253进行端口操 作,如表8-1所示。 第8章可编程接口芯片及应用 表表8-1 8253的端口选择的端口选择 CSRDWR A1A0 寄存器选择和操作 0 1000写计数器0 01001写计数器1 01010写计数器2 01011写控制字寄存器 00100读计数器0 00101读计数器1 0

7、0110读计数器2 00111无操作(三态) 1禁止(三态) 011无操作(三态) 第8章可编程接口芯片及应用 8.2.4Intel8253的控制字和编程的控制字和编程 图8.3 8253的控制字 M 2 M 1 M 0 BCDRL 0 RL 1 SC 0 SC 1 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 (计数器选择) 00:选择计数器0 01:选择计数器1 10:选择计数器2 11:非法选择 (读/写格式) 00:计数器锁存命令 01:读/写高8位 10:读/写低8位 11:先读/写低8位,再读/写高8位 (数制选择) 0:二进制 1:BCD (工作方式选择) 00

8、0: 方式0 001: 方式0 X10:方式2 X11:方式3 100 :方式4 101: 方式5 第8章可编程接口芯片及应用 SC1、SC0: 这两位决定这个控制字是哪一个计数器的控制 字。 RL1、RL0:设置数据读/写格式。在读取计数值时,可令 RL1、RL0=00,先将写控制字时的计数值锁存,然后再读取。 M2、M1、M0:设置每个计数器的工作方式。 BCD:用于选择每个计数器的计数制。在二进制计数时, 计数初值的范围是0000HFFFFH,其中0000H是最大值,代表 65536。在BCD码计数时,计数初值的范围中00009999,其中, 0000是最大值,代表10000。 第8章可

9、编程接口芯片及应用 8.2.5 Intel8253的工作方式的工作方式 Intel 8253的每个计数器都有6种工作方式,这6种方式的主 要区别是:输出的波形不同,计数过程中GATE信号对计数操作 的影响不同,启动计数器的触发方式不同等。 1. 方式方式0计数结束后输出由低变高计数结束后输出由低变高 该方式的波形如图8.4所示,这种方式的特点是: 第8章可编程接口芯片及应用 图8.4 方式0波形 WR CLK GATE OUT CW10 H N4 43210 第8章可编程接口芯片及应用 图8.5 方式0计数过程中改变计数初值 GATE WR CLK OUT CW10 H N3N2 321210

10、 第8章可编程接口芯片及应用 写入控制字后,OUT输出端变为低电平。当写入计数初 值后,计数器开始减1计数。在计数过程中OUT一直保持为低电 平,直到计数到0时,OUT输出变为高电平。此信号可用于向 CPU发出中断请求。 计数器只计数一遍。当计数到0时,不恢复计数初值,不 开始重新计数,且输出一直保持为高电平。只有在写入新的计 数值时,OUT才变低,并开始新的计数。 第8章可编程接口芯片及应用 GATE是门控信号,GATE=1时允许计数,GATE=0时, 禁止计数。在计数过程中,如果GATE=0则计数暂停,当 GATE=1后接着计数。 在计数过程中可改变计数值。若是8位计数,在写入新的 计数值

11、后,计数器将按新的计数值重新开始计数。如果是16位 计数,在写入第一个字节后,计数器停止计数,在写入第二个 字节后,计数器按照新的计数值开始计数。如图8.5所示。 第8章可编程接口芯片及应用 2. 方式方式1可编程序的单拍脉冲可编程序的单拍脉冲 方式1的波形如图7.6所示,其特点是: 写入控制字后,输出OUT将保持为高电平,计数由GATE 启动。GATE启动之后,OUT变为低电平,当计数到0时,OUT 输出高电平,从而在OUT端输出一个负脉冲,负脉冲的宽度为 N个(计数初值)CLK的脉冲宽度。 当计数到0后,不用送计数值,可再次由GATE脉冲启动, 输出同样宽度的单拍脉冲。 第8章可编程接口芯

12、片及应用 在计数过程中,可改变计数初值,此时计数过程不受影 响。如果再次触发启动,则计数器将按新输入的计数值计数。 在计数未到0时,如果GATE再次启动,则计数初值将重 新装入计数器,并重新开始计数。 第8章可编程接口芯片及应用 图8.6 方式1波形 CW12 HN3 3 WR CLK GATE OUT 21032 第8章可编程接口芯片及应用 3. 方式方式2频率发生器(分频器)频率发生器(分频器) 方式2的波形如图8.7所示,它的特点是: 写入控制字后,输出将变为高电平。写入计数值后,计 数立即开始。在计数过程中输出始终为高电平,直至计数器减 到1时,输出将变为低电平。经过一个CLK周期,输

13、出恢复为高, 且计数器开始重新计数。因此,它能够连续工作,输出固定频 率的脉冲。 第8章可编程接口芯片及应用 图8.7 方式2波形 3213213 CLK GATE OUT 第8章可编程接口芯片及应用 如果计数值为N,则每输入N个CLK脉冲,输出一个脉冲。 因此,相当于对输入脉冲的N分频。通过对N赋不同的初值,即 可在输出端得到所需的频率,起到频率发生器的作用。 计数过程可由门控脉冲控制。当GATE=0时,暂停计数; 当GATE变高自动恢复计数初值,重新开始计数。 在计数过程中可以改变计数值,这对正在进行的计数过 程没有影响。但在计数到1时输出变低,经过一个CLK周期后输 出又变高,计数器将按

14、新的计数值计数。 第8章可编程接口芯片及应用 4. 方式方式3 方波发生器方波发生器 方式3的波形如图8.8所示。它的特点是: 输出为周期性的方波。若计数值为N,则输出方波的周 期是N个CLK脉冲的宽度。 图8.8 方式3波形 WR CLK GATE OUT CW16 N4 4242424 第8章可编程接口芯片及应用 写入控制字后,输出将变为高电平.当写入计数初值后, 就开始计数,输出仍为高电平;当计数到初值一半时,输出变为低电 平,直至计数到0,输出又变为高电平,重新开始计数。 若计数值为偶数,则输出对称方波。如果计数值为奇数, 则前(N+1)/2个CLK脉冲期间输出为高电平,后(N1)/2

15、个CLK脉 冲期间输出为低电平。 GATE信号能使计数过程重新开始。GATE=1允许计数, GATE=0禁止计数。停止后OUT将立即变高开,当GATE再次变 高以后,计数器将重新装入计数初值,重新开始计数。 第8章可编程接口芯片及应用 5. 方式方式4软件触发选通软件触发选通 方式4的波形如图8.9所示,它种方式的特点是: 写入控制字后,输出为高电平。写入计数值后立即开始计 数(相当于软件触发启动),当计数到0后,输出一个时钟周期 的负脉冲,计数器停止计数。只有在输入新的计数值后,才能开 始新的计数。 当GATE=1时,允许计数,而GATE=0,禁止计数。GATE 信号不影响输出。 在计数过程

16、中,如果改变计数值,则按新计数值重新开始 计数。如果计数值是16位,则在设置第一字节时停止计数,在设 置第二字节后,按新计数值中开始计数。 第8章可编程接口芯片及应用 图8.9 方式4波形 WR CLK GATE OUT CW18N3 3210 第8章可编程接口芯片及应用 6.方式方式5硬件触发选通硬件触发选通 方式5的波形如图7.10所示,这这种方式的特点是: 写入控制字后,输出为高电平。在设置了计数值后,计 数器并不立即开始计数,而是由门控脉冲的上升沿触发启动。 当计数到0时,输出一个CLK周期的负脉冲,并停止计数。当门 控脉冲再次触发时才能再计数。 在计数过程中如果再次用门控脉冲触发,则

17、使计数器重新 开始计数,此时输出还保持为高电平,直到计数为0,才输出负 脉冲。 如果在计数过程中改变计数值,只要没有门控信号的触 发,不影响计数过程。当有新的门控脉冲的触发时,不管是否 计数到0,都按新的计数值计数。 第8章可编程接口芯片及应用 图图8.10 方式方式5波形波形 WR CLK GATE OUT CW1A N3 3210 第8章可编程接口芯片及应用 8.2.6 Intel 8 253的应用举例的应用举例 1.初始化初始化8253 要使用8253,必须首先对其进行初始化,初始化有两种方 法: 对每个计数器分别进行初始化,先写控制字,后写计数 值。如果计数值是16位的,则先写低8位再

18、写高8位。 先写所有计数器的方式字,再写各个计数器的计数值。 如果计数值是16位的,则先写低8位再写高8位。 第8章可编程接口芯片及应用 例如:假设一个8253在某系统中的端口地址40H43H,如 果要将计数器0设置为设置为工作方式3,计数初值为3060H,采 用二进制计数法,则初始化方法如下: MOVAL,36H;设置控制字00110110(计数器0, 方式3,写两个字节,二进制计数) OUT43H,AL;写入控制寄存器 MOVAX,3060H;设置计数值 OUT40H,AL;写低8位至计数器0 MOVAL,AH OUT40H,AL;写高8位至计数器0 第8章可编程接口芯片及应用 2.825

19、3在在IBM PC/XT机的应用机的应用 在IBM PC/XT机中,8253主要提供系统时钟中断、动态 RAM的刷新定时及喇叭发声控制等功能。8253的初始化是在计 算机启动时由BIOS完成的。图8.11是8253在IBM PC/XT机的应 用的示意图 从8284时钟发生器来的频率2.386364MHZ经二分频后作为 8253三个计数器的时钟输入,8253在IBM-PC/XT中的端口地址 为40H43H,这三个计数器在系统中的初始化程序如下: 第8章可编程接口芯片及应用 图8.11 8253在IBM-PC/XT机的应用的示意图 CLK 0 CLK 1 CLK 2 GATE 0 GATE 1 G

20、ATE 2 OUT 0 OUT 1 OUT 2 INT IRO Q Q & 滤波 & PB 0 PB 1 8255 5 V 1.193182 MHz 82538259 5 V 8088 CPU DMA 控制器 CP 第8章可编程接口芯片及应用 计数器0用于定时中断(约55ms) MOVAL,36H ;计数器0,方式3,写两个字节,二进制计数 OUT43H,AL ;控制字送控制字寄存器 MOVAL,0 ;计数值为最大值 OUT40H,AL ;写低8位 OUT40H,AL ;写高8位 第8章可编程接口芯片及应用 计数器1用于定时(15s)DMA请求 MOVAL,54H ;计数器1,方式2,只写低8

21、位,二进制计数 OUT43,AL MOVAL,12H ;初值为18 OUT41H,AL 第8章可编程接口芯片及应用 计数器3用于产生约900HZ的方波送至扬声器 MOVAL,B6H ;计数器3,方式3,写两字节,二进制计数 OUT43,AL MOVAX,0533H ;计数初值为533H OUT42H,AL ;写低8位 MOVAL,AH OUT42H,AL ;写高8位 第8章可编程接口芯片及应用 8.3 可编程并行接口电路可编程并行接口电路Intel 8255A 并行接口电路,在早期的微机中与串行口、软盘接口、硬 盘接口等都放在一块多功能接口卡上,插在微机的扩展槽上使 用。现在这部分电路已在微机

22、的主板上由与CPU配套的芯片组 北桥来实现其功能。如果要在其他的场合实现并行数据传送, 在电路设计时采用专用的接口芯片最为方便。可编程的接口芯 片8255A是完成并行通信的集成电路芯片。 第8章可编程接口芯片及应用 8.3.1 8255A的主要性能和内部结构的主要性能和内部结构 8255A是为Intel公司的80系列微机配套的通用可编程并行接 口芯片,具有三个可编程的端口(A端口、B端口和C端口),每个 端口8条线,共有24条I/O引脚,也可分为2组工作,每组12条线, 并有三种工作方式。 可编程是指可通过软件设置芯片的工作方式,因此这个芯 片在与外部设备相连接时,通常不需要附加太多的外部逻辑

23、电 路,这给用户的使用带来很大方便。 第8章可编程接口芯片及应用 芯片的主要技术性能如下: (1) 输入、输出电平与TTL电平完全兼容。 (2) 时序特性好。 (3) 部分位可以直接置“1”/置“0”,便于实现控制接口使 用。 (4) 单一的+5 V电源。 8255A的内部结构框图如图8.7(a)所示,图8.7(b)为8255A的 外引脚图。从图中可以看到,8255A主要由4部分组成。 第8章可编程接口芯片及应用 图8.7 8255内部结构和引脚图 (a) 8255A内部结构;(b) 8255A外引脚图 数 据 总 线 缓 冲 器 读 写 控 制 逻 辑 B组 控 制 端 口 B(8) 端 口

24、 C 下 半 部 (4) 端 口 C 上 半 部 (4) 端 口 A(8) A组 控 制 DB RD WR A 0 A 1 RESET CS CPU接 口 内 部 逻 辑外 部 接 口 PA 7 PA0 PC 7 PC4 PC 3 PC0 PB 7 PB0 8255A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 PA 3 PA 2 PA 1 PA 0 RD CS GND A 0 A 1 PC 7 PC 6 PC 5 P

25、C 4 PC 0 PC 1 PC 2 PC 3 PB 0 PB 1 PB 2 PA 4 PA 5 PA 6 PA 7 WR RESET D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 V CC PB 7 PB 6 PB 5 PB 4 PB 3 (a)(b) 8位 内 部 数 据 总 线 第8章可编程接口芯片及应用 1. 三个独立的数据口三个独立的数据口 8255A的三个数据口分别是A端口、B端口、C端口,它们彼 此独立,都是8位的数据口,用来完成和外设之间的信息交换。 三个口在使用上有所不同。 1) A端口 A端口对应一个8位的数据输入锁存器和一个8位的数据输出 锁存器和缓冲器

26、。因此A端口适合用在双向的数据传输场合,用 A端口传送数据,不管是输入还是输出,都可以锁存。 第8章可编程接口芯片及应用 2) B端口和C端口 这两个口分别是由一个8位的数据输入缓冲器和一个8位的 数据输出锁存器和缓冲器组成。因此用B端口和C端口传送数据 作输出端口时,数据信息可以实现锁存功能;而用作输入口时, 则不能对数据实现锁存,这一点在使用中要注意。在实际应用 中,A端口和B端口通常作为独立的输入口和输出口,而C端口 常用来配合A端口和B端口的工作使用。C端口分成两个4位的 端口,这两个4位的端口分别作为A端口和B端口的控制信号和 输入状态信号使用。 第8章可编程接口芯片及应用 2. A

27、组控制电路和组控制电路和B组控制电路组控制电路 控制电路分成A组控制和B组控制两组,A组控制电路控制 A端口和C端口的高4位(PC4PC7)。B组控制电路控制B端口和 C端口的低4位(PC0PC3)。这两组控制电路的作用是:由它们 内部的控制寄存器接收CPU输出的方式控制命令字,还接收来 自读/写控制逻辑电路的读/写命令,根据控制命令决定A组和B 组的工作方式和读/写操作。 第8章可编程接口芯片及应用 3. 读写控制逻辑电路读写控制逻辑电路 这部分电路是用来完成对8255A内部三个数据口的译码工 作,由CPU的地址总线A1、A0和8255A的片选信号CS和WR、 RD信号组合后产生控制命令,并

28、将产生的控制命令传送给A组 和B组的控制电路,从而完成对数据信息的传输控制。8255A的 控制信号与执行的操作之间的对应关系如表8-1所示。 第8章可编程接口芯片及应用 表表8-1 8255A的控制信号与执行的操作之间的对应关系的控制信号与执行的操作之间的对应关系 CSRDWR A1A0 执行的操作 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 0 1 x 1 0 1 0 1 0 0 0 1 1 x 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 1 1 x x x x 读A端口(A端口数据数据总线) 写A端口(A端口数据总线数据) 读B端口(B端

29、口数据数据总线) 写B端口(B端口数据总线数据) 读C端口(C端口数据数据总线) 写C端口(C端口数据总线数据) 当D71时,对8255A写入控制字 当D70时,对C端口置位/复位 非法的信号组合 数据线D7D0进入高阻状态 未选择 第8章可编程接口芯片及应用 4. 数据总线缓冲器数据总线缓冲器 这是一个双向、三态的8位数据总线缓冲器,是8255A和系 统总线相连接的通道,用来传送输入/输出的数据、CPU发出的 控制字以及外设的状态信息。总之,8255A与CPU之间的所有 信息传输都要经过数据总线缓冲器。 第8章可编程接口芯片及应用 8.3.2 8255A的外部特性的外部特性 8255A是40

30、条引脚的双列直插式芯片,引脚排列如图8.7(b) 所示。单一的+5 V电源,使用时要注意它的+5V电源引脚是第 26脚,地线引脚是第7脚,它不像大多数TTL芯片电源和地线在 右上角和左下角的位置,除了电源和地线之外,其他引脚的信 号按连接的功能可分为两大组。 第8章可编程接口芯片及应用 1. 与与CPU相连的引脚相连的引脚 RESET(35PIN):芯片的复位信号,高电平时有效。复位后 把8255A内部的所有寄存器都清0,并将三个数据口自动设置为 输入口。 CS(6PIN):片选信号,低电平时有效。只有当CS=0时,芯 片被选中,才能对8255A进行读、写操作。 RD(5PIN):读信号,低电

31、平有效。只有当CS=0,RD=0, 才允许从8255A的三个端口中读取数据。 WR(36PIN):写信号,低电平有效。只有当CS=0,WR=0, 才允许从8255A的三个端口写入数据或者是写入控制字。 第8章可编程接口芯片及应用 A1、A0(8,9PIN):端口译码信号。用来选择8255A内部的 三个数据端口和一个控制端口的地址。其中对控制口只能进行 写操作。 (1) 当A1A0=00时,选中A端口。 (2) 当A1A0=01时,选中B端口。 (3) 当A1A0=10时,选中C端口。 (4) 当A1A0=11时,选中控制端口。 A1、A0与读、写信号组合对各端口所执行的操作如表8-1所 示。

32、D7D0(2734PIN):双向三态8位数据线,与系统的数据总 线相连接。 第8章可编程接口芯片及应用 8255A的数据线为8条,这样8位的接口芯片在与8086外部数 据线为16条的CPU相连接时,应考虑接口芯片本身对地址的要 求。由于在8086这样的16位外部总线系统中,CPU在进行数据 传输时,低8位对应一个偶地址,高8位对应一个奇地址。如果 将8255A的数据线D7D0与8086CPU的数据总线的低8位相连的 话,从CPU这边看来,要求8255A的4个端口地址都应为偶地址, 这样才能保证对8255A的端口的读/写能在一个总线周期内完成, 但又要满足8255A本身对4个端口规定的地址要求是

33、00,01,10, 11。因此将8255A的A1和A0分别与8086系统总线的A2和A1相连, 而将最低位A0总设置为0。 第8章可编程接口芯片及应用 2. 和外设端相连的引脚和外设端相连的引脚 PA7PA0(3740 PIN,l4PIN):A端口的输入/输出引脚 PB7PB0(2518 PIN):B端口的输入/输出引脚 PC7PC0(1013,1714 PIN):C端口的输入/输出引脚 第8章可编程接口芯片及应用 8.3.3 8255A的控制字和编程的控制字和编程 由CPU执行输出指令,向8255A的端口输出不同的控制字来 决定它的工作方式。控制字分为两种,分别称为方式选择控制 字和端口C置

34、1/置0控制字。根据控制寄存器的D7位的状态决定 是哪一种控制字。 1. 方式选择控制字方式选择控制字 方式选择控制字用来决定8255A三个数据端口各自的工作方 式,它的格式如图8.8所示。它由一个8位的寄存器组成。 第8章可编程接口芯片及应用 图8.8 8255A的方式选择控制字 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 PC 3PC0 1:输入 0:输出 00:方式 0 01:方式 1 1x:方式 2 A端口 1:输入 0:输出 PC 7PC4 1:输入 0:输出 B组方式 0:方式0 1:方式1 B端口 1:输入 0:输出 B组控制A组控制 方式选择控制 字识别位,

35、为1 选中 第8章可编程接口芯片及应用 D7位为“1”时,为方式选择控制字的标识位。 D6、D5位决定A端口的工作方式,D6D5位为00、01、1x时分 别表示A端口工作在方式0、方式1和方式2下。 D4位决定A端口工作在输入还是输出方式。D4位为0时,A端 口工作在输出方式;D4位为1时,A端口工作在输入方式。 D3位决定用于A端口的C端口高4位PC7PC4是作为输入端口, 还是作为输出端口。D3位为0时,PC7PC4作输出;D3位为1时, PC7PC4作输入。 D2位用来选择B端口的工作方式。D2位为0时,B端口工作在 方式0,D2位为1时,B端口工作在方式1。 第8章可编程接口芯片及应用

36、 D1位决定B端口作为输入还是输出端口。D1位为1时B端口 工作在输入方式;D1位为0时B端口工作在输出方式。 D0位决定用于B端口的C端口低4位PC3PC0作为输入,还 是输出。D0位为0时,PC3PC0作输出;D0位为1时,PC3PC0 作输入。 如果要求8255A的A端口作输入,B端口和C端口作输出,A 组工作在方式0,B组工作在方式1,用三条指令可完成对芯片工 作方式的选择。 第8章可编程接口芯片及应用 MOV AL,94H;方式选择控制字送AL MOV DX,PortCtr ;控制端口地址PortCtr送DX OUTDX,AL;方式选择控制字输出给8255A的控制端 口,完成方式选择

37、 第8章可编程接口芯片及应用 2. C端口置端口置1/置置0控制字控制字 8255A在和CPU传输数据的过程中,经常将C端口的某几位 作为控制位或状态位来使用,从而配合A端口或B端口的工作。 为了方便用户,在8255A芯片初始化时,C端口置1/置0控制字可 以单独设置C端口的某一位为0或某一位为1。控制字的D7位为 “0”时,是C端口置1/置0控制字中的标识位,具体的格式如图 8.9所示。 第8章可编程接口芯片及应用 图8.9 8255A的C端口置1/置0控制字 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 C端口置位识 别位,为0有效 任意值C口位选择 000 : PC 0

38、 001 : PC 1 010 : PC 2 011 : PC 3 100 : PC 4 101 : PC 5 110 : PC 6 111 : PC 7 选中位置1/置0选择 0 : 置0 1 : 置1 第8章可编程接口芯片及应用 D6D4位可为任意值,不影响操作。D3D1位用来决定对C 端口8位中的哪一位进行操作。D0位用来决定对D3D1所选择的 位是置1,还是置0。 例如,要将C端口的PC3置0,PC7置1,可用下列程序段实 现。 MOVAL,06H;PC3置0控制字送AL MOVDX,PortAdd;控制端口地址PortAdd送DX OUTDX,AL;对PC3完成置0操作 MOVAL,

39、0FH;PC7置1控制字送AC OUTDX,AL;完成对PC7置1操作 第8章可编程接口芯片及应用 8.3.4 8255A的工作方式的工作方式 8255A有三种工作方式,分别称为方式0,方式1和方式2。 其中A端口可以工作在三种方式中的任一种;B端口只能工作在 方式0和方式1;C端口通常作为控制信号使用,配合A端口和B 端口的工作。每种工作方式的具体内容如下所述。 第8章可编程接口芯片及应用 1. 方式方式0:基本的输入:基本的输入/输出方式输出方式 方式0之所以被称为基本的输入/输出方式,是因为在这种方 式下,A端口、B端口和C端口(C端口分为2个4位使用)都可提供 简单的输入和输出操作,对

40、每个端口不需要固定的应答式联络 信号。工作在方式0时,在程序中可直接使用输入指令(IN)和输 出(OUT)指令对各端口进行读写。方式0的基本定义是2个8位的 端口和2个4位的端口。任何一个端口都可以作为输入或输出, 输出的数据可以被锁存,输入的数据不能锁存。 方式0的输入时序如图8.10所示,输出时序如图8.11所示。从 输入时序图可以看到,对各信号的要求是: 第8章可编程接口芯片及应用 (1) 地址信号要领先于RD信号到达,8255A在RD信号有效 以后,最长经过250 ns的时间,就可以使数据在数据总线上得到 稳定。 (2) 在一般的微处理器系统中都配备了地址锁存器,保证 CPU对先发出的

41、地址能够锁存,可以满足地址信号先于RD信号 到达,对于从读信号有效到数据稳定的时间,应由输入设备给 予满足。在使用时应注意,方式0对输入数据不做锁存。 第8章可编程接口芯片及应用 图8.10 8255A方式0输入时序 tRR tIR tAR tRDtDF tRA tHR 输入数据数据有效 数据有效 A 1、A0 D 7 D0 RD CS 第8章可编程接口芯片及应用 图8.11 8255A方式0输出时序 数据有效 数据有效 A 1、A2 D 7 D0 WR CS 输出数据 tWW tDW tWD tWA tWB tAW 第8章可编程接口芯片及应用 表表8-2 8255方式方式0输入时序各参数说明

42、输入时序各参数说明 RD 参 数说 明 8255A 最小时间/ns最大时间/ns tRR读脉冲的宽度300 tAR地址稳定领先于读信号的时间0 tIR输入数据领先于的时间0 tHR读信号过后数据继续保持时间0 tRA读信号无效后地址保持时间0 tRD从读信号有效到数据稳定的时 间 250 tDF读信号撤除后数据保持时间10150 第8章可编程接口芯片及应用 从输出时序图可以看到,为了将数据能可靠地输出到8255A, 对各信号的要求是: (1) 地址信号必须在写信号之前有效,同时要求在信号有效 (也就是为低电平时)期间内,地址信号不能发生变化,要保证一 直有效,直到在撤消(变高后)后的20 ns

43、时间以后,地址信号才允 许发生变化。 (2) 写脉冲 (为低电平时间)的宽度最小要求是400 ns。 (3) 要求数据也必须在写信号之前最少有100 ns时间出现在数 据总线上。写信号撤消后,数据的最小保持时间是30 ns。 第8章可编程接口芯片及应用 表表8-3 8255A方式方式0输出时序各参数说明输出时序各参数说明 参 数说 明 8255A 最小时间/ns最大时间/ns tAW 地址稳定领先于读信号的时间0 tWW 写脉冲的宽度400 tDW 数据有效时间 100 tWD 数据保持时间30 tWA 写信号撤消后的地址保持时间20 tWB 写信号结束到数据有效的时间350 第8章可编程接口

44、芯片及应用 满足上述条件,写信号结束后,最长经过350 ns的时间, CPU输出的数据就可以出现在8255A的指定端口。 方式0一般用于无条件传送的场合,不需要应答式联络信号, 外设总是处于准备好的状态。也可以用作查询式传送,查询式传 送时,需要有应答信号。可以将A端口、B端口作为数据口使用。 把C端口分为2部分,其中4位规定为输出,用来输出一些控制信 息,另外4位规定为输入,用来读入外设的状态。利用C端口配合 A端口和B端口完成查询式的I/O操作。 第8章可编程接口芯片及应用 2. 方式方式1:选通输入:选通输入/输出方式输出方式 在这种方式下,当A端口和B端口进行输入输出时,必须利 用C端

45、口提供的选通和应答信号,而且这些信号与C端口中的某 些位之间有着固定的对应关系,这种关系是硬件本身决定的不 是软件可以改变的。由于工作在方式l时,要由C端口中的固定 位来作为选通和应答等控制信号,因此称方式1为选通的输入/输 出方式。方式1的基本定义是,分成2组(A组和B组),每组包含 一个8位的数据端口和1个4位的控制/数据端口。8位的数据端口 既可以作为输入,也可以作为输出,输入和输出都可以被锁存。 4位的控制/数据端口用于传送8位数据端口的控制和状态信息。 第8章可编程接口芯片及应用 1) 选通的输入方式 方式1在选通输入方式下对应的控制信号如图8.12所示。图 8.13是方式1在选通输

46、入方式的工作时序图。选通输入方式的工 作过程是: 当外设的数据已送到8255A某个端口的数据线上时,就发出 选通输入信号STB,将数据通过A端口或B端口锁存到8255A的 数据输入寄存器,STB信号的宽度至少是500 ns。STB信号变低 后最多经过300 ns时间,使输入缓冲器满信号IBF变为高电平, 如图8.13中表示的箭头。 第8章可编程接口芯片及应用 输入缓冲器满意味着将阻止外设输入新的数据,可供CPU来查 询。在选通输入信号结束后,最多经过300 ns时间,向CPU发出 中断请求信号(要在中断允许的情况下),如图8.13中表示的箭头 ,使中断请求信号INTR变高,CPU可以响应中断。

47、当CPU响 应中断后才发出读信号RD,将数据读入到CPU中,读信号有效 (低电平为有效)后,最多经过400 ns时间,STB就清除中断请求, 使中断请求信号变低,如图8.13中表示的箭头。当读信号结束 后,才使输入缓冲器满信号IBF变低,如图8.13中表示的箭头。 IBF变低表明输入缓冲器已空,通知外设可以输入新的数据。 第8章可编程接口芯片及应用 图8.12 方式1选通输入下对应的控制信号 (a) 对A端口;(b) 对B端口 1011 I/O1011 I/O 11111 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D

48、 0 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 A组工作于方式1输入的控制字A组和B组工作于方式1输入的控制字B组工作于方式1输入的控制字 方式1 B端口为输入 PC 7、PC6 1输入 0输出 PC 7、PC6 1输入 0输出 A端口为输入 方式1 STB A IBF A INTR A I/O PC 4 PC 5 PC 3 INTE A & PC 7PC6 PA 7PA0 2RD 8 PC 2 PC 1 PC 0 INTE B & PB 7PB0 RD 8 INTR B IBF B STB B (a)(b) 第8章可编程接口芯片及应用 图8.13 8255A方式l输入时

49、序 STB IBF INTR RD 来自外设的 输入数据 数据有效 数据有效 12 3 4 tST tSIB tSIT tRIT tPH tPS tRIB 第8章可编程接口芯片及应用 表表8-4 8255A方式方式1输入时序参数说明输入时序参数说明 STB STB RD RD 参 数说 明 8255A 最小时间/ns最大时间/ns tST 选通脉冲的宽度500 tSIB 选通脉冲有效到IBF有效之间的时间 300 tSIT =1到中断请求INTR有效之间的时间 300 tPH 数据保持时间180 tPS 数据有效到 无效之间的时间0 tRIT 有效到中断请求撤除之间的时间 400 tRIB 为

50、1到IBF为0之间的时间 300 第8章可编程接口芯片及应用 当8255A的A端口和B端口工作在选通输入方式时,对应的 C端口固定分配,规定是PC3PC5分配给A端口,PC0PC2分 配给B端口,C端口剩下的2位PC7、PC6可作为简单的输入/输出 线使用。控制字的D3位为“1”时,PC7、PC6作输入;控制字的 D3位为“0”时,PC7、PC6作输出。 第8章可编程接口芯片及应用 在方式1选通输入方式时,各控制信号的意义如下: STB(Strobe):选通输入信号,低电平有效。A组方式控制 字中对应PC4;B组方式控制字中对应PC2。当该信号有效时, 从外部设备来的8位数据送入到8255A的

51、输入缓冲器中,负脉冲 宽度最小是500 ns。 第8章可编程接口芯片及应用 IBF(Input Buffer Full):输入缓冲器满信号,高电平有效。A 组方式控制字中对应PC5;B组方式控制字中对应PC1。这是 8255A送给外设的联络信号,当8255A的输入缓冲区已有一个新 数据后,输出这个信号供CPU查询。该信号在选通输入信号STB 变低后,300 ns时间内即变为有效的高电平。在RD信号撤消后 的300 ns时间内IBF信号才撤消,变为无效的低电平,这样保证 了数据传输的可靠性。 第8章可编程接口芯片及应用 INTR(Interrupt Request):中断请求信号,高电平有效。A

52、组 方式控制字中对应PC3;B组方式控制字中对应PC0。这是8255A 向CPU发出的中断请求信号。当STB信号撤消变为高电平后最多 300 ns时间内,并且IBF信号也为高电平,INTR信号产生变为有 效的高电平。INTR信号变高后可以请求CPU读取数据。当CPU 发出的RD信号有效后,400 ns的时间内INTR信号将撤消,变为 低电平。 第8章可编程接口芯片及应用 INTE(Interrupt Enable):中断允许信号,高电平有效。该信 号为高时,允许中断请求,为低时则屏蔽中断请求。INTE的状 态是用软件通过由C端口置1/置0控制字来控制的,在A组中,使 PC4置“1”后INTEA

53、变高;在B组中,使PC2置“1”后INTEB变高, A端口和B端口才允许中断。如果PC4和PC2都置“0”,与之对应 的INTE信号为低,则禁止中断。 对于这种选通的输入方式,如果采用查询式输入时,CPU先 查询8255A的输入缓冲器是否满了,也就是IBF是否为高? 如果输 入缓冲器满信号IBF为高,则CPU就可以从8255A读入数据。如 果采用中断方式传送数据时,应该先用C端口置1/置0的控制字使 相应的端口允许中断,也就是要使PC4或PC2置1。 第8章可编程接口芯片及应用 2) 选通的输出方式 方式1在选通输出情况下对应的控制信号如图8.14所示, 图8.15是方式1选通输出情况下的工作

54、时序图。这种方式的工 作过程与选通输入的情况相类似。 第8章可编程接口芯片及应用 图8.14 方式l输出时C端口对A、B端口的控制 (a) 对A端口;(b) 对B端口 1010 I/O1010 I/O 10110 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 A组工作于方式1输出的控制字A组和B组工作于方式1输出的控制字B组工作于方式1输出的控制字 方式1 B端口为输出 PC 5、PC4 1输入 0输出 PC 5、PC4 1输入 0输出 A端口为输出

55、 方式1 ACK A OBF A INTR A I/O PC 6 PC 7 PC 3 INTE A & PC 5PC4 PA 7PA0 2WR 8 PC 2 PC 1 PC 0 INTE B & PB 7PB0 WR 8 INTR B OBF B ACK B (a)(b) 第8章可编程接口芯片及应用 图8.15 8255A方式1输出时序 WR OBF INTR ACK 送往外设的输出数据数据有效 tAOB tWOB tWIT tAK tAIT tWB 2 1 3 4 第8章可编程接口芯片及应用 当8255A的A端口和B端口工作在选通输出方式时,对应的C 端口也是固定分配,规定是PC3、PC6、

56、PC7分配给A端口;PC2、 PC1、PC0分配给B端口,剩下的2位PC4、PC5可作为简单的输入/ 输出线使用。当控制字的D3位为“1”时,PC4、PC5作输入;当 控制字的D3位为“0”时,PC4、PC5作输出。 第8章可编程接口芯片及应用 方式1选通输出方式时,各控制信号的意义如下: OBF(Output Buffer Fu11):输出缓冲器满信号,低电平有效。 A组方式控制字中对应PC7;B组方式控制字中对应PC1,这是 8255A与外设的联络信号。当CPU向8255A的端口中传送了数据 以后,由8255A向外设发出低电平的OBF信号,通知外设可以把 数据取走。由输出指令产生的写信号W

57、R的上升沿出现后,最多 经过650 ns时间,将OBF信号置成有效即变为低电平,如图8.15 中表示的箭头。当应答信号ACK变为有效的低电平后350 ns时 间,OBF信号撤消变为高电平,如图8.15中表示的箭头。 第8章可编程接口芯片及应用 表表8-5 8255A方式方式1输出时序参数说明输出时序参数说明 OBF ACK ACK 参 数说 明 8255A 最小时间/ns最大时间/ns tWIT 从写信号有效到中断请求无效的时间 850 tWOB 从写信号无效到输出缓冲器清的时间 650 tAOB 有效到无效的时间 350 tAK 脉冲的宽度300 tAIT 为1到发新的中断请求的时间 350

58、 tWB 写信号撤除到数据有效的时间350 ACK 第8章可编程接口芯片及应用 ACK(Acknowledge):数据接收应答信号,低电平有效。A 组方式控制字中对应PC6;B组方式控制字中对应PC2,这是外 设的响应信号,当CPU输出给8255A的数据已由外设接收后,外 设就向8255A回送一个低电平的应答信号ACK。 INTR:中断请求信号,高电平有效。A组方式控制字中对 应PC3;B组方式控制字中对应PC0。当外设已经接受了CPU输 出的数据后,由8255A向CPU发出中断请求,要求CPU输出新的 数据。当ACK撤消后为高电平,OBF也为高电平,中断允许信 号INTE也为高时,INTR中

59、断请求信号被置位为高电平,如图 8.19中表示的箭头。作为请求CPU进行下一次数据输出的中断 请求信号,是在WR有效的下降沿出现后850 ns时间内使它变为 无效的低电平,如图8.19中表示的箭头。 第8章可编程接口芯片及应用 INTE:中断允许信号,高电平有效。当该信号为“1”时, 允许中断,为“0”时,A端口(B端口)处于中断屏蔽状态,即不 发出中断请求信号INTR。在使用时,中断允许信号INTE是用 软件通过对C端口置1/置0的控制字来设置的。当PC6置1时,A 端口允许中断;PC2置1,B端口允许中断。反之,如果A、B端 口所对应的PC6、PC2置0时,则处于中断屏蔽状态,即不允许 中

60、断。 第8章可编程接口芯片及应用 当8255A工作在方式l输出选通方式时,一般是采用中断方 式与CPU通信。从图8.19方式1输出工作时序图中可以看到, CPU响应中断以后,就向8255A输出数据,写信号出现。当写信 号WR撤消,其上升沿一方面撤消中断请求信号INTR,如图8.19 中表示的箭头使INTR变低,表示CPU对上一次中断已经响应 过。另一方面使OBF信号变为有效的低电平,如图8.19中表示的 箭头,以通知外设可以接收下一个数据。 第8章可编程接口芯片及应用 实际上,CPU在发出写信号后要经过最长350 ns时间,数据 才能出现在端口的输出缓冲器中。当外设收到数据后,便发出 一个AC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论