第九章并行接口芯片8255A课件.ppt
第九章 微机接口芯片及应用,12学时9.1 可编程并行接口82559.2 可编程串行接口8250/165509.3 可编程定时/计数器9.4 可编程中断控制器82599.5 可编程DMA控制器9.6 模/数和数/模接口9.7 多功能高集成I/O接口, 9.1 接口芯片的功能及分类,接口芯片的功能 寻址功能信息交换功能 接口芯片的分类 按用途分类 按控制方式分,按用途分类,通用接口芯片 74LS373、8282、8286 8255A、8251、8253 专用接口芯片 DMA接口芯片8237A 中断接口芯片8259A,按控制方式分,不可编程控制芯片功能 74LS373、 8282、8286 注:芯片的功能不可改变可编程控制芯片功能 8255A、8253 8259A、8237A 注:芯片的功能可改变,寻址功能,芯片有片内寄存器,由端口地址访问 对芯片写控制字, 设置芯片功能 CPU与芯片寄存器间交换信息 芯片有片选控制线 /CS CPU地址线经译码产生 片选控制线 /CS /CS和片内寄存器端口地址确定 片内寄存器地址值的唯一性,信息交换功能,输入输出功能数据转换功能联络功能中断管理功能复位功能可编程功能错误检测功能, 9.2 可编程并行接口芯片8255A,8255A的基本功能 8255A的内部结构 8255A的引脚特性 8255A的控制命令字 8255A的工作方式 8255A的应用实例,8255A 的基本功能,可编程控制并行端口的功能(工作方式) 并行端口作输入或输出可控制 多并行端口使用的灵活性 注:由于可编程控制且使用灵活, 8255A的学习有一定难度,8255A引脚、编程结构,Intel系列的8位并行接口芯片通用性强,使用灵活可用程序设置和改变芯片的工作方式是一种典型的可编程并行接口芯片,40个引脚,双列直插式,reset,D7D0,A9A2,A1A0,IORIOW,片选译码,数据缓冲器,读写控制,片内译码,CS,RESET,A1A0,RDWR,PC7PC0,PB7PB0,PA7PA0,控制口D,端口A,端口C,端口B,+5V,GND,D7D0,外设,8255A,总线,8255A 的内部结构,8255A与外设的接口 8 位双向 A 端口 PA0 PA7 8 位双向 B 端口 PB0 PB7 8 位双向 C 端口 PC0 PC7 注: 8255A 的 C 口使用灵活, 也是掌握 8255A 的重点,8255A 的内部结构,8255A与CPU的接口 8 位数据线 D0 D7 接数据总线DB的低8位 芯片寻址控制线 片内寄存器寻址线A0、A1(两线四址) 片选控制线 /CS (由地址译码产生)读写控制线 /RD、/WR复位控制线 RESET,8255A 的内部结构,内部逻辑工作方式由CPU向8255A写控制字获得 A端口、B端口、C端口可读写操作 A端口、B端口、C端口具有组态特点 A组 PA0 PA7 和 PC4 PC7 B组 PB0 PB7 和 PC0 PC3 注: C口应用的灵活性,8255A 操作地址,写控制字地址 A1 = 1、 A0 = 1 A端口读写地址 A1 = 0、 A0 = 0 B端口读写地址 A1 = 0、 A0 = 1 C端口读写地址 A1 = 1、 A0 = 0 注: 写控制字操作仅有写操作,其余可读写 PC/XT机中地址为60H 63H,8255A 的控制(命令)字,控制命令字的形式 工作方式控制字 C口置/复位控制字 注: 怎样解决一址两字写入一址两字识别位 (在写入的控制字中) 若b7 = 1时, 写入工作方式控制字 若b7 = 0时, 写入C口置/复位控制字,工作方式控制字的格式,同址识别位b7 = 1 b6、b5、b4 位确定 A 端口工作方式 b2、b1 位确定 B 端口工作方式 b3、b0 位确定 C 端口输入输出方式,A端口可编程工作方式,A端口工作方式的定义位b6, b5 = 00 方式0, A端口作基本输入/输出b6, b5 = 01 方式1, A端口作选通输入/输出b6, b5 = 1x 方式2, A端口作双向数据传送A端口输入、输出方式的选择位b4 = 0 A端口作输出b4 = 1 A端口作输入 注: A端口为工作方式 2 时, b4 位无意义,B端口可编程工作方式,B端口工作方式的定义位b2 = 0 方式0, B端口作基本输入/输出b2 = 1 方式1, B端口作选通输入/输出 注: B端口只有方式0和方式1, 无方式2B端口输入、输出方式的选择位b1 = 0 A端口作输出b1 = 1 A端口作输入,C端口可编程工作方式,C端口无工作方式的定义位当A、B端口均为方式0时,C端口也为方式0当A、B端口不为方式0时,C端口中的位特殊定义C端口输入, 输出方式选择b3 = 0 C端口的 PC4 PC7 作输出b3 = 1 C端口的 PC4 PC7 作输入b0 = 0 C端口的 PC1 PC3 作输出b0 = 1 C端口的 PC1 PC3 作输入 注: C端口中上下半字节定义, 应用灵活,C端口置/复位控制字的格式,同址识别位b7 = 0 b3、b2、b1为C端口PC0位 PC7位的位编码 b0 = 0,对应PCn位输出L电平(清0) b0 = 1,对应PCn位输出H电平(置1) b6、b5、b4 位无意义,C端口的位选择编码,例设8255A的A端口工作于方式1输入, B端口工作于方式0输出, 置PC4 = H, ( 8255A的操作地址为60H 63H ),工作方式控制字 C口置/复位控制字 MOV AL, 0B0H ;1011000X OUT 63H, AL ; 写方式控制字 MOV AL, 09H ;0XXX01001 OUT 63H, AL ; 写置/复位控制字,8255A的工作方式,A端口有三种工作方式 方式0、方式1、方式2 B端口有二种工作方式 方式0、方式1 C端口无工作方式选择 仅工作于方式0 注:方式0(基本输入/输出) 方式1 (选通输入/输出) 方试2(双向数据传送),方式 0 基本输入输出,功能 A、B、C端口可单独工作于输入或输出 共有十六种组态电特性 作输出用, 各端口有锁存功能 作输入用, 各端口无锁存功能 应用 程序控制下的无条件传送方式(查询方式) A、B、C端口均传送数据信息 程序控制下的有条件传送方式 A、B端口传送数据, C端口传送状态,方式 1 选通输入输出,功能 A、B端口作 8 位数据输入或 输出 C端口的特定位为A、B端口服务 电特性 作输出用时, A、B端口有锁存功能 作输入用时, A、B端口有缓冲功能 应用 A、B端口传数据 查询方式:C端口特定位传送状态 中断方式:C端口特定位发中断请求,方式 2 双向输入输出,功能 仅A端口具有双向数据传送功能 C端口特定位的组合应用 电特性 A端口具有双向锁存和缓冲特性 应用 A端口双向传送数据 查询方式:C端口特定位传送状态 中断方式:C端口特定位发中断请求,A端口 方式 1 输入,方式控制字 C端口特定位的作用 PC4 /STBA 外设输入数据锁存到A端口的控制信号, 输入低有效 PC5 IBFA A端口己锁存外设输入数据的状态信号, 输出高有效 注: 查询方式下查此状态信号是否为高 PC3 INTRA 8255A向CPU发中断请求信号, 输出高有效,INTRA 的中断允许及中断屏蔽,INTRA信号产生逻辑电路(324页)公式 PC3 = PC5 & INTEA 若输入数据已送A端口锁存,则 PC5 H 若INTEA = L, 则PC3 = H & L = L,中断屏蔽 若INTEA = H, 则PC3 = H & L = H,中断允许 INTEA电平的获得 对PC4进行置/复位方式操作 中断屏蔽置 PC4 = L 中断允许置 PC4 = H,B端口 方式 1 输入,方式控制字 C端口特定位的作用 PC2 /STBB 外设输入数据锁存到B端口的控制信号, 输入低有效 PC1 IBFB B端口己锁存外设输入数据的状态信号, 输出高有效 注: 查询方式下查此状态信号是否为高 PC0 INTRB 8255A向CPU发中断请求信号, 输出高有效,INTRB 的中断允许及中断屏蔽,INTRB信号产生逻辑电路(324页)公式 PC0 = PC1 & INTEB 若输入数据已送B端口锁存,则 PC1 H 若INTEB = L, 则PC0 = H & L = L,中断屏蔽 若INTEB = H, 则PC0 = H & L = H,中断允许 INTEB电平的获得 对PC2进行置/复位方式操作 中断屏蔽置 PC2 = L 中断允许置 PC2 = H,A端口 方式 1 输出,方式控制字 C端口特定位的作用 PC7 /OBFA CPU 将数据写入A端口后,PC7 输出低电平, PC6 /ACKA 外设从A端口取数据后, 送低电平到PC6 注: 查询方式下查此状态信号是否为低 PC3 INTRA 8255A向CPU发中断请求信号, 输出高有效,INTRA 的中断允许及中断屏蔽,INTRA信号产生逻辑电路(325页)公式 PC3 = PC7 & INTEA 要执行写数据入A端口中断服务程序, 则PC7 = H 若A端口获得数据后, PC7 L 若INTEA = L, 则PC3 = H & L = L,中断屏蔽 若INTEA = H, 则PC3 = H & L = H,中断允许 INTEA电平的获得 对PC6进行置/复位方式操作 中断屏蔽置 PC6 = L 中断允许置 PC6 = H,B端口 方式 1 输出,方式控制字 C端口特定位的作用 PC1 /OBFB CPU 将数据写入B端口后,PC1 输出低电平, PC2 /ACKB 外设从B端口取数据后, 送低电平到PC2 注: 查询方式下查此状态信号是否为低 PC3 INTRB 8255A向CPU发中断请求信号, 输出高有效,INTRB 的中断允许及中断屏蔽,INTRB信号产生逻辑电路(325页)公式 PC3 = PC1 & INTEB 要执行写数据入B端口中断服务程序, 则PC1 = H 若B端口获得数据后, PC1 L 若INTEB = L, 则PC3 = H & L = L,中断屏蔽 若INTEB = H, 则PC3 = H & L = H,中断允许 INTEB电平的获得 对PC2进行置/复位方式操作 中断屏蔽置 PC2 = L 中断允许置 PC2 = H,A端口、B端口方式 1 比较,A端口输入借用C端口位PC3 、PC4 、 PC5 A端口输出借用C端口位PC3 、PC6 、 PC7 B端口输入借用C端口位PC0 、PC1 、 PC2 B端口输出借用C端口位PC0 、PC1 、 PC2A端口输入、输出借用不同的C端口的位 B端口输入、输出借用相同的C端口的位B端口只有方式 1 选通输入/输出 A端口还有方式 2 双向数据传送,C端口未借用位的使用,A端口方式 0、B端口方式 0 C端口所有位未被借用,PC0 PC7 可用A端口方式 0、B端口方式 1 PC0 PC2被借用,PC3 PC7可用A端口方式 1输入、B端口方式 0 PC3、PC4、PC5被借用,PC0 PC2、PC6、PC7 可用A端口方式 1输出、B端口方式 0 PC3、PC6、PC7 被借用,PC0 PC2、PC4、PC5 可用A端口方式 1、B端口方式 1 A端口输入, PC6、PC7 可用;输出, PC4、PC5 可用,例,A端口方式 1 输入、B 端口方式 1 输出、PC6,PC7 作输入,给出方式控制字。A端口方式 1 输出、B 端口方式 1 输入、PC4,PC5 作输出,给出方式控制字。,BCH,A7H,A端口 方式 2 双向数据传送,方式控制字C端口特定位的作用 输入时同A端口方式 1 输入,借用PC3,PC4,PC5 输出时同A端口方式 1 输出,借用PC3,PC6,PC7中断允许与中断屏蔽 输入中断方式同A端口方式 1 输入,置/复PC4 输出中断方式同A端口方式 1 输出,置/复PC6 双向传送中断方式由或门完成,输入/输出中断有效,例 8255A用作A/D、D/A的接口,电路原理图 (348页图9.16) 通道选用 A端口方式1输入, 用于A/D变换的数据输入接口 B端口方式0输出, 用于D/A变换的数据输出接口 C端口中的位:1、为A端口服务;2、作控制信号 I/O接口的控制方式 输入(A端口) 采用查询方式 输出(B端口) 采用无条件程控方式 C端口为位操作方式,例 8255A用作A/D、D/A的接口,8255A对A/D芯片的控制 PC7 = H,启动A/D变换;PC7 = L,停止A/D变换 PC4(/STBA) = L,A/D变换后的数据送A口锁存 PC5( IBFA) = H,A口己锁存A/D变换后的数据 注:查询状态信息PC5 = H,下一步完成读A/D数据 8255A对D/A芯片的控制 B端口工作于方式 0 输出, 为直接数据输出8255A地址定义为300H 303H,例 8255A用作A/D、D/A的接口,方式控制字 A端口方式 1 输入 b6,b5,b4 = 011 B端口方式 0 输出 b2,b1 = 00 C端口PC7 输出 b3 = 0写方式控制字编程 MOV AL,1011000XB MOV DX,303H OUT DX,AL,例 8255A用作A/D、D/A的接口,完成A/D变换过程编程启动A/D,即置 PC7 = H MOV DX,303H MOV AL,0XXX1111B OUT DX,AL停止A/D,即清PC7 = L MOV DX,303H MOV AL,0XXX1110B OUT DX,AL,例 8255A用作A/D、D/A的接口,查询PC5,完成A/D变换数据读入A端口 MOV DX,302H ;C端口R/W地址为302H AG:IN AL,DX ;C端口数据读入 AL TEST AL,00100000B ;测PC5位是否为0 JZ AG ;为 0 循环查询,为 1 进入下式 MOV DX,300H ;A端口R/W地址为300H IN AL、DX ; A/D变换数据读入 AL,例 8255A用作A/D、D/A的接口,完成B端口D/A变换数据输出编程 ;数据处理过程略 MOV DX,301H ;B端口R/W地址为301H OUT DX,AL ; B端口数据送D/A变换器, 8.4 可编程定时器/计数器芯片8253,8253的基本功能 8253的工作原理8253的内部结构 8253的引脚特性 8253的控制命令字 8253的工作方式 8253的应用实例,8253的基本功能及工作原理,8253的基本功能定时功能 输出状态根据定时值改变计数功能 可对输入波形进行波形变换输出 8253的工作原理 设定8253内部计数器初值8253内部计数器从外部获得计数脉冲信号在计数脉冲作用下, 内部计数器减1计数根据8253内部计数器工作方式获得波形输出,8253的内部结构图,8253的内部结构,8253与CPU的接口 8 位数据线 D0 D7 寻址控制线 A0、A0、/CS 读写控制线 /RD、/WR 8253与外设的接口 注: 三个独立的计数器/定时器 时钟输入 CLK 输入门控 GATE 波形输出 OUT,8253的内部结构,8253的寄存器原理图,8253的内部结构,8253的寄存器控制寄存器 写入控制字确定芯片功能初始值寄存器 写入计数初值状态寄存器 读取计数状态值计数器 完成计数减 1 计数输出寄存器 获得编程波形,8253的内部寄存器功能,控制寄存器(写操作) CPU对8253写入控制字,编程改变8253的功能 初始值寄存器(写操作) CPU对8253写入计数初值,使8253获得定时量 状态寄存器(读操作) CPU从状态寄存器中读取8253的状态 注: 上述三个寄存器可编程,8253的内部寄存器功能,计数器 为16 位计数器,完成减 1 操作 注: 解决16位计数器与8位数据线的矛盾 计数输出寄存器 根据计数状态产生输出波形 注: 上述二个寄存器不可编程,8253寄存器的读/写地址,8253有两条片内寄存器地址寻址线A0、A1,可寻 4 个片内寄存器。控制(命令)字地址 A1 = 1、A0 = 1计数器 0 的R/W地址 A1 = 0、A0 = 0计数器 1 的R/W地址 A1 = 0、A0 = 1 计数器 2 的R/W地址 A1 = 1、A0 = 0 注: A1 = 1、A0 = 1时, 仅写不能读,8253外部输入 / 输出线特性,CLK 时钟输入 时钟来源来源于计算机系统内部周期时钟来源于计算机系统外部非周期脉冲 注: 对定时器,CLK 必为周期信号 对计数器,CLK 可不为周期信号 触发方式 为边沿触发,8253外部输入 / 输出线特性,GATE 门控输入当GATE = H 时, 允许计数器计数当GATE = L 时, 禁止计数器计数 OUT 波形输出电平输出,持续高电平或低电平输出周期波形输出,占空比可调脉冲输出,正脉冲或负脉冲,8253的控制字,b7、b6 计数器选择(识别)位 b5、b4 计数器初值读写方式选择位 b3、b2、b1 计数器工作方式选择位 b0 计数器计数进制选择位,8253的控制字,b7、b6 计数器选择(识别)位 b5、b4 计数器初值读写方式选择位,0 0 写计数器 0 的控制字0 1 写计数器 1 的控制字1 X 写计数器 2 的控制字,0 0 锁定计数器值0 1 仅 R / W 计数器低 8 位1 0 仅 R / W 计数器高 8 位1 1 顺序 R / W 计数器低 8 位、高 8 位,8253的控制字,b3、b2、b1 计数器工作方式选择位b0 计数器计数进制选择位,0 0 0 计数器 n 的功能为工作方式 00 0 1 计数器 n 的功能为工作方式 10 1 0 计数器 n 的功能为工作方式 20 1 1 计数器 n 的功能为工作方式 3 0 0 计数器 n 的功能为工作方式 41 0 1 计数器 n 的功能为工作方式 5,0 二进制计数(从 FFFFH 0000H)1 十进制计数(从 9999 0000), 例 1 ,8253工作为计数器 0,方式 0,初值为4,二进制计数,设寄存器地址为40H 43H控制字编程 MOV AL,10H OUT 43H,AL ;写计数器 0 的控制字 MOV AL,04H OUT 40H,AL ;写计数器 0 的初值,10H, 例 2 ,8253工作为计数器 1,方式 3,初值为4020H,十进制计数,设寄存器地址为40H 43H控制字编程 MOV AL,77H OUT 43H,AL ;写计数器 1 的控制字 MOV AL,20H OUT 41H,AL ;写计数器 1 的低 8 位初值 MOV AL,40H OUT 41H,AL ;写计数器 1 的高 8 位初值,77H, 例 3 ,8253工作为计数器 2,方式 3,初值为4000H,十进制计数,设寄存器地址为40H 43H控制字编程 MOV AL,0A7H OUT 43H,AL ;写计数器 2 的控制字, ;并清 16 位初值寄存器 MOV AL,40H OUT 42H,AL ;仅写计数器 2 的高 8 位初值,A7H,工作方式与功能,方式 0 计数结束产生中断输出(软件控制)方式 1 重复触发的单稳输出(硬件控制)方式 2 分频器(软件控制)方式 3 方波发生器(软件控制)方式 4 选通信号发生器(软件触发)方式 5 选通信号发生器(硬件触发),方式 0 计数结束产生中断输出(软件控制),CLK 计数输入 计算机内部时钟OUT 波形输出 写控制字时,OUT 输出电平不定 写计数初值寄存器 CR 时,OUT = L 计数器 CE = 0 时,OUT = H GATE 门控输入 GATE = L 计数器 CE 不工作,有延时作用 GATE = H 计数器 CE 减 1 计数,方式 1 重复触发的单稳输出(硬件控制),初始化时 写控制字时,OUT 输出电平不定 写计数初值寄存器 CR 时,OUT = H外部控制 GATE 输入上升沿脉冲时,计数开始且 OUT = L计数器 CE 为 0 时 OUT = H,方式 2 分频器(软件控制),初始化时 写控制字时,OUT 输出电平不定 写计数初值寄存器 CR 时,OUT = H,CE 减计数周期波形输出 CE = 0 时,OUT = L 一个输入时钟后,OUT = H,CE 以初值开始减计数GATE的影响 当GATE 保持高电平时,CE 按原初值计数 当GATE有负脉冲触发后,CE 按新初值计数 注: OUT 输出周期负脉冲,若输入时钟频率为 f, 计数初值为 n,则输出波形分频比为 f / n,方式 3 方波发生器(软件控制),基本功能同方式 2输出波形占空比分析若计数初值为偶数,输出波形占空比为 1若计数初值为奇数,输出波形占空比接近为 1 注: 若计数初值为奇数,输出波形的 高电平比低电平多 1 个输入时钟周期,方式 4 选通信号发生器(软件触发),初始化时 写控制字时,OUT 输出电平不定 写计数初值寄存器 CR 时,OUT = HGATE的影响 若 GATE = H ,计数器 CE 减 1 计数 若 GATE = H ,计数器 CE 不工作OUT输出 若 CE = 0 , OUT = L 一个输入时钟后, OUT = H 注: 在 CE 的作用下产生一负窄脉冲选通信号,方式 5 选通信号发生器(硬件触发),初始化时 写控制字时,OUT输出电平不定 写计数初值寄存器 CR 时,OUT = HGATE的触发 GATE端输入上升沿脉冲, CE 减 1 计数OUT输出 若CE = 0 , OUT = L 一个输入时钟后, OUT = H 注: 在 GATE 的作用下产生一负窄脉冲选通信号,方式 0 与方式 4 的比较(软件控制),相同点 写入控制字及初值后,若GATE = H,CE开始减计数 当CE = 0 时,OUT改变电平状态 不同点 方式 0 在计数期间 OUT = L,计数结束 OUT = H OUT 方式 4 在计数期间 OUT = H,计数结束OUT =负脉冲 OUT,方式 1 与方式 5 的比较(硬件触发),相同点 写入控制字及初值后,若 GATE 输入上升沿脉冲触 发,CE开始减计数, 当CE = 0时, OUT改变电平状态 不同点 方式 0 在计数期间 OUT = L,计数结束OUT = H GATE OUT 方式 4 在计数期间OUT = H,计数结束OUT =负脉冲 GATE OUT,计数期间,计数期间,方式 2 与方式 3 的比较(波形输出),相同点 均输出连续周期波形,预置初值可自动重装入 不同点 方式 2 输出连续负脉冲周期波形 方式 3 输出连续方波周期波形,