51单片机定时器的使用和详细讲解__特别是定时器2
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
定时器的讲解和使用 有对定时器2的详细讲解
2021/10/10
1
章节概述 很棒
8.1 概述 8.2 定时器T0和T1的结构 8.3 定时器工作模式 8.4 定时器T2
2021/10/10
2
8.1 概述
定时器是单片机的重要功能模块之一,在检测、 控制领域有广泛应用。
定时器常用作定时时钟,以实现定时检测、定 时响应、定时控制,并且可用于产生ms宽的 脉冲信号,驱动步进电机
在工作模式T 2中,(2定5 时-X 器6) 的T定c时y时间由下式确定:
只有T0可工 作于此模式
2021/10/10
21
模式2的结构图如图8-6所示。
8位加法 计数器
2021/10/10
图8-6 方式2结构图
初值寄 存器
22
4.工作模式3 当T0M(T1M)=11时定时器设定为工作模式3,只有定
Tcy
2021/10/10
8
2.模式寄存器(TMOD)
TMOD用来选择定时器0、1的工作模式,低4位 用于定时器0,高4位用于定时器1,其组成如图 8-2所示。
T1
T0
00:模式0
方式 01:模式1 方式
选择
10:模式2 11:模式3
选择
2021/10/10
图8-2 模式寄存器组成
9
3.控制寄存器(TCON)
18
2.工作模式1 T0M(T1M)=01时定时器设定为工作模式1,此时
定时器0(定时器1)被设置为16位定时器。此时 TH0、TL0都是8位加法计数器。其他与工作方式0 相同。 定时器的定时时间
T(65-5X)3T 6cy
计数初始值
计数 2n 初 -定值 时时 (此 间 n 处 1)6 Tcy
专用硬件电路定时:可实现精确的定时和计数,但参数 调节不便。
可编程定时器/计数器:不占用CPU时间,能与CPU并行 工作,实现精确的定时和计数,又可以通过编程设置其 工作方式和其它参数,因此使用方便。
2021/10/10
4
定时器的基本工作原理是:利用计数器对固定周 期的脉冲计数,通过寄存器的溢出来触发中断。
2021/10/10
19
模式1的结构图如图8-5所示。16位加法计器图8-5 方式1结构图
2021/10/10
20
3.工作模式2
当T0M(T1M)=10时定时器设定为工作模式2,此 时定时器0(定时器1)被设置为可自动重载的8 位定时器。
TL0为8位加法计数器, TH0为存放该8位加法计数器初值的寄存器。 TH0、TL0的初值都由程序预置。
∴TH1=0x15,TL0=0xA0。
2021/10/10
26
(2)初始化程序
包括T1初始化和中断系统初始化,主要是对IP、IE、 TCON、TMOD的相应位进行正确的设置,并将时 间常数送入T1。一般将初始化操作放在主程序中完 成,当程序规模较大时,应编写单独的初始化程序, 以利于程序的模块化设计。
解:
让P1.0每45ms取反一次即可实现。定时器的单次定时时间 不可能达到45ms,如果设定16位的工作模式1,最大定时 时间也才为4.9152ms。
可让定时器多次定时产生4.5ms的定时时间,如让T1工作 在方式1,单次定时时间为4.5ms,那么T1中断10次就是 45ms的时间。
2021/10/10
2021/10/10
14
定时器的定时时间
T(81-X 9) 2Tcy
计数初始值X
X2n-定时时(此 间n处 1)3 Tcy
最大定时能力:
Tma8x19 T2cy
2021/10/10
15
模式0的结构图如图8-4所示。1计3位数加器法
门控位
GATE=0 定时器不受
控于外部信号;仅打 图8-4 方式0结构图
计数器 递增/递 减使能位
33
2.控制寄存器T2CON
寄存器T2CON 控制定时器2 的工作模式,其各位功 能如图8-9所示。
上溢/下溢标志位
捕获/重载模式选择位
外部事件标志位 0:重载;1:捕获
展示T2EX引脚状态
外部使能控制位
启动/停止控制位
1:使能T2EX引脚控制;
0:禁止 T2EX引脚控制;
2021/10/10
31
8.4.2 定时器T2控制寄存器
1.模式寄存器T2MOD 寄存器T2MOD 用来选择定时器2 的工作模式。其
组成如图8-8所示。
2021/10/10
32
启动边沿 选择位
捕获模式/重载模式 的边沿选择位
预分频使能位
外部启动 使能位
2021/10/10
图8-8 T2MOD各位功能
图8-9 T2CON各位功能
2021/10/10
5
XC866单片机有三个16位的定时器——定时器0、 定时器1和定时器2。
定时器0、1各具有四种工作模式;定时器2有两 种工作模式。
定时器0、1和定时器2的任何一种工作模式均可 通过程序对相应寄存器进行设置来选择。
定时器在定时时间到时,可以由程序决定是否产 生中断请求信号,进而判断是否执行中断程序。
具体应用步骤:
1)根据需要的定时时间,结合单片机的晶振频率, 计算出寄存器的初始值
2)根据需要开中断
3)启动定时器
若已规定用软件启动,则可把TR0、TR1或TR2置“1”; 若已规定由外中断引脚电平启动,则需给外引脚步加启动 电平。当实现了启动要求后,定时器即按规定的工作方式 和初值开始计数或定时。
25
(1)确定定时常数 假设使用fOSC的2分频作为计数源,则Tcy=2/ fOSC =2/ (26.67×106)=75ns 由公式 计数 2n 初 -定值 时时 (此 间 n 处 1)6
Tcy
可知计数初值
X 65 7 54 * .1 5 3 5 m 6 0 m 6s 5 s 5 0 3 x 1A 6 0 5
定时器0 和定时器1 完全兼容,均可设定为四 种不同的工作模式,如表8-1 所示。寄存器 TMOD 的位域TxM选择定时器的工作模式。
两个定时器在模式0、1 和2 时独立工作;在 模式3 时具有特定功能。
2021/10/10
12
表8-1 定时器0 和定时器1 工作模式
2021/10/10
13
1.工作模式0
TCON高4位用于控制定时器0、1的运行;低4位用于控制外 部中断,与定时器无关。
定时器0、1运行控 制位TR0(TR1): TR0(TR1)=1 启动 TR0(TR1)=0 停止
2021/10/10
定时器0、1溢出标志
TF0(TF1):
图8-3 控制寄存器组成 溢出时该位由硬件自
动置1,响应中断后,
29
8.4 定时器T2 8.4.1 概述
定时器2 是一个16 位通用计数器,其具有 两种操作模式:16 位自动重载模式和16 位 捕获模式。
如果预分频功能被禁止,定时器2工作时, 16 位通用加法计数器以12分频的周期脉冲 计数,每个周期16位通用加法计数器加1或 减1。
2021/10/10
当T0M(T1M)=00时定时器设定为工作模式0,此 时定时器工作于13位定时状态。
其中TH0是高8位加法计数器,TL0是低5位加法计 数器(TL0只用了低5位,高3位未用)。TL0加法 计数溢出时向TH0进位,TH0加法计数溢出时硬件 置TF0=1。
加法计数器对机器周期脉冲Tcy计数,每个机器周 期TL0加1。
将置位TF1, 并且在ET1 置位时产生中断。
2021/10/10
23
图8-7 方式3结构图
2021/10/10
24
T0和T1的应用举例
例 若fOSC=26.67MHz,T1工作于方式1,产生45ms的定 时中断,TF1为其中断源标志。试编写主程序和中断服务 程序,使P1.0产生周期为90ms的方波。(忽略中断响应 时间和指令执行时间)
但是,无论中断请求信号是否产生,当定时器在 定时时间到时,定时器的溢出标志位TF0(TF1) 由硬件置“1”。
2021/10/10
6
8.2 定时器T0和T1的结构
定时器T0和T1的结构如图8-1所示。
核心寄存 器——16位 加法计数器
2021/10/10
图8-1 定时器T0和T1结构图
定时器模 式寄存器
while(1);
//死循环, 查询等待TF1置位,产生方波
}
2021/10/10
28
程序清单如下(中断服务程序片段):
{
TF1=0;
TH1=0x15;
TL1=0xA0;
//重填初值
If (count!=0)
count--;
else
{count=10;P1_0=!P1_0;}
}
2021/10/10
开与门,是定时器仅
有TR位控制;
GATE=1 定时器受控
于外部信号,此时要
求20T21R/1=0/110;
16
例题:生成周期为1.2 ms的等宽正方波。机器晶 振26.67MHz。使用T0以方式0工作,由P0.0输出
1.2 ms
机器周期:37.5ns。计数周期Tcy是机器脉冲 的2分频,因此Tcy=75ns;
7
1.16位加法计数器
16位加法计数器是定时器的核心,图8-1中用寄存 器TH0、TL0及TH1、TL1表示。
T0加法计数器的高8位和低8位分别用TH0、TL0表 示
T1加法计数器的高8位和低8位分别用TH1、TL1 表示
高8位和第8为可分别单独使用
当定时器工作时,加法计数器对内部机器周期脉 冲Tcy计数。
定时时间0.6ms 。
以0.6 ms为周期在P1.0端交替输出高低电平。
2021/10/10
17
计数初值 2n -定时时间 Tcy
X 2 1 30 .6 * 160 81 8 90 2 1 09 0 0 x 20 C 75
高 8位 TH 00000010x1006
T0从192开始计数,直到 超过8192即溢出,置
定时和计数功能最终都是通过计数实现的,若 计数的事件源是周期固定的脉冲,则可以实现 定时功能,否则只能实现计数功能。因此可以 将定时和计数功能由一个部件实现。
2021/10/10
3
实现定时和计数的方法一般有:软件定时、专用 硬件电路和可编程定时器/计数器三种方法。
软件定时:执行一个循环程序进行时间延迟。定时准确,不 需要外加硬件电路,但增加CPU开销。
void main( void )
{ TMOD=0x10; P1_0=0;
//T1方式1
注:寄存器 所在页的选 择没有列出
TH1=0x15;
//初值
TL1=0xA0;
IEN0=0x08; //允许T1中断
IP|=0x08;
IPH|=0x08;
//TF1中断为高级中断
TR1=1
EA=1;
// 总开中断
低 5位 TL 00000000x0000
TF0=1,产生中断信号
定时器初始化程序 MOV TL0, #0X00 MOV TH0,#0X06 MOV TMOD,#0X00 SETB ET0 SETB TR0
定时器中断服务程序 PUSH …. …… CPL P0_0 …… POP …
2021/10/10
由硬件自动清0
10
4.中断使能寄存器(IEN0)
IEN0中的ET0(ET1)位控制定时器0、1是否产生中断请求 信号。为0时不产生中断请求信号,为1时允许产生中断请 求信号。其结构如图8-4所示。
2021/10/10
图8-3 中断使能寄存器组成
定时器0中 断使能位
定时器0中 断使能位
11
8.3 定时器工作模式
(3)中断服务程序
中断服务程序除了完成要求的方波产生这一工作之
外,还要注意将时间常数重新送入T1中,为下一次
产生中断作准备。
2021/10/10
27
程序清单如下(主程序):
#include <c8051f020.h>
sbit P1_0 = P1^0;
int count=10;
//10次T1中断为45ms
时器0可以工作在工作模式3下。如把定时器1设置为工 作模式3,则定时器1停止工作。 TL0、TH0成为两个独立的8位加法计数器。它的工作情 况与模式0、模式1类似,差别在于定时范围为:
T(25-X 6)Tcy
模式3的结构图如图8-7所示。 TL0 占用定时器0 的控制位:GATE0,TR0 和TF0 TH0占用定时器1 的控制位TR1 和TF1,TH0 溢出时
30
定时器2由T2MOD寄存器、T2CON存器、功能 存器TH2、TL2、RC2H、RC2L等电路构成。
TH2、TL2构成16位通用计数器。
RC2H、RC2L作为16位寄存器,在自动重载模式 中RC2H、RC2L作为16位通用计数器的16位初值 寄存器
在捕捉模式中,当引脚T2EX上出现下降沿跳变 时,把TH2、TL2的当前值捕捉到RC2H、RC2L中 去。
2021/10/10
1
章节概述 很棒
8.1 概述 8.2 定时器T0和T1的结构 8.3 定时器工作模式 8.4 定时器T2
2021/10/10
2
8.1 概述
定时器是单片机的重要功能模块之一,在检测、 控制领域有广泛应用。
定时器常用作定时时钟,以实现定时检测、定 时响应、定时控制,并且可用于产生ms宽的 脉冲信号,驱动步进电机
在工作模式T 2中,(2定5 时-X 器6) 的T定c时y时间由下式确定:
只有T0可工 作于此模式
2021/10/10
21
模式2的结构图如图8-6所示。
8位加法 计数器
2021/10/10
图8-6 方式2结构图
初值寄 存器
22
4.工作模式3 当T0M(T1M)=11时定时器设定为工作模式3,只有定
Tcy
2021/10/10
8
2.模式寄存器(TMOD)
TMOD用来选择定时器0、1的工作模式,低4位 用于定时器0,高4位用于定时器1,其组成如图 8-2所示。
T1
T0
00:模式0
方式 01:模式1 方式
选择
10:模式2 11:模式3
选择
2021/10/10
图8-2 模式寄存器组成
9
3.控制寄存器(TCON)
18
2.工作模式1 T0M(T1M)=01时定时器设定为工作模式1,此时
定时器0(定时器1)被设置为16位定时器。此时 TH0、TL0都是8位加法计数器。其他与工作方式0 相同。 定时器的定时时间
T(65-5X)3T 6cy
计数初始值
计数 2n 初 -定值 时时 (此 间 n 处 1)6 Tcy
专用硬件电路定时:可实现精确的定时和计数,但参数 调节不便。
可编程定时器/计数器:不占用CPU时间,能与CPU并行 工作,实现精确的定时和计数,又可以通过编程设置其 工作方式和其它参数,因此使用方便。
2021/10/10
4
定时器的基本工作原理是:利用计数器对固定周 期的脉冲计数,通过寄存器的溢出来触发中断。
2021/10/10
19
模式1的结构图如图8-5所示。16位加法计器图8-5 方式1结构图
2021/10/10
20
3.工作模式2
当T0M(T1M)=10时定时器设定为工作模式2,此 时定时器0(定时器1)被设置为可自动重载的8 位定时器。
TL0为8位加法计数器, TH0为存放该8位加法计数器初值的寄存器。 TH0、TL0的初值都由程序预置。
∴TH1=0x15,TL0=0xA0。
2021/10/10
26
(2)初始化程序
包括T1初始化和中断系统初始化,主要是对IP、IE、 TCON、TMOD的相应位进行正确的设置,并将时 间常数送入T1。一般将初始化操作放在主程序中完 成,当程序规模较大时,应编写单独的初始化程序, 以利于程序的模块化设计。
解:
让P1.0每45ms取反一次即可实现。定时器的单次定时时间 不可能达到45ms,如果设定16位的工作模式1,最大定时 时间也才为4.9152ms。
可让定时器多次定时产生4.5ms的定时时间,如让T1工作 在方式1,单次定时时间为4.5ms,那么T1中断10次就是 45ms的时间。
2021/10/10
2021/10/10
14
定时器的定时时间
T(81-X 9) 2Tcy
计数初始值X
X2n-定时时(此 间n处 1)3 Tcy
最大定时能力:
Tma8x19 T2cy
2021/10/10
15
模式0的结构图如图8-4所示。1计3位数加器法
门控位
GATE=0 定时器不受
控于外部信号;仅打 图8-4 方式0结构图
计数器 递增/递 减使能位
33
2.控制寄存器T2CON
寄存器T2CON 控制定时器2 的工作模式,其各位功 能如图8-9所示。
上溢/下溢标志位
捕获/重载模式选择位
外部事件标志位 0:重载;1:捕获
展示T2EX引脚状态
外部使能控制位
启动/停止控制位
1:使能T2EX引脚控制;
0:禁止 T2EX引脚控制;
2021/10/10
31
8.4.2 定时器T2控制寄存器
1.模式寄存器T2MOD 寄存器T2MOD 用来选择定时器2 的工作模式。其
组成如图8-8所示。
2021/10/10
32
启动边沿 选择位
捕获模式/重载模式 的边沿选择位
预分频使能位
外部启动 使能位
2021/10/10
图8-8 T2MOD各位功能
图8-9 T2CON各位功能
2021/10/10
5
XC866单片机有三个16位的定时器——定时器0、 定时器1和定时器2。
定时器0、1各具有四种工作模式;定时器2有两 种工作模式。
定时器0、1和定时器2的任何一种工作模式均可 通过程序对相应寄存器进行设置来选择。
定时器在定时时间到时,可以由程序决定是否产 生中断请求信号,进而判断是否执行中断程序。
具体应用步骤:
1)根据需要的定时时间,结合单片机的晶振频率, 计算出寄存器的初始值
2)根据需要开中断
3)启动定时器
若已规定用软件启动,则可把TR0、TR1或TR2置“1”; 若已规定由外中断引脚电平启动,则需给外引脚步加启动 电平。当实现了启动要求后,定时器即按规定的工作方式 和初值开始计数或定时。
25
(1)确定定时常数 假设使用fOSC的2分频作为计数源,则Tcy=2/ fOSC =2/ (26.67×106)=75ns 由公式 计数 2n 初 -定值 时时 (此 间 n 处 1)6
Tcy
可知计数初值
X 65 7 54 * .1 5 3 5 m 6 0 m 6s 5 s 5 0 3 x 1A 6 0 5
定时器0 和定时器1 完全兼容,均可设定为四 种不同的工作模式,如表8-1 所示。寄存器 TMOD 的位域TxM选择定时器的工作模式。
两个定时器在模式0、1 和2 时独立工作;在 模式3 时具有特定功能。
2021/10/10
12
表8-1 定时器0 和定时器1 工作模式
2021/10/10
13
1.工作模式0
TCON高4位用于控制定时器0、1的运行;低4位用于控制外 部中断,与定时器无关。
定时器0、1运行控 制位TR0(TR1): TR0(TR1)=1 启动 TR0(TR1)=0 停止
2021/10/10
定时器0、1溢出标志
TF0(TF1):
图8-3 控制寄存器组成 溢出时该位由硬件自
动置1,响应中断后,
29
8.4 定时器T2 8.4.1 概述
定时器2 是一个16 位通用计数器,其具有 两种操作模式:16 位自动重载模式和16 位 捕获模式。
如果预分频功能被禁止,定时器2工作时, 16 位通用加法计数器以12分频的周期脉冲 计数,每个周期16位通用加法计数器加1或 减1。
2021/10/10
当T0M(T1M)=00时定时器设定为工作模式0,此 时定时器工作于13位定时状态。
其中TH0是高8位加法计数器,TL0是低5位加法计 数器(TL0只用了低5位,高3位未用)。TL0加法 计数溢出时向TH0进位,TH0加法计数溢出时硬件 置TF0=1。
加法计数器对机器周期脉冲Tcy计数,每个机器周 期TL0加1。
将置位TF1, 并且在ET1 置位时产生中断。
2021/10/10
23
图8-7 方式3结构图
2021/10/10
24
T0和T1的应用举例
例 若fOSC=26.67MHz,T1工作于方式1,产生45ms的定 时中断,TF1为其中断源标志。试编写主程序和中断服务 程序,使P1.0产生周期为90ms的方波。(忽略中断响应 时间和指令执行时间)
但是,无论中断请求信号是否产生,当定时器在 定时时间到时,定时器的溢出标志位TF0(TF1) 由硬件置“1”。
2021/10/10
6
8.2 定时器T0和T1的结构
定时器T0和T1的结构如图8-1所示。
核心寄存 器——16位 加法计数器
2021/10/10
图8-1 定时器T0和T1结构图
定时器模 式寄存器
while(1);
//死循环, 查询等待TF1置位,产生方波
}
2021/10/10
28
程序清单如下(中断服务程序片段):
{
TF1=0;
TH1=0x15;
TL1=0xA0;
//重填初值
If (count!=0)
count--;
else
{count=10;P1_0=!P1_0;}
}
2021/10/10
开与门,是定时器仅
有TR位控制;
GATE=1 定时器受控
于外部信号,此时要
求20T21R/1=0/110;
16
例题:生成周期为1.2 ms的等宽正方波。机器晶 振26.67MHz。使用T0以方式0工作,由P0.0输出
1.2 ms
机器周期:37.5ns。计数周期Tcy是机器脉冲 的2分频,因此Tcy=75ns;
7
1.16位加法计数器
16位加法计数器是定时器的核心,图8-1中用寄存 器TH0、TL0及TH1、TL1表示。
T0加法计数器的高8位和低8位分别用TH0、TL0表 示
T1加法计数器的高8位和低8位分别用TH1、TL1 表示
高8位和第8为可分别单独使用
当定时器工作时,加法计数器对内部机器周期脉 冲Tcy计数。
定时时间0.6ms 。
以0.6 ms为周期在P1.0端交替输出高低电平。
2021/10/10
17
计数初值 2n -定时时间 Tcy
X 2 1 30 .6 * 160 81 8 90 2 1 09 0 0 x 20 C 75
高 8位 TH 00000010x1006
T0从192开始计数,直到 超过8192即溢出,置
定时和计数功能最终都是通过计数实现的,若 计数的事件源是周期固定的脉冲,则可以实现 定时功能,否则只能实现计数功能。因此可以 将定时和计数功能由一个部件实现。
2021/10/10
3
实现定时和计数的方法一般有:软件定时、专用 硬件电路和可编程定时器/计数器三种方法。
软件定时:执行一个循环程序进行时间延迟。定时准确,不 需要外加硬件电路,但增加CPU开销。
void main( void )
{ TMOD=0x10; P1_0=0;
//T1方式1
注:寄存器 所在页的选 择没有列出
TH1=0x15;
//初值
TL1=0xA0;
IEN0=0x08; //允许T1中断
IP|=0x08;
IPH|=0x08;
//TF1中断为高级中断
TR1=1
EA=1;
// 总开中断
低 5位 TL 00000000x0000
TF0=1,产生中断信号
定时器初始化程序 MOV TL0, #0X00 MOV TH0,#0X06 MOV TMOD,#0X00 SETB ET0 SETB TR0
定时器中断服务程序 PUSH …. …… CPL P0_0 …… POP …
2021/10/10
由硬件自动清0
10
4.中断使能寄存器(IEN0)
IEN0中的ET0(ET1)位控制定时器0、1是否产生中断请求 信号。为0时不产生中断请求信号,为1时允许产生中断请 求信号。其结构如图8-4所示。
2021/10/10
图8-3 中断使能寄存器组成
定时器0中 断使能位
定时器0中 断使能位
11
8.3 定时器工作模式
(3)中断服务程序
中断服务程序除了完成要求的方波产生这一工作之
外,还要注意将时间常数重新送入T1中,为下一次
产生中断作准备。
2021/10/10
27
程序清单如下(主程序):
#include <c8051f020.h>
sbit P1_0 = P1^0;
int count=10;
//10次T1中断为45ms
时器0可以工作在工作模式3下。如把定时器1设置为工 作模式3,则定时器1停止工作。 TL0、TH0成为两个独立的8位加法计数器。它的工作情 况与模式0、模式1类似,差别在于定时范围为:
T(25-X 6)Tcy
模式3的结构图如图8-7所示。 TL0 占用定时器0 的控制位:GATE0,TR0 和TF0 TH0占用定时器1 的控制位TR1 和TF1,TH0 溢出时
30
定时器2由T2MOD寄存器、T2CON存器、功能 存器TH2、TL2、RC2H、RC2L等电路构成。
TH2、TL2构成16位通用计数器。
RC2H、RC2L作为16位寄存器,在自动重载模式 中RC2H、RC2L作为16位通用计数器的16位初值 寄存器
在捕捉模式中,当引脚T2EX上出现下降沿跳变 时,把TH2、TL2的当前值捕捉到RC2H、RC2L中 去。