51单片机内部定时器计数器

合集下载

51单片机定时器工作方式

51单片机定时器工作方式

51单片机定时器工作方式51单片机是一种非常常见的单片机,它具有多个定时器用来实现各种定时任务。

下面我们就来详细介绍一下51单片机的定时器工作方式。

首先,51单片机的定时器可以分为两种类型:定时/计数器0(T0)和定时/计数器1(T1),它们分别有不同的工作方式和控制寄存器。

一、定时/计数器0(T0)工作方式:定时/计数器0(T0)是一个8位的定时器/计数器,它可以进行定时或计数操作。

在定时模式下,它可以作为定时器在规定的时间段内进行计时;在计数模式下,它可以根据外部信号的脉冲计数。

在定时模式下,T0可以通过设置控制寄存器TCON的位4(TR0)来启动或停止计时操作。

当TR0为1时,定时器开始计时;当TR0为0时,定时器停止计时。

定时器的工作频率可以通过控制寄存器TMOD的位1和位0来设置。

在计数模式下,T0可以通过设置TCON的位5(CT0)来选择定时器或计数器操作。

当CT0为0时,定时器工作,当CT0为1时,计数器工作。

同时,在计数模式下,还需要通过设置控制寄存器TMOD的位1和位0来设置计数器的工作频率。

定时/计数器0还可以使用中断功能,通过设置控制器IE的位4(ET0)来开启或关闭中断。

当ET0为1时,当定时器溢出时会产生中断请求,可以在中断服务程序中处理相应的操作。

二、定时/计数器1(T1)工作方式:定时/计数器1(T1)也是一个8位的定时器/计数器,它可以进行定时或计数操作。

类似于T0,T1也可以在定时模式下作为定时器进行计时,或者在计数模式下根据外部信号的脉冲进行计数。

在定时模式下,T1可以通过设置TCON的位6(TR1)来启动或停止计时操作。

当TR1为1时,定时器开始计时;当TR1为0时,定时器停止计时。

定时器的工作频率可以通过设置TMOD的位3和位2来设置。

在计数模式下,T1可以通过设置TCON的位7(CT1)来选择定时器或计数器操作。

当CT1为0时,定时器工作;当CT1为1时,计数器工作。

80c51单片机定时器计数器工作原理

80c51单片机定时器计数器工作原理

80c51单片机定时器计数器工作原理80C51单片机是一种常用的微控制器,其定时器/计数器(Timer/Counter)是实现定时和计数功能的重要组件。

以下简要介绍80C51单片机定时器/计数器的工作原理:1. 结构:定时器/计数器由一个16位的加法器构成,可以自动加0xFFFF(即65535)。

定时器/计数器的输入时钟可以来自系统时钟或外部时钟源。

2. 工作模式:定时模式:当定时器/计数器的输入时钟源驱动加法器不断计数时,可以在达到一定时间后产生中断或产生其他操作。

计数模式:当外部事件(如电平变化)发生时,定时器/计数器的输入引脚可以接收信号,使加法器产生一个增量,从而计数外部事件发生的次数。

3. 定时常数:在定时模式下,定时常数(即定时时间)由预分频器和定时器/计数器的初值共同决定。

例如,如果预分频器设置为1,定时器/计数器的初值为X,那么实际的定时时间 = (65535 - X) 预分频系数输入时钟周期。

在计数模式下,定时常数由外部事件发生的时间间隔决定。

4. 溢出和中断:当加法器达到65535(即0xFFFF)时,会产生溢出,并触发中断或其他操作。

中断处理程序可以用于执行特定的任务或重置定时器/计数器的值。

5. 控制寄存器:定时器/计数器的操作可以通过设置相关的控制寄存器来控制,如启动/停止定时器、设置预分频系数等。

6. 应用:定时器/计数器在许多应用中都很有用,如时间延迟、频率测量、事件计数等。

为了充分利用80C51单片机的定时器/计数器功能,通常需要根据实际应用需求配置和控制相应的寄存器,并编写适当的软件来处理定时器和计数器的操作。

MCS-51单片机的定时器计数器

MCS-51单片机的定时器计数器

