C51单片机的定时计数器(陆周整理)

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

GATE
C/T
M1
M0
GATE
C/T
M1
M0
资料参见《单片机初级教程——单片机基础》第二版 合立民(主编) 2010 年 7 月于广东深圳学习整理 陆周(LZ)
(2)工作方式寄存器 TMOD 各位名称及作用如下表:
GATE
C/T
M1
M0
GATE
C/T
M1
M0

D7
D6
D5
D4
D3
D2
D1
D0
名称 值
二、定时器/计数器的相关寄存器
控制和管理定时器/计数器 T0、T1 有 2 个寄存器,即工作方式寄存器 TMOD 和控制寄存器 TCON。
1、工作方式寄存器(TMOD):用于控制定时器/计数器的工作方式。
(1)工作方式寄存器 TMOD 各位的格式如下:
TMOD 地址
D7
D6
D5
D4
D3
D2
D1
D0
(89H)
2、控制寄存器(TCON):用于控制定时器/计数器的启/停、标志定时器的溢出和中断情况。
(1)控制寄存器 TCON 各位的格式如下:
TCON 地址
8FH
8EH 8DH
8CH
8BH
8AH
89H
88H
(88H)
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
资料参见《单片机初级教程——单片机基础》第二版 合立民(主编) 2010 年 7 月于广东深圳学习整理 陆周(LZ)
1、定时器模式:设置为定时器模式时,加 1 计数器是对内部机器周期计数(1 个机器周期等于 12 个振荡周期,即计数频率为晶振频率的 1/12)。计数值 N 乘以机器周 期 Tcy 就是定时时间 t 。
2、计数器模式:设置为计数器模式时,外部事件计数脉冲由 T0 或 T1 引脚输入到计数器。在每个机器周期的 S5P2 期间采样 T0、T1 引脚电平。当某周期采样到一高电 平输入,而下一周期又采样到一低电平时,则计数器加 1,更新的计数值在下一个机器周期的 S3P1 期间装入计数器。由于检测一个从 1 到 0 的下降沿需要 2 个机器周期,因 此要求被采样的电平至少要维持一个机器周期。当晶振频率为 12MHz 时,最高计数频率不超过 1/2MHz,即计数脉冲的周期要大于 2 μs。
开 始 计 数
禁 止 计 数
计 数 方 式 3 的接
和方
T2 不 能
(DECN=1)工作 收 脉
式3
作为串行
时,此位不会置 冲。
的发
口的时
位。
送脉
钟)
冲。
T2CON.1
T2CON.0
定时器/计数器 功能选择位
1
0
T2 为外 部事件 计数器 模式, 由引脚 P1.0 上 的下降 沿触 发。
T2 为内 部定时 器模 式,对 内部振 荡脉冲 12 分频 进行计 数。
资料参见《单片机初级教程——单片机基础》第二版 合立民(主编) 2010 年 7 月于广东深圳学习整理 陆周(LZ)
80C51 单片机定时器/计数器
一、定时器/计数器简介
定时/计数器的实质是加 1 计数器(16 位),由高 8 位和低 8 位两个寄存器组成。TMOD 是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON 是控制寄存器,控 制 T0、T1 的启动和停止及设置溢出标志。
1
0
IE1=1 时,表明外 外 部 中 断 部中断 1 向 CPU 申 1 设 置 为 请中断;IE1=0 时, 边 沿 触 发 表明外部中断 1 没 方式(下降 有向 CPU 申请中断 沿有效)
外部中断 1 设置为 电平触发 方式(低电 平有效)
外部中断 0 标志
外部中断 0
触发方式控制
1
0
IE0=1 时,表明外 外 部 中 断 部中断 0 向 CPU 申 0 设 置 为 请中断;IE0=0 时, 边 沿 触 发 表明外部中断 0 没 方式(下降 有向 CPU 申请中断 沿有效)
T0、T1 结构与操作完全相同,均为具有自动重装初值的 8 位计数器。
用作非常精确的定时,特别适用于串行口波特率发生器。
方式 3
只有 T0 可以设置方式 3,T1 不能设置为此工作方式。此方式下,T0 被拆 通常在需要用到 2 个 8 位定时器时才采用此方式。 为 2 个独立的 8 位计数器 TL0 和 TH0。
资料参见《单片机初级教程——单片机基础》第二版 合立民(主编) 2010 年 7 月于广东深圳学习整理 陆周(LZ)
六、定时/计数器 T2
1、T2 的寄存器:控制寄存器 T2CON 和方式控制寄存器 T2MOD。
(1)控制寄存器 T2CON 的各位格式如下:
T2CON 地址
D7
D6
D5
D4
D3
D2
加 1 计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经 12 分频后送来;一个是 T0 或 T1 引脚输入的外部脉冲源。每来一个脉冲计数器加 1,当 加到计数器为全 1 时,再输入一个脉冲就使计数器回零,且计数器的溢出使 TCON 中 TF0 或 TF1 置 1,向 CPU 发出中断请求(定时/计数器中断允许时)。如果定时/计数器工 作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。由此可见,由溢出时计数器的值减去计数初值才是加 1 计数器的计数值。
此过程表示如果初值为 64536,再记 1000 个脉冲就到了 65536,此时定时器产生溢出向 CPU 申请中断,正好定时 1ms。
注 意:一旦产生溢出,计数器种的值就变为 0,此时须立即把计数初值 64536 装入计数器, 否则将从 0 开始定时,定时时间不再是 1ms。具有自动重装功能的方式 2 不必由用户软件重新装 入初值。
捕捉或常数重装 入方式选择位
1
0
T2 工 作 于
捕捉方式。


