51单片机(十六)—— 定时器0和定时器1寄存器介绍及功能描述

        这篇文章,我们对51单片机的定时器0和定时器1的寄存器和功能进行介绍。

1 定时器/计数器工作方式寄存器TMOD

        定时器/计数器工作方式寄存器在特殊功能寄存器中,字节地址为89H,不能位寻址,TMOD用来确定定时器T0和T1的工作方式及功能选择,单片机复位时,TMOD全部被清0,TMOD寄存器的定义如下。

 定时器/计数器工作方式寄存器TMOD

这个寄存器的高4位用来设置定时器T1,低4位用来设置定时器T0。

GATE—门控制位。

GATE=0,定时器/计数器启动与停止仅受TCON寄存器中TRx位来控制。

GATE=1,定时器/计数器启动与停止由TCON寄存器中TRx位和外边中断引脚(INT0或INT1)上的电平状态来共同控制。

C/T—定时器模式和计数器模式选择位。

C/T=0,定时器模式。

C/T=1,计数器模式。

M1:M0—工作方式选择位。

    每个定时器/计数器由4中工作方式,他们由M1和M0设定,对应关系如下表所示。

 定时器/计数器的4种工作方式

M1

M0

工作方式

0

0

方式0:13位定时器/计数器

0

1

方式1:16位定时器/计数器

1

0

方式2:8位初始值自动重置的8位定时器/计数器

1

1

方式3:仅适用于T0,分成两个8位计数器,T1停止计数

关于这4中工作方式,我们在介绍完TCON寄存器之后再进行介绍。

2 定时器/计数器控制寄存器TCON

        定时器/计数器控制寄存器在特殊功能寄存器中,字节地址为88H,位地址(由低位到高位)分别为88H~8FH,该寄存器可以进行位寻址。TCON寄存器用来控制定时器的启、停,标志定时器的溢出和中断情况。单片机复位时TCON全部清0。这个寄存器的给位定义如下表所示。其中TF1、TR1、TF0和TR0位用于定时器/计数器的设置。IE1、IT1、IE0和IT0位用于外部中断的设置。

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

位序号

D7

D6

D5

D4

D3

D2

D1

D0

位符号

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

位地址

8FH

8EH

8DH

8CH

8BH

8AH

89H

88H

TF1—定时器1溢出标志位。

当定时器1计满溢出时,由硬件使TF1置1,并且申请中断。进入中断服务程序后,由硬件自动清0。需要注意的是,如果使用定时器的中断,那么该位完全不用人为去操作,但是如果使用软件查询的方式的话,当查询到该位置1后,就必须用软件清0。

TR1—定时器1运行控制位。

由软件清0关闭定时器1。当GATE=1时,INT1为高电平且TR1置1启动定时器1;当GATE=0时,TR1置1启动定时器1。

TF0—定时器0溢出标志位。

该位与TF1功能和操作方法相同。

TR0—定时器0运行控制位。

该位与TR1功能和操作方法相同。

IE1—外部中断1请求标志。

当IT1=0时,外部中断INT1为电平触发方式,每个机器周期采用INT1引脚,若INT1引脚为低电平,则置1,否则IE1清0。

当IT1=1时,外部中断INT1为边沿触发方式,当采集到INT1由高电平向低电平的跳变时则将IE1置1。IE1=1表示外部中断1正向CPU申请中断。当CPU响应中断转向中断服务程序时,该位由硬件清0。

IT1—外部中断1触发方式选择位。

IT1=0,电平触发方式,引脚INT1上低电平触发中断。

IT0=1,边沿触发方式,引脚INT1上由高电平向低电平的跳变触发中断。

IE0—外部中断0请求标志。

    这一位的用法与IE1相同。

IT0—外部中断0触发方式选择位。

    这一位的用法与IT1相同。

3 定时器的4种工作方式

1)方式0

下图为定时器工作在方式0下的原理图。

        在此方式下,定时器配置为13位计数器,由TLn的低5位和THn的8位构成。TLn的低5位溢出时向THn进位。THn计数溢出置位TCON中的溢出标志位TFn(n=0,1)。当GATE=0时,如果TRn=1,则定时器计数。当GATE=1时,允许由外部输入INT1控制定时器1,INT0控制定时器0。这样可以实现脉宽测量。方式0的操作对于定时器0和定时器1都是相同的。

2)方式1

         方式1的工作原理如下图所示。方式1与方式0相比,除了使用了THn和TLn的全部16位外,其它用法与方式0完全相同。

3)方式2

        方式2的工作原理如下图所示。

        在这种方式下,定时器/计数器0和1作为可自动重新装载的8位计数器(TLn),TLn用来计数,TLn的溢出,不仅置位TFn,而且将THn的内容重新装入TLn,THn内容由软件预置,重装时THn内容不变。方式2的操作对于定时器0和定时器1也都是相同的。

4)方式3

        对于定时器1,在方式3时,定时器1停止计数。

        对于定时器0,在此方式下,定时器0的TL0和TH0作为2个独立的8位计数器。下图为方式3时定时器的原理图。TL0占用定时器0的控制位,包括C/T 、GATE、TR0和TF0以及INT0输入引脚。而TH0限定为定时器功能,不能用作计数器。TH0占用了定时器1的TR1和TF1。此时TH0控制定时器1中断。

        方式3是为了增加一个附加的8位定时器/计数器而提供的。使单片机具有三个定时器/计数器。方式3只是用于定时器/计数器0,定时器T1处于方式3时相当于TR1=0,停止计数(此时T1可用来做串行口波特率发生器)。而T0可作为两个定时器用。

发布了97 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/bhniunan/article/details/104400895