51单片机定时器计数器详解

合集下载

第06章 MCS-51单片机定时计数器

第06章 MCS-51单片机定时计数器

10
2 8位计数初值自动重装,TL(7 ~ 0)
TH(7 ~ 0)
11
3 T0运行,而T1停止工作,8位定时/计数。
▪ 2.定时/计数器控制寄存器(TCON)

D7 D6 D5 D4 D3 D2 D1 D0
位符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TR0:定时 / 计数器0运行控制位。软件置位,软件复位。与GATE有关, 分两种情况:
GATE = 0 时:若TR0 = 1,开启T0计数工作;若TR0 = 0,停止T0计 数。
GATE = 1 时:若TR0 = 1 且/INT0 = 1时,开启T0计数; 若TR0 = 1 但 /INT0 = 0,则不能开启T0计数。 若TR0 = 0, 停止T0计数。
TR1:定时 / 计数器1运行控制位。用法与TR0类似。
▪ (1)计算计数初值。欲产生周期为1000μs的等宽方波脉冲, 只需在P1.7端交替输出500μs的高低电平即可,因此定时 时间应为500μs。设计数初值为X,则有:
▪ (216-X)×1×10-6=500×10-6
▪ X=65536-500=65036=FE0CH
▪ 将X的低8位0CH写入TL1,将X的高8位FEH写入TH1。
;清TCON,定时器中断标志清

MOV TMOD,#10H
;工作方式1设定

MOV TH1,#0FEH
;计数1初值设定

MOV TL1,#0CH

MOV IE,#00H
;关中断

SETB TR1
;启动计数器1
▪ LOOP0:JBC TF1,LOOP1 ;查询是否溢出

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

51单片机定时器计数器详解

51单片机定时器计数器详解

51单⽚机定时器计数器详解第六章定时器/计数器6.1 定时器的结构及⼯作原理6.2 定时器的控制6.3 定时器的⼯作模式及其应⽤第六章定时器/计数器实现定时⼀般有多种⽅法:1. 利⽤软件实现(延时程序)优点:简单,控制⽅便;缺点:CPU效率低。

2. 外部硬件实现:单稳态定时器、计数定时器优点:CPU效率⾼;缺点:修改参数⿇烦。

3. 利⽤计数器实现输⼊脉冲定时器/计数器作⽤主要包括产⽣各种时标间隔、记录外部事件的数量等,是单⽚机中最常⽤、最基本的部件之⼀。

外来脉冲定时计数定时器/计数器功能⽰意图6.1 定时器/计数器的结构及⼯作原理6.1.1 定时器/计数器的基本结构MCS-51单⽚机有⼆个定时器/计数器,每个定时器/计数器由⼏个专⽤寄存器组成。

TMOD(89H )⾼四位TMOD(89H )低四位⽅式寄存器TCON(88H)TCON(88H)控制寄存器*8DH 8BH 8CH 8AH TH1 TL1TH0 TL0数据寄存器(16位)定时器T1定时器T0定时器/计数器的结构如下图所⽰。

定时器/计数器的基本结构框图申请P3.5or P3.4or 8DH 8BH8CH 8AH6.1.2 定时器/计数器的⼯作原理定时器/计数器结构原理图INTx P3.YGATE :门控制位:定时/计数控制位TC/x=0,1Y=2,3Z=4,5⼀. 对外部输⼊信号的计数功能当T0或T1设置为计数⼯作⽅式时,计数器对来⾃输⼊引脚P3.4(T0)和P3.5(T1)的外部信号计数。

若前⼀个机器周期采样值为1,后⼀个机器周期采样值为0,则计数器加1。

所以计数器计数的频率最⾼为fosc 的1/24。

BDEHT H >1个机器周期T L >1个机器周期L⼆. 定时功能:定时器/计数器的定时功能也是通过计数实现的,它的计数脉冲是由单⽚机的⽚内振荡器输出经12分频后产⽣的信号,即为对机器周期计数。

INTx P3.Y例如:晶振频率=12MHz 机器周期=1us ,计数1次=1us ,计数频为=1MHz 。

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单片机 定时器和计数器 结构

51单片机定时器和计数器结构下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!51单片机定时器和计数器结构详解一、引言在51单片机中,定时器和计数器是两个非常重要的功能模块,它们广泛应用于各种嵌入式系统中。

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单片机内部定时器计数器