1. 定时器T0/T1 中断申请过程
(1)在已经开放T0/T1中断允许且已被启动的前提下, T0/T1加1计满溢出时 TF0/TF1标志位自动置“1” ;
(2)CPU 检测到TCON中TF0/TF1变“1”后,将产生指 令:LCALL 000BH/LCALL 001BH 执行中断服务程序;
(3)TF0/TF1标志位由硬件自动清“0”,以备下次中断申
郑州大学
docin/sundae_meng
(3)工作方式寄存器TMOD
T1
T2
GATE C / T M1 M0 GATE C / T M1 M0
M1,M0:工作方式选择位 。
=00:13位定时器/计数器; =01:16位定时器/计数器(常用); =10:可自动重装的8位定时器/计数器(常用); =11:T0 分为2个8位定时器/计数器;仅适用于T0。 C/T :定时方式/计数方式选择位。 = 1:选择计数器工作方式,对T0/T1引脚输入的外部事件 的负脉冲计数; = 0 :选择定时器工作方式,对机器周期脉冲计数定时。 如下页图所示。
CPL P1.0 MOV TH0,#15H MOV TL0,#0A0H
START:MOV SP,#60H MOV P1,#0FFH
SETB TR0 POP PSW
MOV TMOD,#01H MOV TH0,#15H MOV TL0,#0A0H
POP ACC RETI END
SETB EA
Байду номын сангаас
SETB ET0
定时器/计数器0采用工作方式1,其初值为:
21650ms/1s=6553650000=15536=3CB0H
电路图如下:
郑州大学
docin/sundae_meng

51单片机定时-计数器结构和计数器工作原理

51单片机定时-计数器结构和计数器工作原理
使用中断方式时对IE寄存器赋值开发中断
使TR0或TR1置位,启动定时/计数器
晶体振荡器的振荡信号从XTAL2端输入到片内的时钟发生器上,时钟发
生器是一个二分频触发器电路,它将振荡器的信号频率除以2,向CPU提供
了两相时钟信号P1和P2。时钟信号的周期称为机器状态时间S,它是振荡
周期的2倍。在每个时钟周期(即机器状态时间S)的前半周期,相位1(即
P1信号)有效,在每个时钟周期的后半周期,相位2(即P2信号)有效。
提供
用途:定时器和计数器
核心:加1计数器
原理:每来一个脉冲则加1计数器加1,当加到全1时再来一个脉冲使加
1计数器归零,同时加1计数器的溢出使TCON寄存器中的TF0(或TF1)
置1,向CPU发出中断请求
脉冲来
补充:
计数器工作原理:
用作计数器时,对T0或T1引脚的外部脉冲计数,如果前一个机器周期
采样值为1,后一个机器周期采样值为0,则说明有一个脉冲,计数器加
1。
在每个机器周期的S5P2期间采样引脚输入电平。新的计数初值于下一个
机器周期的S3P1期间装入计数器。
此种方式需要两个机器周期来检测一个1->0负跳变信号,因此最高的计
数频率为时钟频率的1/24。
S5P2:
S5P2指的是第5个时钟周期的相位2。
工作原理:13位计数器,使用TL0的低5位和TH0的高8位组成,TL0
的低5位溢出时向TH0进位。TH0溢出时发出中断请求。
方式1
计算公式:
最大计数:65536个机器周期
工作原理:16位计数器,TL0作为低8位,TH0作为高8位
方式2:自动重装初值的8位计数方式
计算公式:p.s.晶振频率必须选择12的整数倍,因为定时器的频率是晶振

MCS-51单片机的定时器-计数器

MCS-51单片机的定时器-计数器
1.3 工方式
MCS-51的定时器/计数器共有四种工作方式。工作在方式0、方 式1和方式2时,定时器/计数器0和定时器/计数器1的工作原理完全 一样,现以定时器/计数器0为例介绍前三种工作方式。
1. 方式0(M1M0=00) (1)电路逻辑结构
方式0是13位计数结构的工作方式,其计数器由TH0全部8位 和TL0的低5位构成。TL0高三位弃之不用。图6.4 是定时器/计数 器0工作在方式0的逻辑结构。
分析:题目的要求可用下图来表示。

