微机——8253计数器/定时器

写在前面

微机期末整理重点,复习自用

8253计数器/定时器

内部大致结构同8255,3个通道,A1 ~ A0片选

控制字寄存器

image-20211224192634116

初始化编程步骤

  1. (控制端口)写入控制字,设置计数通道的工作方式等
  2. (对应的通道端口)设置计数初值

工作方式

  • 方式0 计数结束中断
image-20211224210154234

OUT计数结束产生一个上升沿,可用来触发单次中断

注:触发中断后记得先重新填入计数初值再结束中断

GATE接高电平:允许计数

再使用需要重新设置初值

  • 方式1 可编程单稳态输出
image-20211224210252438

GATE上升沿:开始计数

OUT产生一个宽度为时钟脉冲宽度×n的负单脉冲

  • 方式2 比率发生器
image-20211224210306263

在最后一次计数时产生一个短暂的负脉冲

可以连续生成一个一定频率的负脉冲序列

可以用来定时触发中断

  • 方式3 连续方波
image-20211224210320780

n=偶 连续对称方波

n=奇 基本对称的连续方波,正脉冲会多一个周期

  • 方式4 软件触发选通

  • 方式5 硬件触发选通

8253应用举例

  1. 产生各种定时波形

    • 输出频率为……的方波(方式3)
    • 产生宽度为……的单脉冲(方式1)
    • 指定方式触发,给定时间常数(计数初值)
    • ……

    n=时钟脉冲频率/输出频率=输出脉冲宽度/时钟脉冲宽度

    1MHz=106Hz=10-6s=1μs

  2. 通道级联(这种题一般都是产生连续方波,只是需要分频,算一下计数初值就好)

单通道的计数范围达不到要求,所以必须级联8253使用

就是分频,假设用两个通道分频

总的计数初值=通道0的计数初值×通道1的计数初值

CLK0接时钟脉冲,OUT0接CLK1,OUT1接输出外设

读取计数值

命令字的RL1 RL0两位为00时是锁存,发出命令后计数停止可以用IN读出。

注意:当该通道为同时使用高8位和低8位时,要读两次,先读出低8位,再读出高8位

posted @ 2022-03-02 20:09  KUMORI  阅读(1224)  评论(0编辑  收藏  举报