单片机课件5MCS-51单片机定时器计数器

单片机课件5MCS-51单片机定时器计数器

定时器的示例代码
基于MCS-51单片机和定时器 计数器,实现控制蜂鸣器的 状态或LED的闪烁频率。
实践演示
控制蜂鸣器的状态
借助定时器计数器,设置蜂鸣器的开关状态以及背 景灯。
控制LED的闪烁频率
基于定时器计数器,利用MCS-51单片机来控制LED 灯的闪烁速率。
总结
1
重要性和应用
定时器计数器是单片机非常重要的组件之一,其应用非常广泛。
5MCS-51单片机定时器计 数器
本课件将介绍单片机中定时器计数器的作用、类型、寄存器、应用以及示例 代码,展现出单片机学习与应用的魅力。
什么是定时器计数器
1 时间的记录器
定时器计数器是一种可编 程的时间计算器,可用于 各种计时和计数任务。
2 核心组件
作为单片机的核心之一, 定时器计数器可以用来控 制其它模块的工作。
3 可编程
可以通过设置定时器的各 个寄存器来控制计时或计 数的周期、频率和模式。
MCS-51单片机的定时器计数器
定时器模块的功能
以MCS-51单片机为例,定时器计数器可以控制脉 冲的发生和周期、计数等。
定时器的类型
MCS-51单片机的定时器分为两种类型:定时器0和 定时器1,每种定时器都具有其特定的应用场景。
2
对单片机的学习和应用的帮助
通过学习单片机和定时器计数器,可以帮助我们更好地理解单片机的工作原理和应用场景。
3
接下来的拓展用,如机器人、智能家居等领域。
定时器的寄存器
MCS-51单片机的定时器计数器有多个寄存器,包 括计数器寄存器、模式寄存器和数据寄存器。
定时器的应用
定时器的使用方法
通过编程初始化各个寄存器, 设置定时器的模式、计数周 期和计数方式等,以达到所 需的计时或计数效果。

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单片机的应用领域
工业控制 智能仪表 家电产品 通讯设备
MCS51单片机的定时器计数器功能
定时器/计数器:用于时间延迟和计数 工作模式:四种模式可选,包括模式0、模式1、模式2和模式3 计数范围:16位计数,可计数0-65535 定时器溢出标志:当定时器溢出时,会设置溢出标志位,可产生中断或溢出处理
定时器计数器在 串行通信中的工 作原理:通过定 时器和计数器来 控制数据传输的 速率和同步
定时器计数于产生精确的时间延迟或定时,实现定时器计数器的最基本功能。
计数功能:用于对外部事件进行计数,例如计数脉冲信号的个数。
事件触发:可以用于产生中断,用于处理特定事件,如时间到达或计数达到预设值。
THANK YOU
汇报人:
停止方式:通过编程设置定时器计数器的停止方式,如手动停止或自动停 止
启动条件:定时器计数器在满足一定条件时自动启动,如达到预设时间或 外部事件触发
停止条件:定时器计数器在满足一定条件时自动停止,如达到预设时间或 外部事件触发
定时器计数器的读写操作
读取当前计数值:通过读取相应的寄存器,可以获取定时器/计数器的当前计数值。
优势:使用定时器计数器进行脉冲宽度测量具有精度高、可靠性好等优点, 可以满足各种应用需求。

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

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。

51单片机定时器计数器详解

51单片机定时器计数器详解

PDF 文件使用 "pdfFactory Pro" 试用版本创建
二、定时器/计数器方式选择位 C/ T
1. C/T =0 选择定时方式。在定时方式中,以振荡输出时钟脉 冲的12分频信号作为定时的计数信号,也就是每一个机器 周期定时器加“1”,若晶振为12MHz,则定时器的计数频 率为1MHz。 2. C/T =1 选择计数功能。在计数方式中,采用外部引脚 T0(P3.4)、T1(P3.5)的输入脉冲作为计数脉冲, 当外部输 入脉冲发生1到0的负跳变时,计数器加1,最高计数频率为 时钟频率的1/24。
A B
C D E
F
G H
PDF 文件使用 "pdfFactory Pro" 试用版本创建
机器 周期
S1 S2 S3 S4 S5
指令 周期
S6 S1 S2
机器 周期
S3 S4 S5 S6
P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2
定时器/计数器是一种可编程部件,在工作之前必须 通过软件设定它的工作方式,即对工作方式寄存器TMOD中 每位进行设定。
T1
GATE C/ T M1 M0 GATE
T0
C/ T M1 M0
TMOD
字节地址89H
TMOD不能位寻址。上电复位时,TMOD所有位均为零。
PDF 文件使用 "pdfFactory Pro" 试用版本创建
TFx
中断 请求