P1.0
8051 250 s 250 s
由上图可以看出只要使 的电位每隔250 取一次反即可。所 以定时时间应取250 。
1)计算计数初值 设计数初值为x,由定时计算公式知:
2)专用寄存器的初始化
D7
D6 D5 D4
D3
D2 D1
D0
GATE
GATE
所以,TMOD应设置为:10H 开放定时器/计数器1中断,所以IE应设置为:88H
当GATE=1时,只有TR0和 同时为高电平,定时器/计数 器 才工作,否则,定时器/计数器不工作。
(2)定时和计数的应用 计数范围:1~213 计数计算公式:计数值=213-计数初值 定时范围:1机器周期~213机器周期 定时计算公式:定时时间=(213-定时初值)×机器周期 如果晶振频率为6MHz ,则最大定时时间为: 213×1/6MHz×12=214( )
单片机原理及应用
MCS-5单片机内部共有两个16位可编程的定时器/计数器,即 定时器T0和定时器T1它们既有定时功能又有计数功能。
1.1 结构
定时器/计数器的基本结构如图6.3所示。基本部件是两个8位计 数器(其中TH1和TL1是T1的计数器,TH0和TL0是T0的计数器)。

MCS-51单片机内部定时器计数器

MCS-51单片机内部定时器计数器
•MCS-51单片机内部定时器计数器
二、 方式1
方式 1(16位计数器)
•MCS-51单片机内部定时器计数器
方式1和方式0的工作原理基本相同,唯一 不同是T0和T1工作在方式1时是16位的计数/定 时器。
方式1时的计数长度M是2的16次方。16位 的初值直接拆成高低字节,分别送入TH和TL 即可。
•MCS-51单片机内部定时器计数器
M1 M0:四种工作方式的选择位 工作方式选择表
M1 M0 方式
说明
0 0 0 13 位定时器(TH的 8 位和TL的低 5 位)
0 1 1 16 位定时器/计数器
1 0 2 自动重装入初值的 8 位计数器 T0 分成两个独立的 8 位计数器,
1 1 3 T1 在方式 3 时停止工作
定时 1 ms的初值:
因为 机器周期=12÷6 MHz= 2 μs
所以 1 ms内T0 需要计数N次:
•MCS-51单片机内部定时器计数器
N= 1 ms÷2 μs = 500
由此可知: 使用方式 0 的 13 位计数器即可, T0 的初值X为 X=M-N=8 192-500=7 692=1E0CH 但是, 因为 13 位计数器中, 低 8 位 TL0 只使用了 5 位, 其 余码均计入高 8 位TH0 的初值, 则 T0
0。TF产生的中断申请是否被接受, 还需要由中断计数器T1、 T0 的运行控制位,
通过软件置 1 后, 定时器 /计数器才开始工作, 在系统复位时
被清 0。
•MCS-51单片机内部定时器计数器
定时器的工作方式
一、 方式 0
方式 0(13位计数器)
•MCS-51单片机内部定时器计数器
•MCS-51单片机内部定时器计数器

第六章 MCS-51单片机内部定时器

第六章 MCS-51单片机内部定时器

6.3.1 模式0及应用
在这种模式下,16位寄存器只用了13位。 其中,TL0的高3位未用,TH0占8位。当 TL0的低5位溢出时,向TH0进位。当TH0 溢出时,向中断标志位TF0进位,并申请中 断。 因此,可通过查询TF0 是否置位或考 察中断是否发生来判断定时器/计数器0的 操作完成与否。
(2)计算1ms定时T0的初值:
机器周期为(1/fOSC)×12=[1/(12×106)]×12=1μs, 设T0的 计数初值为X,则 (213-X)×1×10-6=1×10-3ms
X=213-1×10-3/(1×10) -6 =8192-1000=7192D=1110000011000
高8位: E0H 低5位: 18H
fosc=12MHz, 采用查询方式。
解:方波周期 T=1/100Hz=0.01s=10ms 用T1定时5ms 计数初值 X为: X=216-12×5×103/12=60536=EC78H 程序如下:
MOV TMOD, #10H ;T1模式1,定时方式
SETB TR1 LOOP:MOV TH1,#0ECH
例:晶振为12MHZ ,则计数周期为
T=12/(12*106)Hz =1微秒
最短的定时 周期
计数器工作方式:
当定时器/计数器为计数工作方式时,通过
引脚T0和T1对外部信号计数,外部脉冲的下降
沿触发计数
在每个机器周期的
采样过程:
S5P2期间采样引脚
当输入脉冲信号从1到0的负跳变时,计数器就 自动加1。 由于检测一个由1到0的跳变需要两 个机器周期,所以 计数的最高频率为振荡频 率的1/24。为了确保给定电平在变化前至少被 采样一次,外部计数脉冲的高低电平均需保持 一个机器周期以上。(占空比没有限制)

