400 likes | 641 Views
并行接口芯片 8255A 应用设计. 教师:王晓甜 Email : xtwang@mail.xidian.edu.cn. 1. 2. 3. 4. 5. 8255A 简介. 8255A 的应用设计. 8255 A 的引脚及结构功能. 8255 A 的控制字及工作方式. 8255 A 与系统总线的连接. Contents. 8255 A 学习重点. 如何通过控制字的设置把内部逻辑部件协调起来,完成指定的功能 如何把芯片的各个引脚于系统的输入输出总线连接起来. 重点学习:. 8255 A 的结构和工作原理 8255 A 的工作方式
E N D
并行接口芯片8255A应用设计 教师:王晓甜 Email: xtwang@mail.xidian.edu.cn
1 2 3 4 5 8255A 简介 8255A 的应用设计 8255A 的引脚及结构功能 8255A的控制字及工作方式 8255A 与系统总线的连接 Contents
8255A学习重点 • 如何通过控制字的设置把内部逻辑部件协调起来,完成指定的功能 • 如何把芯片的各个引脚于系统的输入输出总线连接起来 重点学习: 8255A的结构和工作原理 8255A的工作方式 8255A的初始化编程及应用 应用设计中注意:
8.1 8255A简介 系统总线BUS 地址总线AB 系 统 总 线 形 成 数据总线DB CPU 控制总线CB 主存 I/O接口 外设 I/O设备 主机
8.1 8255A简介 数据2 数据 数据 数据 数据2 数据 数据
8.1 8255A 简介 8255A 是: • Intel 8086/8088 系列的可编程外设接口电路 • 可以进行编程控制的通用并行输入/输出接口电路。 • 它是一片使用单一+5V电源的40脚双列直插式DIP封装的大规模集成电路。 • 8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。 • 8255A有A、B、C三个端口,24条I/O线。它可以通过编程的方法来设定的各种I/O功能。 • 由于它的功能强,又能方便地与各种8/16位微机系统相配,所以应用较为普遍。
8.2 8255A 的结构功能 CPU +5V 外设1 8 位 外设2 8 位 A1A0 00 端口A PA 01 端口B PB 10 端口C PC 11 控制寄存器 CPU与外设之间的握手信号 PA口和PB口:双向数据输入输出端口 PC口:双向数据输入输出端口 或 控制/状态端口
8.2 8255A 的结构功能 三个8位端口:PA,PB和PC 被分为两组12位端口 A组和B组 +5V PA (PA7~PA0) A组 PCA(PC7~PC4) 工作方式 0,1, 2 8 位 PB (PA7~PA0) B组 PCB(PC3~PC0) 工作方式0:基本输入或输出 工作方式1:有联络信号的输入或输出 工作方式2:双向传送 工作方式 0,1 8 位
8.3 8255A 的工作方式 三种基本工作方式: 方式0:基本的输入/输出;(A、B、C) 方式1:有联络信号的输入/输出;(A、B) 方式2:双向传送(A) 具体的工作方式由发送给控制寄存器的方式控制字决定 工作方式控制字 PC口置位复位控制字 8255A的控制字 方式控制字:CPU通过编程写控制字可以完成对 A、B、C口的方式控制和对C口的按位置零或置1
8.3 8255A 的控制字 向方式控制寄存器发送一个D7=1的控制字为,为写方式控制字 注意: 1.D7=1 是方式控制字的标志位 2.所有的方向控制: 0,输出(Out); 1,输入(In)
8.3 8255A 的控制字 • 向方式控制寄存器发送一个D7=0的控制字为,为写置位控制字 • 端口C的数位常用作控制或应答信号,在基于控制的应用中,经常希望在某一位上产生一个TTL电平的控制信号,利用端口C的这个特点,只需要用简单的程序就能形成这样的信号,从而简化了编程。 • 通过对8255A的控制口写入置位/复位控制字,可使端口C的任意一个引脚的输出单独置1或清0。
EG:8255A的地址范围为380H~383H,编写程序段,实现将PC7置1,将PC3置0EG:8255A的地址范围为380H~383H,编写程序段,实现将PC7置1,将PC3置0 MOV DX, 383H; MOV AL, 00001111B ;PC7置1 OUT DX, AL MOV AL, 00000110B ;PC3清0 OUT DX,AL
8.3 8255A 的工作方式 • 方式0----基本输入输出(无条件工作方式) 不需要应答信号的简单输入输出场合 硬件设计简单 程序直接控制输入输出 常用于 同步式传送和查询式传送两种场合 写8255A的控制字: 93H 分析其工作方式: 1.A口与B口的数据传送方向独立设置 2.PCA和PCB的数据传送方向独立设置 10010011B A口:方式0 输入 PCA:方式0输出 B口: 方式0输入 PCB:方式0输入
8.3 8255A 的工作方式 重点 • EG,方式0工作应用举例 在8086最小方式系统中,利用8255A某端口输入8位开关量,并通过另一个端送出,以发光二极管指示数据,灯亮表示数据“1”,灯灭表示数据“0”。8255A的端口地址为80H~87H中的奇地址,设计系统总线与8255A的连接电路,并编程实现。 MOV AL, 10010000B OUT 87H, AL IN AL, 81H NOT AL OUT 83H, AL 编程: 1.写初始化程序 2.写功能实现程序 读PA口:IN AL,81H 写PB口:OUT 83H,AL
8.3 8255A 的工作方式 方式0 的举例 8段译码管控制 思考,设计8255A电路及程序 实现从0-8的循环显示
8.3 8255A 的工作方式 例10.3 在8088最大方式系统中,有一片8255A,其端口地址为20H、22H、24H、26H,设计译码电路及其与系统总线的连接图,并编程实现使端口A的低4位产生如图所示的信号(各个信号的节拍不必严格相等)。 PA0 PA3 PA2 PA1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1
MOV DX, 26H ;设定8255A的工作方式 MOV AL, 1000 0000B OUT DX, AL MOV DX, 20H ;产生指定的信号 REP1: XOR AL, AL OUT DX, AL MOV CX, 6 REP2: INC AL OUT DX, AL LOOP REP2 ADD AL, 9H;(1001B) OUT DX, AL JMP REP1 0000 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 1111
EG3:在8088最大方式系统中,由一片8255A构成输入输出接口,端口地址为240H~243H,外设准备好的8位数据已送入8255A的某端口,要求将这一数据的低4位取反(高4不变)后,从另一端口送出。要求:EG3:在8088最大方式系统中,由一片8255A构成输入输出接口,端口地址为240H~243H,外设准备好的8位数据已送入8255A的某端口,要求将这一数据的低4位取反(高4不变)后,从另一端口送出。要求: (1)说明各端口的工作方式; (2)编写8255初始化及输入输出程序段。 MOV DX, 243H ;设定8255A的工作方式 MOV AL, 10110000B OUT DX, AL MOV DX, 240H ;从端口A读数据 IN AL, DX XOR AL, 0FH ;低4位取反,高4不变 MOV DX, 242H ;从端口B送出 OUT DX, AL
CPU 8255 外设 STB IBF INTR 8.3 8255A 的工作方式 • 方式1----有联络信号的输入输出(应答式工作) • PA口:数据输入或输出 • PB口:数据输入或输出 • PC口: 做联络信号线 A口:PC4,PC5用作与外设的联络,PC3用作与CPU的连接INTR B口:PC2,PC1用作与外设的联络,PC0用作与CPU的连接INTR 方式1输入 STB:选通输入信号, 外设将数据准备好,准备发给8255 IBF: 缓冲区满信号, 数据已经给了8255A,等待CPU来取, 高电平有效时,外设不能发新的数据来 INTR:8255发向CPU的中断请求信号 8255数据准备好,通知CPU来读数据 方式1在输入时接口连接示意图
PA0 ~ PA7 PB0 ~ PB7 INTE A INTE B STB PC4 STB PC2 IBF PC5 PC1 IBF RD INTR PC3 RD O O PC0 INTRB PC6 PC7 I / O 8.3 8255A 的工作方式 输入选通信号,由外设送往8255A。 A口 方式 1 输入 输入缓冲器满信号,是8255发出的状态信号,供CPU查询 中断请求信号,只有当STB、IBF、INTE三者都高时,INTR才能被置为高电平 中断允许信号。这是一个控制8255A是否能向CPU发中断请求的信号,它没有外部引出脚。是通过软件设置的。
CPU 8255 外设 STB IBF INTR 8.3 8255A 的工作方式 1.外设准备好数据,向PC4发送STB低电平数据选通信号,表示数据准备好; 2.8255A接到STB低电平,将数据读入PA口 3. 8255A 向外设发送IBF(PC5)高电平表示数据接收好,端口缓冲区满,并将STB撤销(变成高电平); IBF信号: 告诉外设暂时不能再送新数据来; 在程序查询方式下,作为CPU查询的信号 4. 在中断方式下,IBF和STB都为高电平时,PC3向CPU发出INTR信号 5. CPU接到INTR后,利用RD将数据读回内部寄存器 6. 将IBF撤销(低电平)准备进入下一轮传送 A口做方式1输入 PC4 PC5 PC3
CPU 8255 外设 STB IBF INTR 8.3 8255A 的工作方式 1.外设准备好数据,向PC2发送STB低电平数据选通信号,表示数据准备好; 2.8255A接到STB低电平,将数据读入PB口 3. 8255A 向外设发送IBF(PC1)高电平表示数据接收好,端口缓冲区满,并将STB撤销(变成高电平); IBF信号: 告诉外设暂时不能再送新数据来; 在程序查询方式下,作为CPU查询的信号 4. 在中断方式下,IBF和STB都为高电平时,PC0向CPU发出INTR信号 5. CPU接到INTR后,利用RD将数据读回内部寄存器 6. 将IBF撤销(低电平) 准备进入下一轮传送 B口做方式1输入 PC2 PC1 PC0
8.3 8255A 的工作方式 第一步:当外设来的输入数据出现之后,选通信号STB有效。第二步:经过tSIB时间后,输入缓冲区满信号IBF有效,此信号可供CPU查询,这为 CPU工作在查询方式下输入数据提供了条件。在使用中断请求的情况下,8255在选通信号结束以后,经过tSIT时间,便会发出中断请求信号INTR,这样为CPU工作在中断方式下输入数据提供了条件。 第三步:不管是用查询方式还是中断方式,当8255读入数据时,都会发出读信号RD。若工作在中断方式,当RD有效以后,经过tRIT时间,就将中断请求信号清除。第四步:RD信号结束之后,数据已经读到CPU的寄存器中,经过tRIB时间,输入缓冲区满信号IBF变低。从而可以开始下一个数据输入过程。
CPU 8255 外设 ACK OBF INTR 8.3 8255A 的工作方式 方式1输出 A口:PC7,PC6用作与外设的联络,PC3用作与CPU的连接INTR B口:PC2,PC1用作与外设的联络,PC0用作与CPU的连接INTR OBF:输出缓冲器满 数据已经由CPU写到8255,等待外设来取 ACK: 外设发给8255的回执信号 外设已经将数据取走 INTR:8255发向CPU的中断请求信号 8255发给CPU的准备就绪信号, CPU可以再次发送数据 方式1在输入时接口连接示意图
PA0 ~ PA7 INTE A ACK PC6 OBF PC7 WR O INTR PC3 I / O PC4 PC5 8.3 8255A 的工作方式 外设的回答信号,由外设送给8255A A口 方式 1 输出 PA0 ~ PA7 输出缓冲器满信号 INTE A ACK PC2 OBF PC1 中断请求信号 WR O INTR PC0 中断允许信号。在中断是允许的情况下,当输出设备已受到CPU输出的数据之后,该信号变高,可用于向CPU提出中断请求,要求CPU再输出一个数据给外设。
8255 CPU 外设 ACK INTR OBF 8.3 8255A 的工作方式 1.CPU在写周期里(WR有效)将数据写入8255数据端口; 2.8255A发出OBF信号(PC7低电平)给外设,通知外设来取数据; 3. 外设将数据取走之后,反馈一个ACK(PC6持续一段时间的低电平)信号给8255A,表示数据已取走; 4.撤销OBF(PC7电平变高) OBF信号: 低电平告诉外设来取数据; 在程序查询方式下,高电平作为CPU查询的信号 4. 在中断方式下,OBF和ACK都为高电平时,PC3向CPU发出INTR信号 5. CPU接到INTR后,开始下一轮数据输出 A口做方式1输出 WR PC6 PC3 PC7
8255 CPU 外设 ACK INTR OBF 1.CPU在写周期里(WR有效)将数据写入8255数据端口; 2.8255A发出OBF信号(PC1低电平)给外设,通知外设来取数据; 3. 外设将数据取走之后,反馈一个ACK(PC2持续一段时间的低电平)信号给8255A,表示数据已取走; 4.撤销OBF(PC1电平变高) OBF信号: 低电平告诉外设来取数据; 在程序查询方式下,高电平作为CPU查询的信号 4. 在中断方式下,OBF和ACK都为高电平时,PC0向CPU发出INTR信号 5. CPU接到INTR后,开始下一轮数据输出 B口做方式1输出 WR PC2 PC0 PC1
8.3 8255A 的工作方式 第一步:在使用中断请求情况下,CPU响应中断以后, 便往8255输出数据,并发出写信号 WR。把数据送给8255,写信号WR的上升沿一方面清除中断请求INTR ,表示CPU已经响应了中断; 第二步:另一方面,WR使OBF有效,通知外设接收数据。 第三步:在CPU发出写信号后经过tWB时间,数据就出现在端口的输出缓冲器中。当外设接收数据后,便发出ACK信号。ACK信号一方面使OBF无效,表示数据已经取走,当前输出缓冲区为空; 第四步:另一方面,又使INTR有效,即向CPU发出中断请求,从而可以开始一个新的输出过程。
EG.在8088最大方式的扩充槽上,利用8255A和8位A/D变换器开发数据采集系统如图10.16所示。要求计算8255A占用的四个端口地址,并编写程序完成N点数据的采集工作。 为了完成一个字节的数据采集,需要给A/D变换器产生START正脉冲信号,当变换结束时,会产生EOC信号,经单稳电路后,可以将A/D变换器产生的数据锁存到8255A的端口A,因此,8255A的A组为方式1
L1: MOV DX, P8255D MOV AL, 0000 1110B OUT DX, AL OR AL, 01H OUT DX, AL AND AL, 0FEH OUT DX, AL MOV DX, P8255C L2: IN AL, DX TEST AL, 20H JZ L2 MOV DX, P8255A IN AL, DX MOV [SI],AL INC SI LOOP L1 P8255A=81D1H P8255A=81D3H P8255A=81D5H P8255A=81D7H MOV DX, P8255D MOV AL, 1011 0000B OUT DX, AL LEA SI, BUF MOV CX,N 生成START信号 查询PC5 读A口数据
8.3 8255A 的工作方式 • 方式2----有联络信号的双向数据收发 • 方式2将方式1的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据。适用于双向传送数据的外设。 • 只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同。 • PC4: STB • PC5: IBF • PC6: ACK • PC7: OBF • PC3: INTR • B口及C口的PC2-PC0可正常工作于方式0或方式1
8.3 8255A 的工作方式 • 方式0:基本输入/输出方式 • 适用于无条件传送接口电路 • 方式1:有联络信号的输入/输出方式 • 适用于查询和中断方式的接口电路 • 方式2:有联络信号的双向传送方式 • 适用于双向传送数据的外设 • 适用于查询和中断方式的接口电路
8.3 8255A 的工作方式 读取端口C状态 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0
8.4 8255A与总线的连接 8086最小方式系统总线与8255的连接图
8.4 8255A与总线的连接 8086最大方式系统总线与8255的连接图
8.4 8255A与总线的连接 IBM PC机系统总线与8255A的连接框图
学习指导网站: http://course.cug.edu.cn/21cn/微机原理与应用/site-map.htm • 大作业: • 稍后等课代表通知
Thank You ! www.themegallery.com