产品选型

单片机的定时和计数 单片机定时器计数器的结构以及和工作原理

小编 2025-07-02 产品选型 23 0

单片机定时器计数器的结构以及和工作原理

定时器/计数器的结构

定时器/计数器的实质是加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位

定时器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 。

单片机定时器计数器基本原理

目前常用的单片机中往往都配备了定时器/计数器。在AT89S52芯片内包含有三个16位的定时器/计数器:T0、T1和T2,其核心是加1计数器。我们主要要求掌握T0和T1的结构和功能。学习中要注意从电路结构上来理解功能的实现。定时器/计数器方式寄存器TMOD和定时器/计数器控制寄存器TCON是用以设定定时器/计数器的工作方式、定时或计数功能,控制启动或停止以及产生溢出中断的重要模块,应该对这两个寄存器中的逐位的定义和功能进行学习和掌握。

一、定时器/计数器的功能

AT89S52单片机定时器/计数器的基本部件是两个8位的计数器(T1计数器分为高8位TH1和低8位TL1,T0计数器的高8位是TH0,低8位是TL0)。如图1所示。

定时器/计数器的核心是一个加1计数器,在作定时器使用时,它对机器周期进行计数,每过一个机器周期计数器加1,直到计数器计满溢出。

当它用作对外部事件计数时,计数器接相应的外部输入引脚T0(P3.4)或T1(P3.5)并在每个机器周期的S5P2时采样,当采样到1—0的负跳变时,计数器加1。

二、定时器/计数器的结构

AT89S52单片机内部的定时/计数器的结构如图2所示。定时器T0由特殊功能寄存器TL0(低8位)和TH0(高8位)构成,定时器T1由特殊功能寄存器TL1(低8位)和TH1(高8位)构成。每个寄存器均可单独访问。

图2 定时器/计数器的内部结构

一、定时/计数的基本概念

定时和计数是日常生活和生产中最常见和最普遍的问题。

定时器和计数器功能基本上都是使用相同的逻辑实现的,而且这两个功能都包含输入的计数信号,本质上都是对脉冲计数。计数器用来计数并指示在任意间隔内输入信号(事件)的个数,而定时器则对规定间隔内输入的信号个数进行计数,用来指示经历的时间。

在单片机中,定时/计数器作定时功能用时,对机器周期计数(由单片机的晶体振荡器经过12分频后得到),因每次计数的周期是固定的,所以根据它计数的多少就可以很方便的计算出它计数的时间。如图1所示。

图1 计数与定时

二、溢出的基本概念

从一个生活中的例程看起:一个水盆在水龙头下,水龙头没关紧,水一滴滴地滴入盆中。盆的容量是有限的,水滴持续落下,盆中的水持续变满,最终有一滴水使得盆中的水满了,这就是“溢出”。

如果一个空的盆要1万滴水滴进去才会满,开始滴水之前可以先放入一部分水,叫做计数初值。如果现在要计数9000,那么可以先放入1000滴水,也就是计数初值为1000,再计数9000就可以溢出产生中断。

单片机中通常采用计数初值的办法,如果每个脉冲是1微秒,则计满256个脉冲需时256微秒,如果现在要定时100微妙,只要在计数器里面先放进156,然后计数100就可以就可以溢出产生中断了。如图2所示。

图2 定时器/计数器的溢出

三、定时/计数的主要方法

实现定时或计数,主要有三种方法。

(1)软件延时

软件延时利用微处理器执行一个延时程序段实现。因为微处理器执行每条指令都需要一定时间,通过指令的循环实现软件延时。软件定时具有不使用硬件的特点,但却占用了大量CPU时间。另外,软件定时精度不高,在不同系统时钟频率下,执行一条指令的时间不同,同一个软件延时程序的定时时间也会不同。

(2)硬件定时

硬件定时采用数字电路中的分频器将系统时钟进行适当分频产生需要的定时信号,也可以采用单稳电路或简易定时电路(如常用的555定时器)由外接RC(电阻、电容)电路控制定时时间。这样的定时电路较简单,利用不同分频倍数或改变电阻阻值、电容容值使定时时间在一定范围内改变。

(3)可编程的硬件定时

可编程定时器/计数器最大特点是可以通过软件编程来实现定时时间的改变,通过中断或查询方法来完成定时功能或计数功能。这种电路不仅定时值和定时范围可用程序改变,而且具有多种工作方式,可以输出多种控制信号,具备较强的功能。

相关问答

单片机定时器 定时的 时间肿么算?-ZOL问答

51单片机,根据晶振频率,计算指令周期,设置定时器的分频,然后设置定时器的工作方式TMOD,最后设置初值TH0TL0比如用的XHZ的晶振,stc的单片机有3种模式(X/12)x/...

51单片机设置时钟带日期a.用AT89S51 单片机的定时 / 计数器 T0产...

[最佳回答]要实物还是仿真呢我做单片机的

80C51 单片机 内部有几个 定时 / 计数 器?它们由哪些功能寄存器组成?怎样实现 定时 功能 和计数 功能?

两个16位定时计数器,分别是Timer0Timer1.应用定时/计数器使用以下寄存器:1.中断启用寄存器IE2.中断优先级寄存器IP3.定时器/计数器模式寄存器TMOD4.定时器/计...

怎样用 单片机 做频率计?

在不改变定时时间的前提下,也就是0.5秒定时,是不能实现0.1~2Hz频率的测量的。你所谓2Hz~10KHz易实现也是基于这个道理。但这个也是理论情况。当你0.5s内刚好...

单片机 计算题急利用 定时 / 计数器 T0工作于方式0,1,2,3,产生1ms...

[最佳回答]都是工作于工作方式10.5msORG0000HLJMPSTARTORG000BHLJMPTimer0InterruptSTART:MOVSP,#60HLCALLInitTimer0LOOP...

单片机定时 / 计数 器和中断到底有什么用?

定时器用来计算时间,固定时间触发中断。计数器用来对引脚输入的信号下降沿进行计数。和中断相关,但不一定要开中断。可以单独用。定时器用来计算时间,固定...

单片机定时计数 器应如何选用?

在选择单片机定时计数器时,需要考虑以下几个因素。首先,根据实际需求确定计数器的精度和范围,例如需要计算毫秒级别的定时器还是微秒级别的定时器。其次,考...

单片机的计数器 是干什么的 - 懂得

以51单片机16位定时计数器1(T1)来讲,通俗解释:计数是T1是一个能盛65536(十六位时)滴水的水盆,在水龙头下水一滴滴地滴入盆中。如果盆是空的那水在滴...

60s计时器的原理?

1.是通过电子元件的组合和控制实现定时计数功能。2.60s计时器通常采用集成电路、晶振、电容、电阻等元件组合构成,其中晶振提供稳定的时钟信号,集成电路实现...

用一个 单片机 中的两个 定时计数 器能不能同时用于计数?谢谢?

可以,设为计数模式就行了,TMOD=0x55;就可以实现两个计数器了。可以,设为计数模式就行了,TMOD=0x55;就可以实现两个计数器了。

猜你喜欢