51单片机定时计数器的工作原理

51单片机定时计数器的工作原理

51单片机定时计数器的工作原理
51单片机是一种常用的微控制器,它具有多个定时计数器,其中包括定时器0和定时器1。

这些定时计数器是通过内部时
钟源提供的脉冲进行计数的。

定时器0和定时器1是独立的计数器,它们可以用于不同
的应用。

这里我们将主要关注定时器0的工作原理。

定时器0
由一个八位计数器和一个控制寄存器组成。

当定时器0启动时,它会根据时钟源提供的脉冲进行计数,每个脉冲会使计数器的值增加1。

定时器0的计数范围为0-255,即八位二进制数。

通过控制寄存器,我们可以设置定时器0的工作模式、计
数器的初始值以及时钟源的频率。

定时器0可以以不同的方式工作,包括定时模式和计数模式。

在定时模式下,我们可以设置一个初始值,并在每次计数
器增加到该值时产生一个中断。

这样就可以实现精确的定时功能。

定时器0的中断服务程序可以完成各种操作,例如控制其他外设、延时等。

在计数模式下,定时器0将简单地计数外部触发信号的脉
冲次数。

这可以用于测量外部事件的时间间隔或频率。

需要注意的是,定时器0的工作需要通过编程来完成。


们可以使用汇编语言或C语言来配置定时器0的寄存器,并
设计相应的中断服务程序。

51单片机定时器的工作原理是通过定时器0和定时器1实
现计数功能。

定时器0可以在定时模式或计数模式下工作,通过设置计数值和时钟源频率,实现精确的定时功能或测量外部
事件的时间间隔或频率。

编程则是必不可少的,通过配置寄存器和编写中断服务程序来实现定时器的工作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

