8255A的工作方式及其初始化编程
8255可编程并行接口知识点总结
8255可编程并⾏接⼝知识点总结可编程并⾏接⼝8255知识点总结8255A 是INTEL系列的并⾏接⼝芯⽚,由于它是⼀种可编程的外部接⼝部件,通常作为微机系统总线与外部设备的接⼝控制部件,可通过软件来设置芯⽚的⼯作⽅式,⽤8255A 连接外部设备时,通常不需要附加外部电路,给使⽤带来很⼤的⽅便。
1、内部结构2、引脚说明8255作为主机与外设的连接芯⽚,必须提供与主机相连的3个总线接⼝,即数据线、地址线、控制线接⼝。
同时必须具有与外设连接的接⼝A、B、C⼝。
由于8255可编程,所以必须具有逻辑控制部分,因⽽8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。
(1)与CPU连接部分根据定义,8255能并⾏传送8位数据,所以其数据线为8根D0~D7。
由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C⼝及控制寄存器,故地址线为两根A0、A1。
此外CPU要对8255进⾏读、写与⽚选操作,所以控制线为⽚选、复位、读、写信号。
各信号的引脚编号如下:总线分类:(2)与外设接⼝部分8255有3个通道A、B、C与外设连接,每个通道⼜有8根线与外设连接,所以8255可以⽤24根线与外设连接,若进⾏开关量控制,则8255可同时控制24路开关。
①数据端⼝A、B、C端⼝A(PA0-PA7):对应了1个8位的数据输⼊锁存器和1个数据输出锁存/缓冲器。
所以A 作为输⼊或输出时,数据均受到锁存。
端⼝B(PB0-PB7):对应了1个8位的数据输⼊缓冲器和1个数据输出锁存器/缓冲器。
所以B 输⼊锁存,输出不受到锁存。
端⼝C(PC0-PB7):对应1个8位数据缓冲器和1个数据输出锁存/缓冲器,所以C输⼊不锁村,输出锁存。
当8255⼯作于应答I/O⽅式时,C⼝⽤于应答信号的通信。
A、B组的逻辑控制功能A组:组成:端⼝A(PA0-PA7)和端⼝C的⾼4位(PC4-PC7)这⼏个端⼝由A组统⼀进⾏逻辑控制。
可编程并行接口芯片8255A
大规模控制系统的需求。
8255A与可编程逻辑器件的结合,可以实现高速、实时的数据
03
采集和控制。
在数据采集与控制系统中的应用
8255A在数据采集与控制系统中,可以作为数据传输的桥梁,实现快速、稳定的数 据传输。
通过8255A,可以实现多路数据的并行采集和处理,提高了数据处理的效率。
8255A在数据采集与控制系统中,可以作为主控制器,协调各个模块的工作,保证 系统的稳定运行。
微处理器可以通过8255A实现对 外部设备的控制,扩展了微处理
器的控制能力。
8255A可以作为微处理器的输入 /输出接口,实现人机交互和数据
采集。
与可编程逻辑器件连接的应用
01
8255A可以与可编程逻辑器件连接,实现复杂的逻辑控制和数 据处理。
02
通过8255A,可编程逻辑器件可以扩展其输入/输出端口,满足
根据实际需求,设定8255A的数据格式,包括数据位、停止位、 奇偶校验位等。
数据读写操作
通过数据传输编程实现对8255A的数据读写操作,包括读数据、 写数据、读写同时操作等。
PART 05
8255A的应用实例
与微处理器连接的应用
8255A与微处理器连接,可以实 现并行数据传输,提高数据传输
效率。
在现代嵌入式系统中,8255A芯片仍有一 定的应用,尤其在一些需要并行I/O接口的 场合,如人机界面、传感器等。
PART 02
8255A芯片的基本结构 与功能
芯片的基本组成
输入/输出端口
数据总线
8255A包含三个输入/输出端口,分别为 端口A、端口B和端口C。每个端口都有8 个位,可以独立配置为输入或输出模式。
控制信号生成
微机原理 可编程接口芯片8255A及应用
第七章
参考程序片断: MOV AL, 10010000B ; 控制字 OUT 0F6H, AL ; 写入控制字 LP: IN AL, 0F0H ; 从A口读入开关状态 OUT 0F2H, AL ; B口控制LED,指示开关状态 CALL DELAY1S JMP LP
思考:
若地址大于FFH,则程序应该怎么改?
dp g f e d c b a
g
d
b
c
DP
g f e d c b a 1
阴 极
0
1
1
0
1
36
1
0
第七章
十六进制数共阴极的七段显示码表
十六进制数字
0 1 2 3 4 5 6
七段显示码
3FH 06H 5BH 4FH 66H 6DH 7DH
十六进制数字
8 9 A b C d E
七段显示码
7FH 6FH 77H 7CH 39H 5EH 79H
内部逻辑 6
端口C (低4位)
B 组B 端口
PC3~PC0
(8位)
PB7~PB0
CPU接口
外设接口
第七章
8255A与系统的连接示意图
7
第七章
3、各部分功能简介
数据端口
A、B、C:可用来和外设传送信息;每
个端口8位,通过编程设定其为输入口或输出口;
工作方式 0 1 8255数据端口功能表 B口 A口 C口
教材第九章内容
第七章
可编程外围接口芯片8255A及其应用
7.1 8255A的工作原理
一、8255A的结构和功能
二、8255A的控制字及初始化编程 三、8255A工作方式和C口状态字
第七章 可编程并行接口芯片8255A
CPU和外设之间的数据传送方式有哪几种?实际选择某种传输 方式时,主要依据是什么? CPU与外设之间的数据传输有以下三种方式:程序方式、中断 方式、DMA方式。 其中程序方式又可分为无条件传送方式和查询方式两种方式。 在CPU外设传送数据不太频繁的情况下一般采用无条件传送 方式。 在CPU用于传输数据的时间较长且外设数目不多时采用查询 方式。 在实时系统以及多个外设的系统中,为了提高CPU的效率和 使系统具有实时性能,采用中断传送方式。 如I/O设备的数据传输效率较高,那么CPU和这样的外设进 行数据传输是,即使尽量压缩程序查询方式和中断方式中的 非数据传输时间,也仍然不能满足要求。这是因为在这两种 方式下,还存在另外一个影响速度的原因,即它们都是按字 节或字来进行传输的。为了解决这个问题,实现按数据块传 输,就需要改变传输方式,这就是直接存储器传输方式,即 DMA方式。
例题:若C口的PC7位要求置1,PC3位要求置0,且控制口地 址为00EEH,请写出该片8255初始化程序。 MOV AL, 00001111B MOV DX, 00EEH OUT DX, AL MOV AL, 00000110B OUT DX, AL ;对C口的PC7置位
;对C口的PC3复位
7-2 8255应用举例
第七章 可编程并行接口芯片8255A
• 7-1 8255简介
• 7-2 8255应用举例
7-1 8255简介
一、8255结构及引脚功能 二、8255工作方式 三、8255初始化
一、8255结构及引脚功能 1.结构引脚:由四部分组成。
(1)数据总线缓冲器(D0-D7):实现8255同CPU之间数 据交换,CPU通过执行IN,OUT指令实现发送接收数据, CPU向8255发出的控制字,状态字都由它传送。 (2)读写控制逻辑:接收CPU的A0,A1,RD,WR,CS, 将这些信号组合后得到对A组B组部件的控制命令。其中 A0,A1为片内寻址,决定了8255有四个端口地址,A2A19为片外寻址线,通过地址译码器连到CS端。 (3)数据端口A,B,C:为三个独立的输入/输出口(与 外设连接)。 (4)A组B组控制电路:这两组控制电路根据CPU发出的方 式选择字来控制8255的工作方式,一方面接收芯片内部 总线上的控制字,一方面接收来自读/写控制逻辑电路 的读/写命令,据此决定两组端口的工作方式和读/写操 作。
8255a并行接口芯片的基本结构及工作原理 -回复
8255a并行接口芯片的基本结构及工作原理-回复[8255a并行接口芯片的基本结构及工作原理]是指针对特定应用设计的一种集成电路芯片,用于实现计算机系统与外部设备之间的并行通信。
本文将逐步介绍8255a并行接口芯片的基本结构和工作原理。
一、引言随着电子技术的发展,计算机系统逐渐与外部设备进行连接,实现数据的输入和输出。
为了满足不同应用场景的需求,芯片设计者提出了各种接口芯片,其中并行接口芯片是其中之一。
并行接口芯片的作用是实现计算机系统和外部设备之间的高速数据传输,其基本结构和工作原理对于提高系统的数据传输效率具有重要作用。
二、基本结构8255a并行接口芯片是一种功能强大的集成电路芯片,基本结构包括以下组成部分:1. 端口组(Port Group):8255a芯片内部包含三个8位的端口组,分别为A、B、C端口组。
每个端口组都可由外部设备进行数据的输入和输出。
同时,每个端口组都包含了相关的控制寄存器,用来设置和控制端口的工作状态。
2. 控制寄存器(Control Register):8255a芯片中的每个端口组都有一个对应的控制寄存器,用于设置和控制端口的工作模式。
其中,控制寄存器的位数和功能根据不同的芯片型号而变化。
3. 数据寄存器(Data Register):8255a芯片中的每个端口组都有一个对应的数据寄存器,用于存放从外部设备中读取的数据或要写入到外部设备中的数据。
数据寄存器的位数根据芯片型号和端口组而定。
4. 模式控制寄存器(Mode Control Register):8255a芯片内部还包含一个模式控制寄存器,用于设置和控制端口组的工作模式。
该寄存器中的位数和功能根据不同的芯片型号而变化。
三、工作原理8255a并行接口芯片的工作原理主要包括以下几个方面:1. 初始化:在开始使用8255a芯片之前,需要对芯片进行初始化设置。
通过设置控制寄存器和模式控制寄存器,可以设置端口组的输入和输出模式,以及中断使能等参数。
8255a初始化编程
8255a初始化编程
8255A是一种并行I/O接口芯片,它可以配置为三个独立的I/O端口:端口A、端口B和端口C。
以下是一个8255A 的初始化编程的简单示例:
首先,我们需要设置控制字来配置8255A的工作模式。
控制字是通过将8位数据写入控制寄存器来设置的。
控制字的每一位都有特定的含义,用于配置端口A、端口B和端口C的工作模式。
例如,如果我们想要设置端口A为输出模式,端口B为输入模式,端口C为输入模式,我们可以设置控制字为1000 0000。
这个控制字的意思是:
控制字的第0位设置为1表示使能片选信号(ENABLE),启动芯片。
控制字的第1位设置为0表示端口A为输出模式。
控制字的第2位设置为0表示端口B为输入模式。
控制字的第3位设置为0表示端口C为输入模式。
控制字的第4位到第7位未使用,因此可以忽略。
然后,我们可以将这个控制字写入8255A的控制寄存器:assembly复制代码:
OUT 8255_control_register, control_word
其中,8255_control_register是控制寄存器的地址,control_word是我们刚才计算出的控制字。
这样我们就完成了8255A的初始化编程。
之后,我们就可以使用端口A、端口B和端口C进行I/O操作了。
注意:以上代码是假设我们在使用某种汇编语言进行编程。
不同的编程语言可能有不同的语法和函数来操作硬件。
8255A的工作方式及其初始化编程
8255A 的工作方式及其初始化编程8255A 有三种工作方式:基本输入/输出方式、单向选通输入/输出方式和双向选通输入/输出方式.1.8255A 的工作方式(1)方式0:基本输入/输出方式(basic Input/Output)方式0是8255A 的基本输入/输出方式,其特点是与外设传送数据时,不需要设置专用的联络(应答)信号,可以无条件的直接进行I/O 传送.A, B, C 3个端口都可以工作在方式0.A 口和B 口工作在方式0时,只能设置为以8位数据格式输入/输出;C 口工作在方式0时,可以高4位和低4位分别设置为数据输入或数据输出方式.方式0常用于与外设无条件数据传送或查询方式数据传送.(2)方式1:单向选通输入/输出方式(strobe Input/Output)方式1是一种带选通信号的单方向输入/输出工作方式,其特点是:与外设传送数据时,需要联络信号进行协调,允许用查询或中断方式传送数据.由于C 口的PC0, PC1和PC2定义为B 口工作在方式1的联络信号线,PC3,PC4和PC5定义为A 口工作方式1的联络信号线,因此只允许A 口和B 口工作在方式1.A 口和B 口工作在方式1,当数据输入时,C 口的引脚信号定义如图7.6所示.PC3, PC4和PC5定义为A 口的联络信号线INTRA, A STB 和IBFA, PC0, PC1和PC2定义为B 口的联络信号线INTRB, IBFB 和B STB ,剩余的PC6和PC7仍可以作为基本I/O 线,工作在方式0.方式1输入联络信号的功能如下:STB (strobe input):选通信号,输入,低电平有效.此信号由外设产生输入,当STB 有效时,选通A 口或B 口的输入数据锁存器,锁存由外设输入的数据,供CPU 读取.IBF(input buffer full):输入缓冲器满信号,输出,高电平有效.当A 口或B 口的输入数据锁存器接收到外设输入的数据时,IBF 变为高电平,作为对外设STB 的响应信号,CPU 读取数据后IBF 被清除.INTR:中断请求信号,输出,高电平有效,用于请求以中断方式传送数据.为了能实现用中断方式传送数据,在8255A 内部设有一个中断允许触发器INTE,当触发器为"1"时允许中断,为"0"时禁止中断.A 口的触发器由PC4置位或复位,B 口的触发器由PC2置位或复位. 方式1数据输入的时序如图7.7所示.当外设的数据准备就绪后,向8255A 发送STB 信号以便锁存输入的数据, STB 的宽度至少为500ns,在STB 有效之后的约300ns,IBF 变为高电平,并一直保持到RD 信号由低电平变为高电平,待CPU 读取数据后约300ns 变为低电平,表示一次数据传送结束.INTR 是在中断允许触发器INTE 为1,且IBF 为1(8255A 接收到数据)的条件下,在STB后沿(由低变高)之后约300ns 变为高电平,用以向CPU 发出中断请求,待RD 变为低电平后约400ns, INTR 被撤销.A 口和B 口工作在方式1,当数据输出时,C 口的引脚信号定义如图7.8所示.PC3, PC6和PC7定义为A 口联络信号线INTRA,A ACK 和A OBF ,PC0,PC1和PC2定义为B 口联络信号线INTRB, B OBF 和B ACK ,剩余的PC4和PC5仍可以作为基本I/O 线,工作在方式0.方式1输出联络信号的功能如下:OBF (output buffer full):输出缓冲器满指示信号输出,低电平有效.OBF 信号由8255A 发送给外设,当CPU 将数据写入数据端口时, OBF 变为低电平,用于通知外设读取数据端口中的数据.ACK (acknowledge input):应答信号,输入,低电平有效. ACK 信号由外设发送给8255A,作为对OBF 信号的响应信号,表示输出的数据已经被外设接收,同时清除OBF 信号.INTR:中断请求信号,输出,高电平有效.用于请求以中断方式传送数据.方式1数据输出的时序如图7.9所示.当CPU 向8255A 写入数据时,WR 信号上升沿后约650ns, OBF 有效,发送给外设,作为外设接收数据的选通信号.当外设接收到送来的数据后,向8255A 回送ACK 信号,作为对OBF 信号的应答.ACK 信号有效之后约350ns, OBF 变为无效,表明一次数据传送结束.INTR 信号在中断允许触发器INTE 为1且信号无效之后约350ns 变为高电平.若用中断方式传送数据时,通常把INTR连到8259A的请求输入端IRi.(3)方式2:双向选通输入/输出方式(bi-directional bus)方式2为双向选通输入/输出方式,是方式1输入和输出的组合,即同一端口的信号线既可以输入又可以输出.由于C口的PC7~PC3定义为A口工作在方式2时的联络信号线,因此只允许A口工作在方式2,引脚信号定义如图7.10所示.由图7.10可以看出,PA7~PA0为双方向数据端口,既可以输入数据又可以输出数据.C口的PC7~PC3定义为A口的联络信号线,其中PC4和PC5作为数据输入时的联络信号线,PC4定义为输入选通信号STB,PC5定义为输入缓冲器满IBFA;APC6和PC7作为数据输出时的联络信号线,PC7定义为输出缓冲器满OBF,PC6定义A为输出应答信号ACK;PC3定义为中断请求信号INTRA.A需要注意的是:输入和输出公用一个中断请求线PC3,但中断允许触发器有两个,即输入中断允许触发器为INTE2,由PC4写入设置,输出中断允许触发器为INTE1,由PC6写入设置,剩余的PC2~PC0仍可以作为基本I/O线,工作在方式0.2.8255A初始化编程8255A的A,B,C三个端口的工作方式是在初始化编程时,通过向8255A的控制端口写入控制字来设定的.8255A由编程写入的控制字有两个:方式控制字和置位/复位控制字.方式控制字用于设置端口A, B, C的工作方式和数据传送方向;置位/复位控制字用于设置C口的PC7~PC0中某一条口线PCi(i=0~7)的电平.两个控制字公用一个端口地址,由控制字的最高位作为区分这两个控制字的标志位.(1)方式控制字的格式 8255A工作方式控制字的格式如图7.11所示.D0:设置PC3~PC0的数据传送方向.D0=1为输入;D0=0为输出.D1:设置B口的数据传送方向.D1=1为输入;D1=0为输出.D2:设置B口的工作方式.D2=1为方式1;D2=0为方式0.D3:设置PC7~PC4的数据传送方向.D3=1为输入;D3=0为输出.D4:设置A口的数据传送方向.D4=1为输入;D4=0为输出.D6D5:设置A口的工作方式.D6D5=00为方式0,D6D5=01为方式1,D6D5=10或11为方式2.D7:方式控制字的标志位,恒为1.例如,将8255A的A口设定为工作方式0输入,B口设定为工作方式1输出,C口没有定义,工作方式控制字为10010100B. (2)C口置位/复位控制字的格式8255A C口置位/复位控制字的格式如图7.12所示.8255A C口置位/复位控制字用于设置C口某一位口线PCi(i=0~7)输出为高电平(置位)或低电平(复位),对各端口的工作方式没有影响.D3~D1:8种状态组合000~111对应表示PC0~PC7.D0:用来设定指定口线PCi为高电平还是低电平.当D0=1时,指定口线PCi输出高电平;当D0=0时,指定口线PCi输出低电平.D6~D4没有定义,状态可以任意,通常设置为0.D7位作为标志位,恒为0.例如,若把PC2口线输出状态设置为高电平,则置位/复位控制字为00000101B.(3)8255A初始化编程8255A的初始化编程比较简单,只需要将工作方式控制字写入控制端口即可.另外,C口置位/复位控制字的写入只是对C口指定位输出状态起作用,对A口和B口的工作方式没有影响,因此只有需要在初始化时指定C口某一位的输出电平时,才写入C口置位/复位控制字.【例7.1】设8255A的A口工作在方式0,数据输出,B口工作在方式1,数据输入,编写初始化程序(设8255A的端口地址为FF80H~FF83H).初始化程序如下:MOV DX, 0FF83H ; 控制寄存器端口地址为FF83HMOV AL, 10000110B ; A口方式0, 数据输出, B口方式1, 数据输入OUT DX, AL ; 将控制字写入控制端【例7.2】将8255A的C口中PC0设置为高电平输出,PC5设置为低电平输出,编写初始化程序(设8255A的端口地址为FF80H~FF83H).初始化程序如下:MOV DX, 0FF83H ; 控制端口的地址为FF83HMOV AL, 00000001B ; PC0设置为高电平输出OUT DX, AL ; 将控制字写入控制端口MOV AL, 00001010B ; PC5设置为低电平输出OUT DX, AL ; 将控制字写入控制端口。
8255初始化编程步骤
8255初始化编程步骤一、引言8255是一种通用的并行I/O接口芯片,常用于嵌入式系统中。
本文将介绍8255的初始化编程步骤,帮助读者快速上手使用该芯片。
二、8255概述8255是一款具有三个I/O端口的芯片,即PA、P B和P C端口。
每个端口都可以被配置为输入或输出端口,用于与外部设备进行数据交互。
三、8255初始化编程步骤以下是8255初始化编程的详细步骤:步骤1:设置模式字模式字用于配置8255的工作模式,包括端口A、B、C的工作模式以及手动或自动方式。
模式字的格式如下:位|功能D7|A和C寄存器的工作模式选择D6|A和C寄存器的工作模式选择D5|A寄存器的操作模式选择D4|B和C寄存器的工作模式选择D3|B和C寄存器的工作模式选择D2|B寄存器的操作模式选择D1|模式选择标志:1为手动,0为自动D0|1为允许端口C访问,0为禁止端口C访问参考以下示例代码设置模式字:m o de=0b00100010;o u tp(0x80,mo de);//将模式字写入8255的控制寄存器步骤2:配置端口A和端口C针对端口A和端口C,需要进行以下设置:配置端口A1.如果端口A是输出端口,设置控制寄存器的位PA E为1。
2.如果端口A是输入端口,设置控制寄存器的位PA E为0。
参考以下示例代码进行端口A的配置:i f(o ut pu tP or tA){o u tp(0x82,0x01);//设置PA E为1,将端口A配置为输出}e ls e{o u tp(0x82,0x00);//设置PA E为0,将端口A配置为输入}配置端口C1.如果端口C是输出端口,设置控制寄存器的位PC F为1。
2.如果端口C是输入端口,设置控制寄存器的位PC F为0。
参考以下示例代码进行端口C的配置:i f(o ut pu tP or tC){o u tp(0x82,0x04);//设置PC F为1,将端口C配置为输出}e ls e{o u tp(0x82,0x00);//设置PC F为0,将端口C配置为输入}步骤3:配置端口B针对端口B,需要进行以下设置:配置端口B工作模式设置控制寄存器的位P BF E为1,将端口B配置为全双工模式。
可编程芯片8255A及其应用
8255A芯片在工业控制中的应用
在工业控制中,8255A芯片可以用于采集各种传感器的数据。
传感器数据采集
执行器控制
安全监控
自动化生产
通过编程,8255A芯片可以控制各种执行器,如电机、阀门等。
8255A芯片可以用于监控工业生产过程中的各种安全参数。
通过与PLC等其他工业控制设备的配合,8255A芯片可以实现自动化生产流程的控制和管理。
OUT 83H ;将累加器A的内容输出到83H端口
01
02
03
编程实例
HLT ;结束程序
编程实例
这是一个简单的8255A编程示例,用于初始化芯片并设置一个特定的端口。在这个例子中,我们使用汇编语言进行编程,通过`OUT`指令将累加器A的内容输出到83H端口,然后通过`HLT`指令结束程序。
01
02
03
04
05
根据项目需求和开发环境,选择合适的编程语言。
2.选择编程语言
使用所选的编程语言编写代码,实现8255A芯片的控制逻辑。
3.编写代码
完成基本功能后,进行全面的测试,并根据测试结果优化代码。
5.测试和优化
将代码编译成可在芯片上运行的格式,并通过仿真或实际硬件进行调试。
4.编译和调试
8255A芯片在微机接口中的应用
作为微机的接口,8255A芯片可以实现与其他设备或系统的数据通信。 通过8255A芯片,微机可以扩展其I/O端口,从而连接更多的外部设备。 在微机接口中,8255A芯片的并行处理能力可以提高数据处理速度。 通过编程,8255A芯片可以用于实时控制微机系统的某些功能。 数据通信 扩展I/O端口 并行数据处理 实时控制
可靠性更强
应用领域拓展
8255芯片初始化编程方法
8255芯片初始化编程方法
8255芯片是一种并行I/O接口芯片,由Intel公司生产。
它有三个8位I/O 端口,分别为端口A、端口B和端口C,以及一个控制字寄存器。
通过向控制字寄存器写入不同的控制字,可以配置8255芯片的工作模式,包括输入、输出、中断等。
初始化8255芯片的编程方法如下:
1. 确定工作模式:根据实际需要,确定8255芯片的工作模式。
8255芯片
有四种工作模式,分别为方式0、方式1、方式2和方式3。
2. 配置控制字:根据工作模式,计算控制字的值,并向8255芯片的控制字寄存器写入控制字。
控制字的计算方法可以参考8255芯片的数据手册。
3. 配置端口:根据实际需要,向端口A、端口B和端口C写入相应的数据。
需要注意的是,向端口写入数据时需要将相应的控制位设置为1,否则数据无法写入。
4. 中断配置:如果需要使用8255芯片的中断功能,需要根据实际情况配置中断向量和中断触发方式等参数。
需要注意的是,具体的编程方法可能会因为不同的开发环境和编程语言而有所不同。
因此,在实际编程时,需要参考具体的开发环境和编程语言的相关文档。
(18)8255A的编程 6.52
标 志 位
0---------Output 1---------Input
例1:设8255A口、B口、C口都工作在方式0。A口输出;B口输出,C口输入,填出方式字 1 标 志 0 A 方式0 0 0 1 0 0 1
A C高4 B B C低4 输出 输入 方式0 输出 输入
方式控制字 为 89H
第1页
6.5.3 8255A的编程 (P211)
(1)8255工作方式控制字
1 D6 D5 D4 D3 D2 D1 D0 B组控制 0 C口 (低四位) 1 0 B口 1 0 方式选择 1 A组控制 0 C口 (高四位) 1 0 A口 1 0 0 方式选择 1 0 × 1 输出 输入 输出 输入 方式0 方式1 输出 输入 输出 输入 方式0 方式1 方式2
注:一般取值000
例1:把PC4置1(置位)
0
0
0
0
1
0
0
1 置1
09H
标志 无定义,选0
例2:把PC2置0 (复位)
操作PC4
0
0
0
0
0
1
0
0
置0
04H
标志 无定义,选0
操作PC2
第3页
电气工程学院
(3)初始化举例 例如,若规定端口A为方式1输出,端口C上半部分为输出,端口B指定为方式0输入, 端口C下半部分为输入,则方式选择控制字应是:10100011B或A3H。 若将此控制字的内容写入8255A的控制寄存器,即完成了对8255A的初始化。初始化程 序段为: MOV DX, 210H MOV AL, 0A3H OUT DX, AL ;假设控制端口的地址为210H ;方式选择控制字 ;送到控制端口
可编程并行接口芯片8255
1
10
D7~D0 PB7~PB0
外
设
INTEB
PC2
PC2 PC1
与门
WR
PC0
ACKB OBFB
INTRB
B口方式1输出时 相应的联络信号
17
对方式1输出的端口,C口提供与外部联络的信号有:
先
① OBF 输出缓冲器满 信号(低电平有效) 当CPU把数据送至8255A输出缓冲器后,8255A自动发出。
4
I/O PC3 PC0
B B
8
I/O PB7 PB0
5
1、8255A内部结构与引脚:内部结构
(3)、读/写控制部件 8255A内部完成读/写控制功能的部件。 与6条输入控制线连接,负责接受CPU输入的控制信号。 (4)、数据总线缓冲器 8位双向三态缓冲器,是8255A与CPU交换各类数据的接口。
3
1、8255A内部结构与引脚:内部结构
(1)、并行输入/输出端口 8255A有3个输入/输出端口A、B、C。每个端口8位,分别与不同
的外设进行数据交换。 在与外设数据传送中需要联络控制信号时,C端口作控制信号输 出和状态信号输入,与A、B口配合。
7
0
7
0
7
4
1
3
0
0
7
0
4
1、8255A内部结构与引脚:内部结构
RD
(2)、与CPU连接的引脚
CS GND
①数据线D0—D7;
A1
②输入控制线:
A0 PC7
* RESET——复位信号
PC6
RESET有效时,清除8255A内部 PC5
寄存器,包括控制寄存器,A 口、B口和C口设置为输入方
8255的使用
实验八可编程并行接口芯片8255A的使用2一、实验目的了解可编程并行接口芯片8255的内部结构、工作方式、初始化编程及应用。
二、实验设备(1)显示器、鼠标、键盘各一件;(2)QTH-2008PC 32位微机教学实验仪一套。
三、实验说明1、8255A的内部结构:(1)数据总线缓冲器:这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。
输入输的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。
(2)三个端口A,B和C:A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。
B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。
C端口包含一个8位数据输出锁存器及缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。
(3)A组和B组控制电路:这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。
方式控制字的高5位决定A组工作方式,低3位决定B 组的工作方式。
对C口按位复位命令字可对C口的每一位实现置位或复位。
A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。
(4)读写控制逻辑:用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。
2、8255A的工作方式:方式0—基本输入输出方式;方式1—选通输入输出方式;方式2—双向选通输入输出方式。
3、8255A的控制字:图1 8255A方式控制字图2 C口按位置位/复位控制字四、实验原理图图3 可编程并行接口8255电路五、实验内容I/O输入输出实验:利用8255的A口读取开关状态、B口把状态送发光二极管显示。
六、实验步骤(1)实验连线该模块的WR、RD分别连到PC104总线接口模块的IOWR、IORD。
该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到PC104总线接口模块的数据(D0~D7)、地址线(A0~A7)。
实验四8255A初始化编程课件
设断点或单步执行程序,用万用表测试记录:
⑴ 8255输出口输出何种逻辑电平时,点亮单色灯?
⑵ 8255输入口输入何种逻辑电平时,输出口点亮单
色灯?
⑶ 观察、分析开关状态是否实时显示在LED灯上?
⑷ 将8位开关状态分别设置为:E(H)和7(H) 时,8255
读入数据、输出数据、单色灯状态记录到表1中。
A组 控制
数据 总线 缓冲器
读/写 控制 逻辑
内
.部 数
.
..
据 总
线
B组 控制
PPT学习交流
A组 A口
8 PA7~PA0
(8)
A组 C口 4 PC7~PC4 (4)
B组 C口 4 PC3~PC0 (4)
B组
B口
8 PB7~PB0
13
(8)
8255框图
CPU 接口电路
数据总线接口缓冲器
是一个8位、双向、三态的缓冲器,与8位数据总线连接。由读/写控制 逻辑对三态门进行控制。
控制字寄存器共8位: D7~D3在A组控制逻辑内,用来控制A口和C口高四位的工作方式。 D2~D0在B组控制逻辑内,用来控制B口和C口低四位的工作方式。 还可以接受来自CPU的命令字,对C口的每一位实现按位置位或复位的控制。
输入/输出接口电路
该系统用来和外部设备相连。包括24根输入/输出线、输入缓冲器和输出锁存 器,以及相应的控制逻辑。
实验四 并行接口及串行接口实验
PPT学习交流
1
AEDK-T598D实验台的介绍
PPT学习交流
2
直流电机
步进电机 压力测量
扩展输出 扩展输入
点阵显示
模数转换 交通灯
单色灯 八位开关
可编程并行接口-8255A
与外设相连的信号线
PA7~PA0、PB7~PB0、PC7~PC0:三态、双向,输入/输出由工作方式决 定,可直接与外设相连。
与CPU连接的信号线
D7~D0:双向、三态数据线,与CPU系统数据总线相连。 A1、A0:端口地址选择信号,用来指明哪一个端口被选中。8255A有A、B、
端口A 1 —输入 0 —输出
端口C (PC7~PC4)
1 —输入 0 —输出
D6
D5
D4
D3
D2
D1
D0
B组 端口C (PC3~PC0) 1 —输入 0 —输出
端口B 1 —输入 0 —输出
B组方式选择 0 —方式0 1 —方式1
13
§1.3 8255A的控制字
D7:特征位(标志位)。 D6、D5:A组方式选择。00—方式0;01—方式1;10和11为方式2。 D4:A口的输入/输出选择。0为输出,1为输入。 D3:C口(高4位)输入/输出选择。0为输出,1位输入。 D2:B组方式选择。0为方式0,1为方式1。 D1:B口的输入/输出方式选择。0为输出,1为输入。 D0:C口(低4位)的输入/输出选择。0为输出,1为输入。 从中可看出,A口可工作在任一工作方式中,B口只能工作在方式0、方式1中。
A口:包含一个8位数据输出锁存器/缓冲器和一个8位数据
输入锁存器,因此A口无论作为输入口或输出口,其数据均 能受到锁存。
B口:包含一个8位数据输出锁存/缓冲器和一个8位数据输
入缓冲器。
C口:包含一个8位数据输出锁存/缓冲器,一个8位数据输
入缓冲器(输入无锁存)。
可编程并行接口芯片8255A
可编程并行接口芯片8255A并行输入/输出就是把若干个二进制位信息同时进行传送的数据传输方式。
它具有传输速度快、效率高的优点。
并行数据传输需用的信号线较多(与串行传输相比),不适合长距离传输。
所以,并行数据传输适用于数据传输率要求较高,而传输距离相对较短的场合。
8255A是Intel公司为其80系列微处理器生产的通用可编程并行输入输出接口芯片,也可以与其他系列的微处理器配套使用。
由于其通用性强,与微机接口方便,且可通过程序指定完成各种输入输出操作,因此,8255获得了广泛的应用。
8255A的引脚与结构1.8255A的引脚8255A是可编程的三端口并行输入输出接口芯片,具有40个引脚,双列直插式封装,由+5V供电,其引脚与功能示意图如图所示。
A、B、C三个端口各有8条端口I/O线:PA7PA0,PB7PB0,PC7PC0,共32个引脚,用于8255A与外设之间的数据(或控制、状态信号)的传送。
D0~D7:8位三态数据线,接至系统数据总线。
CPU通过它实现与8255之间数据的读出与写入,以及控制字和状态字的写入与读出等。
A0~A1:地址信号。
A0和A1经片内译码产生四个有效地址分别对应A、B、C 三个独立的数据端口以及一个公共的控制端口。
在实际使用中,A1、A0端接到系统地址总线的A1、A0。
CS#:片选信号,由系统地址译码器产生,低电平有效。
读写控制信号RD#和WR#:低电平有效,用于决定CPU和8255A之间信息传送的方向:当RD#=0时,从8255A读至CPU;当WR#=0时,由CPU写入8255A。
CPU对8255各端口进行读写操作时的信号关系如表所示。
RESRT:复位信号,高电平有效。
8255A复位后,A、B、C三个端口都置为输入方式。
2.8255A的内部结构如图所示,8255A的内部由以下四部分组成:(1)端口A、端口B和端口C端口A、端口B和端口C都是8位端口,可以选择作为输入或输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8255A 的工作方式及其初始化编程
8255A 有三种工作方式:基本输入/输出方式、单向选通输入/输出方式和双向选通输入/输出方式.
1.8255A 的工作方式
(1)方式0:基本输入/输出方式(basic Input/Output)
方式0是8255A 的基本输入/输出方式,其特点是与外设传送数据时,不需要设置专用的联络(应答)信号,可以无条件的直接进行I/O 传送.
A, B, C 3个端口都可以工作在方式0.
A 口和
B 口工作在方式0时,只能设置为以8位数据格式输入/输出;
C 口工作在方式0时,可以高4位和低4位分别设置为数据输入或数据输出方式.
方式0常用于与外设无条件数据传送或查询方式数据传送.
(2)方式1:单向选通输入/输出方式(strobe Input/Output)
方式1是一种带选通信号的单方向输入/输出工作方式,其特点是:与外设传送数据时,需要联络信号进行协调,允许用查询或中断方式传送数据.
由于C 口的PC0, PC1和PC2定义为B 口工作在方式1的联络信号线,PC3,
PC4和PC5定义为A 口工作方式1的联络信号线,因此只允许A 口和B 口工作
在方式1.
A 口和
B 口工作在方式1,当数据输入时,
C 口的引脚信号定义如图7.6所
示.PC3, PC4和PC5定义为A 口的联络信号线INTRA, A STB 和IBFA, PC0, PC1和PC2定义为B 口的联络信号线INTRB, IBFB 和B STB ,剩余的PC6和PC7仍可以作为基本I/O 线,工作在方式0.
方式1输入联络信号的功能如下:
STB (strobe input):选通信号,输入,低电平有效.此信号由外设产生输入,当STB 有效时,选通A 口或B 口的输入数据锁存器,锁存由外设输入的数据,供CPU 读取.
IBF(input buffer full):输入缓冲器满信号,输出,高电平有效.当A 口或B 口的输入数
据锁存器接收到外设输入的数据时,IBF 变为高电平,作为对外设STB 的响应信号,CPU 读取
数据后IBF 被清除.
INTR:中断请求信号,输出,高电平有效,用于请求以中断方式传送数据.
为了能实现用中断方式传送数据,在8255A 内部设有一个中断允许触发器INTE,当触发器
为"1"时允许中断,为"0"时禁止中断.A 口的触发器由PC4置位或复位,B 口的触发器由PC2置
位或复位. 方式1数据输入的时序如图7.7所示.
当外设的数据准备就绪后,向8255A 发送STB 信号以便锁存输入的数据, STB 的宽度至少为500ns,在STB 有效之后的约300ns,IBF 变为高电平,并一直保持到RD 信号由低电平变为高电平,待
CPU 读取数据后约300ns 变为低电平,表示一次数据传送结束.INTR 是在中
断允许触发器INTE 为1,且IBF 为1(8255A 接收到数据)的条件下,在STB
后沿(由低变高)之后约300ns 变为高电平,用以向CPU 发出中断请求,待
RD 变为低电平后约400ns, INTR 被撤销.
A 口和
B 口工作在方式1,当数据输出时,
C 口的引脚信号定义如图7.8所示.
PC3, PC6和PC7定义为A 口联络信号线INTRA,A ACK 和A OBF ,PC0,
PC1和PC2定义为B 口联络信号线INTRB, B OBF 和B ACK ,剩余的PC4
和PC5仍可以作为基本I/O 线,工作在方式0.
方式1输出联络信号的功能如下:
OBF (output buffer full):输出缓冲器满指示信号输出,低电平有效.
OBF 信号由8255A 发送给外设,当CPU 将数据写入数据端口时, OBF 变为低
电平,用于通知外设读取数据端口中的数据.
ACK (acknowledge input):应答信号,输入,低电平有效. ACK 信号由
外设发送给8255A,作为对OBF 信号的响应信号,表示输出的数据已经被外设接
收,同时清除OBF 信号.
INTR:中断请求信号,输出,高电平有效.用于请求以中断方式传送数据.
方式1数据输出的时序如图7.9所示.当CPU 向8255A 写入数据时,WR 信号上升沿后约650ns, OBF 有效,发送给外设,作为外设接收数据的选通信号.当外设接收到送来的数据后,向8255A 回送ACK 信号,作为对OBF 信号的应答.ACK 信号有效之后约350ns, OBF 变为无效,表明一次数据传送结束.INTR 信号在中断允许触发器INTE 为1且
信号无效之后约350ns 变为
高电平.
若用中断方式传送数据时,通常把INTR连到8259A的请求输入端IRi.
(3)方式2:双向选通输入/输出方式(bi-directional bus)
方式2为双向选通输入/输出方式,是方式1输入和输出的组合,即同一端口的信号线
既可以输入又可以输出.由于C口的PC7~PC3定义为A口工作在方式2时的联络信号线,
因此只允许A口工作在方式2,引脚信号定义如图7.10所示.
由图7.10可以看出,PA7~PA0为双方向数据端口,既可以输入数据又可以输出数据.
C口的PC7~PC3定义为A口的联络信号线,其中PC4和PC5作为数据输入时的联络信
号线,PC4定义为输入选通信号
STB,PC5定义为输入缓冲器满IBFA;
A
PC6和PC7作为数据输出时的联络信号线,PC7定义为输出缓冲器满
OBF,PC6定义
A
为输出应答信号
ACK;PC3定义为中断请求信号INTRA.
A
需要注意的是:输入和输出公用一个中断请求线PC3,但中断允许触发器有两个,即输入中断允许触发器为INTE2,由PC4写入设置,输出中断允许触发器为INTE1,由PC6写入设置,剩余的PC2~PC0仍可以作为基本I/O线,工作在方式0.
2.8255A初始化编程
8255A的A,B,C三个端口的工作方式是在初始化编程时,通过向8255A的控制端口写入控制字来设定的.
8255A由编程写入的控制字有两个:方式控制字和置位/复位控制字.方式控制字用于设置端口A, B, C的工作方式和数据传送方向;置位/复位控制字用于设置C口的PC7~PC0中某一条口线PCi(i=0~7)的电平.两个控制字公用一个端口地址,由控制字的最高位作为区分这两个控制字的标志位.
(1)方式控制字的格式 8255A工作方式控制字的格式如图7.11所示.
D0:设置PC3~PC0的数据传送方向.D0=1为输入;D0=0为输出.
D1:设置B口的数据传送方向.D1=1为输入;D1=0为输出.
D2:设置B口的工作方式.D2=1为方式1;D2=0为方式0.
D3:设置PC7~PC4的数据传送方向.D3=1为输入;D3=0为输出.
D4:设置A口的数据传送方向.D4=1为输入;D4=0为输出.
D6D5:设置A口的工作方式.D6D5=00为方式0,D6D5=01为方式1,D6D5=10
或11为方式2.
D7:方式控制字的标志位,恒为1.
例如,将8255A的A口设定为工作方式0输入,B口设定为工作方式1输出,C口没有定义,工作方式控制字为10010100B. (2)C口置位/复位控制字的格式
8255A C口置位/复位控制字的格式如图7.12所示.
8255A C口置位/复位控制字用于设置C口某一位口线PCi(i=0~7)
输出为高电平(置位)或低电平(复位),对各端口的工作方式没有影响.
D3~D1:8种状态组合000~111对应表示PC0~PC7.
D0:用来设定指定口线PCi为高电平还是低电平.当D0=1时,指定
口线PCi输出高电平;当D0=0时,指定口线PCi输出低电平.
D6~D4没有定义,状态可以任意,通常设置为0.D7位作为标志位,
恒为0.例如,若把PC2口线输出状态设置为高电平,则置位/复位控制字
为00000101B.
(3)8255A初始化编程
8255A的初始化编程比较简单,只需要将工作方式控制字写入控制端口即可.另外,C口置位/复位控制字的写入只是对C口指定位输出状态起作用,对A口和B口的工作方式没有影响,因此只有需要在初始化时指定C口某一位的输出电平时,才写入C口置位/复位控制字.
【例7.1】设8255A的A口工作在方式0,数据输出,B口工作在方式1,数据输入,编写初始化程序(设8255A的端口地址为FF80H~FF83H).
初始化程序如下:
MOV DX, 0FF83H ; 控制寄存器端口地址为FF83H
MOV AL, 10000110B ; A口方式0, 数据输出, B口方式1, 数据输入
OUT DX, AL ; 将控制字写入控制端
【例7.2】将8255A的C口中PC0设置为高电平输出,PC5设置为低电平输出,编写初始化程序(设8255A的端口地址为FF80H~FF83H).
初始化程序如下:
MOV DX, 0FF83H ; 控制端口的地址为FF83H
MOV AL, 00000001B ; PC0设置为高电平输出
OUT DX, AL ; 将控制字写入控制端口
MOV AL, 00001010B ; PC5设置为低电平输出
OUT DX, AL ; 将控制字写入控制端口。