EXEN2=1
时,T2EX 端
(P1.1)的
负跳变引发
捕捉动作。
T2 工 作 于
常数自动重
装入方式。


EXEN2=1
时,T2EX 端
(P1.1)的
负跳变引发
常数重装入
动作。
当 TCLK=1 或 RCLK=1 时, 此位无效,T2 被强制工作 于自动重装入方式,定时 器溢出时引发常数自动重 装。
五、定时器 T0、T1 的工作方式
定时器 工作方式
特性比较
一般用途
T0、T1
方式 0 方式 1 方式 2
T0、T1 结构与操作完全相同,均为 13 位计数器。
因计算初值麻烦且易出错,一般情况避免使用此工作方式。
T0、T1 均为 16 位计数器,结构和操作与方式 0 基本相同,惟一不同的是 常用作定时器或计数器,还可用以测量外信号的脉冲宽度。 方式 1 中定时器是以全 16 位二进制数参与操作。
资料参见《单片机初级教程——单片机基础》第二版 合立民(主编) 2010 年 7 月于广东深圳学习整理 陆周(LZ)
(3)方式控制寄存器 T2MOD 的各位格式如下:
T2MOD 地址
D7
(C9H)
——
D6 ——
率发
(P1.1)
EXEN2=1 , 则 在 特率发
生器
有 1 个负
T2 溢出时,硬件将 此位置 1,须由用 户软件清 0。 当 RCLK 或 TCLK 为 1 时,即使溢出也 不会将此位置 1。
T2EX 端(P1.1) 发生的负跳变使 此位置 1,如果 此时允许 T2 中 断,则将向 CPU 申请中断。此位 须由软件清 0。 当 T2 在加 1/减 1
外部中断 0 设置为 电平触发 方式(低电 平有效)

1、AT89S52 增加的定时器 T2 的中断标志详见定时器资料的 T2CON 寄存器。 2、在边沿触发方式中,为保证 CPU 在 2 个机器周期内检测到先高后低的负跳变,则输入高低电平的持续时间起码要保持 12 个振荡周期。