个数。 假定红灯亮时停止统计, 红灯灭时才在上次统计结果
的基础上继续统计, 试用单片机定时器 /计数器T1的方式 1完 成该项产品的计数任务。
第6章 MCS - 51单片机内部定时器/计数器及串行接口
图 6.7 硬件原理图
第6章 MCS - 51单片机内部定时器/计数器及串行接口
(1) 初始化: TMOD=11010000B=0D0H (GATE=1, C/T=1, M0M1=01) TCON=00H (2) T1在方式1时, 溢出产生中断, 且计数器回零, 故在中 断服务程序中, 需用R0计数中断次数, 以保护累积计数结果。
第6章 MCS - 51单片机内部定时器/计数器及串行接口
二、 方式 1应用 方式 1 与方式 0 基本相同, 只是方式 1 改用了 16 位计数 器。 要求定时周期较长时, 13 位计数器不够用, 可改用 16 位 计数器。
例 2 已知某生产线的传送带上不断地有产品单向传送,
产品之间有较大间隔。使用光电开关统计一定时间内的产品
TR1、TR0 分别是定时器 /计数器T1、 T0 的运行控制位,
通过软件置 1 后, 定时器 /计数器才开始工作, 在系统复位时 被清 0。
第6章 MCS - 51单片机内部定时器/计数器及串行接口
6.3 工作方式
一、 方式 0
图6.3 方式 0(13位计数器)
第6章 MCS - 51单片机内部定时器/计数器及串行接口
第6章 MCS - 51单片机内部定时器/计数器及串行接口
C/T位:计数器模式和定时器模式的选择位。 C/T=0,为定时器模式,内部计数器对晶振脉冲12分频 后的脉冲计数,该脉冲周期等于机器周期,所以可以理 解为对机器周期进行计数。从计数值可以求得计数的时 间,所以称为定时器模式。 C/T=1,为计数器模式,计数器对外部输入引脚T0 (P3.4)或T1(P3.5)的外部脉冲(负跳变)计数,允许 的最高计数频率为晶振频率的1/24。
在工业检测、控制中,很多场合都要用到计数或者定 时功能。例如对外部脉冲进行计数、产生精确的定时时间、 作串行口的波特率发声器等。MCS-51单片机内部有两个 可编程的定时器/计数器,以满足这方面的需要。它们具 有 两种工作模数(计数器模式、 定时器模式)和四种工 作方式( 方式0、方式1、方式2、方式3),其控制字均 在相应的特殊功能寄存器(SFR)中,通过对它的SFR的 编程,可以方便的选择工作模数和工作方式。
定时 1 ms的初值:
因为 机器周期=12÷6 MHz= 2 μs
所以 1 ms内T0 需要计数N次:
N= 1 ms÷2 μs = 500
第6章 MCS - 51单片机内部定时器/计数器及串行接口
由此可知: 使用方式 0 的 13 位计数器即可, T0 的初值X为 X=M-N=8 192-500=7 692=1E0CH 但是, 因为 13 位计数器中, 低 8 位 TL0 只使用了 5 位, 其 余码均计入高 8 位TH0 的初值, 则 T0 的初值调整为
如果定时/计数器0工作于工作方式3,那么定时/
计数器1的工作方式就不可避免受到一定的限制,因 为自己的一些控制位已被定时/计数器借用,只能工 作在方式0、方式1或方式2下,如果设置T1工作在方 式3,则T1停止工作,相当于其他方式时令TR1=0。
第6章 MCS - 51单片机内部定时器/计数器及串行接口
1
1
3
第6章 MCS - 51单片机内部定时器/计数器及串行接口
定时器初值的确定: 加法计数器是计满溢出时才申请中断, 所以在给定时器/ 计数器赋初值时, 不能直接输入所需的计数值, 而应输入的 是计数器计数的最大值与这一计数值的差值, 设最大值为 M, 计数值为 N, 初值为 X, 则 X的计算方法如下: 计数状态: X=M-N
6.4 定时器/计数器应用举例
一、 方式 0 的应用 例 1 利用定时器输出周期为 2 ms的方波, 设单片机晶振 频率为 6 MHz。 选用定时器 /计数器T0 作定时器, 输出为P1.0 引脚, 2 ms 的方波可由间隔 1 ms的高低电平相间而成, 因而只要每隔 1 ms对 P1.0 取反一次即可得到这个方波。
在方式0下,T0和T1工作在13位的定时/计数 器方式,由TH的高 8 位和TL的低 5 位组成。 当T0的13位计数器加到全部为 1 以后,再加
1就产生溢出,这时置TCON的TF0为 1 ,同时把
计数器全部变 0 ,然后从 0 开始继续计数。
第6章 MCS - 51单片机内部定时器/计数器及串行接口
MOV TCON, #00H MOV TMOD, #0D0H MOV TH1, #00H
第6章 MCS - 51单片机内部定时器/计数器及串行接口
MOV TL1, #00H MOV R0, #00H ; 清中断次数计数单元 MOV P3, #28H; 设置P3.5第二功能 SETB TR1 ; 启动T1 SETB ET1; 开T1中断 SETB EA ; 开总中断 MAIN: ACALL DISP ; 主程序, 调显示子程序
第6章 MCS - 51单片机内部定时器/计数器及串行接口
6.1 定时器/计数器的结构及工作原理
定时器/计数器: Timer/Counter
本质上都是加法计数器,当对固定周期的脉冲信号 计数时是定时器,对脉冲长度不确定的信号计数时是计 数器。 每接收到一个计数脉冲,加法计数器的值就加一, 当计满时发生溢出,并从0开始继续计数。
第6章 MCS - 51单片机内部定时器/计数器及串行接口
(3) 启动T1计数, 开T1中断。 程序清单如下:
ORG 0000H

