单片机定时器/计数器的结构

控制/MCU

1878人已加入

描述

LinkedIn定时器/计数器的结构

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

定时器

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

计数器输入的计数脉冲源

系统的时钟振荡器输出脉冲经12分频后产生;

T0或T1引脚输入的外部脉冲源。

计数过程

每来一个脉冲计数器加1,当加到计数器为全1(即FFFFH)时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时器/计数器中断允许时)。如果定时器/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。

定时应用

用作定时器:此时设置为定时器模式,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t 。

计数运用

用作计数器:此时设置为计数器模式,外部事件计数脉冲由T0或T1引脚输入到计数器。每来一个外部脉冲,计数器加1。但单片机对外部脉冲有基本要求:脉冲的高低电平持续时间都必须大于1个机器周期。

工作方式寄存器(TMOD)

定时器

GATE:门控位。

GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时器/计数器工作;(即需要一个启动条件)

GATE=1时,要用软件使TR0或TR1为1,同时外部中断引脚也为高电平时,才能启动定时器/计数器工作,即需要两个启动条件。

C/T :定时/计数模式选择位。

C/T =0为定时模式; C/T =1为计数模式。

M1M0:工作方式设置位。

计数器工作方式选择

M1 M0 工 作 方 式 功 能 说 明

0 0 方式0 13位计数器

0 1 方式1 16位计数器

1 0 方式2 自动重装8位计数器

1 1 方式3 定时器0:分成两个8位[page]

定时器1:停止计数

定时器/计数器的控制

控制寄存器TCON

TCON的低4位用于控制外部中断,已在前面介绍。TCON的高4位用于控制定时器/计数器的启动和中断申请。其格式如下:

定时器

TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。TR1(TCON.6):T1起/停控制位。1:启动 0:停止

TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。

TR0(TCON.4):T0起/停控制位。1:启动 0:停止

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

方式0

方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。

定时器

方式1

方式1的计数位数是16位,由TL0(TL1)作为低8位、TH0(TH1)作为高8位,组成了16位加1计数器 。

方式2

方式2为自动重装初值的8位计数方式。

定时器

在方式2下,当计数器计满255(FFH)溢出时,CPU自动把TH 的值装入TL中,不需用户干预。因此特别适合于用作较精确的脉冲信号发生器。

方式3

定时器

方式3只适用于定时器/计数器T0,定时器T1方式3时相当于TR1=0,停止计数。

工作方式3将T0分成为两个独立的8位计数器TL0和TH0 。

TMOD和TCON

AT89S52的定时器/计数器是一种可编程部件,在定时器/计数器开始工作之前,CPU必须将一些命令(控制字)写入定时/计数器。

例如:选择哪一个定时器/计数器在何种工作方式下工作?

是用作定时器计时功能还是用作计数器的计数功能?

是否启动定时器/计数器的运行?

……

这些设置的功能是通过对特殊功能寄存器TMOD和TCON的设置来实现。在初始化过程中,要将工作方式控制字写入方式寄存器(初始化工作的一部分),工作状态字写入控制寄存器,CPU就会按设定的工作方式独立运行。

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

定时器/计数器方式控制寄存器TMOD在特殊功能寄存器中,字节地址为89H。TMOD不能进行位寻址,只能用字节传送指令设置定时器工作方式,低半字节定义为定时器/计数器0,高半字节定义为定时器/计数器1。复位时,TMOD所有位均为0。TMOD的格式

如下表所示。

定时器

M1、M0:工作方式选择位。用来定义定时器/计数器的四种工作方式。

C/定时器:功能选择位:C/定时器位为定时器方式或计数器方式选择位。C/定时器=1时,为计数器方式;C/定时器=0时,为定时器方式。

GATE:门控制位,确定定时器的开启与关闭。当GATE=0时,只要定时器控制寄存器TCON中的TR0(或TR1)被置1时,T0(或T1)被允许开始计数(TCON各位含义见后面叙述)。

当GATE=1时,外部中断引脚定时器定时器的输入电平控制T0或T1的开启与关闭。

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

TCON是T0和T1的控制寄存器,它同时也用来锁存T0、T1的溢出中断请求源和外部中断请求源。TCON寄存器复位时为00H,可以进行位寻址。定时器/计数器控制寄存器TCON字节地址为88H。TCON寄存器各位定义如下表

定时器

TCON中各标志位的功能是:

TF1(D7):定时器1溢出标志位。当T1计满溢出时,由硬件使TF1置1,申请中断。进入中断服务程序后,由硬件自动清0,在查询方式下用软件清0。

TR1(D6):定时器1运行控制位。TR1置1,启动定时器1;TR1置0则停止工作。TR1由软件置1或清零

TF0(D5):定时器0溢出标志。其功能及操作情况同TF1。

TR0(D4):定时器0运行控制位。其功能及操作情况同TR1。

IE1(D3):外部中断1中断请求标志。IT1=1时,外部中断1引脚定时器上的电平由1变0时,IE1由硬件置位,外部中断1请求中断。当CPU响应中断并转向该中断服务程序执行时,由内部硬件自动清0。

IT1(D2):外部中断1(定时器)电平触发方式或者脉冲触发方式控制位。IT1=1时,外部中断1为负边沿触发方式,引脚定时器上的电平从高到低负跳变有效。IT1=0时,外部中断1为电平触发方式。定时器上输入低电平有效。

IE0(D1):外部中断0中断请求标志。如果IT0置1,则当定时器上的电平由1变0时,IE0由硬件置位。在CPU把控制转到中断服务程序时由硬件使IE0复位。

IT0(D0):外部中断源0触发方式控制位,其含义同IT1。

3.TMOD和TCON的控制功能可以通过一个具体的电路结构来加强理解

定时器

图3TMOD和TCON控制功能的实现

在图3中,清楚的表示了TMOD和TCON中的控制位对工作方式、定时/计数模式、启动、溢出中断的控制的实现。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分