可编程定时/计数器 8253/8254

在微机应用系统中,定时控制具有重要的作用。经常会有这样的应用要求:一种是要求有一些外部实时时钟,以实现延时控制或定时;另一种是要求能对外部事件计数的计数器。在微机系统中,常采用以下三种方法实现:软件定时,不可编程硬件定时和可编程硬件定时。

可编程定时/计数器的工作原理

定时和计数的本质是相同的,它们都是对一个输入脉冲进行计数,如果输入脉冲的频率一定,则记录一定个数的脉冲,其所需的时间是一定的,例如,输入脉冲的频率为2MHZ,则:计数 2106 —- 定时1秒。

因此,使用同一个接口芯片,既能进行计数,又能进行计时,统称为计时器/计数器。(Timer/Counter简称T/C)。计数器逻辑原理如图6-4所示,定时/计数器的基本原理如图6-5动画所示。

这里写图片描述

主要构成

  • (1)控制寄存器;决定工作模式。
  • (2)状态寄存器;反应工作状态(可无,如8253无此寄存器)。
  • (3)初值寄存器;计数的初始值。
  • (4)计数输出寄存器;CPU从中读出当前计数值。
  • (5)计数器;执行计数操作,CPU不能访问。

工作原理

CLK 信号进行“减1计数”。首先CPU把“控制字”,写入“控制寄存器”,把“计数初始值”写入“初值寄存器”,然后, 定时/计数器按控制字要求计数。计数从“计数初始值 开始,每当 CLK 信号出现一次,计数值减1,当计数值减为0时,从 OUT 端输出规定的信号(具体形式与工作模式有关)。当 CLK 信号出现时,计数值是否减1(即是否计数),受到“门控信号” GATE 的影响,一般,仅当 GATE 有效时,才减1.门控信号 GATE 如何影响计数操作,以及输出端 OUT 在各种情况下输出的信号形式与定时/计数器的工作模式有关。这里,应该指出如此三点。

  • (1) CLK 信号是计数输入信号,即计数器对 CLK 端出现的脉冲个数进行计数。因此 CLK 端可以输入外部事件,如产品线上通过一个产品,脉 冲电度表发出一个脉冲。这种情况,对应于 定时/计数器作为计数器使用。 CLK 端也可接入一个固定频率的时钟信号,即对该时钟脉冲 计数,从而达到计时的目的。
  • (2) OUT 信号在计数结束时,发生变化,可以将 OUT 信号作为外部设备的控制信号,也可以将 OUT 信号作为向CPU申请中断的信号。
  • (3) CPU可以从“计数输出寄存器”中读出当前计数值。一般情况下,“计数输出寄存器”的值随着计数器的计数值变化,CPU读取其值 之前,应向“控制寄存器”发送一个锁存命令,这时,“计数输出寄存器”的值不再随计数器的值变化,CPU用输入指令从“计数输出 寄存器”中读得当前计数值。输入指令(读命令)同时又使“计数输出寄存器”的值随计数器的值变化。

8253/8254 的内部结构和外部引脚

8253/8254 的内部结构

8253 内部结构框图可知,它由数据总线缓冲器、读/写控制逻辑、控制字寄存器以及3 个计数器(计数器0、计数器1、计数器2)等组成。

这里写图片描述
动态过程展示链接

  • (1)数据总线缓冲器
    8 位双向三态缓冲器,用于连接系统数据总线和8253 内部总线。以便编程时:

    • 处理器对8253写入控制字
    • 处理器写入计数初值
    • 处理器从计数器读取计数值。
  • (2)读/写控制逻辑
    8253 内部的控制电路,读写逻辑接收来自CPU 的控制信号,经过组合,产生对8253各部分的控制。具体为:

    • A1 A0 —用来对3个计数器和控制积存器进行寻址。
    • RD¯¯¯¯¯ —读信号。当 RD¯¯¯¯¯ 为低电平时有效,此时,表示CPU正在对8253的一个计数器进行读操作。
    • WR¯¯¯¯¯¯ —写信号。当 WR
  • 34
    点赞
  • 134
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值