AJMP START ; 复位入口 ORG 001BH AJMP T1INT ; T1中断入口 ORG 0100H
START: MOV SP, #60H ; 初始化程序
方式0的计数长度M为2的13次方。 初值也是13位二进制数,但要注意是高8位赋值 给TH0,低5位前面补足 3 个 0 凑成 8 位赋给TL0。 例如,如要求计数值为1000,则初值为 x=M-1000=8192-1000 =1C18H=1 1100 000 1 1000B 则赋初值时,TH0=0E0H,TL0=18H。
加法计数器的计满溢出信号就是定时/计数器的输出, 该信号使TCON的某位(TF0或TF1位)置一,作为定时 器/计数器的溢出中断标志。
第6章 MCS - 51单片机内部定时器/计数器及串行接口
图 6.1 定时器/计数器结构框图
第6章 MCS - 51单片机内部定时器/计数器及串行接口
6.2 方式和控制寄存器
定时状态: X=M-定时时间/T
而 T=12÷晶振频率
第6章 MCS - 51单片机内部定时器/计数器及串行接口
二、 定时器/计数器控制寄存器TCON
TF1
TR1
TF0
TR0
IE1 IT1
IE0
IT0
TF0、TF1分别是定时器/计数器T0、 T1 的溢出标志位, 加法计数器计满溢出时置 1, 申请中断, 在中断响应后自动复 0。TF产生的中断申请是否被接受, 还需要由中断是否开放 来决定。
TH0就没有那么多“资源”可利用了,只能作为简单的定
时器使用,而且由于定时/计数器0的控制位已被TL0占用, 因此只能借用定时/计数器1的控制位TR1和TF1,也就是 以计数溢出去置位TF1,TR1则负责控制TH0定时的启动 和停止。
第6章 MCS - 51单片机内部定时器/计数器及串行接口
由于TL0既能作定时器也能作计数器使用,而 TH0只能作定时器使用而不能作计数器使用,因此在 方式3模式下,定时/计数器0可以构成二个定时器或 者一个定时器和一个计数器。
第6章 MCS - 51单片机内部定时器/计数器及串行接口
二、 方式1
图 6.4 方式 1(16位计数器)
第6章 MCS - 51单片机内部定时器/计数器及串行接口
方式1和方式0的工作原理基本相同,唯一
不同是T0和T1工作在方式1时是16位的计数/定 时器。 方式1时的计数长度M是2的16次方。16位 的初值直接拆成高低字节,分别送入TH和TL 即可。
TH0=0F0H, TL0=0CH
TMOD初始化: TMOD=00000000B=00H
(GATE=0, C/T=0, M1=0, M0=0)
TCON初始化: 启动TR0=1
IE初始化: 开放中断EA=1, 定时器T0 中断允许ET0=1
第6章 MCS - 51单片机内部定时器/计数器及串行接口
一、 定时器/计数器的方式寄存器TMOD
8位分为两组,高四位控制T1,低4位控制T0。
图 6.2 TMOD各位定义
第6章 MCS - 51单片机内部定时器/计数器及串行接口
对TMOD的各个位的说明: GATE位:门控位。GATE=1时,T0、T1是否计数要受 到外部引脚输入电平的控制,INT0引脚控制T0,INT1引 脚控制T1。可用于测量在INT0和INT1引脚出现的正脉冲 的宽度。若GATE=0,即不使能门控功能,定时计数器 的运行不受外部输入引脚INT0、INT1的控制。
第6章 MCS - 51单片机内部定时器/计数器及串行接口
M1 M0:四种工作方式的选择位 表 6.1 工作方式选择表
M1 M0 方式 0 0 1 0 1 0 0 1 2 说 明 13 位定时器(TH的 8 位和TL的低 5 位) 16 位定时器/计数器 自动重装入初值的 8 位计数器 T0 分成两个独立的 8 位计数器, T1 在方式 3 时停止工作
载工作方式。
第6章 MCS - 51单片机内部定时器/计数器及串行接口
在这种工作方式中,16位计数器分为两部分,
即以TL0为计数器,以TH0作为预置寄存器,初始化
相关文档
最新文档