第8章 定时计数.ppt_第1页
第8章 定时计数.ppt_第2页
第8章 定时计数.ppt_第3页
第8章 定时计数.ppt_第4页
第8章 定时计数.ppt_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

定时与计数技术及应用 定时 计数器 8253 了解定时 计数技术的应用情况 掌握8253的连接与编程 熟习8253的工作方式 定时与计数 定时器和计数器都由数字电路中的计数电路构成 前者记录高精度晶振脉冲信号 因此可以输出准确的时间间隔 称为定时器 而当记录外设提供的具有一定随机性的脉冲信号时 它主要反映脉冲的个数 称为计数器 1 软件定时 根据CPU执行每条指令需要一定的时间 重复执行一些指令就会占用一段固定的时间 通过适当地选取指令和循环次数便很容易实现定时功能 这种方法不需要增加硬件 可通过编程来控制和改变定时时间 灵活方便 节省费用 缺点是CPU重复执行的这段程序的本身并没有什么具体目的 仅为延时 从而降低了CPU利用率 2 不可编程的硬件定时 3 可编程的定时 Intel8253可编程定时器 计数器 8253的基本功能和内部结构 1 3个独立的16位计数器 最大计数范围为0 65535 2 每个计数器均可以按二进制或二 十进制计数 3 计数器速率可达2MHz 4 可编程6种不同的工作方式 5 所有输入和输出都与TTL兼容 8253具有较好的通用性和使用灵活性 几乎适合于任何一种微处理器组成的系统 1 8253PIT的基本功能 2 8253的内部结构 8253的内部结构如图8 1所示 由数据总线缓冲器 控制寄存器 读 写控制逻辑和计数器等部分组成 图8 18253的内部结构示意图 1 数据总线缓冲器 该缓冲器为8位双向三态的缓冲器 可直接挂在数据总线上 CPU通过8位数据总线D0 D7传送如下信息 2 读 写控制逻辑 决定三个计数器和控制字寄存器中哪一个能进行工作 并控制内部总线上数据传送的方向 3 控制寄存器 接收从CPU来的控制字 并由控制字的D7 D6位的编码决定该控制字写入哪个计数器的控制寄存器 控制寄存器只能写入 不能读出 4 计数器 当8253用作计数器时 加在CLK引脚上脉冲的间隔可以是不相等的 当它用作定时器时 则在CLK引脚应输入精确的时钟脉冲 8253所能实现的定时时间 取决于计数脉冲的频率和计数器的初值 即 定时时间 时钟脉冲周期Tc 预置的计数初值n 对8253来讲 外部输入到CLK引脚上的时钟脉冲频率不能大于2MHZ 否则需分频后才能送到CLK端 计数器内部逻辑图 8253的引脚信号 8253是一片具有3个独立通道的16位计数器 定时器芯片 使用单一 5V电源 24引脚双列直插式封装 如右图所示 1 与CPU的接口信号 表8 18253读 写操作逻辑表 2 与外部设备的接口信号 1 CLK0 CLK1 CLK2 时钟脉冲输入端 用于输入定时脉冲或计数脉冲信号 CLK可以是系统时钟脉冲 也可以是由其他脉冲源提供 8253规定加在CLK引脚的输入时钟周期不得小于380ns 2 GATE0 GATE1 GATE2 门控输入端 用于外部控制计数器的启动或停止计数的操作 当GATE为高电平时 允许计数器工作 当GATE为低电平时 禁止计数器工作 3 OUT0 OUT1 OUT2 计数输出端 在不同工作方式中 当计数器计数到0时 OUT引脚上必输出相应的信号 8253的控制字 8253的控制字有4个主要功能 选择计数器 确定计数器数据的读写格式 确定计数器的工作方式 确定计数器计数的数制 控制字的格式如图8 3所示 图8 38253控制字格式 注 图中 可以是0 也可以是1 一般取0 8253的工作方式 8253是一种面向微机系统的专用接口芯片 它的每一个计数器都可以按照控制字的规定有6种不同的工作方式 每种工作方式中都有以下三种情况 正常计数的波形图 正在计数过程中改变门控信号GATE后对整个计数工作的影响 正在计数的过程中改变计数值对整个计数工作的影响 方式0 计数结束中断方式 InterruptonTerminalCount 工作方式0有如下特点 a 门控信号GATE必须为1 计数器才能计数 b 计数时通道输出端OUT一直为0 c 通道计数器计数到0后 OUT由0到1 同时计数器停止工作 图8 4 a 方式0正常计数 图8 4 b 方式0时GATE信号的作用 图8 4 c 方式0时计数过程中改变计数值 例 设8253计数器通道0工作于方式0 用8位二进制计数 其计数值为50 二 十进制 则它的初始化程序段如下 MOVAL 11H 设置控制字OUT43H AL 写入控制字寄存器MOVAL 50 设置计数初值OUT40H AL 写入计数初值寄存器 设8253占用端口地址40H 43H 2 方式1 可编程的单稳态触发器 ProgrammableOneShort 方式1工作过程如下 a 门控信号GATE是触发信号 上升沿有效 即开始计数是由GATE的上升沿触发的 b 触发后 通道计数器开始计数 输出端OUT由高变低 c 计数器计数到0 OUT再由低变高 图8 5 a 方式1正常计数 图8 5 b 方式1时GATE信号的作用 图8 5 c 方式1时计数过程中改变计数值 例 设计数器通道1工作于方式1 按二进制计数 计数初值为40H 它的初始化程序段为 MOVAL 62H 工作方式控制字OUT43H ALMOVAL 40H 送计数初值OUT41H AL 方式2的特点如下 a GATE门为1 计数器才能工作 对CLK端上的脉冲进行计数 b 当计数器 减 计数到1时 输出端由高变低 再经过一个CLK周期 即计数器计数到0时 输出端OUT又跳变为高 所以方式2输出周期性负脉冲信号 其宽度固定为一个CLK周期 c 当计数器的值减为0时 自动重新装入计数初值 实现循环计数 3 方式2 速率发生器 RateGenerator 方式2用门控信号达到同步计数的目的 波形图如图8 6 a b c d 所示 图8 6 a 方式2正常计数 图8 6 b 方式2时GATE信号的作用 图8 6 c 方式2时计数过程中改变计数值 例 设8253计数器0工作于方式2 按二进制计数 计数初值为0304H MOVAL 00110100B 设控制字 通道0 先读 写高8位 再读写低8位 方式2 二进制 OUT43H ALMOVAL 04H 送计数值低字节OUT40H ALMOVAL 03HOUT40H AL 送计数值高字节 4 方式3 方波发生器 SquareWaveGenerator 方式3的工作过程同方式2 只是输出的脉宽不同 波形如图8 7 a b c d 所示 图8 7 a 方式3计数值为偶数时的波形 图8 7 b 方式3计数值为奇数时的波形 图8 7 c 方式3GATE信号的作用 图8 7 d 方式3计数过程中改变计数值 例 设8253计数器2工作在方式3 按二 十进制计数 计数初值为4 则它的初始化程序段如下 MOVAL 10010111B 计数器2 只读 写低8位 工作方式3 二 十进制OUT43H AL 控制字送控制字寄存器MOVAL 4 送计数初值OUT42H AL 方式4在工作过程中有以下特点 a 门控信号GATE为高电平 计数器开始减1计数 OUT维持高电平 b 当计数器减到0 输出端OUT变低 再经过一个CLK输入时钟周期 OUT输出又变高 5 方式4 软件触发选通方式 SoftwareTriggeredStrobe 用方式4工作时 GATE门控信号只是用来允许或不允许定时操作的 定时的执行过程由装入的初值决定 波形图如图8 8 a b c 所示 图8 8 a 方式4正常计数 图8 8 b 方式4GATE信号的作用 图8 8 c 方式4计数过程中改变计数值 例 设8253计数器1工作于方式4 按二进制计数 计数初值为3 则初始化程序段为 MOVAL 058H 设置控制字寄存器OUT43H AL 送控制字MOVAL 3 置计数初值OUT41H AL 送计数初值 这种工作方式同方式4很相似 当控制字写入控制寄存器后 输出端OUT变高 同方式4不同的一点是当计数值写入通道计数器后 通道并未被触发 也就是计数器并不立即开始计数 只有当GATE信号的上升沿触发通道后 通道计数器才开始计数 6 方式5 硬件触发选通方式 HardwareTriggeredStrobe 方式5为硬件触发选通方式 完全由GATE端引入的触发信号控制定时和计数 波形图如图8 9 a b c 所示 图8 9 a 方式5正常计数 图8 9 b 方式5时GATE信号的作用 图8 9 c 方式5时计数过程中改变计数值 8253的六种工作方式可归为两类 充当频率发生器主要是作计数器来使用下面就从这个角度来讨论总结OUT和GATE门的作用 8253的工作方式小节 8253有两种方式与频率发生器有关 即方式2和发生3 对OUT端方式2提供给用户的是负脉冲方式3提供给用户的是方波 频率发生器有关的工作方式 在这个两种方式下 GATE信号要始终保持为高 对于计数器类 有方式0 1和方式4 5 启动计数器的方式有两种软启动方式CPU把时间常数写入相应通道后 计数器就开始工作 我们可以称之为软件启动方式 在这种启动方式下 GATE要始终保持为高电平 所以方式0和方式4可以称为软件启动方式 与计数器器有关的工作方式 硬件启动计数器CPU把时间常数写入计数器后 即使GATE为高电平 计数器并不工作 只有GATE发生跳变 其上升沿启动计数器工作 所以方式1和方式5就可以称为硬件启动方式 计数器溢出时 OUT有两种输出形式电平方式0方式1负脉冲方式4和方式5 各种工作方式的输出波形 刚接通电源时 8253芯片通道都处于未定义状态 在使用之前 必须用程序把它们初始化为所需的特定模式 这个过程称为初始化编程 1 写入控制字 用输出指令向控制字寄存器写入一个控制字 以选定计数器通道 规定该计数器的工作方式和计数格式 8253初始化编程 2 写入计数初值 用输出指令向选中的计数器端口地址中写入一个计数初值 初值设置时要符合控制字中有关格式的规定 若是8位数 只要用一条输出指令就可完成初值的设置 如果是16位数 则必须用两条输出指令来完成 而且规定先送低8位数据 后送高8位数据 注意 计数初值为0时 也要分成两次写入 因为在二进制计数时它表示65536 在BCD计数时它表示10000 8253工作过程中 CPU可用输入指令读取任一通道的计数值 CPU读到的是执行输入指令瞬间计数器的当前值 但8253的计数器是16位 所以要分2次读至CPU 因此 若不锁存的话 在前后两次执行输入指令的过程中 计数值可能已经变化了 锁存当前计数值有下面两种方法 利用GATE信号使计数过程暂停 向8253写入一个方式控制字 令8253通道的锁存器锁存 例如 在某微机系统中 8253的3个计数器的端口地址分别为3F0H 3F2H和3F4H 控制字寄存器的端口地址为3F6H 要求8253的通道0工作于方式3 BCD计数 并已知对它写入的计数初值n 1234 十进制数 则初始化程序为 应用举例 1 8253定时功能的应用 在计算机应用中 经常会遇到隔一定时间重复某一个动作的应用 设某应用系统中 系统提供一个频率为10kHz的时钟信号 要求每隔100ms采集一次数据 在系统中 采用8253定时器的通道0来实现这一要求 将8253芯片的CLK0接到系统的10kHz时钟上 OUT0输出接到CPU的中断请求线上 8253的端口地址为10H 13H 如图8 11所示 图8 118253用于定时中断 1 选择工作方式 2 确定计数初值 已知fCLK0 10kHz 则TCLK0 0 1ms 所以 计数初值N TOUT0 TCLK0 100ms 0 1ms 1000 03E8H 3 初始化编程 根据以上要求 可确定8253通道0的方式控制字为00110100B 即34H 初始化程序段如下 2 8253计数功能的应用 通过PC机系统总线在外部扩展一个8253 利用其通道0记录外部事件的发生次数 每输入一个高脉冲表示事件发生1次 当事件发生100次后就向CPU提出中断请求 边沿触发 假设8253片选信号的I O地址范围为200H 203H 如图8 12 图8 128253用于外部事件的计数 根据要求 可以选择方式0来实现 计数初值N 100 8253初始化程序段如下 3 8253计数通道的级联应用 已知某8253占用I O空间地址为320H 323H 如图8 13所示 输入其CKL1端的脉冲频率为1MHz 要求用8253连续产生10秒的定时信号 分析 8253的一个通道的最大计数范围为65536 本例中要求输出10秒定时信号 则计数初值N 10 10 6 107 超过了8253一个通道的最大计数值 此时可以使用2个8253通道级连方式来实现 若级连前2个通道的初值为N1和N2 则级连后作为一个整体的计数值为N N1 N2 图8 138253通道的级联 设计数器初值N1 500 1F4H N2 20000 4E20H 使用方式2 二进制计数 则通道1 2的初始化程序如下 8253应用举例 例 现有一个高精密晶体振荡电路 输出信号是脉冲波 频率为1MHz 要求利用8253做一个秒信号发生器 其输出接一发光二极管 以0 5秒点亮 0 5秒熄灭的方式闪烁指示 设8253的通道地址为80H 86H 偶地址 解 1 时间常数计算这个例子要求用8253作一个分频电路 而且其输出应该是方波 否则发光二极管不可能等间隔闪烁指示 频率为1MHz信号的周期为1微妙 而1Hz信号的周期为1秒 所以分频系数N可按下式进行计算 由于8253一个通道最大的计数值是65536 所以对于N 1000000这样的大数 一个通道是不可能完成上述分频要求的 由于即取两个计数器 采用级联方式 2 电路 3 工作方式选择由

温馨提示

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

评论

0/150

提交评论