zoukankan      html  css  js  c++  java
  • 微机接口 可编程定时/计数器8253

    可编程定时/计数器8253

    一、组成

    • 3个独立的16位计数器(CLK 0,CLK 1,CLK 2)
    • 共有六种工作方式供选择
    • 数据总线缓冲器和读写控制逻辑
    • 外形、引脚、功能兼容,最高频率不同
    数据总线D0-D7;

    RD#和WD#分别是读写控制引脚;

    CS#是片选信号;

    A1,A0是片内地址选择引脚。

    8253的三个计数通道在结构上和功能上完全一样,每个通道均有两个输入引脚CLK和GATE,一个输出信号引脚OUT


    二、计数初值和编程命令

    • 计数初值

    – 计数初值寄存器用来寄存计数初值

    – 计数工作单元为16位减1计数器,它的初值是计数初值寄存器内容

    – 计数单元对CLK脉冲计数,每出现一个CLK脉冲,计数器减1,当减为零时,通过OUT输出指示信号表明计数单元已为零


    – 作为定时器工作当计数单元为零时,计数寄存器内容会自动重新装入计数单元,因为CLK输入是均匀的脉冲序列,所以OUT输出是频率降低了的脉冲序列(相对于CLK信号频率)

    ps:方式2、3;(因为可以重装,2、3都是初值自动重装,但是2是周期负脉冲,3是方波)

    – 作为计数器工作只关注在CLK端出现(代表事件)的脉冲个数,当CLK端出现了规定个数的脉冲时,OUT输出一个脉冲信号

    ps:方式0、1、4、5都不会自动置初值,其中0,4是软件启动区别在于0输出电平,4输出负脉冲;1,5是硬件启动区别是1输出电平,5输出负脉冲。


    • 计数器工作过程

    1. 将控制字写入控制寄存器,指示8253的工作方式;

    2. 将计数初值写入计数寄存器;

    3. 计数单元开始工作,对CLK脉冲计数,每出现一个CLK脉冲,计数器减1;

    4. 当计数单元减为零时,通过OUT输出指示信号表明计数单元已为零


    • 读写操作及编程命令2种情况:

    写命令字操作(OUT命令)

    读当前计数值操作(IN命令)


    • 写操作(芯片初始化)

    芯片加电后,其工作方式是不确定的,为了正常工作,要对芯片初始化。

    初始化的工作有两点:

    1. 向控制寄存器写入方式控制字

    – 选择计数器(三个中之一个)

    – 确定工作方式(六种方式之一)

    – 指定计数器计数初值的长度、装入顺序、计数值的码制(BCD码或二进制码)

    2. 向已选定的计数器按方式控制字的要求写入计数初值

    工作方式命令字的格式计算公式为

    :Ci=CLK/OUT

    Ci计数初值,CLK输入时钟频率,OUT输出时钟频率


    • 读当前计数值(锁存后读操作)

    在事件计数器的应用中,需要读出计数过程中的计数值,以便根据这个值做计数判断。

    为此,8253内部逻辑提供了将当前计数值锁存后读操作功能。

    具体作法是:

    1. 先发一条锁存命令(即方式控制字中的RL1RL0=00),将当前计数值锁存到输出计数器;

    2. 执行读操作,得到锁存器的内容。


    三、工作方式和特点

    8253作为一个可编程计数器/定时器,可以用6种工作模式,不论工作在那种模式,都遵守下面几条基本规则:

    1. 控制字写入寄存器时,所有控制逻辑电路立即复位,输出端OUT进入初始状态;

    2. 初值写入后,要经过一个时钟上升沿和一个下降沿,计数执行部件才开始进行计数;

    3. 通常在时钟脉冲CLK的上升沿,门控信号GATE被采样– 模式0,4中,门控信号为电平触发– 模式1,5中,门控信号为上升沿触发– 模式2,3中,门控信号为电平或上升沿触发(二种)

    4. 在时钟脉冲CLK的下降沿,计数器作减1计数– 0是计数器所能容纳的最大初始值二进制时,0相当于2^16;BCD码时,0相当于104








  • 相关阅读:
    《Python数据挖掘入门与实践》高清中文版PDF+英文版+源码下载
    discuz 论坛配置 QQ/163 网易邮箱
    Discuz! X3 去掉内容图片提示下载方法(去除图片提示下载附件)
    HTTPS的建立过程(SSL建立安全会话的过程)
    前端开发之走进Vue.js
    优雅统计代码耗时的4种方法!
    Maven配置多个远程仓库的实现方法
    idea maven 一直报错“Could not transfer artifact ......(系统找不到指定的路径。)”
    IntelliJ IDEA为类和方法自动添加注释
    maven “mvn clean package”和“mvn clean install”有什么不同?
  • 原文地址:https://www.cnblogs.com/bryce1010/p/9387201.html
Copyright © 2011-2022 走看看