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

计数器/定时器8253和8254

  • 什么是计数和定时
  • 8253/8254的编程结构
  • 8253/8254的编程方法
  • 8253/8254的工作模式
    • 模式0——计数结束产生中断
    • 模式1——单负脉冲发生器(可编程单稳态触发器)
    • 模式2——频率发生器(分频器)
    • 模式3——方波发生器
    • 模式4——软件触发的选通信号发生器
    • 模式5——硬件触发的选通信号发生器
    • 8253/8254的工作模式小结

什么是计数和定时

  • 对于计算机来说,定时就是计数。因为:数数的过程中,如果频率是固定的,时间就知道了
  • 两者在实际应用里又有区分。计数:指对外部的输入进行数数。减到0时,输出一个信号便结束。定时:减到0时,自动恢复初值重新计数,并不断产生信号。但从芯片内部来说,这两种情况下的工作过程没有本质差别,都是基于计数器的减1操作
  • 微机系统中经常用到定时信号。比如:DRAM刷新定时,多任务分时系统作中断信号实现程序切换,对外设信息进行采样,作为一个可编程波特率发生器,实现时间延迟
  • 8254是8253的改进型,体现在8254频率更高,功能更多。8253没有状态寄存器,8254有

8253/8254的编程结构

可编程计数器/定时器8253和8254_第1张图片

  • 只有8254有状态寄存器
  • 核心是执行部件,执行部件实际上是一个16位的减法计数器

8253/8254的编程方法

  • 8253/8254的控制寄存器和三个计数器具有独立的编程地址:A1A0=00时,选中计数器0;A1A0=01时,选中计数器1;A1A0=10时,选中计数器2;A1A0=11时,选中控制/状态端口
  • 控制字本身也会指明所控制的寄存器是哪一个
  • 由以上两点原因,对8253/8254的编程没有顺序规定。但有以下三条原则需遵守:
    1. 对计数器设初值前需先写控制字
    2. 设置初值时要符合控制字的格式规定(即只写低位字节或只写高位字节或高低位都写)
    3. 要读计数器的当前值或状态字,必须先锁存再读取

8253/8254的工作模式

8253/8254作为一个可编程计数器/定时器,可分别在6种不同模式下工作
不论哪种模式,都会遵守下面几条基本规则

  • 写入控制字时,所有控制逻辑电路立即复位,输出端OUT进入初态(可能是高电平,也可能是低)
  • 初值写入后,要经过一个时钟周期,计数执行部件才开始计数
  • 在时钟脉冲CLK的上升沿,门控信号GATE被采样
  • 模式0、4,门控信号为电平触发;模式1、5,门控信号为上升沿触发;模式2、3,既可用电平触发,也可用上升沿触发
  • 时钟脉冲的下降沿,计数器作减1计数
  • 0是计数器所能容纳的最大初值。用二进制格式时,0相当于216;用BCD码格式时,0相当于104

模式0——计数结束产生中断

  1. 写入控制字后,输出端OUT以低电平为初始电平
  2. 写入计数初值后,GATE=1时,开始计数,计到0时,OUT跳变为高电平,并一直保持(GATE=0时,暂停计数)

注意:

  • 计数过程中,如果写入新初值,则立即将按新初值重新计数
  • 计到0时,不会自动装入初值重复计数,除非重新写入初值

模式1——单负脉冲发生器(可编程单稳态触发器)

  1. 写入控制字后,输出端OUT以高电平为起始电平
  2. 写入计数初值N,且GATE受到上升沿触发后,输出端OUT变为低电平,计到0时,OUT跳变为高电平。于是就输出了一个宽度为N个时钟周期的负脉冲(触发后,GATE变为低电平也不会影响计数)

注意:

  • 计数过程中或计数完毕后,若GATE又经历一个从低变高的跳变,那么立即会再次装入初值,重新计数
  • 计数过程中,写入新的计数值,当前计数和输出也不会受影响。要想重新计数,只会认准GATE的上升沿
  • 在提前触发(即单稳态受触发后未回到稳态而又受到触发)时,会使单稳态输出变宽

模式2——频率发生器(分频器)

  1. 写入控制字后,输出端OUT以高电平为起始电平
  2. 写入初值N,并受到触发后,开始作减1计数,减到1时(注意,不是0),输出端OUT变为低电平,输出1个负脉冲,脉冲宽度为1个时钟周期。然后周期性重复,是个N分频器

注意:

  • 对于计数初值N,输出端OUT用N个时钟周期作为1个周期,并在GATE为高电平时周而复始的重复
  • 计数过程中,如果写入新的计数初值,输出端OUT不会受影响。等计数器计到0后,按新的计数值进行计数
  • 计数过程中,若GATE变低,则停止计数,GATE变高后,从头开始计数

模式3——方波发生器

  1. 写入控制字后,输出端OUT以高电平为起始电平
  2. 写入初值并受到触发后,开始计数。计数到一半时,输出变为低电平,到0时,又变为高电平,从而完成一个周期

注意:

  • 模式2要注意的就是模式3要注意的

模式4——软件触发的选通信号发生器

  1. 写入控制字后,输出端OUT以高电平为起始电平
  2. 写入初值并受到触发后,开始计数。计到0时,输出1个宽度为1个时钟周期的负脉冲。一般将此负脉冲作为选通信号

注意:

  • 计数过程中,GATE变低电平时,停止计数。GATE变高后,从头开始计数
  • 计数过程中,若写入新初值,将立即按新初值从头计数。(这种情况叫软件再触发)
  • 无法自动周期性计数,必须靠软件再触发

模式5——硬件触发的选通信号发生器

  1. 食用方式同模式4

注意:

  • 模式4是电平触发,模式5是上升沿触发
  • 计数过程中,GATE端变低电平不影响计数,若由低跳变到高,则将按计数初值从头计数(这种情况叫硬件再触发)
  • 计数过程中,写入新初值,在硬件再触发的条件下,按新初值从头计数
  • 与模式4的区别概括下来就是:模式4是软件触发,模式5是用外部电路产生的门控上升沿触发(硬件触发)

8253/8254的工作模式小结

  • 对于方式0,写入控制字后OUT端变低,其余5种方式都是变高
  • 模式0、1、4、5是计数器:在GATE控制下进行减1计数,计到0时就停止
  • 模式2、3是定时器:在GATE控制下进行减1计数,计到0时,又自动装入初值,重头计数

你可能感兴趣的:(微机原理与接口技术,学习)