17 定时器和计数器

2018-03-26  本文已影响0人  aaa小菜鸡

单片机STC89C52学习——17 定时器和计数器

汇总:00 单片机STC89C52学习
参考教程:普中科技

1 定时器的原理

1.1 时序

单片机工作的基本时序:
振荡周期 亦为时钟周期,单片机提供时钟脉冲信号的振荡源的周期,该开发板为12MHz
状态周期 1个状态周期 = 1个时钟周期 * 2,是振荡源周期经过二分频得到的
机器周期 1个机器周期 = 6个状态周期S1~S6 = 12个时钟周期。在一个机器周期内,CPU可以完成一个独立操作
指令周期 指CPU完成一条操作所需要的全部时间,1个指令周期 = 1个或几个机器周期

外接晶振为12MHz时,51单片机相关周期的具体值为:

1.2 定时/计数器的基本情况

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

1.3 定时/计数器的工作原理

       定时/计数器实质上是一个加1计数器。它随着计数器的输入脉冲进行自加1,也就是每来一个脉冲,计数器就自动加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使相应的中断标志位置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。
       可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。

1.4 51单片机定时器结构

       定时/计数器的实质是加1计数器(16位,2Byte),由高8位和低8位两个寄存器THx和TLx组成。TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。

1.5 定时器的控制

       51单片机定时/计数器的工作由两个特殊功能寄存器控制。工作方式寄存器TMOD用于设置其工作方式;控制寄存器TCON用于控制其启动和中断申请。

  1. 工作方式寄存器TMOD
    工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1
    工作方式寄存器TMOD
  1. 控制寄存器TCON
    TCON的高4位用于控制定时/计数器的启动和中断申请: 控制寄存器TCON

1.6 定时器工作方式详解(T0为例)

计数个数X与计数初值N的关系:X = 2^位数 - N

  1. 方式0:13位计数
    由TL0的低5位(高3位未用)和TH0的8位组成。TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。
    (门控位GATE具有特殊的作用。当GATE=0时,经反相后使或门输出为1,此时仅由TR0控制与门的开启,与门输出1时,控制开关接通,计数开始;当GATE=1时,由外中断引脚信号控制或门的输出,此时控制与门的开启由外中断引脚信号和TR0共同控制,当TR0=1时,外中断引脚信号引脚的高电平启动计数,外中断引脚信号引脚的低电平停止计数,这种方式常用来测量外中断引脚上正脉冲的宽度。) 方式0
  2. 方式1:16位计数
    由TL0作为低8位,TH0作为高8位,组成了16位加1计数器 。 方式1
  3. 方式2:8位计数
    自动重装初值的8位计数方式
    (TL0满后,不向TH0进位,而是自动装载初值继续累加,特别适合于用作较精确的脉冲信号发生器) 方式2
  4. 方式3:独立8位计数
    只适用于定时/计数器T0,定时器T1处于方式3时相当于TR1=0,停止计数 方式3

1.7 使用定时器时需要做的工作

  1. 初始化
  1. 计数器初值的计算

接下篇:18 定时器中断

上一篇 下一篇

猜你喜欢

热点阅读