《微机原理——并行接口》由会员分享,可在线阅读,更多相关《微机原理——并行接口(27页珍藏版)》请在金锄头文库上搜索。
1、第八章 并行接口芯片,8255A芯片介绍,8255A的工作方式,一.可编程I/O接口芯片,1.可编程接口芯片的典型结构,状态 寄存器,控制 寄存器,数据寄存器,总线 驱动器,地址译码,控制逻辑,数据寄存器:暂时保存微处理器或外设传送的数据。,状态寄存器:保存外设的工作状态,供微处理器查询判断。,控制寄存器:保存微处理器控制命令,对外设进行控制操作。,总线驱动器:包括数据总线与地址总线的驱动,实现微处理器与外设的电平转换,满足驱动能力的要求。,地址译码:根据微处理器的要求,通过I/O接口的寻址,以实现微处理器对外设的访问和操作。,控制逻辑电路:实现微处理器与外设的时序转换,对以上各电路进行控制,
2、使I/O接口能够有序的工作。,2.可编程接口芯片的分类,(1)专用接口芯片,为某些外部设备的特殊功能而设计的接口芯片。,如:串行通讯接口芯片、CRT控制器芯片软盘控制器芯片、键盘/显示器接口芯片等,(2)通用接口芯片,可以用于多种外部设备的接口,其功能是通用的,通过编程对其进行控制,以实现多种功能。,如:8253定时/计数器、8255A并行I/O接口芯片等。,二.可编程并行I/O接口芯片8255A,1.8255A的内部结构,与微处理器的连接部分,与外部设备的连接部分,内部数据总线,内部控制线,内部控制逻辑部分,2.8255A的基本功能,(1)8255A具有A、B两组,3个8位数据端口A、B、C
3、,A组:端口A (PA07) 、端口C的高四位(PC47),(2)数据端口的工作方式,方式0基本输入/输出方式,方式1选通输入/输出方式,方式2双向传输方式,A组,B组, 基本输入/输出方式:A、B、C三个端口可以为输入口或输出口。多运用于无条件、查询传输方式。, 选通输入/输出方式:A、B端口与C端口部分可为输入口或输出口。多运用于查询、中断传输方式。, 双向传输方式:只有A端口既可作为输入口,同时又可作为输出口。多运用于查询、中断传输方式。,(3)运用控制字可以对A、B、C端口的工作方式进行控制。,B组:端口B (PB07) 、端口C的低四位(PC03),3.8255A的控制字,(1) 地
4、址和控制信号与8255A的选择,A1,A0,8255A口与操作,0,0,0,通道口A数据,通道口A数据,0,0,1,通道口B数据,通道口B数据,0,1,0,通道口C数据,通道口C数据,0,1,1,控制口,0,1,读,1,0,写,0,1,读,1,0,写,0,1,读,1,0,写,1,0,写,A7 A6 A5 A4 A3 A2,1 0 0 0 0 0,A1 A0,0 0,0 1,1 0,1 1,通道口A,通道口B,通道口C,控制口,80H,81H,82H,83H,(2) 8255A控制字格式,1,A组 方式,A口 方向,D7 D6 D5 D4 D3 D2 D1 D0,00:方式0,01:方式1,1:
5、方式2,0:出,1:入,A组,B组,A组 方式,C47 方向,B组 方式,B口 方向,C03 方向, 方式(选择)控制字,0:方式0,1:方式1,0:出,1:入,0:出,1:入,0:出,1:入,特征位, 端口C的位置1/置0控制字,0, ,置/复,D7 D6 D5 D4 D3 D2 D1 D0,000: C0位,特征位,1/0 1/0 1/0,111: C7位,0:复位,1:置位,:无效位 最好均置为0, 8255A控制字的特点,8 H及以上为方式字,7H及以下为端口C置1/置0字;,均运用OUT语句送入控制口。, 8255A初始化编程举例,例1:无条件I/O传输方式,假设B口输入外设数据,微
6、处理器进行数据处理后,由A口输出控制外设或显示。控制口地址为00C3H,编写8255A方式0的初始化程序。,1,0 0,0,0,0,1,0,解:方式控制字各位填写如下:,方式控制字:1000 0010B = 82H,A组方式,A口,C47,B组方式,B口,C03,特征位,控制口地址:00C3H,C口未用,均添为0,MOV DX,00C3H,MOV AL,82H,OUT DX,AL,例2:查询I/O传输方式,假设A口输出数据到外设,微处理器通过 C7查询外设状态,外设已准备好(C7=1),由C0输出控制信息 (C0=1)。控制口地址为83H,编写8255A方式0的工作程序。,1,0 0,0,1,
7、0,0,0,解:方式控制字各位填写如下:,方式控制字:1000 1000B = 88H,MOV AL,88H,OUT 83H,AL,C口置1/置0字各位填写如下:,0,0 0 0,0 0 0,0/1,C0置0字:0000 0000B=00H,C0置1字:0000 0001B=01H,MOV AL,00H,OUT 83H,AL,MOV AL,01H,OUT 83H,AL,A0:IN AL,82H,TEST AL,80H,JZ A0,MOV AL,CNDA,OUT 80H,AL,三.8255A的工作方式及编程举例,1.方式0(基本输入/输出方式),(1)方式0的工作特点,方式0对端口C无特殊规定,
8、三个端口可作输入口或输出口。输出是锁存的,输入不锁存,主要运用于无条件与查询I/O传输方式。,(2)方式0的应用举例,例1:应用8255A检查开关K0K7的开/合状态,并通过对应的光电二极管LED0LED7显示其状态。,1,0 0,0,0,0,1,0,解:根据系统图分析,其方式控制字各位如下:,方式控制字:1000 0010B = 82H,8255A的端口地址如下:,口A:A4H,口B:A5H,口C:A6H,控制口:A7H,源程序:,START: MOV AL,82H,OUT 0A7H,AL ;送控制字,READ: IN AL,0A5H ;输入开关状态,NOT AL ;状态求反,CALL 延时
9、子程序,OUT 0A6H,AL ;驱动光电管,JMP READ ;循环采集,RET,例2:一微处理器系统如图所示,将输入的数据与10H相加后输出。设状态与控制信号均为高电平有效。编写源程序。,解:方式控制字:,PC4置1/置0字:,PC6置1/置0字:,端口地址:口A=C0H,口B=C1H,口C=C2H,控制口=C3H,0DH/0CH,09H/08H,91H,源程序:,CODE SEGMENT,ASSUME CS:CODE,START: MOV AL,91H,OUT 0C3H,AL ;送控制字,GET_IN:IN AL,0C2H ;输入外设一状态,TEST AL,01H ;检查外设一状态,JZ
10、 GET_IN ;等待低电平转变,MOV AL,08H,OUT 0C3H,AL ;送PC4置0字,MOV AL,0CH,OUT 0C3H,AL ;送PC6置0字,IN AL,0C0H ;输入外设一数据,MOV AH,AL ;保存输入数据,OUT 0C3H,AL ;送PC4置1字,MOV AL,08H,OUT 0C3H,AL ;送PC4置0字,MOV AL,09H,JMP GET_IN ;循环采集,CODE ENDS,END START,RET,OUT_PUT:IN AL,0C2H ;输入外设二状态,TEST AL,04H ;检查外设二状态,ADD AH,10H ;处理数据,JZ OUT_PUT
11、 ;等于低电平转,MOV AL,AH,OUT 0C1,AL ;输出数据至外设二,端口地址:口B=C1H,口C=C2H,控制口=C3H,PC6置1/置0字: 0DH/0CH,MOV AL,0DH,OUT 0C3H,AL ;送PC6置1字,MOV AL,0CH,OUT 0C3H,AL ;送PC6置0字,2.方式1(选通输入/输出方式),(1)方式1的工作特点,IBF,INTR,INTR,IBF输入缓冲器满,INTR中断请求,INTR中断请求,I/O,I/O, 方式1主要应用于I/O的查询与中断工作方式;, 端口C规定位外,其他两位可设置为输入/输出。,方式1的输入方式:,方式1的输出方式:, 输入
12、与输出均有锁存。,INTEA中断允许(A口PC4、B口PC2),INTEA中断允许(A口PC6、B口PC2),(2)方式1的控制字, 方式1的输入方式的控制字, 方式1的输出方式的控制字,IBF,INTR,外设输入,IFB输入缓冲器满;,INTR中断请求, 方式1的输入方式的时序,a . 外设通知8255A数据已准备好;,b . 8255A接收数据后,通知外设输入缓冲器满;,c . 8255A向8259发中断信号;,d . CPU通过8255A接收数据,8255A中断信号复位;,e . CPU通过8255A接收数据后,通知外设输入缓冲器空。,(2)方式1的时序, 方式1的输出方式的时序,INT
13、R,输出数据,a . CPU接受中断请求,向8255A发写信号并输出数据,8255A清除中断信号;,b . 8255A输出缓冲器满信号,通知外设接收数据;,c . 外设通知8255A,已经接收数据,8255A清除输出缓冲器满信号;,d . 外设接收数据后,8255A发中断信号,请求再接收数据。,INTR中断请求;,(2)方式1的应用举例,2.方式2(双向传输方式),IBF输入缓冲器满,INTR中断请求,输入方式:,输出方式:, 方式2只有A组能够执行,A口是双向数据线,至8259A,INTR,输入、输出均是锁存的。,方式2时读端口C,各位的功能如图10-17所示。,8255应用举例,软件编程 甲机发送程序:MOV DX,303H;8255A命令口MOV AL,10100000B;端口A,方式1;端 口B没用方式字OUT DX,AL;输出方式字MOV AL,0DH;置发送中断允许INTEA1OUT DX,AL;PC6置“1”MOV AX,030H;发送数据的首地址MOV ES,AXMOV BX,00HMOV CX,3FFH;置发送字节数MOV DX,300H;置8255A数据字地址MOV AL,ES:BX;取第一个发送数据,