2019最新第6章8951单片机的定时器计数器物理
第6章AT89C51定时器计数器
所示 , 图中Tcy为机器周期。
图6- 12
6.4 定时器/计数器的编程和应用 4种工作方式中 ,方式0与方式1基本相同 , 由于方式0是为兼容
MCS-48而设 ,初值计算复杂 ,在实际应用中 ,一般不用方式 0 ,而采用方式1。 6.4. 1 方式1应用 例6- 1 假设系统时钟频率采用6MHz ,要在P1.0上输出一个周期 为2ms 的方波 ,如图6- 13所示。
M1 、M0=01 , 16位的计数器。
图6-5 6.2.3 方式2 计数满后自动装入计数初值。
M1 、M0= 10 ,等效框图如下:
图6-6
TLX作为常数缓冲器 , 当TLX计数溢出时 ,在置“ 1 ”溢出标志 TFX的同时 ,还自动的将THX中的初值送至TLX ,使TLX从初 值开始重新计数。
定时器/计数器的方式2工作过程如图6-7 (X=0, 1) 。
图6-7 省去用户软件中重装初值的程序 ,来精确定时。
6.2.4 方式3 增加一个附加的8位定时器/计数器 , 从而具有3个定时器/计数
器。
只适用于定时器/计数器T0 。T1不能工作在方式3 。 T1方式3时相当于TR1=0 ,停止计数(此时T1可用来作串行口
图6-8( a)
图6-8(b)
2. T0工作在方式3下T1的各种工作方式 当T1用作串行口的波特率发生器时 , T0才工作在方式3 。 T0为方式3时 , T1可定为方式0 、方式1和方式2 ,用来作为串
行口的波特率发生器 , 或不需要中断的场合。 ( 1)T1工作在方式0
图6-9
(2) T1工作在方式1
单片机应用技术实例教程第6章 51单片机的定时计数器
前一页
6.4.4定时计数器值的读取
定时计数器在运行过程中,程序可能要求取得当前的定时值,但是由于TH0/TH1寄存器和 TL0/TL1寄存器是分开的,不可能同时读取,这就有可能由于在读取其中一个寄存器时另外一 个寄存器正在改变而造成得到一个错误的数据。对于这种情况,在程序设计时可以考虑用小误 差来代替大误差的情况,即用定时计数器的数据寄存器低位上的误差来代替高位上的误差。程 序应该先读取定时器高8位数据寄存器TH0/TH1,再读取低8位数据寄存器TL0/TL1。还有另外 一种情况,即读取TH0/TH1后TL0/TL1对高位产生了进位,如果出现这种情况,读出的数据同 样会存在较大的误差。对于这种情况,可以考虑在读取低位寄存器后再次读取高位寄存器并且 和第一次取得的数值进行比较,如果不相同则再次重复操作的方式来避免,例6.8给出了这种 算法。 【例6.8】定时计数器的数据寄存器的值读取 (实例代码详见教材)
前一页
6.2.2 控制寄存器TCON
TCON是定时计数器控制寄存器,其内部结构如下表所示,在51单片机复位后初始化值为所有 位都被清零。
前一页
6.2.3数据寄存器TH0、TL0、和TH1、TL1
TH0、TL0/TH1、TL1分别是T0/T1的数据高位/低位寄存器,均为8位。当定时计数器收到一个 驱动事件(定时、计数)后,对应的数据寄存器的内容加1,当数据寄存器的值到达最大时, 将产生一个溢出中断,在单片机复位后所有寄存器的值都被初始化为0x00,这些寄存器都不能 位寻址。
前一页
首页
6.2 51单片机定时计数器的寄存器
6.2.1工作方式控制寄存器TMOD 6.2.2控制寄存器TCON 6.2.3数据寄存器TH0、TL0、和TH1、TL1
第6章+MCS-51单片机的定时器与计数器
第6章 MSC-51的定时器/计数器
6.1 基本结构
两个16位的定时器/计数器,即定时器0(T0)和定 时器1(T1)。它们实际上都是16位加1计数器。
第6章 MSC-51的定时器/计数器
6.1 基本结构
第6章 MSC-51的定时器/计数器
定时器的控制
工作模式寄存器TMOD 控制器寄存器TCON
第6章 MSC-51的定时器/计数器
1 0
Gun P0.0 P0.1
1 0
Target
8051
Machine Frequency = 12 MHz. The transit time=(21H)(20H)*1uS
例6-3 当T0(P3.4)引脚上发生负跳变时,从P1.0 引脚上输出一个周期为1ms的方波,如图所示。 (系统时钟为6MHz)
第6章 MSC-51的定时器/计数器
方式 2 的应用举例 (1)工作方式选择
T0为方式1计数,初值 0FFFFH,即外部计数输 入端T0(P3.4)发生一次负跳变时,T0加1且溢出, 溢出标志TF0置“1”,发中断请求。在进入T0中断程 序后,把F0标志置“1”,说明T0引脚上已接收了负 跳变信号。 T1定义为方式2定时。在T0引脚产生一次负跳变 后,启动T1每500s产生一次中断,在中断服务程序 中对P1.0求反,使P1.0产生周期1ms的方波。
第6章 MSC-51的定时器/计数器
方式1 的应用举例
例6-1 假设系统时钟频率采用6MHz,要在P1.0 上输出一个周期为2ms的方波,如图所示。
第6章 MSC-51的定时器/计数器
方式1 的应用举例
例:设T0工作在模式1,定时时间为1ms,f=6MHz。 编程实现其定时功能。定时时间到,P1.0取反。 (1)计算初值X 设初值为X,则有: (216-X)×2×10-6=1×10-3 X=65036 X=FE0CH=1111111000001100B。 T0的初值为:TH0=0FEH TL0=0CH
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 。
第6章 AT89S51单片机的定时器计数器
TMOD的低2位为11时,T0被选为方式3,各引脚与T0 的逻辑关系如图6-8。
定时器/计数器T0分为两个独立的8位计数器TL0和TH0, TL0使用T0的状态控制位C/T*、GATE、TR0、TF0,
而TH0被固定为一个8位定时器(不能作为外部计数 模式),并使用定时器T1的状态控制位TR1和TF1,同 时占用定时器T1的中断请求源TF1。 2.T0工作在方式3时T1的各种工作方式 一般情况下,当T1用作串行口的波特率发生器时, T0才工作在方式3。T0处于工作方式3时,T1可定为方 式0、方式1和方式2,用来作为串行口的波特率发生器, 或不需要中断的场合。
32
(2)初始化程序设计 采用定时器中断方式工作。包括定时器初始化和中断系 统初始化,主要是对寄存器IP、IE、TCON、TMOD的相 应位进行正确的设置,并将计数初值送入定时器中。
(3)程序设计 还要注意将计数初值重新装入定时器,为下一次产生中断
做准备。
中断服务子程序除了完成所要求的产生方波的工作之外,
了确保某一给定电平在变化之前能被采样一次,则这一
电平至少要保持一个机器周期。
故对外部输入信号的要求如图6-12所示,图中Tcy
为机器周期。
图6-12 对外部计数输入信号的要求
30
6.4 定时器/计数器的编程和应用 4种方式,方式0与方式1基本相同,只是计数位数不同。 方式0初值计算复杂,一般不用方式0,而用方式1。 6.4.1 方式1的应用 【例6-1】假设系统时钟频率采用6MHz,在P1.0引脚上 输出一个周期为2ms的方波,如图6-13。
37
(1)计算计数初值X 因为(216 − X)×2 ×10−6 = 10−1,所以X = 15536 = 3CB0H 因此 TH0 = 3CH,TL0 = B0H。 (2)10次计数的实现 对于中断10次的计数,采用B寄存器作为中断次数计数器。 (3)程序设计 参考程序如下:
MCS-51单片机的定时器计数器
【例 6-3】 设 T1 作定时器,以模式 1 工作,定时时 间为 10 ms;T0 作计数器,工作在模式 2,T0(P3.4)引脚上 发生一次事件(脉冲)即溢出。 解 T1 的时间初值为 (216 - Tc) ×2 µ = 10 ms s Tc = EC78H T0 的计数初值常数为 FFH。
初始化程序:
TMOD,#16H ;T1定时模式1,T0计数模式2 TL0,#0FFH ;T0时间常数送TL0 TH0,#0FFH ;T0时间常数送TH0 TL1,#78H ;T1时间常数(低8位)送TL1 TH1,#0ECH ;T1时间常数(高8位)送TH1 TR0 ;置TR0为1,允许T0启动计数 TR1 ;置TR1为1,允许T1启动计
单片机复位后,TCON寄存器的所有位均为0.
2. 工作方式控制寄存器TMOD
高4位用于定时器1,低4位用于定时器0
① M1,M0:工作模式选择位。 定时器/计数器四种工作模式选择如表6-1所示。
表 6-1 工作方式选择表
M1 M0 0 0 1 1 0 1 0 1 方 式 0 1 2 3 13 位定时器/计数器 16 位定时器/计数器 自动装入时间常数的 8 位定时器/计数器 对 T0 分为两个 8 位独立计数器;对 T1 置方式 3 时停止工作 说 明
方式2适合于用作较精确的脉冲信号发生器。
4. 方式3—2个8位方式
仅T0可以工作在方式3,T1处于方式3时停止计数。 此时,T0分成2个独立的计数器—TL0和TH0,前者 用原来T0的控制信号(TR0、TF0),后者用原来 T1的控制信号(TR1、TF1)。
(1)TH0由TR1启动/停止,溢出TF1 (2)TL0由TR0启动/停止,溢出TF0 (3)TH0只能定时,TL0可以定时/计数,且都是8位。
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可以在定时模式或计数模式下工作,通过设置计数值和时钟源频率,实现精确的定时功能或测量外部
事件的时间间隔或频率。
编程则是必不可少的,通过配置寄存器和编写中断服务程序来实现定时器的工作。
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。
第6章 STC89C52单片机定时计数器
精选完整ppt课件
29 29
方法一、中断方式:
MAIN: HERE:
ORG LJMP ORG LJMP ORG MOV MOV MOV MOV SETB SETB SETB AJMP
0000H
MAIN
000BH
T0P
0100H
SP,#60H
;设置堆栈指针
TMOD,#00H ;T0为定时、方式0、门控GATE0=0
精选完整ppt课件
25 25
实际定时时间Tc = x • Tp
式中Tp为机器周期,Tc为所需定时时间,x为所需计数次数,主频和Tc一般 是已知值,在求得Tp后就可求得所需计数值x,再求x的补码,即求得定时的 计数初值。(x)补=2n - x 例如:设定时时间为2ms,机器周期Tp为2μs,可求得定时计数次数为:
当实现了启动要求之后,定时器就按规
定的工作方式和初值开始计数或定时。
精选完整ppt课件
14 14
因为定时器/计数器是作“加1”计数,并在计满溢 出时产生中断,初值X可以这样计算:
X = M - 计数值(计数次数) 例1:在6MHZ主频下,要求产生1ms的定时,计算初值
分析: 因为定时器每“加1”一次所需的时间为2μs,如果 要产生1ms的定时,需加500次,500即为计数值。 方式1下工作: 初值 X =M-计数值=65536-500=FE0CH
在模式0、1和2,T0和T1的工作方式相同, 在模式3,两个定时器的方式不同。下面以T1 为例,分述各种工作方式的特点和用法。
精选完整ppt课件
17 17
1.方式0
精选完整ppt课件
18
2.方式1
精选完整ppt课件
第6章单片机的定时器计数器
定时/计数器的功能
定时/计数器的核心部件是二进制加1计数器 (TH0、TL0或TH1、TL1) 。
1. 定时功能----计数输入信号是内部时钟脉冲, 每个机器周期使寄存器的值加1。所以,计数 频率是振荡频率的1/12。
2. 计数功能----计数脉冲来自相应的外部输入 引脚,T0为P3.4,T1为P3.5。
6.1 MCS-51定时/计数器 概述
51系列内部有2个16位的定时/计数器T0、T1
功能:
定时 计数 串行口的波特率发生器
定时/计数器的可编程特性: ⑴ 确定其工作方式是定时还是计数 ⑵ 预置定时或计数初值 ⑶ 当定时时间到或计数终止时,要不要发中断请求 ⑷ 如何启动定时或计数器工作
回目录 上页 下页
MSB
LSB
TCON (88H)
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
与外部中断INT1、INT0有关 已在中断系统介绍
T1、T0 启/停控制位
“1” 启动工作 “0” 停止
T1、T0 溢出标志位 “1” 有溢出 “0” 无溢出
亦可由指令清“0”
回目录 上页 下页
* 各标志位应注意的问题
回目录 上页 下页
S2TR 0(I N0T GA)TE
TCON
申请 中断
TF1 D7
TR1
溢出
TF0
TH0 TL0
TR0
8位 8位
D0
TMOD
S2 1 S1
T0引脚
1 M0 D0 0 M1
C/T
0
&
机器周期
GATE
M0
≥1
1
M1
单片机原理与应用课件第6章定时器计数器
T0溢出,
CLR TR0
;T0溢出, 关断T0
• CPL P1.0
;P1.0的状态求反
• SJMP LOOP
• 查询程序虽简单,但CPU必须要不断查询TF0标志,工作效率低。
• 【例5-4】系统时钟为6MHz,编写定时器T0产生1s定时的 程序。
• 基本思想:采用定时器模式。因定时时间较长,首先确 定采用哪一种工作方式。时钟为6MHz的条件下,定时器 各种工作方式最长可定时时间:
• LJMP IT0P
;转T0中断处理子程序IT0P
• ORG 1000H
;主程序入口
• MAIN: MOV SP,#60H ;设堆栈指针
• MOV B,#0AH ;设循环次数10次
•
MOV TMOD,#01H ;设置T0工作在方式1定时
• MOV TL0,#0B0H;给T0设初值
• MOV TH0,#3CH
• MOV TMOD,#26H 定时
;对T0,T1初始化,T0方式1计数,T1方式2
• MOV TL0,#0FFH ;T0置初值
• MOV TH0,#0FFH
• SETB ET0
;允许T0中断
•
MOV TL1,#06H ;T1置初值
•
MOV TH1,#06H
•
CLR F0
;把T0已发生中断标志F0清0
作为串行口波特率产生器)。
• 1.工作方式3下的T0
• TMOD的低2位为11时,T0的工作方式被选为方式3, 定时 器/计数器T0分为两个独立的8位计数器TL0和TH0,TL0使 用T0的状态控制位C/、GATE、TR0、TF0 ,而TH0被固定 为一个8位定时器(不能作为外部计数模式),并使用定 时器T1的状态控制位TR1和TF1,同时占用定时器T1的中 断请求源TF1。
单片机原理及应用教程c语言版第6章mcs51单片机的定时器计数器
方波周期T
定时时间t:
周期为1000µs的方波要求 t =周期/2 = 1000/2 = 500(µs)
定时时间t
对应计数值:N = t/机器周期 = 500/1 = 500
N=500>256,所以选择模式1。
模式字:
TMOD=0000 0001B = 0x01 (3)计算初值X
X = 65536 – N = 65036 = 0xfe0c
6.1.2 MCS-51单片机定时器/计数器的工作原理
• 控制信号TRx=1时,定时器启动。 • 当定时器由全1加到全0时计满溢出,TFx=1,
向CPU申请中断;同时,定时器从0开始继续 计数。
6.2 定时器/计数器T0、T1
主要内容
6.2.1 T0、T1的特殊功能寄存器 6.2.2 T0、T1的工作模式 6.2.3 T0、T1的使用方法
计数信号由片内振荡电路提供,振荡脉冲n分 频送给计数器,每个机器周期计数器值增1。 • C/T =1 ,为计数器
计数信号由Tx引脚、和P1.0)输入,每输入一有 效信号,相应的计数器中的内容进行加1
计数器的最高计数频率为:fosc/24 1)每1个输入脉冲的下降沿使计数器计1个数 2)每1个机器周期对引脚采样1次,当上1个机器 周期采样为高、本机器周期采样为低为1个下降沿。
6.2.2 T0、T1的工作模式
信号源
振荡器 12分频 C/T=0
0
T0(P3.4)
TR0 GATE (P3.2)
C/T=1 1
& +
运行控制
TL0 TH0 (8位) (8位)
计数器
TF0 中断
溢出中断
图6-6 T0模式1原理结构
6.2.2 T0、T1的工作模式
51单片机的定时器计数器
初值计算: 设计数器的最大值为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°
≥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单片机定时器/计数器的结构
内 部 结 构定 框时 图器
单片机第6章 定时器计数器
M1、M0——工作模式选择位。 、 工作模式选择位。 工作模式选择位 由于有M1和 两位 可以有四种工作方式。 有 种 两位, 由于有 和M0两位,可以有四种工作方式。T0有4种 工作模式,T1有3种工作模式。选择情况如表6-1所示。 工作模式, 有 种工作模式。选择情况如表 所示。 种工作模式 所示 定时器/计数器 不能工作在模式3。设置T1的 计数器T1不能工作在模式 定时器 计数器 不能工作在模式 。设置 的 M1M0=11,T1将停止工作。 将停止工作。 , 将停止工作
C/T——定时或计数方式选择位 。 定时或计数方式选择位 C/T=0时,选择定时功能 。 定时功能 = 时 选择定时 C/T=1时,选择计数方式。 计数方式 = 时 选择计数方式。 通过引脚T0( 通过引脚 (P3.4)和T1(P3.5)、T2(P1.0) ) 、 对外部信号进行计数。 对外部信号进行计数。 在每个机器周期的S5P2期间,CPU采样 期间, 在每个机器周期的 期间 采样 引脚的输入电平。 引脚的输入电平。若前一机器周期采样值为 1,下一机器周期采样值为 ,则计数器增 , ,下一机器周期采样值为0,则计数器增1, 此后的机器周期S3P1期间,新的计数值装入 期间, 此后的机器周期 期间 计数器。 计数器。
定时工作方式
定时器计数89C51片内振荡器输出经12分频后的脉 冲,即每个机器周期使定时器(T0或T1)的数值加1 直至计满溢出。当89C51采用12MHz晶振时,一个机 器周期为1µs,计数频率为1MHz。
计数工作方式
• 通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。 当输入脉冲信号产生由1至0的下降沿时定时器的值加1。 • CPU检测一个1至0的跳变需要两个机器周期,故最高计数 频率为振荡频率的1/24。 • 为了确保某个电平在变化之前被采样一次,要求电平保持 时间至少是一个完整的机器周期。
第6章MCS-51单片机定时器、计数器
中断请求标志 启动定时/计数器 触发方式选择
0 停止 1 启动
0 低电平 1 下降沿
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
与定时器有关
与外部中断有关
字节地址为88H,它可进行位寻址,位地址为8FH~88H。
第
6.2.3 定时器/计数器的工作方式
六
章
通过对TMOD寄存器中M0、M1位进行设置,可选择4种工作方式。
机
SETB ET0
;允许T0中断
定 时
SETB EA SETB TR0 SJMP $
;CPU开中断 ;启动T0 ;等待中断
器
ISER: MOV TL0,#06H
;T0中断服务子程序,重置T0 初值
/
MOV TH0,#0F8H
;
计
CPL P1.0
;P1.0取反
数
RETI
器
END
第 【例6-2】使用定时器/计数器1的方式0,晶振频率为6MHz,以查询
工作方式1,取 M1M0=01;设定为软件启动定时器,取GATE=0。
TMOD低4位与T1无关,一般都取0,所以TMOD的控制字为10H。
单
片
机
(2)计算定时初值。
定
晶振频率 f soc 为6MHz,机器周期 Tj 12/ fosc 12/ 6106 2s
时 器
定时初值X 216 T /Tj =65536-40000=25536=0110001111000000B =63C0H
定时功能:是通过对单片机内部时钟脉冲的计数来实现的。 计数输入信号是内部时钟脉冲,每个机器周期使寄存
器的值加1。所以,计数频率是振荡频率的1/12。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TCON用于控制T0、T1的启动和停止计数,同时包含 了T0、T1的状态。
T0、T1不论是工作在定时器模式还是计数器模式,都 是对脉冲信号进行计数,只是计数信号的来源不同。
计数器模式是对加在T0(P3.4)和T1(P3.5)两个引 脚上的外部脉冲进行计数(见图6-1)。
图6-13 P1.0引脚上输出周期为2ms的方波
31
基本思想:方波周期T0确定,T0每隔1ms计数溢出1次, 即T0每隔1ms产生一次中断,CPU响应中断后,在中断服务 子程序中对P1.0取反,如图6-13所示。为此要做如下几步 工作。
(1)计算计数初值X
机器周期 = 2s = 2 10−6s
18
定时器/计数器的方式2为自动恢复初值(初值自动装入)的 8位定时器/计数器。
TLx(x = 0,1)作为常数缓冲器,当TLx计数溢出时,在溢出 标志TFx置“1”的同时,还自动将THx中的初值送至TLx, 使TLx从初值开始重新计数。定时器/计数器的方式2工作 过程如图6-7所示。
19
图6-6 定时器/计数器方式2逻辑结构框图
34
PT0M0: MOV TL0,#0CH ;T0初始化,装初值的低8位
MOV TH0,#0FEH ;装初值的高8位
SETB ET0
;允许T0中断
89H,不能位寻址,格式如图6-2所示。
7
图6-2 TMOD格式
8位分为两组,高4位控制T1,低4位控制T0。 TMOD各位的功能。 (1)GATE———门控位。 0:仅由运行控制位TRx(x = 0,1)来控制定时器/计数 器运行。 1:用外中断引脚( 或 )上的电平与运行控制位TRx 共同来控制定时器/计数器运行。
对于外部输入信号的占空比并没有什么限制,但为了确保某 一给定电平在变化之前能被采样一次,则这一电平至少要 保持一个机器周期。
29
故对外部输入信号的要求如图6-12所示,图中,Tcy为 机器周期。
图6-12 对外部计数输入信号的要求
30
6.4 定时器/计数器的编程和应用 4种方式,方式0与方式1基本相同,只是计数位数不同。方 式0初值计算复杂,一般不用方式0,而用方式1。 6.4.1 方式1的应用 【例6-1】假设系统时钟频率采用6MHz,在P1.0引脚上输出 一个周期为2ms的方波,如图6-13所示。
字节地址为88H,可位寻址,位地址为88H~8FH。格式 如图6-3所示。
图6-3 TCON格式
10
在第5章已介绍与外部中断有关的低4位。这里仅介绍与 定时器/计数器相关的高4位功能。
(1)TF1、TF0——计数溢出标志位。 当计数器计数溢出时,该位置“1”。使用查询方式时, 此位作为状态位供CPU查询,但应注意查询有效后,应使 用软件及时将该位清“0”。使用中断方式时,此位作为中 断请求标志位,进入中断服务程序后由硬件自动清“0”。 (2)TR1、TR0——计数运行控制位。 TR1位(或TR0位)= 1,启动定时器/计数器工作的必要 条件。
25
(2)T1工作在方式1 当T1的控制字中M1、M0 = 01时,T1工作在方式1,工 作示意图如图6-10所示。
图6-10 T0工作在方式3时T1为方式1的工作示意图
26
(3)T1工作在方式2 当T1的控制字中M1、M0 = 10时,T1的工作方式为方 式2,工作示意图如图6-11所示。
图6-11 T0工作在方式3时T1为方式2的工作示意图
定时器/计数器T0分为两个独立的8位计数器TL0和TH0,
TL0使用T0的状态控制位C/ 、GATTE、TR0、
22
TF0 ,而TH0被固定为一个8位定时器(不能作为外部计数 模式),并使用定时器T1的状态控制位TR1和TF1,同时 占用定时器T1的中断请求源TF1。
2.T0工作在方式3时T1的各种工作方式 一般情况下,当T1用作串行口的波特率发生器时,T0才工
20
图6-7 方式2工作过程
该方式可省去用户软件中重装初值的指令执行时间,简 化定时初值的计算方法,可以相当精确地确定定时时间。
21
6.2.4 方式3 是为增加一个8位定时器/计数器而设,使AT89S51单片 机具有3个定时器/计数器。 方式3只适用于T0,T1不能工作在方式3。T1处于方式 3时相当于TR1= 0,停止计数(此时T1可用来作为串行口 波特率产生器)。 1.工作方式3下的T0 TMOD的低2位为11时,T0的工作方式被选为方式3, 各引脚与T0的逻辑关系如图6-8所示。
12
图6-4 定时器/计数器方式0逻辑结构框图
13位计数器,由TLx(x = 0,1)低5位和THx高8位构成。 TLx低5位溢出则向THx进位,THx计数溢出则把TCON中 的溢出标志位TFx置“1”。
13
图6-2的C/ T 位控制的电子开关决定了定时器/计数器的
两种工作模式。
(1)C/ T =0,电子开关打在上面位置,T1(或T0)为
33
参考程序如下:
ORG 0000H RESET: AJMP MAIN
ORG 000BH AJMP IT0P ORG 0100H MAIN: MOV SP,#60H MOV TMOD,#01H ACALL PT0M0 HERE: AJMP HERE
;程序入口 ;转主程序 ;T0中断入口 ;转T0中断处理程序IT0P ;主程序入口 ;设堆栈指针 ;设置T0为方式1定时 ;调用初始化子程序PT0M0 ;原地循环,等待中断
TFx、TRx)与方式0相同。
16
图6-5 定时器/计数器方式1逻辑结构框图
17
6.2.3 方式2 方式0和方式1的最大特点是计数溢出后,计数器为全0。因
此在循环定时或循环计数应用时就存在用指令反复装入计 数初值的问题。这不仅影响定时精度,也给程序设计带来 麻烦。方式2就是针对此问题而设置的。 当M1、M0为10时,定时器/计数器处于工作方式2,这时定 时器/计数器的等效逻辑结构如图6-6所示(以定时器T1为 例,x= 1)。
样。如在第一个机器周期中采得的值为1,而在下一个机器 周期中采得的值为0,则在紧跟着的再下一个机器周期S3P1
28
期间,计数器加1。由于确认一次负跳变要花2个机器周期, 因此外部输入的计数脉冲的最高频率为系统振荡器频率的 1/24。
例如,选用6MHz频率的晶体,允许输入的脉冲频率最高为 250kHz。如果选用12MHz频率的晶体,则可输入最高频 率为500kHz的外部脉冲。
第6章 AT89S51单片机的
定时器/计数器
成都理工大学工程技术学院 自动化工程系
1
第6章 目录 6.1 定时器/计数器的结构
6.1.1 工作方式控制寄存器TMOD 6.1.2 定时器/计数器控制寄存器TCON 6.2 定时器/计数器的4种工作方式 6.2.1 方式0 6.2.2 方式1 6.2.3 方式2 6.2.4 方式3 6.3 对外部输入的计数信号的要求
2
6.4 定时器/计数器的编程和应用 6.4.1 方式1的应用 6.4.2 方式2的应用 6.4.3 方式3的应用 6.4.4 门控制位GATEx的应用—测量脉冲宽度 6.4.5 实时时钟的设计
3
内容概要 工业检测与控制,许多场合都要用到计数或定时功能。 例如,对外部脉冲进行计数,产生精确的定时时间等。 AT89S51片内有两个可编程的定时器/计数器T1、T0,可 满足需要。 本章介绍定时器/计数器的结构与功能,2种工作模式和 4种工作方式,以及相关的2个特殊功能寄存器TMOD和 TCON各位的定义及其编程,最后介绍定时器/计数器的编 程及应用实例。
11
TR1位(或TR0位) = 0,停止定时器/计数器工作。 该位可由软件置“1”或清“0”。 6.2 定时器/计数器的4种工作方式 4种工作方式分别介绍如下。 6.2.1 方式0 M1、M0=00时,被设置为工作方式0,等效逻辑结构框图 如图6-4所示(以定时器/计数器T1为例,TMOD.5、 TMOD.4 = 00)。
14
(1) GATE = 0,A点(见图6-4)电位恒为1,B点电位仅取决 于TRx状态。TRx = 1,B点为高电平,控制端控制电子开关 闭合,允许T1(或T0)对脉冲计数。TRx = 0,B点为低电平, 电子开关断开,禁止T1(或T0)计数。
(2) GATE = 1,B点电位由INTx(x = 0,1)的输入电平和TRx 的状态这两个条件来确定。当TRx = 1,且 INTx=1时,B点 才为1,控制端控制电子开关闭合,允许T1(或T0)计数。 故这种情况下计数器是否计数是由TRx和INTX* 两个条件来共 同控制的。
定时器工作模式,把时钟振荡器12分频后的脉冲作为计数 信号。
(2)C/ T =1,电子开关打在下面位置,T1(或T0)为
计数器工作模式,计数脉冲为P3.4(或P3.5)引脚上的外 部输入脉冲,当引脚上发生负跳变时,计数器加1。
GATE位状态决定定时器/计数器的运行控制取决TRx一
个条件还是TRx和 INTx(x = 0,1)引脚状态两个条件。
8
(2)M1、M0——工作方式选择位 M1、M0共有4种编码,对应于4种工作方式的选择,如 表6-1所示。
(3)C/ T —计数器模式和定时器模式选择位
9
0:为定时器工作模式,对单片机的晶体振荡器12分频 后的脉冲进行计数。
1:为计数器工作模式,计数器对外部输入引脚T0 (P3.4)或T1(P3.5)的外部脉冲(负跳变)计数。 6.1.2 定时器/计数器控制寄存器TCON
定时器工作模式是对单片机的时钟振荡器信号经片内
6
12分频后的内部脉冲信号计数。由于时钟频率是定值,所以 可根据计数值计算出定时时间。
计数器的起始计数都是从计数器初值开始的。单片机复位时 计数器的初值为0,也可用指令给计数器装入一个新的初 作模式和工作方式,字节地址为