【51单片机】定时/计数器

发布时间: 2024-07-26
来源: 电子工程世界

修改日志

时间 修改内容
023-03-13 初稿完成


在这里插入图片描述
TMOD不能位寻址 ,只能将整个寄存器一起配置。
TCON 能位寻址 。用来控制定时器的启动、停止,标识定时器的溢出和中断情况。


定时器/计数器模式控制寄存器(TMOD)

在这里插入图片描述
GATE = 0  不受外部中断控制
GATE = 1  受外部中断控制(即使软件开启了,也要外部中断引脚置位才行)

方式0  13位定时器/计数器,TL0(TL1)只用低5位参与分频,TH0(TH1)整个8位全用。
方式1  16位定时器/计数器
方式2  8位自动重装载定时器,实际只用低8位定时/计数,当溢出时,高8位的值自动重装入低8位。
方式3  T0此时作为两个独立的8位定时器/计数器,TL0由T0的控制位控制,TH0由T1的控制位控制。T1处于方式3时会停止计数。

项目 方式0 方式1 方式2、3
计数范围2^bit 1~8192 1~65536 1~256
最长时间(12MHz) 8.192 ms 65.536 ms 0.256 ms


关于计数的工作方式

  • 通过引脚P3.2(T0)或P3.5(T1)对外部脉冲信号进行计数。

  • 当输入脉冲信号产生由 1 到 0 的下降沿时,定时器的值加 1,在每个机器周期,CPU采样引脚 P3.4 和 P3.5 的输入电平。若前一个机器周期采样值为高,下一个机器周期采样值为低,则计数器加 1。

  • 由于检测一个 1 到 0 的跳变需要2个机器周期,故最高计数频率为振荡频率的二十四分之一。

  • 虽然对输入信号的占空比无特殊要求,但为了确保某个电平在变化之前至少被采样一次,要求电平保持时间至少是一个完整的机器周期。


定时器/计数器控制寄存器(TCON)

在这里插入图片描述


编程步骤

在这里插入图片描述

项目                                                                                                  说明
  TF1 T1计数溢出时,硬件自动置TF1 = 1。故只编写溢出判断和TF1 = 0即可。在中断允许下,该位发出中断请求并进入中断后,其由硬件自动置零。在中断屏蔽下,该位可用作查询方式,此时由编程置零。
  TR1 GATE = 1,INT1=1时,软件置TR1=1,启动T1。GATE = 0,软件置TR1 = 1,启动T1

不需要很厉害才能开始,但需要开始才能很厉害!


文章来源于: 电子工程世界 原文链接

本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。