微机原理与接口技术第89章.ppt_第1页
微机原理与接口技术第89章.ppt_第2页
微机原理与接口技术第89章.ppt_第3页
微机原理与接口技术第89章.ppt_第4页
微机原理与接口技术第89章.ppt_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章可编程计数器 定时器 8253及其应用 8 0计数 定时方法简介8 18253的工作原理8 28253的应用举例 8 0计数 定时方法简介 软件定时 软件延时 CPU执行指令需要花费固定的时间 执行一段没有目的的指令可以达到定时的效果 灵活方便 节省费用 CPU利用率低 不可编程硬件定时 以逻辑门配合RC组成定时电路 如555等 通过改变RC值 调整定时时间 定时精度不高 RC值容易随外部环境变化而变化 可编程硬件计数 定时 利用晶体振荡器产生高频时间基准 送至可编程硬件进行分频后 通过指令设定定时初值 到达预定时间后 自动形成一个输出信号到CPU的中断引脚 提出中断请求 CPU占用率低 定时时间可设 注 将晶体振荡器输出改为外部脉冲输出 则可实现计数功能 8 18253的工作原理 数据总线缓冲器 控制寄存器 计数器2 O O读 写控制逻辑 O 计数器1 CLK1GATE1OUT1 CLK2GATE2OUT2 D0D7 RD WRA0A1 CS 计数器0 CLK0GATE0OUT0 计数器0 计数初值寄存器 低8 高8执行部件 输出锁存寄存器 D0 D7 8253基本原理图 8253内部结构及引脚 一 8253作用 定时 软件定时 让机器执行一段程序 安排循环来实现定时 容易实现 定时时间调整方便 定时不精确 占用了CPU资源 降低了CPU的利用率 硬件定时 可编程定时 计数硬件芯片 定时值 定时范围可以很容易的由软件改变 具有使用灵活 功能较强等特点 外部事件计数 外部事件计数就是对外部脉冲信号计数 产生脉冲信号的外部原因就是外部事件 如高速公路入口处一个专用计算机检测系统 它可以自动对进入高速公路的车辆进行计数 8253 8254定时计数器 3个独立的16位计数器通道每个计数器有6种工作方式 按二进制或十进制 BCD码 计数 8254是8253的改进型 OUT输出 计数脉冲 可预置初值计数器计数初值 8253定时 计数器的工作原理定时 计数器的核心部件为可预置初值计数器 预置初值后开始计数 CLK信号每输入一个脉冲 计数值减1 一直减到0 并且OUT脚同时产生相应输出信号 该信号可用作中断请求 要注意定时器 的容量即位数 CLK输入 GATE门控信号 四大部分 数据总线缓冲器 读写控制逻辑 控制字寄存器以及三个独立的16位的计数器通道 这三个计数器分别是计数器0通道 计数器1通道和计数器2通道 1 数据总线缓冲器 8位的双向三态缓冲器 用于暂存数据 使用在以下几个方面 CPU在初始化编程时 向8253写入控制字 CPU向某一通道写计数初值 CPU从某一通道读计数初值 2 读 写控制逻辑电路 接受输入的RD WR CS A1 A0等信 号组合产生出对8253要执行的操作 见操作表 3 控制字寄存器 只能写入 不能读出 8初始化编程时 写 入控制字决定通道的工作方式 4 3个计数器 分别为0 1和2 是3个独立的计数 定时通道 都可按不同的方式工作 每个计数器内部都包含一个16位的预置初始值寄存器 一个可预置数减法计数器和一个锁存器 数据总线缓冲器 双向三态的8位数据缓冲器 实现8253和CPU之间的数据接口 读 写控制电路 片选信号CS A1A0的组合 选择三个通道一个控制寄存器 共4个端口 读信号RD和写信号WR由CPU提供 低电平有效 计数器通道0 通道1和通道2CLK 计数器的脉冲输入端 GATE 计数器的门控信号 OUT 计数器的输出信号 一般与计数溢出有关 8253计数器工作在减1状态 每输入一个计数脉冲 计数器值减l 16位计数器 GATE 当计数器计数到零时 CLKOUT信号有效通知外设计数器产生溢出 OUT 计数器 将要计数的次数预置到该通道计数器中定时器 从CLK输入一固定频率的时钟脉冲 再根据要求定时的时间计算出定时所需的计数值或称时间常数 并预置到计数器中计数值 定时时间 时钟脉冲周期 计数器的使用 写8253的控制字 写入控制寄存器 A1 A0 11 写入计数值 写到相应的计数器 8253控制寄存器格式 D0 D1 D2 D3 D4 D5 D6 D7 BCD M1 M2 M3 RW1RW0 SC0 SC1 工作方式选择000 方式0001 方式1010 方式2101 方式5 计数值写入顺序00 读计数值 锁存 01 写低8位 高8位为010 写高8位 低8位为011 先写低8位 后写高8位 计数器选择00 计数器001 计数器110 计数器211 8254读回 计数值形式0 二进制1 BCD码 二 初始化编程步骤和门控信号的功能 8253初始化 通过8253的控制端口向控制字寄存器写入相应通道的控制字 控制字包括如下信息 指定通道的工作方式 对通道计数器的读写方式 通道计数器计数时所采用的数制 通过8253的通道端口向相应的通道计数器写入初始计数值 如果在控制字中已确定16位的读写方式 则要对通道端口写操作两次 第一次写初始计数值的低8位 第二次写高8位 8253的编程控制字分为4部分 通道选择 计数器读 写方式 工作方式和计数码的选择 计数器选择 SC1 SC0 计数器读 写方式 RLl RL0 计数器的锁存操作8253一旦初始化后 就不需要CPU参与而自动计数 为了读出计数值时不干扰实际计数过程 同时读出的值又是稳定的 就要求对通道计数器中的计数值进行锁存 硬件锁存暂停计数 GATE 暂停计数 软件控制命令锁存每一个通道都有一个输出锁存器 16位 平时它的值随通道计数器的值变化 当向通道写入锁存的控制命令时 它把计数器的现行值锁存而计数器的计数过程照样进行 这样 CPU读取的是锁存器中的值 当重新写入一个命令字或CPU读取计数值后 计数通道会自动解除锁存状态 锁存控制字 0000XXXXB 先读低8位 后读取高8位 不锁存 1000H 0F00H BCD计数制 写入初值范围为0000到9999 而0000是最大值 代表10000二进制计数制 写入初值范围为0000到FFFFH 其中0000为最大值 代表65536 工作方式选择 M2 M1 M0 控制字的D5D4为00 表示的是锁存命令 这时控制字中的低4位无 效 8253的工作方式 方式0 计数结束中断方式 方式1 可编程序的单独负脉冲方式2 速率发生器方式3 方波发生器方式4 软件触发方式方式5 硬件触发方式 方式0 计数结束中断方式 方式0的作用 用户可以在设定时间上产生中断信号 工作方式0特点 门控信号GATE必须为1 计数器才能计数 计数时通道输出端OUT一直为0 通道计数器计数到0后 OUT由0到1 同时计数器停止工作 OUT输出的从低到高的正跳变或高电平可作为中断请求信号INTR 向CPU发出中断请求 在计数过程中 GATE信号为低电平时 停止计数 一旦GATE变高 则继续计数 INT8086 置8255A方式控制字 8255A置位 复位控制字 使PC0 0 置8253通道0方式控制字 置8253通道0时间常数 MOVAL 10011010BOUT8255控制口 ALMOVAL 00HOUT8255控制口 ALMOVAL 30HOUT8253控制口 ALMOVAL 40HOUT通道0端口 ALMOVAL 38HOUT通道0端口 AL 中断程序中有关程序段如下 8255置位 复位控制字 使PC0 1 MOVAL 00000001BOUT8255控制口 AL 家庭厨房系统 方式1 可编程序的单稳态输出方式 单稳电路 在输入的激励下产生固定宽度脉冲的电路 当输入端输入一个不低于规定的最小宽度的脉冲后 单稳电路就输出一个用户事先设定宽度的脉冲 8253的方式1就是一个可编程单稳电路 方式1工作过程 门控信号GATE是触发信号 上升沿有效 即开始计数是由GATE的上升沿触发的 触发后 通道计数器开始计数 输出端OUT由高变低 计数器计数到0 OUT再由低变高 PW N Tclk PW 输出的负脉冲宽度 N 初始计数值 Tclk CLK端的脉冲周期 方式2 比率发生器方式2是一个可编程的分频电路 它把输入信号CLK分频后以脉冲的形式由OUT输出 而分频系数就是用户事先对通道计数器写入的初始计数值 工作方式 OUT初始为高电平 GATE门为1 计数器才能工作 对CLK端上的脉冲进行计数 当计数器 减 计数到1时 输出端由高变低 再经过一个CLK周期 即计数器计数到0时 输出端OUT又跳变为高 所以方式2输出周期性负脉冲信 号 其宽度固定为一个CLK周期 当计数器的值减为0时 自动重新装入计数初值 实现循环计数 方式2计数初值重载 在计数过程中 如果GATE信号为低电平 则停止计数 待GATE信号变为高电平后 从初始值开始重新计数 方式2定时波形图 方式3 方波发生器 工作方式 当控制字写入控制寄存器后 输出端OUT变高 当计数初值写入通道 且GATE为高电平时计数器开始计数 OUT保持高电平 若计数初值n为偶数 则当计数值减到n 2时 输出端OUT变为低电平 然后此 低电平一直保持到计数值减为0 OUT再次变为高电平 当计数值减到0时计数器重新装入计数值 实现循环计数 当计数值N为偶数时 输出端OUT输出重复周期为N CLK 占空比为1 1的方波 当计数初值N为奇数 输出重复周期为N CLK 但占空比为 N 1 2 N 1 2 因而输出是近似方波 方式4 软件触发方式 软件触发方式 CPU通过指令触发一个选通信号给外部设备 选通信号在触发后设定时间点上发出 选通信号作用 锁存器STB 打印机STB CPU通过触发8253的某个通道 定时启动一个事件或工作过程 或CPU启动某个事件的命令延迟了设定时间后才执行 方式4中 当写入控制字后 输出端OUT变为高电平 当计数初值写入通道后 CPU就完成了对通道的触发 当计数器计数到0时 通道的OUT端就输出负脉冲 方式4工作过程 门控信号GATE为高电平 计数器开始减1计数 OUT维持高电平 当计数器减到0 输出端OUT变低 再经过一个CLK输入时钟周期 OUT输出又变高 所以输出端OUT在计数器溢出时产生一个宽度为1个CLK周期的负脉冲 而这个负脉冲就可以做为外设的选通信号 若在计数过程中 GATE信号变低 则停止计数 到GATE信号变高 重新开始从初值减1计数 GATE0 5V 8253通道0CLK0OUT0 CPRD DSDQ 送家用电器 5V 220V 5V CR方式4下的家庭厨房系统 早晨启动你的计算机 在8点钟执行对8253通道0的初始化程序 关掉CPU 方式5 硬件触发方式 硬件触发方式 外部通过一个有效沿触发信号启动一个选通信号给外部设备 选通信号在触发后设定时间点上发出 工作过程 当控制字写入控制寄存器后 输出端OUT变高 当计数值写入通道计数器后 立即开始计数 只有当GATE信号的上升沿触发通道后 通道计数器才开始计数 所以方式5称硬件触发 当计数值减到0 输出端OUT变低 再经过一个CLK时钟周期 OUT端输出又变高 输出端OUT输出的也是一个宽度固定为1个CLK周期的负脉冲 计数器的计数值减到0后 将自动重新装入计数值 但并不开始计数 待到再一次有GATE的上升沿触发才开始计数 8253通道0 DSDQCPRD 送家用电器 5V 220V CR CLK0OUT0GATE0 5V 早晨8点前的任何一个时刻启动你的计算机 对8253通道0的初始化程序 关掉CPU在8点时 按下开关 计数开始计数 5V 8253的工作方式小节 与频率发生器有关的工作方式 方式2和发生3 对OUT端 方式2提供给用户的是负脉冲 方式3提 供给用户的是方波 GATE信号均要始终保持为高 与计数器有关的工作方式 2161000000N 例题 现有一个高精密晶体振荡电路 输出信号是脉冲波 频率为1MHz 要求利用8253做一个秒信号发生器 其输出接一发光二极管 以0 5秒点亮 0 5秒熄灭的方式闪烁指示 设8253的通道地址为80H 86H 偶地址 解答 1 8253作一个分频电路 而且其输出应该是方波 2 分频系数N 1S1000000 S 1 S1 S N 1000000 1000 1000 N1 N2 1MHz 8253通道0CLK0OUT0GATE0 1KHz 8253通道1CLK1OUT1GATE1 5V通道0首先把1MHz信号1000分频 产生1KHz的信号 通道1再把1KHz信号1000分频 结果就得到的1Hz信号 3 通道1要输出方波信号推动发光二极管 所以通道1应选工作方式3 对于通道0 只要能起分频作用就行 对输出波形不做要求 所以方式2和方式3都可以选用 4 初始化 通道0 工作方式2 BCD计数 通道1 工作方式3 二进制计数 MOVAL 00110101BOUT86H ALMOVAL 00OUT80H ALMOVAL 10HOUT80H ALMOVAL 01110110B 通道0控制字 通道0初始计数值 通道1控制字 OUT86H ALMOVAL 0E8H 通道1初始计数值 03E8H 1000BCDOUT82H ALMOVAL 03HOUT82H AL 第9章可编程外围接口芯片 8255A及其应用 9 18255A的工作原理9 28255的应用举例 一 8255A的结构和功能 具有多种功能的可编程并行接口电路芯片最基本的接口电路 三态缓冲器和锁存器与CPU间 与外设间的接口电路 状态寄存器 和控制寄存器 还有端口的译码和控制电路 中断控制电路 分3个端口 共24个外设引脚共三种输入输出工作方式 8255A的内部结构和引脚 A组控制 A组端口A 内部数据线B组控制内部控制线 A组端口C上部B组端口BB组端口C下部 数据总线缓冲器读写控制逻辑 PC4 PC7PB0 PB7PC0 PC3 PA0 PA7 D0 D7RDWRA0A1CSRESET 外设数据端口 方式0 4位PC0 PC3 端 7 端口A PA0口PAPA0 PA7 A组 支持工作方式0端口 功能最强大 常作数据 1 2 端 7 端口B PB0口PBPB0 PB7 B组 支持工作方式0端口 常作数据 1 端 7 端口C PC0口PCPC0 PC7 4位PC44位7 仅支持工作可作数据 状态和控制端口A组控制高分两个 PC每位可独立操作B组控制低控制最灵活 最难掌握 与处理器接口 D0 D7数据线RD 读信号CS 片选信号 A0 A1地址线WR 写信号RESET复位信号 三 8255A的工作方式 方式0 基本输入输出方式 适用于无条件传送和查询方式的接口电路 方式1 选通输入输出方式 适用于查询和中断方式的接口电路 方式2 双向选通传送方式 适用于与双向传送数据的外设 适用于查询和中断方式的接口电路 data data 方式0输入时序RD 输入端口CS A1 A0D0 D7 方式0输出时序WR data data 输出端口CS A1 A0D0 D7 8255A对CPU通过它输出给外设的数据进行锁存 方式1输入引脚 A端口数据选通信号 表示外设已经准备好数据 输入缓冲器满信号 表示A口已经接收数据 中断请求信号请求CPU接收数据 PC4PC5 PC3 PA7 PA0 INTEA INTRA STBAIBFA 中断允许触发器 PC2 PB7 PB0 INTEB STBB 方式1输入引脚 B端口数据选通信号 表示外设已经准备好数据 输入缓冲器满 中断请求信号请求CPU接收数据 中断允许触发器 PC同时还具有中断请求和屏蔽功能信号表示A口已经接收数据PC0INTRB 方式1输入联络信号 STB 选通信号 低电平有效 由外设提供的输入信号 当其有效时 将输入设备送来的数据锁存至8255A的输入锁存器 IBF 输入缓冲器满信号 高电平有效 8255A输出的联络信号 当其有效时 表示数据已锁存在输入锁存器 INTR 中断请求信号 高电平有效 8255A输出的信号 可用于向CPU提出中断请求 要求CPU读取外设数据 data data 输入端口D0 D7 方式1输入时序STBIBF的一对应答联络信号 INTRRD 方式1中断控制 8255A的中断由中断允许触发器INTE控制 置位允许中断 复位禁止中断 对INTE的操作通过写入端口C的对应位实现 INTE触发器对应端口C的位是作应答联络信号的输入信号的哪一位 只要对那一位置位 复位就可以控制INTE触发器选通输入方式下 端口A的INTEA对应PC4端口B的INTEB对应PC2 方式1输出引脚 A端口外设响应信号 表示外设已经接收到数据 输出缓冲器满信号表示CPU已经输出了数据 PC6 PC7 PA7 PA0 INTEA OBFA INTRA中断请求信号请求CPU再次输出数据 ACKA PC3中断允许触发器 PC2 PC1 PB7 PB0 INTEB OBFB ACKB 方式1输出引脚 B端口外设响应信号 表示外设已经接收到数据 输出缓冲器满信号表示CPU已经输出了数据 INTRB中断请求信号请求CPU再次输出数据 PC0中断允许触发器 ACK 响端口A的INTEA对应PC6 方式1输出联络信号 OBF 输出缓冲器满信号 低有效 8255A输出给外设的一个控制信号 当其有效时 表示CPU已把数据输出给指定的端口 外设可以取走 应信号 低有效 INTR 中断请求信号 高有效 当输出设备已接受数据后 8255A输出此信号向CPU提出中断请求 要求CPU继续提供数据 外设的响应信号 指示INTEB的端口数据已由外设接受 端口B8255A对应PC2 INTR data data 输出端口D0 D7 方式1输出时序WROBF ACK OBF 和ACK 是外设和8255A间的一对应答联络信号 为的是可靠地输出数据 方式2双向方式 方式2将方式1的选通输入输出功能组合成一个双向数据端口 可以发送数据和接收数据 只有端口A可以工作于方式2 需要利用端口C的5个信号线 其作用与方式1相同 方式2的数据输入过程与方式1的输入方式一样方式2的数据输出过程与方式1的输出方式有一点不同 数据输出时8255A不是在OBF 有效时向外设输出数据 而是在外设提供响应信号ACK 时才送出数据 PC6 方式2双向引脚PA7 PA0 INTE1 ACKA OBFASTBAIBFAINTRA PC7INTE2PC4PC5PC3 用PC6设置INTE1 输出 用PC4设置INTE2 输入 输入和输出中断通过或门输出INTRA信号 data out data in data indata out PA0 PA7D0 D7 方式2双向时序WROBFINTRACKSTBIBFRD 8255A的编程 初始化编程 一个方式控制字 采用控制I O地址 A1A0 11 工作过程中 通过数据端口对外设数据进行读写 数据读写利用端口A B和C的I O地址 A1A0依次等于00 01 10 IBMPC XT机上 端口A B C和控制端口的I O地址为60H 61H 62H和63H 1 写入方式控制字 控制字格式 写入方式控制字 示例要求 A端口 方式1输入C端口上半部 输出 C口下半部 输入B端口 方式0输出方式控制字 10110001B或B1H初始化的程序段 movdx 0fffehmoval 0b1houtdx al 假设控制端口为FFFEH 方式控制字 送到控制端口 2 读写数据端口 初始化编程后 当数据端口作为输入接口时 执行输入IN指 令将从输入设备得到外设数据 当数据端口作为输出接口时 执行输出OUT 指令将把CPU的数据送给输出设备 8255A具有锁存输出数据的能力 对输出方式的端口同样可以输入不是读取外设数据 读取的是上次CPU给外设的数据 2 读写数据端口 示例利用8255A的输出锁存能力 可实现按位输出控制对输出端口B的PB7位置位的程序段 movdx 0fffahinal dxoral 80houtdx al B端口假设为FFFAH 读出B端口原输出内容 使PB7 1 输出新的内容 3 读写端口C 归纳1 C端口被分成两个4位端口 两个端口只能以方式0工作 可分别选择输入或输出 在控制上 C端口上半部和A端口编为A组 C端口下半部和B端口编为B组 3 读写端口C 归纳2 当A和B端口工作在方式1或方式2时 C端口的部分或全部引脚将被征用 其余引脚仍可设定工作在方式0 3 读写端口C 归纳3 对端口C的数据输出有两种办法 通过端口C的I O地址 向C端口直接写入字节数据 这一数据被写进C端口的输出锁存器 并从输出引脚输出 但对设置为输入的引脚无效 通过控制端口 向C端口写入位控字 使C端口的某个引脚输出1或0 或置位复位内部的中断允许触发器 端口C的位控制字 位控制字写入控制端口特别便于置位复位内部中断允许触发器INTE 3 读写端口C 归纳4 读取的C端口数据有两种情况 未被A和B端口征用的引脚 将从定义为输入的端口读到引脚输入信息 将从定义为输出的端口读到输出锁存器中的信息 被A和B端口征用作为联络线的引脚 将读到反映8255A状态的状态字 方式1输入 INTRA INTE2 IBFA INTE1 OBFA INTRB OBFB INTRAINTEB I O I O INTEA OBFA 方式2双向 方式1输出 INTRB IBFB INTEAINTRAINTEB IBFA I O I O D0 D1 D2 D3 D4 D5 D6 D7 端口C的状态字 A组 B组 9 28255A的应用 作为通用的并行接口电路芯片 825A具有广泛的应用 应用在IBMPC XT微机上应用于打印机接口电路连接简易键盘 驱动LED数码管 11 2 18255A在IBMPC XT上的应用工作在基本输入 输出方式0端口A为方式0输入 用来读取键盘扫描码端口B工作于方式0输出 例如控制扬声器等端口C为方式0输入 读取系统状态和配置系统的初始化编程 方式控制字99H moval 10011001bout63h al 同时送出数据选通信号STROBE BUSY忙信号 打印机接口的信号与时序 DATA0 7 ACK 主机把数据送给引脚DATA0 DATA7 打印机 STROBE在BUSY信号线上发出忙信号 打印机处理好输入的数据时 撤消 同时又送出一个响应信号ACK 用8255A方式0与打印机接口 8255APA0 PA7PC7PC2 打印机DATA0 7STROBEBUSY 8255A的初始化movdx 0fffeh 控制端口地址 FFFEH moval 10000001B 方式控制字 91H outdx al A端口方式0输出 C端口上输出 下输入 moval 00001111B 端口C的复位置位控制字 使PC7 1 outdx al 打印子程序 查询 printcprn procpushaxpushdxmovdx 0fffch 读取端口C inal dxandal 04h 查询打印机状态 PC2 BUSY 0 jnzprn PC2 1 打印机忙 则循环等待 打印子程序 输出movdx 0fff8h PC2 0 打印机不忙 则输出数据moval ah outdx al 将打印数据从端口A输出 打印子程序 打印 movdx 0fffeh 从PC7送出控制低脉冲 moval 00001110B 置STROBE 0 outdx al nop 产生一定宽度的低电平 nop moval 00001111B 置 1 outdx al 最终 STROBE 产生低脉冲信号 打印子程序 返回popdxpopaxret printc endp 11 2 3用8255A方式1与打印机接口 1000pf 2K 15 3 14 42 电路 5V

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论