产品选型

单片机定时器溢出 单片机定时器常见两大应用问题解析

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

单片机定时器常见两大应用问题解析

在单片机的学习过程中,单片机定时器的合理设置和应用是非常关键的一步,也是刚开始接触单片机知识的新人工程师们比较容易出错误的一个环节之一。在今天的文章中,我们为大家总结了单片机定时器应用过程中的两大常见问题进行实时解析,希望能够对各位新人工程师的学习提供一定帮助。

问题一:51单片机的T0、T1定时器四种工作方式各有什么特点?

在单片机定时器的应用过程中,定时器在进行设置时会有四种不同的工作方式,合理选择相应的工作方式可以帮助工程师快速完成及时设置。下面我们就来逐一讲解一下这四种不同的计时方式。方式0是单片机计时器的第一种计时方式,这一方式13位计数模式。方式1则采用16位计数模式,方式2采用8位自动重装入计数模式,这两种技术模式也是目前在单片机应用过程中最常使用的及时方式。最后一种单片机定时器的计时方式是方式3,这一模式下只有T0有的双8位计数模式。

问题二:在设置单片机定时器的过程中出现了错误,应该怎么进行误差纠正?

在使用单片机定时器进行计时设置的过程中,出现设置错误的情况是在所难免的,这就需要我们采取一些方法对已经造成的错误进行纠正了。由于单片机的机器周期通常为1μs~2μs,因此定时误差一般应在0μs~20μs之内,对于一般应用,此误差可以忽略,但是对于精确度要求比较高的应用场合,此误差必须进行校正。定时误差是定时溢出后转入执行定时处理语句段之间所耗费的时间,此时间主要由定时溢出转入定时处理语句段所必须执行的指令或硬件过程产生。

定时误差校准的一个比较简单的方法式,在定时溢出响应后,立刻停止定时器的计数工作,同时快速读出当时计数值,然后将完成这一任务的程序段执行时间考虑进去,作为修正因子校正定时初值,以下程序段以中断处理方式为例来进行说明。需要注意的是,由于执行从指令clrTR0(停止计数)到指令setbTR0(重新开启计数)之间的指令需8个机器周期,应将此消耗考虑进去,因此该程序将定时误差缩小在1个机器周期内

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

定时器/计数器的结构

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

相关问答

51 单片机 溢出 率什么意思_作业帮

[最佳回答]定时器的溢出率,也叫定时器的溢出频率,从设定初值开始计数,当计数到0FFH再一个计数脉冲到来时刻就溢出,初值越大溢出率也越高,我们使用这个溢出率确...

单片机 定时器 的初值产生1ms的定时,到底是65536-1000还是65535-1000为什么啊?急急急?

定时器计数最大值为65535,再计一次则溢出,产生中断。也就是说初值设置成65535(65536-1)时,定时1个机器周期。所以正确答案是65536-1000,此时定时1000个机...

单片机 定时的时间怎么改变?

定时器实质是计数器。当计数脉冲周期一定时,就有定时功能。雅帆用水桶给你打个比方吧!一、向上计定时数器举例当一个255毫升的烧杯,提前放入155毫升水后,...

单片机 定时 ET0=1什么意思,,要详解。。 - 懂得

单片机定时ET0=1的意思是51单片机的定时器0允许中断。ET0是51系列单片机定时器0的中断允许开关,定时器中断是为了满足定时或计数溢出处理的需要而设...

单片机 定时 ET0=1什么意思,,要详解。。 - 180****9660 的回...

定时器中断的使能开关单片机定时ET0=1的意思是51单片机的定时器0允许中断。ET0是51系列单片机定时器0的中断允许开关,定时器中断是为了满足定时或...

利用51 单片机定时器 编写一个C语言程序,实现一个发光二极管定时亮、灭,要求亮一秒、灭一秒交替闪烁不?

初始值为0,只只要启动定时器,定时器就开始工作,当计数溢出后,TF被置1,此时在程序中查询TF的状态,做相应的程序处理。一般建议用中断来做,查询方式会占用c...

单片机定时器 和计时器怎么交替使用?

单片机定时器和计时器交替使用方法:设置工作模式(设置特殊功能寄存器TMOD)设置计数寄存器处置设置TCON,通过TR0置1使计时器开始计数判断TCON寄存器TF0位...

单片机定时器 初值计算。我算的不对啊?

你的初值是对的,而你计算的时候错了。TH0=(65536-45872)/256你要知道,它的定时总周期数是45872,因为定时器要从65536-45872=19664开始计时,要从196...

51 单片机 内部 定时器 的工作原理?

51单片机内部定时的工作原理:定时器计数8051单片机片内振荡器输出经过12分频后的脉冲个数,即:每个机器周期使定时器T0/T1的寄存器值自动累加1,直到溢出,溢出...

51 单片机 定时器 计数器使用方法?

先说下定时器使用方法:定时器使用方法:设置工作模式(设置特殊功能寄存器TMOD)设置计数寄存器处置设置TCON,通过TR0置1使计时器开始计数判断TCON寄存器T...

猜你喜欢