3、外部中断 0 或外部中断 1 在电平触发方式中,CPU 响应中断后不能自动清除 IE0 或 IE1 标志,也不能由软件清除该标志,故在中断返回前,必须撤销引脚 P3.2 或 P3.3 上的低电平,否则将引起再次中断而出错。
13 位 计数器
M1 M0
01
10
方式 1 方式 2
16 位 计数器
溢出后自 动重装入 初值的 8 位计数器
11
定时 器1 停止 计数
1
为 1 时,TR0 置 1 同时引 脚 INT0 也 为 1 才能启 动定时器 T0 工作
0
为 0 时, TR0 置 1 将立即启 动定时器 T0 工作
定时器 T0
T2CON.6
T2 外部 中断标志位
T2CON.5
串行口接收 时钟选择位
1
0
T2CON.4
串行口发送 时钟选择位
1
0
T2CON.3
T2 外部触发 允许控制位
1
0
T2CON.2
T2 的计数 控制位 10
T2 工
当 T2 在捕捉方
作于
若 T2EX
式和常数自动装 T2 工
波特
引脚
入 方 式 下 , 若 作于波
三、定时器/计数器的初始化与启动 步骤
任务
1
确定工作方式
2
装入定时或计数的初值
3
根据需要开放定时器/计数器中断
4
启动定时器/计数器
操作方式
对工作方式寄存器 TMOD 赋值 直接将初值写入 TH1、TL1 或 TH0、TLO。 直接对 IE 寄存器的定时器中断位赋值。 1、若设置为软件启动,则将 TR1 或 TR0 置 1 即启动 2、若设置外中断引脚电平启动,则须给外引脚加启动电平。
M=28 = 256 M=28 = 256
初值计算方法
初值 = 最大计数值 – 计数值 即: X = M - N
举例说明
若 80C51 时钟频率为 12MHz,要求产生 1ms 的定时,初值计算过程如下:时钟频率为 12MHz 时,计数器每次加 1 所需时间为 1μs,如果要产生 1ms 的定时时间,则需要“加 1”1000 次,1000 即为计数初值,如果在工作方式 1 下,则初值 X=M-N=65536-1000=64536=FC18H。
作 用
备 注
定时器 T1
T1 门控位
T1 功能选择
T1 工作方式选择
T0 门控位
1
为 1 时, TR1 置 1 同 时引脚 INT1 也 为 1 才能启动 定时器 T1 工作
0
1
为 0 时, TR1 置 1 T1 为 将立即 计 数 启动定 器 方 时 器 T1 式 工作
0
T1 为 定时 器方 式
00 方式 0
(C8H)
TF2
EXF2 RCLK TCLK EXEN2 TR2
D1 C/T2
D0 CP/RL2
(2) 控制寄存器 T2CON 各位名称及作用如下表:
TF2
EXF2
RCLK
TCLK
EXEN2
TR2
C/T2
CP/RL2

D7
D6
D5
D4
D3
D2
D1
D0
名称 (值)
作 用
T2CON.7
T2 中断 溢出标志位
T0 功能选 择
10
T0 T0 为为 计定 数时 器器 方方 式式
T0 工作方式选择
M1 M0
00
01
10
11
方式 0 方式 1 方式 2 方式 3
13 位 计数 器
16 位 计数 器
溢出后 自动重 装入初 值的 8 位 计数器
定时器 T0 分成 2 个 8 位计 数器
1、TMOD 定时器不能进行位寻址,只能用字节传送指令设置定时器工作方式。 2、复位时 TMOD 定时器所有位均为 0,定时器处于停止工作状态。
资料参见《单片机初级教程——单片机基础》第二版 合立民(主编) 2010 年 7 月于广东深圳学习整理 陆周(LZ)
四、定时器/计数器初值的确定方法
工作方式
计数位数
方式 0 方式 1 方式 2 方式 3
13 位计数器 16 位计数器 8 位计数器 T0 分为 2 个 8 位计数器
最大计数值 M= 213 = 8192 M= 216 = 65536
生器方 式,此 时 T2 的溢出 脉冲作 串行口 方式 1 和方式
T2 的 溢出脉 冲作接 收时钟 脉冲。
方式, 此时 T2 的 溢出 脉冲 作串 行口 方式 1
T2 的 溢出 脉冲 作发 送时 钟脉 冲。
跳变,则 会引发捕 捉或常数 重装入动 作,同时 使 EXF2 置 1。(注 意此时
T2EX 引 脚(P1.1) 的电平变 化 对 T2 无任何影 响。
(2)控制寄存器 TCON 各位名称及作用如下表:
TF1
TR1
TF0
TR0
IE1

TCON.7
TCON.6
TCON.5
TCON.4
TCON.3
ITFra Baidu bibliotek TCON.2
IE0 TCON.1
IT0 TCON.0
名称 (值)
作 用
T1 溢出 中断标志
T1 计数溢出时该位 被置 1,CPU 响应中 断后自动清零。也 可用软件查询该标 志位,并用软件清 零。
T1 启停控 制
10
关 启动 闭 定时 定 器 T1 时 工作 器
T1
T0 溢出 中断标志
T0 计数溢出时该位 被置 1,CPU 响应中 断后自动清零。也可 用软件查询该标志 位,并用软件清零
T0 启停控制
1
0
关 启动 闭 定时 定 器 T0 时 工作 器
T0
外部中断 1 标志
外部中断 1
触发方式控制
相关文档
最新文档