定时器/计数器的比较 计数器
计数脉冲 外部信号下降沿 T0对应P3.4 T1对应P3.5 fmax=fosc/24

MCS-51单片机计数器定时器详解

MCS-51单片机计数器定时器详解

MCS-51单片机计数器定时器详解80C51单片机内部设有两个16位的可编程定时器/计数器。

可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。

在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。

:从上面定时器/计数器的结构图中我们可以看出,16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。

其访问地址依次为8AH-8DH。

每个寄存器均可单独访问。

这些寄存器是用于存放定时或计数初值的。

此外,其内部还有一个8位的定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。

这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。

TMOD主要是用于选定定时器的工作方式;TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。

当定时器工作在计数方式时,外部事件通过引脚T0(P3.4)和T1(P3.5)输入。

定时计数器的原理:16位的定时器/计数器实质上就是一个加1计数器,其控制电路受软件控制、切换。

当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出为止。

显然,定时器的定时时间与系统的振荡频率有关。

因一个机器周期等于12个振荡周期,所以计数频率fcount=1/12osc。

如果晶振为12MHz,则计数周期为:T=1/(12×106)Hz×1/12=1μs这是最短的定时周期。

若要延长定时时间,则需要改变定时器的初值,并要适当选择定时器的长度(如8位、13位、16位等)。

当定时器/计数器为计数工作方式时,通过引脚T0和T1对外部信号计数,外部脉冲的下降沿将触发计数。

计数器在每个机器周期的S5P2期间采样引脚输入电平。

若一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。

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

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

LOOP:
例:由P1.0输出方波信号,周 期为2ms,设fosc=12MHz。 (中断方式)
2ms
解:每隔1ms改变一次P1.0的输出状态,即形成方波, 用T0非门控方式1定时。 计算时间常数:X = 216 - t/T = 216 –(1/1000)/10-6 = 65536-1000 = 64536 = FC18H
3 工作模式2 • 模式2把TL0(或TL1)设置成一个可以自动重 装载的8位定时器/计数器 。 用于需要重复定时和计数的场合。 最大计数值:256 (28) 最大定时时间(晶振12MHz时 T=1s): 256s 自动恢复初值8位定时/计数器。TLx为8位加1计 数器,THx为8位初值暂存器。
复位时,TMOD所有位均置0。 确定定时器工作方式指令: MOV TMOD,#方式字 例:设T0用方式2非门控定时,T1用方式1门控计数。 MOV TMOD,#0D2H ; 1101 0010 B
定时器控制寄存器TCON除可字节寻址外,各 位还可以位寻址。
位地址 位符号 8FH TF1 8EH 8DH 8CH TR1 TF0 TR0 8BH IE1 8AH 89H 88H IT1 IE0 IT0
解得:T0初值=7096=11011101 11000B,其中将高8位 11011101 B=DDH 赋给 TH0 ,低 5 位 11000B=18H 赋 给 TL0。

方法一:
采用查询工作方式,编程如下:
ORG AJMP 0000H MAIN
LOOP:JNB TF0,$;$为当前指令指 针地址 CLR SETB CLR MOV MOV TF0 P1.0 P1.0 TH0 , #0DDH ;重装载 ;产生2µ s正脉冲
ORG AJMP ORG AJMP ORG MAIN:MOV MOV MOV SETB SETB SETB HERE:SJMP PT0INT:MOV MOV CPL RETI

51单片机的定时器应用解析

51单片机的定时器应用解析

51单片机的定时器应用解析定时器是一种多功能的外设,可以在嵌入式系统中广泛应用。

在 51 单片机中,定时器分为两种:定时/计数器和串行接口定时器(SIT)。

这篇文档将着重介绍定时/计数器的应用。

定时器基础定时器由两个 8 位定时器(Timer0 和 Timer1)和一个 16 位定时器(Timer2)组成。

定时器通过计数器实现定时功能,计数器钟频为定时器输入时钟的一半。

定时器的定时时间可以通过改变计数器初始值和时钟源分频系数来实现。

