《微机原理 第六章并行接口芯片8255A》由会员分享,可在线阅读,更多相关《微机原理 第六章并行接口芯片8255A(60页珍藏版)》请在金锄头文库上搜索。
1、第 六 章,第六章 并行接口芯片8255A,教学重点 接口的功能以及在系统中的连接 8255A的工作方式和编程 8255A的应用,第六章 并行接口芯片8255A,接口的功能以及在系统中的连接 并行通信和并行接口 可编程并行通信接口8255A,6.1 接口的功能以及在系统中的连接,接口的功能 接口与系统的连接,微型计算机系统的硬件,控制总线CB,数据总线DB,地址总线AB,系 统 总 线 形 成,CPU,I/O设备,I/O接口,主存,系统总线BUS,外设,主机,8086计算机系统组成,接口的功能,寻址功能(M/IO、CS、片内寻址) 输入输出功能 数据转换功能 联络功能 中断管理功能 复位功能
2、可编程功能 错误检测功能,接口与系统的连接,6.2 并行通信和并行接口,通信指计算机与外设、计算机与计算机间的信息交换 通信的基本方法: 并行通信和串行通信,数据的各位同时由源到达目的地 快 多根数据线 距离短、远程费用高,并行通信 将数据的各位同时在多根并行传输线上进行传输。,并行通信适于短距离、高速通信,数据的各位依次由源到达目的地 慢 数据线少 远程, 费用低,串行通信 将数据的各位按时间顺序依次在一根传输线上传输。,0 1 1 0 1 0 1 0,串行通信适于长距离、中低速通信,并行接口的典型硬件结构包括: 1、一个或一个以上具有锁存或缓冲的数据端口 2、与CPU进行数据交换所必须的控
3、制和状态信号 3、与外设进行数据交换所必须的控制和状态信号 4、端口译码电路 5、控制电路,6.3 可编程并行通信接口芯片8255A,具有多种功能的可编程并行接口电路芯片 最基本的接口电路:三态缓冲器和锁存器 与CPU间、与外设间的接口电路:状态寄存器和控制寄存器 还有端口的译码和控制电路、中断控制电路 分3个端口,共24个外设引脚 共三种输入输出工作方式,5.3 可编程并行通信接口芯片8255A,8255A的内部结构 8255A的芯片引脚信号 8255A的控制字 8255A的工作方式和应用举例,8255A的内部结构,1. 数据端口 A、B、C,每个端口8位,通过编程设定其为输入口或输出口,可
4、用来和外设传送信息 端口A 有 3 种工作方式( 方式 0、方式 1、方式 2) 对外 8 根引脚 PA7 PA0 端口B 有 2 种工作方式:方式 0、方式 1 对外 8 根引脚 PB7 PB0,1. 数据端口 A、B、C,端口C 当端口 A 在方式 1 或方式 2、端口 B 在方式 1 时, 端口 C 的某些位用于传送联络信号,以适应CPU与外设间的各种数据传送方式的要求,如查询传送的应答信号、中断传送的中断申请信号等; C口未被用作联络信号的其它位可工作在方式0下。,2. 控制端口D,8位端口,无对外引脚 控制端口的内容决定A口、B口、C口的工作状态(输入或输出) 和工作方式(方式 0、
5、1、2), 起控制作用。,由1个8位双向三态缓冲器构成 8255A内各端口通过数据缓冲器与系统总线相连。 CPU与端口A、B、C间传送的数据, 以及CPU写入控制端口D中的控制字均通过数据缓冲器传送。,3. 数据总线缓冲器(引脚D0D7),4. 读写控制电路 (引脚CS、 RD、 WR),控制数据总线缓冲器的状态。 数据总线缓冲器有3种状态:输入、输出、高阻态,选择被操作的端口,5. 片内译码电路 (引脚A1、 A0),8255A的芯片引脚信号,8255A与外设的连接信号,PA7PA0 A组控制信号 PB7PB0 B组控制信号 PC7PC0 C组控制信号,8255A与CPU的连接信号,RESE
6、T信号 D0D7 CS信号 RD信号 WR信号 A1、A0,8255A与CPU的连接信号,8255A的控制字,控制字分为两类: 各端口的方式选择控制字; C端口按位置1/置0C口控制字。,1. 方式选择控制字,方式控制字:示例,要求: A端口:方式1输入 C端口上半部:输出,C口下半部:输入 B端口:方式0输出 方式控制字:10110001B或0B1H 初始化的程序段: MOV DX,0FFFEH;假设控制端口为0FFFEH MOV AL,0B1H;方式控制字 OUT DX,AL;送到控制端口,初始化编程后: 当数据端口作为输入接口时,执行输入IN指令将从输入设备得到外设数据 当数据端口作为输
7、出接口时,执行输出OUT指令将把CPU的数据送给输出设备,设某8086系统中有2片8255A芯片,由74LS138译码器产生两个芯片的片选信号,如图所示。要求:第一片8255A的A口工作在方式0输出,B口工作在方式0输入,C口高4位为输出,低4位为输入。第2片8255A的A口为方式0输入, B口工作在方式1输入,C口高4位为输出,低4位为B口控制信号。,方式控制字应用思考题,(1) 试指出两片8255A芯片各自的端口地址; (2) 试指出两片8255A芯片各自的方式控制字; (3) 试写出两片8255A芯片各自的初始化程序;,答: (1) 对于第一片8255A,必须满足A81,M/IO0, A
8、51, A41, A31,Y7有效,而其它位可以为0或1,若取它们均为0,则A口地址为0138H,则B口地址为013AH,则C口地址为013CH,则控制端口地址为013EH; 同理,第一片8255A的A口地址为0130H,则B口地址为0132H,则C口地址为0134H,则控制端口地址为0136H。,答: (2) 第一片8255A芯片由于A口工作在方式0输出,C口高4位为输出,所以控制字的D6 D500, D4 0, D30; B口工作在方式0输入,C口低4位为输入, D2 0, D1 1, D0 1。完整的控制字为 10000011(83H);第二片8255A芯片由于A口工作在方式0输入,C口
9、高4位为输出,所以控制字的D6 D500, D4 1, D30; B口工作在方式1输出,C口的低4位为B口控制信号,设为输入, D2 1, D1 0, D0 1。完整的控制字为 10010101(95H);,答: 芯片的初始化程序如下所示: INIT8255 PROC MOV AL, 83H MOV DX, 13EH OUT DX, AL MOV AL, 95H MOV DX, 136H OUT DX, AL RET INIT8255 ENDP,1. 假设其它条件不变,若第一片8255A接138译码器的Y0,第二片8255A接138译码器的Y1,两片8255A的地址将有什么变化? 2. 假设其
10、它条件不变,若8086CPU的地址线A1连接两片8255A芯片的片内地址线A1 , 8086CPU的地址线A2连接两片8255A芯片的片内地址线A0,8255A的端口地址和有关软件有什么变化?,QUESTION:,2. 端口C的位控制字,位控制字写入控制端口 特别便于置位复位内部中断允许触发器INTE,应用举例,若想使得某8255A芯片的PC7口置1,PC3口置0 MOV DX, 0FFFEH ;假设控制端口为0FFFEH MOV AL, 00001111B ;PC7置1 OUT DX, AL MOV AL, 00000110B ;PC3清0 OUT DX,AL,应用举例,设有某8255A的端
11、口地址为6063H,PC5平时为低电平,要求该引脚输出一个正脉冲。 分析:可用程序先将PC5置1,输出一个高电平,再将其清0,输出一个低电平,则该引脚上便输出一个正脉冲。 MOV AL, 00001011B OUT 63H, AL ;置PC5为高电平 MOV AL, 00001010B ;置PC5为低电平 OUT 63H, AL,8255A的工作方式和应用举例,方式0:基本输入/输出方式 适用于无条件传送和查询方式的接口电路 方式1:选通输入/输出方式 适用于查询和中断方式的接口电路 方式2:双向选通传送方式 适用于双向传送数据的外设 适用于查询和中断方式的接口电路,3个端口均可工作在方式0
12、A口、B口、C口高4位和C口低4位互相独立,各端口之间没有必然的联系,可以有16种输入/输出方式组合 可工作于无条件传送方式和条件传送方式,1. 工作方式0,当端口A工作在方式1并作为输出端口时,端口C的PC7作为输出缓冲器满信号OBFA输出端,PC6作为外设接收数据后的响应信号ACKA输入端, PC3作为中断请求信号INTRA输出端; 端口B工作在方式1并作为输出端口时,端口C的PC1作为输出缓冲器满信号OBFB输出端,PC2作为外设接收数据后的响应信号ACKA输入端, PC3作为中断请求信号INTRB输出端;,2. 工作方式1,只有A口可以工作在方式2 端口A工作于方式2时,端口C用5个数
13、位自动配合A提供控制信号和状态信号; 在方式2下, 外设能往CPU发送数据,又能从CPU接收数据。,3. 工作方式2,8255A应用举例1,PORTA EQU 0F0H PORTB EQU 0F2H PORTC EQU 0F4H PORTCN EQU 0F6H CODE SEGMENT ASSUME CS:CODE START: MOV AL, 10010000B;设置8255A工作方式 MOV DX, PORTCN OUT DX, AX,源程序如下:,START1: MOV DX, PORTA;A口地址 IN AL, DX ;读开关量 MOV DX, PORTB ;B口地址 OUT DX,
14、AL ;写发光二极管状态 JMP START1 CODE EDNS END START,源程序如下:,8255A的A口和B口工作在方式0下,A口为输入端口,接有4个开关,B口为输出端,接有一个七段发光二极管,连接电路如图所示。编写一个程序,要求发光二极管显示开关所拨通的数字。,8255A芯片应用举例,分析可知:8255A的端口地址由两部分电路构成。由CPU高地址线A15A3通过74LS138译码器产生片选信号,CPU的低位地址线A2和A1分别组合成4个端口地址,而CPU的A0与译码器输出端Y4通过逻辑组合,保证8255A的4个端口地址为偶地址;而8位的8255A与16位的8086CPU可以通过
15、数据总线D7D0传送8位信息。通过分析得出端口地址分配如下:A口地址为8020H, B口地址为8022H, C口地址为8024H, 控制口地址为8026H。,题目分析:,由图可知,七段发光二极管为共阳极LED器件。要让a段点亮,要求从PB0输出高电平“1”;要使b段熄灭,要求从PB1输出高电平“0”,其余各段依此类推。 8255A的A口接有开关,4位开关的组合可为0FH。为此,可将在LED上显示0FH各字符的段码列表,如下图所示:,题目分析:,A_PORT EQU 8020H B_PORT EQU 8022H C_PORT EQU 8024H CTRL_PORT EQU 8026H DATA
16、SEGMENT TAB1 DB 30H, 06H, 5BH, 4FH, 31H DATA ENDS,源程序如下:,CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX, DATA MOV DS, AX MOV AL, 90H ;设置8255A方式字 MOV DX, CTRL_PORT OUT DX, AL,源程序如下:,ADD1: MOV DX, A_PORT IN AL, DX;读A口开关状态 AND AL, 0FH;屏蔽高4位 MOV BX, OFFSET TAB1;取段码表首地址 XLAT ;查表得段码,源程序如下:,MOV DX, B_PORT ;输出显示 OUT