第七章51系列单片机定时器计数器
振荡器 12
M0(0) M1(0)
பைடு நூலகம்
C/T=0
T0引脚
C/T=1
TL0 TH0 (5位) (8位)
控制 =1
申请 TF0 中断
CG/ATT 0
1
1
开关接通
E
≥1 &
GATE=0时,INT0信号无效。B点电
×INT0端 或门 与门
位取决于TR0的状态,于是,由TR0 一位就可控制计数开关K,开启或关
TR0
断T0。若软件使TR0置1,便接通计数
GATE=1时,必须 INT0=1且TR0=1时,B点才 开关K,启动T0在原值上加1计数,直
是高电平,计数开关K闭合,T0开始计数。
至溢出。若TR0=0,则关断计数开关
INT0由1变0时,T0停止计数。 第七章51系列单片机定时K器计,数停器止计数。
例1:
设定时器T0工作于模式0,定时时间为1ms,fosc=6MHZ。 试确定T0的初值,计算最大定时时间T。
通过系统对时钟脉冲的计数来实现。通过程序可以改变计 数值,也就改变了定时时间。同时可编程定时器具有定时和计 数功能。
第七章51系列单片机定时器计数器
7.1.2 定时器/计数器的结构
MCS-51系列单片机有两个16位的定时器,分别为T0和T1。 它们都有定时和事件计数的功能,可用于定时控制、延时、对外部 事件计数和检测等场合 。
T0由两个8位特殊功能寄存器TH0和TL0构成; T1由TH1和TL1构成。 T0、T1由软件设置为定时器工作方式或计数方式及其他灵 活多样的可控功能方式。 T0、T1的功能都由特殊功能寄存器TMOD和TCON所控 制。
第七章51系列单片机定时器计数器
AT89C51定时器结构: 定时器工作方式:每个机器周期使定时器(T0或T1)的数
式和控制功能。当系统复位时,两个寄存器所有位被清0。
1.工作模式寄存器TMOD (89H,不能位寻址只能由字节设置定时器工作模
式)
定时器T1工作模式定义 定时器T0工作模式定义
GATE C / T M1 M0 GATE C / T M1 M0
M1、M0:工作模式控制位 ( 定义4 种方式 ): 0 0: 模式0 13位定时器——作用不大 0 1: 模式1 16位定时器——经常用到 1 0: 模式2 可自动重装的8位定时器——经常用到 1 1: 模式3 T0分为2个8位定时器;T1不工作——几乎无用
第七章51系列单片机定时器计数器
GATE C / T M1 M0 GATE C / T M1 M0
(89H)
T1
T0
C/T :计数器/定时器选择位 =0 片内时钟定时器。对机器周期脉冲计数定时 = 1 外部事件计数器。对T0(T1)引脚的负脉冲计数;
GATE门控位: 定时器可由软件与硬件两者控制 GATE = 0 ——普通用法
定时器T1便开始计数。
第七章51系列单片机定时器计数器
定时器T0/T1 中断申请过程
定时/计数器可按片内机器周期定时,也可对由 T0/T1引脚输入一个负脉冲进行加法计数
在已经开放T0/T1中断允许且已被启动的前提下: T0/T1加满溢出时 TF0/TF1标志位自动置“1” 检测到TCON中TF0/TF1变“1”后,将产生指令:
定时器的启/停由软件对TR0(TR1)位写“1”/“0”
控制,不管INT0、INT1的电平。
GATE = 1 ——门控用法
INT0或INT1引脚为高电平且由软件使TR0或TR1置
1时,才能启动定时器工作。
第七章51系列单片机定时器计数器
2.定时器控制寄存器TCON (88H,可位寻 址)
8FH 8EH 8DH 8CH 8BH 8AH 89H 88H
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TF0(TF1):定时器0/1计数溢出标志位。 =1 计数溢出; =0 计数未满
TF0(TF1) 可用于申请中断或供CPU查询。 在进入中断服务程序时会自动清零; 但在查询方式时必须软件清零。
TR0(TR1): 定时器0/1运行控制位。 =1 启动计数; =0 停止计数 在程序中用指令“SETB TR1”使TR1位置1,
t=(213—T0初值)X振荡周期X 12 当C/T=1时作外部事件计数器,控制开关使引 脚T0(P3.4)与13位计数器相连,外部计数脉冲 下降沿使计数器加1。
定时器(T0或T1)的高8位和 低5位(其余三位为0)组成 一个13位定时器/计数器 。当 TL0的低5位溢出时,向TH0 进位;TH0溢出时,向中断 标志位TF0进位(硬件置 TF0),并申请中断。
值加1直至计数溢出。 计数器工作方式:在每个机器周期的S5P2期间采样T0和T1
引脚,若某一个机器周期采样值为1,下一个机器周期采样值 为0,则计数器加1。最高计数频率为振荡频率的1/24。
第七章51系列单片机定时器计数器
7.2 定时器/计数器的控制 8位寄存器TMOD和TCON,用来设置T0和T1的操作模
第七章 51系列单片机的定时器/
第七章51系列单片机定时器计数器
7.1 定时器/计数器概述
7.1.1 定时方法
在单片机控制系统中,定时的方法有: 1. 软件定时
靠执行一个循环程序以进行时间延迟。特点是:时间精确, 且不需外加硬件电路。缺点是:定时时要占用CPU,增加CPU的 开销。 2.硬件定时
使用硬件电路来完成。方法是:定时功能全部由硬件电路完 成,不占CPU的时间。缺点是:定时参数一旦设定,修改比较困 难。适用于:时间较长的定时 3.可编程定时器
解:当T0为工作模式0时,加1计数器为13位。设T0的初值为X。 则 (213—X)×1/(6×106)×12=1×10-3S (213—X)×12/6=1000 X=7692
转换为二进制数: X=01100B T0的低5位: 01100B=0CH T0的高 8位: 11110000B=F0H
LCALL 000BH/LCALL 001BH 执行中断服务程序, TF0/TF1标志位会自动清“0”,以备下次中断申请。
第七章51系列单片机定时器计数器
7.3 定时器/计数器的四种工作模式及应用
第七章51系列单片机定时器计数器
1. 模式0及应用(以T0为例)
C/T=0时定时器工作方式,控制开关接通振荡 器12分频输出端,T0对机器周期计数。其定时时 间为:
单片机原理及接口技术(C51编程)第7章 定时器计数器
图7-14 由外部计数输入信号控制LED的闪烁
(3)设置IE寄存器 本例由于采用T1中断,因此需将IE寄存器的EA、ET1位置1。
(4)启动和停止定时器T1 将寄存器TCON中TR1=1,则启动T1计数;TR1=0,则停止T1计数。
参考程序如下:
#include <reg51.h> void Delay(unsigned int i)
7.4 定时器/计数器的编程和应用 4种工作方式中,方式0与方式1基本相同,只是计数位数不同。方
式0为13位,方式1为16位。由于方式0是为兼容MCS-48而设,计数初 值计算复杂,所以在实际应用中,一般不用方式0,常采用方式1。
7.4.1 P1口控制8只LED每0.5s闪亮一次 【例7-1】在AT89S51的P1口上接有8只LED,原理电路见图7-
当TMOD的低2位为11时,T0被选为方式3,各引脚与T0的逻辑关系 见图7-8。
T0分为两个独立的8位计数器TL0和TH0,TL0使用T0的状态控制位 C/T* 、GATE、TR0 ,而TH0被固定为一个8位定时器(不能作为外部 计数模式),并使用定时器T1的状态控制位TR1,同时占用定时器T1的 中断请求源TF1。
13。采用T0方式1的定时中断方式,使P1口外接的8只LED每0.5s闪亮 一次。
23
图7-13 方式1定时中断控制LED闪亮
24
(1)设置TMOD寄存器 T0工作在方式1,应使TMOD寄存器的M1、M0=01;应设置C/T*=0,为定
时器模式;对T0的运行控制仅由TR0来控制,应使相应的GATE位为0。定时 器T1不使用,各相关位均设为0。所以,TMOD寄存器应初始化为0x01。 (2)计算定时器T0的计数初值
第七章 51系列单片机定时器计数器
(3)查询方式
查询方式在定时器计数过程中,CPU要不断查询溢
出标志位TF0的状态。这就占用了很多CPU的工作时间,使
CPU的效率下降。
程序清单:
MOV TMOD,#00H ;设置T0为模式0
MOV TL0,#18H
;送初值
MOV TH0,#0E0H
;
SETBC TF0,NEXT ;查询定时时间到期否?
定时器(T0或T1)的高8位 和低5位(其余三位为0)组 成一个13位定时器/计数器 。 当TL0的低5位溢出时,向 TH0进位;TH0溢出时,向 中断标志位TF0进位(硬件 置TF0),并申请中断。
振荡器 12
M0(0) M1(0)
C/T=0
T0引脚
C/T=1
TL0 TH0 (5位) (8位)
控制 =1
转换为二进制数: X=1111000001100B T0的低5位: 01100B=0CH T0的高 8位: 11110000B=F0H
T0的最大定时时间应于13位计数器各位全为1,即(TH0) =FFH,(TL0)=1FH。即X=0。
则 T=213×12/6MHZ=16.384ms
例2:
利用T0工作于模式0产生1ms的定时,在P1.0引脚上输出 周期为2ms的方波。设单片机晶振频率fosc=12MHZ。
通过系统对时钟脉冲的计数来实现。通过程序可以改变计
数值,也就改变了定时时间。同时可编程定时器具有定时和计 数功能。
7.1.2 定时器/计数器的结构
MCS-51系列单片机有两个16位的定时器,分别为T0和T1。 它们都有定时和事件计数的功能,可用于定时控制、延时、对外 部事件计数和检测等场合 。
T0由两个8位特殊功能寄存器TH0和TL0构成; T1由TH1和TL1构成。 T0、T1由软件设置为定时器工作方式或计数方式及其他灵 活多样的可控功能方式。 T0、T1的功能都由特殊功能寄存器TMOD和TCON所控 制。
MCS51单片机的定时计数器及应用
定时/计数器T0和T1的工作方式2(P143) ----8位自动重载初值
振荡器
/12
T0 TR0
GATE INT0
控制
TL0(8 位) 重载
TH0(8位)
中断 TF0
TL0(或TL1)用于计数,TH0(或TH1)用于保存初值,计满 溢出时硬件自动将TH0的值重新装入TL0。自动装载的初值:
X=256-N
while (1) ;// 原地踏步
{}
}
void time0_int(void) interrupt 1
{// 中断服务程序 SQ=!SQ ;// 输出翻转
}
采用查询方式的汇编程序(P145)
ORG 0000H
LJMP MAIN ORG 0100H ;主程序 MAIN: MOV TMOD,#02H ; 定 时器T0工作方式2 MOV TH0,#06 ;保存初值 MOV TL0,#06 ; 赋初值 SETB TR0 ; 启动T0
ORG 0030H; 主程序 MAIN:MOV TMOD,#02H; 定时器
T0工作方式2 MOV TH0,#06H;初值保存 MOV TL0,#06H; 赋初值 SETB EA; 开放总中断 SETB ET0; 开放T0溢出中断 SETB TR0; 启动T0 SJMP $; 原地踏步
END
采用中断处理方式的C51程序(P145)
微 处 理 器
TH1
启动
TCON
溢出
TL1
TH0
TL0
内部总线
启动
工作方式
工作方式
TMOD
定时/计数器的结构说明
? TH0和TL0是定时/计数器T0计数器的高 8位和低8位, TH1和TL1是定时/计数器T1计数器的高 8位和低8位。
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
MCS-51单片机的定时器-计数器
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单片机内部定时器计数器
二、 方式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单片机内部定时器计数器
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可以在定时模式或计数模式下工作,通过设置计数值和时钟源频率,实现精确的定时功能或测量外部
事件的时间间隔或频率。
编程则是必不可少的,通过配置寄存器和编写中断服务程序来实现定时器的工作。
MCS51单片机的定时器计数器
脉冲宽度测量应用
简介:脉冲宽度测量是定时器计数器在MCS51单片机中的一个重要应用, 通过定时器计数器可以精确测量脉冲信号的宽度。
工作原理:利用定时器计数器对输入的脉冲信号进行定时计数,根据计数 值和定时器计数器的时钟频率,可以计算出脉冲信号的宽度。
应用场景:在电机控制、通信、测量等领域中,需要精确测量脉冲信号的 宽度,例如在电机控制中,需要测量电机的占空比,以实现精确控制。
MCS51单片机的应用领域
工业控制 智能仪表 家电产品 通讯设备
MCS51单片机的定时器计数器功能
定时器/计数器:用于时间延迟和计数 工作模式:四种模式可选,包括模式0、模式1、模式2和模式3 计数范围:16位计数,可计数0-65535 定时器溢出标志:当定时器溢出时,会设置溢出标志位,可产生中断或溢出处理
定时器计数器在 串行通信中的工 作原理:通过定 时器和计数器来 控制数据传输的 速率和同步
定时器计数于产生精确的时间延迟或定时,实现定时器计数器的最基本功能。
计数功能:用于对外部事件进行计数,例如计数脉冲信号的个数。
事件触发:可以用于产生中断,用于处理特定事件,如时间到达或计数达到预设值。
THANK YOU
汇报人:
停止方式:通过编程设置定时器计数器的停止方式,如手动停止或自动停 止
启动条件:定时器计数器在满足一定条件时自动启动,如达到预设时间或 外部事件触发
停止条件:定时器计数器在满足一定条件时自动停止,如达到预设时间或 外部事件触发
定时器计数器的读写操作
读取当前计数值:通过读取相应的寄存器,可以获取定时器/计数器的当前计数值。
优势:使用定时器计数器进行脉冲宽度测量具有精度高、可靠性好等优点, 可以满足各种应用需求。
51单片机定时与计数的工作原理
51单片机定时与计数的工作原理一、概述51单片机是一种广泛应用于嵌入式系统中的微处理器,具有高性价比、易学易用等特点。
其中,定时与计数功能是其常用的功能之一,通过定时与计数可以实现许多实际应用,如脉冲计数、PWM输出等。
本文将详细介绍51单片机定时与计数的工作原理。
二、定时器和计数器在介绍51单片机的定时与计数功能之前,我们需要先了解两个重要的概念:定时器和计数器。
1. 定时器定时器是一种能够按照设定时间进行计时的电路。
其基本原理是利用振荡电路产生一个稳定的时间基准信号,再通过分频电路将其分频得到所需的时间间隔,并通过计数器进行累加,从而实现精确的时间控制。
2. 计数器计数器是一种能够对输入脉冲进行计数并输出相应结果的电路。
其基本原理是利用触发电路对输入脉冲进行检测,并通过累加器进行累加,从而得到输入脉冲数量。
三、51单片机中的定时与计数功能在51单片机中,有两个独立的16位定时器/计数器,分别为Timer0和Timer1。
它们可以分别用作定时器或计数器,并且可以通过软件配置其工作模式。
1. Timer0Timer0是一个8位定时器/计数器,它的输入时钟源可以来自外部引脚或系统时钟。
在定时模式下,其最大计时时间为2^8×12/11MHz≈29μs,在计数模式下,其最大计数值为2^8=256。
Timer0的工作模式可以通过TCON寄存器的TF0、TR0、TMOD寄存器的M0位和GATE0位进行配置。
其中,TF0表示定时/计数溢出标志,TR0表示定时/计数启动控制位,M0位表示Timer0的工作模式(00表示13位定时/计数、01表示16位定时/计数、10表示8位自动重装载定时、11保留),GATE0表示是否使用外部引脚作为启动控制信号。
2. Timer1Timer1是一个16位定时器/计数器,它的输入时钟源可以来自外部引脚或系统时钟。
在定时模式下,其最大计时时间为2^16×12/11MHz≈5.9ms,在计数模式下,其最大计数值为2^16=65536。
MCS-51单片机的定时、计数器
M1 0 0
M0 0 1
工作方式 0 1
方式说明 13位定时器/计数器 16位定时器/计数器 具有自动重装初值的8位定时器 /计数器
1
1
0
1
2
3
3.定时器/计数器控制寄存器TCON TCON控制寄存器各位定义如下:
D7
TCON
TF1
D6
TR1
D5
TF0
D4
TR0
D3
IE1
D2
IT1
D1
IE0
D0
IT0 字节 地址 88H
计数器的高8位和低8位。
作计数器用时,加法计数器对芯片引脚T0(P3.4)或T1(P3.5)
上的输入脉冲计数。每输入一个脉冲,加法计数器增加1。加法
计数溢出时可向CPU发出中断请求信号。
作定时器用时,加法计数器对内部机器周期脉冲Tcy计数。 由于机器周期是定值,所以对Tcy的计数就是定时,如Tcy=1 μs,计数值100,相当于定时100 μs。 加法计数器的初值可以由程序设定,设置的初值不同,计 数值或定时时间就不同。在定时器/计数器的工作过程中,加 法计数器的内容可用程序读回CPU。
≥1 S TH1 (8 位 ) TF 1
1
图 2 .1 6 定 时 器 / 计 数 器 方 式 3 的 逻 辑 结 构
图2.16 定时器/计数器方式3的逻辑结构
ELSE:
;此处可写定时1分钟到后的处理程序
AJMP REPEAT ORG 001BH SETB F0 RETI ;定时器/计数器T1的中断服务程序入口地址 ;建立定时1分钟到的用户标志
用定时器控制信号灯
问题的提出 ① “MOV TMOD,#01H”指令是将01H送 给寄存器TMOD,为什么是01H?