定时器应用延时定时器可以用来实现延时功能,常见的延时方式是使用定时器产生中断,在中断服务程序中完成延时操作。

PWM定时器可以用来实现脉冲宽度调制(PWM)功能,PWM 的输出占空比可以通过改变计数器初始值和重载值来实现。

计数器定时器也可以作为计数器使用。

在计数器模式下,定时器向计数器输入信号计数,并将计数值存入寄存器中。

定时器使用示例中断延时void init_timer0(unsigned int ms){TMOD &= 0xF0;TMOD |= 0x01;TH0 = ( - FOSC / 1000 * ms) >> 8;TL0 = ( - FOSC / 1000 * ms) & 0xFF;ET0 = 1;TR0 = 1;}void timer0_isr() __interrupt (1){static unsigned char cnt = 0;TH0 = ( - FOSC / 1000 * ms) >> 8;TL0 = ( - FOSC / 1000 * ms) & 0xFF;if(cnt++ >= 20){cnt = 0;// do something every 20 ms}}PWMvoid init_timer1(unsigned int freq, unsigned char duty_cycle) {TMOD &= 0x0F;TMOD |= 0x10;TH1 = ( - FOSC / freq / 2) >> 8;TL1 = ( - FOSC / freq / 2) & 0xFF;// calculate duty cycleunsigned int reload = (unsigned int)(FOSC / freq * duty_cycle / 100 / 2);// set duty cycleRCAP2H = reload >> 8;RCAP2L = reload & 0xFF;TR1 = 1;}结论定时器是 51 单片机中常用的外设之一,可以实现延时、PWM 等多种功能。

51单片机的定时器计数器

51单片机的定时器计数器
(1)确定工作方式字:对TMOD寄存器正确赋值; (2)确定定时初值:计算初值,直接将初值写入寄存器的TH0、TL0或TH1、TL1;
初值计算: 设计数器的最大值为M,则置入的初值X为: 计数方式:X=M-计数值 定时方式:由(M-X)T=定时值,得 X=M-定时值/T T为计数周期,是单片机的机器周期。(模式0 M为213,模式1 M为216,模式2和3 M为28)
振荡源
Tx引脚 GATE INTx TRx
÷ 12
° C/ T=0
K
S
°
°
°
C/ T=1

≥1
&
THx TLx
TFx
8位
15位
• T0(或T1)工作于13位定时、计数方式。 • 16位寄存器(THX+TLX)只用13位,TLX的高3位未用。
中断
3.定时器/计数器的工作方式
定时或计数之前程序初始化步骤:
• 0 停止 • 启动
触发方式选择
• 0 低电平 • 1 下降沿
2.定时器/计数器的控制
工作方式控制寄存器TMOD(89H) D7 D6 D5 D4 D3 D2 D1 D0
GATE C/T M1 M0 GATE C/T M1 M0
T1控制
GATE —— 门控位
T0控制
• GATE = 0 启动由TR0(或TR1)一位控制; • GATE = 1 启动受 TR0和/INT0 (或TR1和 /INT1 )两位控制。
定时脉冲信号 外部事件信号
定时 +1记数器
计数 计数初值
计数溢出
8051
1. 51单片机定时器/计数器的结构
内 部 结 构定 框时 图器

51单片机第六章 定时器与计数器

51单片机第六章 定时器与计数器

它重装初值。
6.3.2 方式1 方式1与方式0基本相同,只是方式1改用了16位计数器,即寄 存器TH的8位和TL的8位全部参与了操作。其逻辑电路结构如下图 所示(以T0为例)。
6.3.3 方式2 方式2把TL配置成一个可以自动重新装入初值的8位定时器/ 计数器,即把定时器/计数器看成一个8位寄存器TH和一个8位计 数器TL,其逻辑电路如下图所示。
6.4.3
定时器初值的计算
当C/ T = 0时,定时器/计数器T0或T1被 选为定时器。此时必须给定时器送定时初值, 这个初值也是送到 TH 和 TL 中的。 T0或T1在 该定时初值的基础上进行加法计数,并当计数 器从全“1”变为全“0”时自动产生定时溢出中 断请求。 在定时器方式下,计数器对机器周期进行计数。因此 ,定时器定时时间T的计算公式为: T=(M-X)T机器 式中,M为模值,和定时器的工作方式有关(同上);X为 定时初值 ; T机器是机器周期。
方式0:13为定时器/计数器
方式1:16为定时器/计数器 定时器/计数器的工作方式 方式2:可自动赋值的8位定时器/计数器
方式3: T0:两个独立的8为计数器。 T1:相当于TR1=0,T1不工作。
6.3.1
方式0
方式0是一个13位的定时器/计数器,由TH中的8位和TL中低5 位组成,其中TL中的高3位是弃之不用的。其逻辑电路结构如下图 所示(以T0为例)。
6.3.4 方式3 在前三种工作方式下,T0和T1功能是完全相同的,但在方 式3下T0和T1功能就不相同了。 若将T0设置为方式3,TL0和TH0被分成为两个互相独立的8 位计数器,如下图所示。
定时器T1无操作方式3状态,若将T1设置为方式3,就 会使T1立即停止计数,也就是保持原有的计数值,其作用 相当于使TR1=0,封锁与门,断开计数开关K。

C51定时器计数器详细讲解

C51定时器计数器详细讲解

多数情况下 不能满足要求
如何加大 延时时间
答案通Leabharlann 软件模拟成为 更多位数的定时器定时器每中断一次, 软件变量值增加1
定时器0/1
软件变量

定时器使用步骤
1
配置 定时器
2
设定时 器初值
3
启动 定时器
4
中断检 测
设定TMOD 设置THx和 寄存器中的相关位 TLx的初始值
将TCON中 的TFx位清0并 将TRx位置1
00:模式0 01:模式1 10:模式2 11:模式3
模式寄存器TMOD设置举例
现需要设置T0具有以下功能:
选择模式1 选择定时器功能 INT0引脚不参与启停控制
如何设置 TMOD
位号
位名
Bit7
GATE
Bit6
C/T
Bit5
M1
Bit4
M0
Bit3
GATE
Bit2
C/T
Bit1
M1
Bit0
„„
响应
中断程序的编写
中断的编程方法 配置中断
设定TMOD的相关位和THx、TLx的初始值


使能中断
编写ISR
TRx = 1,EA = 1
按照规则编写
ISR编写规则
函数名称 表明是中断服务函数
Warning!
不可直接调用ISR 必须让main函数 “看到”ISR原型
void isrName(void) interrupt n using i
8AH 8BH 8CH 8DH
复位值
00H 00H 00H 00H
定时/计数器模式0
当M1M0 = 00时,定时/计数器工作于模式0,使用TLx的低5位和THx 构成13位的加法计数器。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第六章定时器/计数器6.1 定时器的结构及工作原理6.2 定时器的控制6.3 定时器的工作模式及其应用第六章定时器/计数器实现定时一般有多种方法:1. 利用软件实现(延时程序)优点:简单,控制方便;缺点:CPU效率低。

2. 外部硬件实现:单稳态定时器、计数定时器优点:CPU效率高;缺点:修改参数麻烦。

3. 利用计数器实现输入脉冲定时器/计数器作用主要包括产生各种时标间隔、记录外部事件的数量等,是单片机中最常用、最基本的部件之一。

外来脉冲定时计数定时器/计数器功能示意图6.1 定时器/计数器的结构及工作原理6.1.1 定时器/计数器的基本结构MCS-51单片机有二个定时器/计数器,每个定时器/计数器由几个专用寄存器组成。

TMOD(89H )高四位TMOD(89H )低四位方式寄存器TCON(88H)TCON(88H)控制寄存器*8DH 8BH 8CH 8AH TH1 TL1TH0 TL0数据寄存器(16位)定时器T1定时器T0定时器/计数器的结构如下图所示。

定时器/计数器的基本结构框图申请P3.5or P3.4or 8DH 8BH8CH 8AH6.1.2 定时器/计数器的工作原理定时器/计数器结构原理图INTx P3.YGATE :门控制位:定时/计数控制位TC/x=0,1Y=2,3Z=4,5一. 对外部输入信号的计数功能当T0或T1设置为计数工作方式时,计数器对来自输入引脚P3.4(T0)和P3.5(T1)的外部信号计数。

若前一个机器周期采样值为1,后一个机器周期采样值为0,则计数器加1。

所以计数器计数的频率最高为fosc 的1/24。

BDEHT H >1个机器周期T L >1个机器周期L二. 定时功能:定时器/计数器的定时功能也是通过计数实现的,它的计数脉冲是由单片机的片内振荡器输出经12分频后产生的信号,即为对机器周期计数。

INTx P3.Y例如:晶振频率=12MHz 机器周期=1us ,计数1次=1us ,计数频为=1MHz 。

f=机器周期fmax=fosc/24计数频率f内部信号(片内振荡器)外部信号下降沿T0对应P3.4T1对应P3.5计数脉冲定时器计数器定时器/计数器的比较6.2 定时器的控制定时器/计数器的控制主要是通过以下几个寄存器实现的:TCON---定时器/计数器控制寄存器TMOD---定时器/计数器工作方式控制寄存器IE---中断允许控制寄存器6.2.1 定时器/计数器的工作方式寄存器TMOD定时器/计数器是一种可编程部件,在工作之前必须通过软件设定它的工作方式,即对工作方式寄存器TMOD 中每位进行设定。

T0TMOD 字节地址89HM0M1 C/ GATE M0 M1C/ GATE T T TMOD 不能位寻址。

上电复位时,TMOD 所有位均为零。

一、M1和M0工作方式控制位M0和M1为工作方式控制位,确定4种工作方式,如表7-1所示。

T0分成两个独立的8位计数器, T1在方式3时停止工作1 1自动重装入初值的8位计数器1 016位定时器/计数器0 113位定时器/计数器(TH 的8位和TL 的低5位) 0 0说明M1 M0二、定时器/计数器方式选择位1. =0 选择定时方式。

在定时方式中,以振荡输出时钟脉冲的12分频信号作为定时的计数信号,也就是每一个机器周期定时器加“1”,若晶振为12MHz ,则定时器的计数频率为1MHz 。

2. =1 选择计数功能。

在计数方式中,采用外部引脚T0(P3.4)、T1(P3.5)的输入脉冲作为计数脉冲,当外部输入脉冲发生1到0的负跳变时,计数器加1,最高计数频率为时钟频率的1/24。

T C/T C/T C/M0M1 C/ GATE M0 M1C/ GATE T0C/ =0 —定时;C/ =1 —对外计数。

定时:fosc/12 =1/(12/fosc)=1/T (机器周期)N 个方波T 计数:脉冲不等间隔波形等间隔,次数已定,时间确定, 即对机器周期进行计数。

左图定时时间为N*T每个下降沿计数一次确认一次负跳变需两个机器周期,所以,计数频率最高为fosc / 24。

T T三、GATE启动门控位1. GATE=0 时只要用软件使TR0(或TR1)置1就能启动定时器T0(或T1);2. GATE=1 时只有在INT0(或INT1)引脚为高电平的情况下,且由软件使TR0(或TR1)置1时,才能启动定时器T0(或T1)工作。

T0C/GATEM1M0M1C/GATEM0INTxP3.Yx=0,1Y=2,3Z=4,5对TMOD进行设置: MOV TMOD,#0CH MOV TMOD,#60H MOV TMOD,#6CH定时器/计数器工作方式寄存器TMOD的作用:1、设定定时器/计数器的工作方式;2、选定定时器/计数器是由片内信号作定时器计数或外部信号作计数器计数;3、设置定时器/计数器的启动方式。

6.2.2 定时器/计数器的控制寄存器TCON控制寄存器TCON的作用:1、通过设置TCON中的某些位来实现启动或停止定时器/计数器的运行(计数);2、当定时器/计数器计满溢出,或有外部中断请求时,TCON能标明溢出和中断情况。

控制寄存器TCON(88H)TF0TR1TR0TF1IT0IE0IT1IE18FH 8EH 8DH 8CH 8BH 8AH 89H 88HTF1:定时器T1溢出标志位当定时器T1溢出时,由硬件自动使TF1置1,并向CPU 申请中断。

CPU 响应中断后,由硬件自动对TF1清零。

TF1也可以用软件清零。

TR1:定时器T1运行控制位可由软件置1(或清零)来启动(或关闭)定时器T1,使定时器T1开始计数。

用指令:SETB TR1或CLR TR1 (置1或清0)IT0IE0IT1IE1TR0TF0TR1TF1控制寄存器TCON(88H)TF0:定时器T0溢出标志位。

其功能与TF1相同。

TR0:定时器T0运行控制位。

其功能与TR1相同。

IE1:外部中断1请求标志位。

IT1:外部中断1触发方式控制位。

IE0:外部中断0请求标志位。

IT0:外部中断0触发方式控制位。

IE1、IT1、IE0、IT0这4位已在第5章讲述。

可以对控制寄存器进行位寻址。

IT0IE0IT1IE1TR0TF0TR1TF1INTx P3.Y定时器/计数器结构原理图Z=4,56.3 定时器的工作模式及其应用6.3.1 工作模式0及应用M0=0, M1=0一、工作原理1、在方式0下,T0和T1工作在13位的定时/计数器方式,由TH的高8位和TL的低5位组成。

2、当T0的13位计数器加到全部为1以后,再加1就产生溢出,这时置TCON的TF0为1,同时把计数器全部变0,然后从0开始继续计数。

INTxP3.YTH0=0FFHTL0=1FHTF0=01111111111111+1TH0=00HTL0=00HTF0=1Z=4,5ORG 0000H 对于T0初值非零时LJMP MAINORG 000BHLJMP T0INTMAIN: SETB ET0SETB EASETB TR0LOOP: …………LJMP LOOPT0INT: CPL P1.0MOV TL0,#0CHMOV TH0,#0F0HRETI2、当= 0 时,工作方式为定时器,定时时间= (213 -T0初值)x12x 时钟周期定时范围:1工作周期~8192工作周期1、当= 1 时,工作方式为计数器,计数数值= (213-T0初值)计数值范围:1~8192(213 = 8192)TH0=0FFH TL0=01FH二、工作模式0时计数和定时范围TH0=00H TL0=00H加1溢出;加8192溢出。

T C/TC/如果单片机的晶振选为6.00MHz,则最长和最小定时时间分别为:最小定时时间((TH0)=0FFH,(TL0)=0FFH):[8192-(8192-1)]×1/6×10-6×12 = 2×10-6(s)= 2(us)最长定时时间((TH0)=00H,(TL0)=00H):(8192-0)×1/6×10-6×12 = 16384×10-6(s)= 16384(us)例:设定时器T0选择工作模式0,求最长定时时间,如果要实现定时时间为1ms,fosc=3MHz。

试确定T0的初值。

解:(1) 求最长定时时间当T0处于工作模式0时,加1计数器为13位。

T0最大定时时间对应于13位计数器T0的各位全为0,即:(TH0)=00H,(TL0)=00H。

最长定时时间为:Tmax=(213-0)x12x(10-6/3)= 32.768ms(2) 确定T0的初值定时时间=(213 -T0初值)x12x晶振周期则:T0初值=213-(1ms/4us)=8192-250=7942化成二进制用除2取余数法,得到的余数即为二进制数各位的数码,按余数的逆序排列。

转化成二进制为:1111100000110B按照低5位,高8位拆开:T0的低5位:TL0 = 00110B = 06HT0的高8位:TH0 = 11111000B = F8H例:利用定时器输出周期为2ms的方波, 输出为P1.0引脚。

设单片机晶振频率为3MHz。

解:2ms的方波是由间隔1ms的高低电平相间而成,因而只要每隔1ms对P1.0取反一次即可得到所需的方波。

因为:机器周期= 12÷3MHz = 4us所以,1ms内T0计数的次数:N=1ms÷4us=250由此可知: 使用方式0时的13位计数器即可。

1ms设计考虑:选用定时/计数器T0作定时器T0的初值:X=213 -250 = 7942转化成二进制:TH0=0F8H,TL0=06HTMOD初始化:TMOD=00000000B=00H(GATE=0,C/T=0,M1=0,M0=0)TCON初始化:启动TR0=1IE初始化:开放EA=1,定时器T0中断允许ET0=1程序清单如下:ORG 0000HAJMP STARTORG 000BHAJMP TOINTORG 0050H START: MOV SP, #60HMOV TH0, #0F8HMOV TL0, #06HMOV TMOD, #00HSETB TR0 ; 启动T0SETB ET0SETB EA MAIN:……AJMP MAIN TOINT: CPL P1.0MOV TL0, #06HMOV TH0, #0F8HRETIEND6.3.2工作模式1及应用M0=0,M1=1一、工作原理方式1和方式0的工作原理相同,唯一不同的是T0和T1工作在方式1时是16位的计数/定时器。

在方式1时,16位的初值分为高字节和低字节,分别送入TH和TL。

相关文档
最新文档