第6章 MCS-51单片机定时器计数器
单片机讲义1(第六章定时器计数器)
脚与T0的逻辑关系框图如下图所示。
定时器/计数器T0分为2 个独立的8位计数器:TL0和 TH0。 TL0使用T0的状态控制位 C/ T GATE、TR0、 INT0 ,而TH0被 固定为1个8位定时器(不能 为外部计数模式),并使用 定时器T1的状态控制位TR1 和TF1,同时占用定时器T1 的中断请求源TF1。
6.2.2 方式1
6.2.3 方式 2
6.2.4 方式 3
在方式3下,T1只作 波特率发生器。在这样 情况下,T1将TF1、TR1 资源出借给T0使用。因 此,在方式3下,T0可以 构成两个独立的计数器 结构,如图6-6(a)和 图6-6(b)所示。
TL0构成一个完整的8 位定时器/计数器,而 TH0则是一个仅能对 fOSC/12脉冲计数的8位 定时器。
(l)计算初值 初值的计算公式为: X 2 n
设:需要装入T0的初值为X,则有:
t f
osc
12
16
其中:n=13、16、8 (由计数器的的工作方 式来决定n 的取值)
∵X= 2
n
t . f osc 现 n 16 12
t 1 ms
f osc 6 M Hz
∴X= 2
∵ X= 2
n
t . f osc 12
现 n 16 f osc 6 M Hz t 100 ms
所以:X=15 536=3CB0H 因此:TH0=3CH, TL0=B0H
(3)10次计数的实现 对于中断10次计数,可使T0工作在定时方式,采用循环程序的方法实现。 (4)程序设计 ORG 0000H RESET:LJMP MAIN ;上电,转主程序入口MAIN 0RG 000BH ;T0的中断入口地址 LJMP IT0P ;转T0中断处理程序ITOP ORG 1000H MAIN: MOV SP,#60H ;设堆栈指针 M0V B,#0AH ;设循环次数10次
第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 ;查询是否溢出
▪
第6章MCS-51的定时器
• 28×12×1/12MHz=28us=256us=0.256ms
工作方式2_补充说明
8位计数器 TL0作计数器,TH0作预置寄存器使用,计数溢出时 ,TH0中的计数初值自动装入TL0,即TL0是一个自动 恢复初值的8位计数器。 在使用时,要把计数初值同时装入TL0和TH0中。 优点是提高定时精度,减少了程序的复杂程度。
工作方式1_应用分析
定时和计数的应用 计数范围:1~216 计数计算公式:计数值=216-计数初值 机器周期(MC):=12/Fosc=12/时钟频率 定时范围:1机器周期~216机器周期 定时计算公式:定时时间=(216-定时初值)×
机器周期 如果晶振频率为6MHz ,则最大定时时间为: 216×12×1/6MHz=217us=131072us=131.072ms 如果晶振频率为12MHz ,则最大定时时间为: 216×12×1/12MHz=216us=65536us=65.536ms 工作方式1的定时计数功能切换模式,与工作方式
0完全一样;而启动定时计数器的模式,也与工作方式 0完全一样。计数量方式1更大,可完全取代方式0。
6.2.3 方式2
方式2为自动重装初值的8位计数方式。
TCON
TF1 D7
申请 中断
TR1
溢出8位计数器
1
TF0
TL0
TR0
0 &
TH1重TH装0 单元 ≥1 8位
D0
T0引脚
机器周期 1
INT0引脚
6.1.1 工作方式控制寄存器TMOD TMOD(工作方式寄存器):选择定时器/计数器T0、T1的工作 模式和工作方式,字节地址为89H,不能位寻址。
8位分为两组,高4位控制T1,低4位控制T0。 (1)GATE——门控位
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单片机的定时器计数器
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的计数器)。
单片机原理及其接口技术--第6章 MCS-51单片机定时器计数器
单片机原理及其接口技术
T/C方式2的逻辑结构图
1
TH1/TH0
T8
T7
T6
T5
T4
T3
T2
T1
寄存器 计数器
束
TL1/TL0
T8
T7
T6
T5
T4
T3
T2
T1
主目录
上一页
下一页
结
单片机原理及其接口技术
4、方式3 M1M0=11 T0和T1有不同的工作方式
C/T0:
TH0和TL0被拆成2个独立的8位计数器。
28),向CPU申请中断,标志位TF1自动置位,若中
断是开放的,则CPU响应定时器中断。当CPU响应
中断转向中断服务程序时,由硬件自动将该位清0。
&
加1计数器 & 1
主目录
上一页
下一页
结
束
EA
ET1
单片机原理及其接口技术
2个模拟的位开关,前者决定了T/C的工作状态:当1单片机有2个特殊功能寄存器TCON和TMOD: TCON:用于控制定时器的启动与停止,中断标志。 TMOD:用于设置T/C的工作方式。
主目录
上一页
下一页
结
束
单片机原理及其接口技术
1.定时器控制寄存器TCON
88H TCON
位地址
D7
D6
D5
D4
D3
D2
D1
D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 8F 8E 8D 8C 8B 8A 89 88
过实时计算求得对应的转速。
主目录 上一页 下一页 结 束
单片机原理及其接口技术 对于定时/计数器来说,不管是独立的定时器芯片还是单
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单片机内部定时器计数器
第六章 MCS-51单片机内部定时器
6.3.1 模式0及应用
在这种模式下,16位寄存器只用了13位。 其中,TL0的高3位未用,TH0占8位。当 TL0的低5位溢出时,向TH0进位。当TH0 溢出时,向中断标志位TF0进位,并申请中 断。 因此,可通过查询TF0 是否置位或考 察中断是否发生来判断定时器/计数器0的 操作完成与否。
(2)计算1ms定时T0的初值:
机器周期为(1/fOSC)×12=[1/(12×106)]×12=1μs, 设T0的 计数初值为X,则 (213-X)×1×10-6=1×10-3ms
X=213-1×10-3/(1×10) -6 =8192-1000=7192D=1110000011000
高8位: E0H 低5位: 18H
fosc=12MHz, 采用查询方式。
解:方波周期 T=1/100Hz=0.01s=10ms 用T1定时5ms 计数初值 X为: X=216-12×5×103/12=60536=EC78H 程序如下:
MOV TMOD, #10H ;T1模式1,定时方式
SETB TR1 LOOP:MOV TH1,#0ECH
例:晶振为12MHZ ,则计数周期为
T=12/(12*106)Hz =1微秒
最短的定时 周期
计数器工作方式:
当定时器/计数器为计数工作方式时,通过
引脚T0和T1对外部信号计数,外部脉冲的下降
沿触发计数
在每个机器周期的
采样过程:
S5P2期间采样引脚
当输入脉冲信号从1到0的负跳变时,计数器就 自动加1。 由于检测一个由1到0的跳变需要两 个机器周期,所以 计数的最高频率为振荡频 率的1/24。为了确保给定电平在变化前至少被 采样一次,外部计数脉冲的高低电平均需保持 一个机器周期以上。(占空比没有限制)
第6讲 定时器与计数器
TMOD T0引脚 0 M0 1 M1 C/T 0 机器周期 GATE M0 1 INT0引脚 M1 C/T GATE D7 D0
工作方式2结构
定时器T0工作方式2结构
溢出 申请 中断 申请 中断 TCON TF1 TR1 TF0 TR0 溢出 TH0 8位 T0引脚 1 TL0 8位 &
≥1
四、定时计数器控制寄存器
1、工作方式控制寄存器TMOD
C/T用于选择定时或计数方式,定时计数器4种工作方式 可通过TMOD中的M1、M0进行选择。
MCS-51单片机将门控位GATE、定时计数方式选择位C/T、
工作方式选择位M1、M0组合在工作方式控制寄存器TMOD 中,TMOD是特殊功能寄存器,字节地址为89H。TMOD共8位, 低4位用于T0的工作方式选择,高4位用于T1的工作方式选择。 各位定义如下:
每个计数脉冲使加1计数器加1。(f< fosc/24 ,)
4. 加1计数器
加1计数器由特殊功能寄存器TH0与TL0组成,工作前应
先将TH0与TL0置初值Count。然后由定时或计数脉冲使加1计
数器加1,当加1计数器加到FFFFH后再加1时,发生溢出回零,
硬件自动将中断标志TF0置1,并以此向CPU发中断请求。 溢出回零后硬件要完成以下几项工作: ① 将溢出标志TF0置1。 ② 以TF0=1为标志向CPU发中断请求信号。 ③ 若CPU响应,则在响应过程中由硬件将TF0清零。并转入中断 处理程序执行定时或计数任务。
工作方式
00; 01; M1M0 = 10; 11;
加1计数器位数
13位 16位
加1计数器
TH15~8,TL4~0 TH15~8,TL7~0
方式0 方式1 方式2 方式3
第6章-MCS-51定时计数器
1.定时/计数器工作方式寄存器TMOD TMOD为T0、T1的工作方式寄存器,主要用于控制定
时/计数器T0和T1的工作模式和4种工作方式。低4位用于 控制T0,高4位用于控制T1。
门控 位
在单片机应用中,定时和计数的需求比较多,为了使用 方便并增加单片机的功能,就把定时电路集成到芯片中,称 之为定时/计数器。目前,几乎所有的单片机都集成了可编 程定时/计数器,为单片机提供定时和计数功能。
6.1.1 定时/计数器的结构 MCS-51 单片机内部有两个16位的可编程定时/计数器,称为
定时器0(T0)和定时器1(T1),都具有定时和计数的功能,可 编程选择其作为定时器或作为计数器用。 TMOD:选择定时器/计数器T0、T1的工作模式和工作方式。 TCON:控制T0、T1的启动和停止计数,同时包含了T0、T1的状态。
Hale Waihona Puke ⑵ 工作方式1: T0初值 =216-500s/2s=65536–250=65286=FF06H TH0=FFH;TL0=06H。
⑶ 工作方式2: T0初值 =28-500s/2s=256-250=6 TH0=06H;TL0=06H。
⑷ 工作方式3: T0方式3时,被拆成两个8位定时器,定时初值可分别计
定时器:对片内机器时钟(周期方波)进行计数 计数器:对Tx引脚输入的负脉冲进行计数
6.1.2 定时/计数器的工作原理
单片机内部有两个定时/计数器T0和T1,其核心是计数器, 基本功能是加1。
对外部事件脉冲(下降沿)计数,是计数器;对片内机周 脉冲计数,是定时器。
计数器由二个8位计数器组成。
MCS-51 定时器/计数器
一、标题:MCS-51单片机定时器/计数器二、授课教材:《单片机原理及接口技术》胡健主编. 北京:机械工业出版社. 2008.1三、授课章节:第六章MCS-51单片机定时器/计数器第6.1节定时器的定时与计数功能第6.2节定时器的有关寄存器第6.3节定时器的4种工作方式四、教学目标:知识目标:理解51单片机定时器/计数器工作原理并能运用单片机汇编语言或Keil-C 语言编程定时器/计数器,达到灵活应用的目的。
能力目标:学生通过上机学习操作的过程循序渐进地掌握知识,完成教学任务。
从而培养学生动手实践能力。
情感目标:通过具体实例,让学生自我展示、自我激励,体验成功,形成积极主动学习的态度,在不断尝试中激发学生的求知欲,在不断摸索中陶冶情操。
五、重点、难点及解决办法重点: 1.单片机定时器/计数器结构功能2. 单片机定时器/计数器工作模式难点: 运用C或汇编编程定时器/计数器教学方法: 讲解原理,归纳,推理,实验六、学时:1学时七、教学步骤:1.导入新课:前面课题中提到单片机应用中可供选择的定时方法有多种,下面同学们思考两个问题:(1)什么是软件定时?软件定时是靠执行一个循环程序以进行时间延迟。
(教师补充:软件定时的特点是时间精确,且不需外加硬件电路。
但软件定时要占用CPU,增加CPU开销,因此软件定时的时间不宜太长。
此外软件定时方法在某些情况下无法使用。
)(2)什么是硬件定时?对于时间较长的定时,常使用硬件电路完成。
(教师补充:硬件定时方法的特点是定时功能全部由硬件电路完成,不占CPU时间。
但需通过改变电路中的元件参数来调节定时时间,在使用上不够灵活方便。
伴随演示电路。
)在单片机应用中,定时与计数的需求较多,为了使用方便并增加单片机的功能,就干脆把定时电路集成在芯片中,称之为定时器/计数器。
这即使本节课要学习的可编程定时器。
这种定时方法是通过对系统时钟脉冲的计数来实现的。
计数值通过程序设定,改变计数值,也就改变了定时时间,使用起来既灵活又方便。
第6章MCS-51单片机的内部资源
6.2.3 中断的控制
MCS-51单片机中断系统中有两个特殊功能寄存器:中断 屏蔽寄存器IE和中断优先级寄存器IP。用户通过对这两 个特殊功能寄存器的编程设置,可以灵活地控制每个中 断源的中断允许或禁止以及中断优先级。 1. 中允控制
所谓中允控制是中断源的中断请求能否被CPU检测到, 即确定中断请求是否允许送达CPU。MCS-51单片机中没 有专门的开中断和关中断指令,对各个中断源的允许和 屏蔽是由内部的中断允许寄存器IE的各位来控制的。中 断允许寄存器IE的字节地址为A8H,可以进行位寻址。 IE的位定义格式如图6-4所示。
对于电平触发方式,只要P3.2(或P3.3)引脚为低电平, IE0(或IE1)就置1,请求中断,CPU响应后不能够由硬 件自动将IE0(或IE1)清零。如果在中断服务程序返回 时,P3.2(或P3.3)引脚还为低电平,则又会中断,这样 就会出现一次请求,中断多次的情况。为避免这种情况, 只有在中断服务程序返回前撤消P3.2(或P3.3)的中断请 求信号,即使P3.2(或P3.3)为高电平。通常通过下图63所示外电路来实现。
3.中断允许与中断屏蔽
当中断源提出中断请求,CPU检测到后是否立即进行中 断处理呢?结果不一定。CPU要响应中断,还受到中断 系统多个方面的控制,其中最主要的是中断允许和中断 屏蔽的控制。如果某个中断源被系统设置为屏蔽状态, 则无论中断请求是否提出,都不会响应;当中断源设置 为允许状态,又提出了中断请求,则CPU才会响应。另 外,当高优先级中断正在响应时,也会屏蔽同级中断和 低优先级中断。
串行口中断TI、RI
(3)软硬件结合清“0” 低电平触发的外部中断标志位IE0、IE1
6.2.4 中断响应
1. 中断响应条件 中断响应是有条件的,并不是查询到的所有中断请求都 能被立即响应。MCS-51单片机的CPU在每个机器周期会 顺序检查每一个中断源,在机器周期的S6阶段采样并按 优先级顺序处理所有被激活了的中断请求,如果没有被 下述条件所阻止,将在下一个机器周期的状态P1(S1) 响应激活了的最高级中断请求。 (1) 无同级或高级中断正在处理。 (2) 现行指令执行到最后一个机器周期且已结束。 (3) 若现行指令为RETI或访问IE、IP的指令时,执行完该 指令且紧随其后的另一条指令也已执行完毕。 如果存在上述条件之一,CPU将丢弃中断查询结果,不 能对中断请求进行响应。
单片机定时器,计数器
第六章定时器/计数器第一节概述8051内部提供两个十六位的定时器/计数器T0和T1,它们既可以用作硬件定时,也可以对外部脉冲计数。
1.计数功能:所谓计数功能是指对外部脉冲进行计数。
外部事件的发生以输入脉冲下降沿有效,从单片机芯片T0(P3.4)和T1(P3.5)两个引脚输入,最高计数脉冲频率为晶振频率的1/24。
2.定时功能:以定时方式工作时,每个机器周期使计数器加1,由于一个机器周期等于12个振荡脉冲周期,因此如单片机采用12MHz晶振,则计数频率为12MHz/12=1MHz。
即每微秒计数器加1。
这样就可以根据计数器中设置的初值计算出定时时间。
第二节定时器/计数器的基本结构、工作方式及应用一、定时器/计数器基本结构定时器/计数器的基本结构如图6-1。
T0由TH0和TL0两个八位二进制加法计数器组成十六位二进制加法计数器;T1由TH1和TL1两个八位二进制加法计数器组成十六位二进制加法计数器。
图6-1 定时器/计数器基本组成110二、定时器/计数器控制寄存器1.定时器方式控制寄存器TMOD定时器方式控制寄存器地址89H,不可位寻址。
TMOD寄存器中高4位定义T1,低4位定义T0。
其中M1,M0用来确定所选工作方式如表6—1:定时/计数器T1 定时/计数器T0111定时器控制寄存器TCON地址88H,可以位寻址,TCON主要用于控制定时器的操作及中断控制。
有关中断内容在第四章已说明。
此处只对定时控制功能加以介绍。
表6—2给出了TCON有关控制位功能:系统复位时,TMOD和TCON寄存器的每一位都清零。
112113三、工作方式及应用用户可通过编程对专用寄存器TMOD 中的M1,M0位的设置,选择四种操作方式。
(一)方式0(以T0为例)在此方式中,定时寄存器由TH0的8位和TL0的5位(其余位不用)组成一个13位计数器。
当GATE=0时,只要TCON 中的TR0为1,13位计数器就开始计;当GATE=1以及TR0=1时,13位计数器是否计数取决于INT0引脚信号,当INT0由0变1时开始计数,当INT0由1变为0时停止计数。
单片机原理及应用教程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的工作模式
MCS-51单片机的定时器计数器
TL; 如:任务中的MOV TH0,#00H 两条指令,设定计数初
值。 MOV TL0,#00H
Copyright 2006
(3)根据需要开放定时器/计数器的中断——对IE位赋值; (4)启动定时器/计数器; 如:任务中的SETB TR0 指令 初值的计算方法 X=M-计数值 M是定时器的最大计数值。视工作方式不同而不同。
判断中 断的次 数
程
CPL P1.0
;定时到,输出取反
序
NO:RETI
;中断返回
END
注意:此程序的#20和#60这两个立即数后面没 有加H表示是十进制数。
思考:能否利用定时器来实现一个电子钟?
Copyright 2006
测量每1秒钟之内的按键按下次数
工作方式0: 13位定时/计数方式,因此,最多可以计到2的13 次方,也就是8192次。
工作方式1: 16位定时/计数方式,因此,最多可以计到2的16 次方,也就是65536次。
工作方式2和工作方式3:都是8位的定时/计数方式,因此, 最多可以计到2的8次方,也说是256次。
Copyright 2006
;开中断 ;开T0中断 ;运行T0 ;等待中断 ;定时到,输出取反 ;重新加载初战值
;中断返回
中断程序的主 程序和中断服 务程序的布局
定时器初始化
开定时器中断
Copyright 2006
实例二:利用方式1定时
题目:用定时器T1,使用工作方式1,在单片机的P1.0输出一个周期为2分钟、占 空比为1:1的方波信号。
Copyright 2006
MCS-51单片机的定时器/计数器(二)
第6章 定时计数器
6.4.2 定时计数器的初始化
定时计数器的初始化编程步骤: 1)根据实际要求设置TMOD寄存器的初值; 2)根据定时时间要求或计数要求计算计数器初值,并 往THx和TLx寄存器中载入初值;
3)启动定时/计数器,即将TRX置位。
如果工作于中断方式,还需要置位EA(中断总开关) 及ETX(允许定时/计数器中断)。
ORG 0000H AJMP MAIN ORG 000BH AJMP TIMEL;TL0中断 ORG 001BH AJMP TIMEH;TH0中断
ORG 0030H MAIN:SETB P1.0 SETB P1.1 MOV TMOD,#03H MOV TL0,#9CH
6.1.2 定时/计数器的工作原理
2. 计数工作方式 设置为计数工作方式时:
★ 通过引脚T0(P3.4)、T1(P3.5)对外部脉冲信号计 数。
★ 输入脉冲信号为1至0的下降沿时,定时器加1。 在每个机器周期CPU采样T0和T1的输入电平。若 前一个机器周期采样值为高,下一个机器周期采样 值为低,则计数器加 1。
6.1.2 定时/计数器的工作原理
1. 定时工作方式 设置为定时工作方式时: ★ 计数脉冲由片内振荡器经12分频后产生。 ★ 每经过一个机器周期,定时器(T0或T1)的数 值加1直至计数满产生溢出。 如:当8051采用12MHz晶振时,每个机器周 期为1μs,计5 个机器周期即为5 μs,即定时5 μs 。
6.2.2 控制寄存器TCON(88H)
TF1 TR1 TF0 T0 请求 有/无 TR0 T0 工作 启/停 IE1 INT1 请求 有/无 IT1 IE0 IT0 T1 T1 请求 工作 有/无 启/停 INT1 INT0 INT0 方式 请求 方式 下沿/ 低 有/无 下沿/ 电平 低电平
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、T0、T1 的方式寄存器TMOD 复位后,TMOD=00H,不可位寻址。其格式如图6-3所 示:
TMOD (89H)
D7 D6 D5 D4 D3 D2 D1 D0
GATE
C/T
M1
M0
GATE
C/T
M1
M0
图6-3 定时器方式寄存器TMOD
GATE — — 门控位。 GATE=1时,由外部中断引脚INT0、INT1和TR0、 TR1共同来启动定时器。 当INT0引脚为高电平时,TR0置位,启动定时器T0。 当INT1引脚为高电平时,TR1置位,启动定时器T1。 GATE=0时,仅由TR0和TR1置位来启动定时器T0和 T1。
图6-6 TMOD各位定义及具体的意义
2、T0、T1 的控制寄存器TCON
此寄存器可以位寻址和字节寻址。
D7 D6 TR1 D5 TF0 D4 TR0 D3 IE1 D2 IT1 D1 IE0 D0 IT0
TCON (88H)
TF1
图6-3 定时器的控制寄存器
TR1(TCON.6)—T1运行控制位。 Timer Run 可通过软件置1(TR1=1)或清0(TR1=0)来启动或 关闭 T1。 在程序中用指令“SETB TR1”使TR1位置1,定时器T1便开始 计数。CLR TR1 TR0(TCON.4)—T0运行控制位。其功能和操作情况同TR1。 GATE=0时,用软件使TR1置1启动定时器1,若用软件使TR1清0, 则停止定时器1。 GATE=1时,用软件TR1置1,如果检测到引脚INT1(P3.3)输入 高电平时启动定时器1。
定时工作方式
定时器计数89C51片内振荡器输出经12分频后的脉 冲,即每个机器周期使定时器(T0或T1)的数值加1 直至计满溢出。当89C51采用12MHz晶振时,一个机 器周期为1μs,计数频率为1MHz。
计数工作方式
通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。当 输入脉冲信号产生由1至0的下降沿时定时器的值加1。 CPU检测一个1至0的跳变需要两个机器周期,故最高计数频率 为振荡频率的1/24。 为了确保某个电平在变化之前被采样一次,要求电平保持时 间至少是一个完整的机器周期。
T0(P3.4)
定时器0 定时器1
T1(P3.5)
定时器2
T2EX(P1.1 ) T2(P1.0) TH2 TL2 重装 捕获 RCAP2H RCAP2L
TH0
溢 出
TL0
TH1
溢 出
TL1
CPU
控 制
模 式
控 制
模 式
溢 出
控 制
中断 中断
模 式 T2MOD
TCON
TMOD
T2CON
图6-1 89C51定时器结构
C/T——定时或计数方式选择位 。 C/T=0时,选择定时功能 。Timer C/T=1时,选择计数方式。Counter 通过引脚T0(P3.4)和T1(P3.5) 对外部信 号进行计数。 在每个机器周期的S5P2期间,CPU采 样引脚的输入电平。若前一机器周期采样值 为1,下一机器周期采样值为0,则计数器增 1,此后的机器周期S3P1期间,新的计数值 装入计数器。
T0方式3时的T1
T0方式3时的T1: T1可以选择方式0、1或 2。 T1的结构如下图所示,此时计数溢出标志 位TF1及T1中断矢量(地址为001BH)已被TH0所 占用,所以T1仅能作为波特率发生器或其它不 用中断的地方。 T1串行口波特率发生器时,其计数溢出直 接送至串行口。只需设置好工作方式,串行口 波特率发生器自动开始运行。 如果要停止T1,只需编程将TMOD中T1的 M1、M0位设置为1、1即可。
6.2.2 定时器/计数器T0、T1的模式1
当TMOD中的M1=0、M0=1时,选择模式1。 模式1时的结构如图下图所示。 计数寄存器由16位组成:TH0的8位和TL0的8 位构成。
振荡器 12分频 C/T=0 C/T=1 T0(P3.4) TR0
&
TL0 TH0 (8位) (8位)
TF0
中断
GATE P3.2
定时初值计算
振荡器 12分频 C/T=0 C/T=1 T0(P3.4) TR0
&
TL0 (5位)
TH0 (8位)
TF0
中断
GATE P3.2
+
做定时器时,其定时时间的计算公式如下: 定时时间为: t=(213-T0初值)×12/fosc
最大定时时间(初值为0)为:213 ×12/fosc 定时初值为:T0初值 = 213-t×fosc/12
T0(P3.4) TR0
TL0 (5位)
TH0 (8位)
TF0
中断
&
GATE P3.2
+
模式0结构
12分频 C/T=0 C/T=1 TL0 (8位) TH0 (8位) TF0 中断
振荡器
T0(P3.4) TR0
&
GATE P3.2
+
模式1结构
12分频 C/T=0 C/T=1 TL0 (8位) TF0 中断
从图上可以看出,MCS-51的定时器/计数器主 要有以下部分构成: ① 两个16位的可编程定时器/计数器:T0、T1,既 可以工作在定时工作方式,也可以工作在计数工作 方式。 ② 每个定时器均有两部分构成:THx和TLx ③ 特殊功能寄存器TMOD和TCON 对T0和T1进行 控制。 ④ 引脚P3.4 、 P3.5输入计数脉冲。 ⑤ 特殊功能寄存器之间通过内部总线和控制逻辑 电路连接起来。
6.1 MCS-51单片机定时器/计数器的结 构及工作原理
主要内容
6.1.1 MCS-51单片机定时器的内部结构 6.1.2 MCS-51单片机定时器的工作原理 6.1.3 定时器/计数器内部的特殊寄存器
6.1.1 MCS-51单片机定时器的内部结构
89C52单片机内部的定时器/计数器逻辑结 构如下图所示:
6.2.4 定时器/计数器T0的模式3
TMOD中的M1=l、M0=1时,选定模式3。 模式3的T1:停止工作。 模式3的T0:其中的TL0为8位定时器/计数器, TH0为8位定时器,逻辑结构如下图所示。
振荡器 12分频 C/T=0 C/T=1 TL0 (8位) TF0 中断 T0(P3.4) TR0
T1(P3.5)
C/T=0
C/T=0
C/T=1
TL1 TL1 (8位)
TH1 TH1 (8位)
M1、M0 —— 工作模式选择位。 由于有M1和M0两位,可以有四种工作方式。T0有4种 工作模式,T1有3种工作模式。选择情况如表6-1所示。 定时器/计数器T1不能工作在模式3。设置T1的 M1M0=11,T1将停止工作。
表6-1 定时器/计数器的工作模式
M1 0 0 1 1 M0 0 1 0 1 工作模式 模式0 模式1 模式2 模式3 功能介绍 13位定时器/计数器 16位定时器/计数器 8位自动重置定时器/计数器 定时器0:TL0可做8位定时器/计数器,TH0为 8位定时器 定时器1:不工作。
&
GATE P3.2
+
TH0 (8位)
图6-7 模式2的逻辑结构图
模式 2 工作特点
振荡器 12分频 C/T=0 C/T=1 TL0 (8位) TF0 中断 T0(P3.4) TR0
&
GATE P3.2
+
TH0 (8位)
该模式的计数宽度为8位定时器/计数器。TL0 计数最大值为:28=256 在程序初始化时,TL0和TH0由软件赋予相同的初值。 当TL0计数溢出时TH0的初值送到寄存器TL0中。初 值能够自动重装。 定时初值 定时时间为:t=(28-T0初值)×12/fosc T0初值= 28-t×fosc/12
&
GATE P3.2 振荡器 TR1 12分频
+
TH0 (8位) TF1 中断
模式3下T0逻辑结构
振荡器
12分频
C/T=0 C/T=1 TL0 (8位) TF0 中断
T0(P3.4) TR0
&
GATE P3.2 振荡器 TR1 12分频
+
TH0 (8位) TF1 中断
T0中的TL0:占用T0的所有控制位,例如T0的GATE、 运行控制位TR0、脉冲输入引脚(P3.4)、计数溢出标志 位TF0和中断矢量(地址为000BH)等。 T0中的TH0:占用T1的控制位,包括运行控制位TR1计 数溢出标志位TF1和中断矢量(地址为001BH)等。
+
二、模式 1 工作特点
振荡器 12分频 C/T=0 C/T=1 T0(P3.4) TR0
&
TL0 (8位)
TH0 (8位)
TF0
中断
GATE P3.2
+
1.
2. 3. 4. 5.
基本功能等同于模式0,只有计数宽度不同。C/T=1, 工作于计数方式,C/T=0时工作于定时方式。 GATE=0时系统的启动只受TR0控制。TR0=1启动。 计数最大值 216=65536 计数溢出后TL0=TH0=00H 定时初值 定时时间为:t=(216-T0初值)×12/fosc T0初值= 216-t×fosc/12
定时器功能
每个定时器都可由软件设置为定时工作方式或计
数工作方式或其他灵活多样的可控功能方式。这
些功能由特殊功能寄存器TMOD和TCON所控制。
定时器工作不占用CPU时间,除非定时器/计数器 溢出,才能中断CPU的当前操作。
每个定时器/计数器还有四种工作模式。其中模 式0-2对T0和T1是一样的,模式3对两者不同。
12-11-6
三种方法实现定时或计数
硬件法:完全由硬件电路完成,不占用CPU 的时间。但当要求改变定时时间时只能改变 电路中的元件参数。 软件法:执行一段循环程序来进行时间延时, 优点是无额外的硬件开销,但牺牲了CPU的 时间,且不容易得到比较精确的时间。 可编程定时器/计数器:可以通过软件编程来 实现定时时间的改变,通过中断或查询来完 成定时或计数功能,当定时时间到或计数满 时置位溢出标志。 本章主要讨论第三种方式。