单片机开发 --- 定时/计数器

单片机开发 — 定时/计数器

一、定时/计数器概要

  • 51单片机有两组定时器/计数器,因为既可以定时,
    又可以计数,故称之为定时器/计数器。
  • 定时器/计数器和单片机的CPU是相互独立的。定时器/计数器工作的过程是自动完成的,不需要CPU的参与。
  • 51单片机中的定时器/计数器是根据机器内部的时钟或者是外部的脉冲信号对寄存器中的数据加1。
  • 有了定时器/计数器之后,可以增加单片机的效率,一些简单的重复加1的工作可以交给定时器/计数器处理。CPU转而处理一些复杂的事情。同时可以实现精确定时作用。

二、控制寄存器(TCON)

在这里插入图片描述

  • TF1:T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。
  • TR1:T1运行控制位。
    • TR1置1时,T1开始工作;
    • TR1置0时,T1停止工作。
    • TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。
  • TF0:T0溢出中断请求标志位,其功能与TF1类同。
  • TR0:T0运行控制位,其功能与TR1类同。

三、定时/计数器工作方式控制寄存器(TMOD)

在这里插入图片描述

  • 寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。
  • GATE是门控位
    • GATE=0时,用于控制定时器的启动是否受外部中断源信号的影响。只要用软件使TCON寄存器中的TR0或TR1为1,就可以启动定时/计数器工作;
    • GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚INT0/1也为高电平时,才能启动定时/计数器工作。
  • C/T :定时/计数模式选择位。
    • C/T =0为定时模式;
    • C/T =1为计数模式。
  • M1M0:工作方式设置位。

四、定时/计数器工作方式(M1M0控制)

单片机开发 --- 定时/计数器_第1张图片

五、Timer寄存器

计算定时器溢出,触发中断

  • TH0、TL0 - 定时器0的Timer寄存器的高八位和低八位
  • TH1、TL1 - 定时器1的Timer寄存器的高八位和低八位

六、定时、计数器初始化工作

  • 对TMOD赋值,以确定T0和T1的工作方式。
  • 计算初值,并将其写入TH0、TL0或TH1、TL1。
  • 中断方式时,则对EA赋值,开放定时器中断。
  • 使TR0或TR1置位,启动定时/计数器定时或计数。

七、计数器初值

  • 一个基本操作所需时间为一个机器周期

以12M的晶振为例,机器周期为1us,1ms的初值初值=65535-1000+1(因为实际上计数器计数到66636才溢出)=64536=FC18H(工作方式为1)

你可能感兴趣的:(单片机开发)