第6章单片机的定时器计数器
单片机讲义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章定时计数器

20
6.5 定时器/计数器的编程
初始化
1 根据要求给方式寄存器TMOD送一个方式控制 字,以设定定时器的工作方式; 2 根据需要给TH和TL选送初值,以确定需要的 定时时间或计数的初值; 3 根据需要给中断允许寄存器IE送中断控制字, 以开放相应的中断和设定中断优先级;
也可用查询方式来响应定时器。
JBC TF1,RP1 SJMP DEL2
30
6.6.4 长定时时间的产生
例 假设系统时钟为6MHz,编写定时器T0产生 1秒定时的程序。 (1)T0工作方式的确定 定时时间较长,采用哪一种工作方式? 由各种工作方式的特性,可计算出: 方式0最长可定时16.384ms;
方式1最长可定时131.072ms; 方式2最长可定时512μs。 选方式1,每隔100ms中断一次,中断10次为1s。
8
6.3 定时/计数器的4种工作方式 方式0、方式1(13位、16位定时计数方式)
T1工作于方式0的等效框图(M1M0=00、01)
GATE=0、A=1、TR1=1 GATE=1、INT1=1、TR1=1。注意定时器初值与定时时间的不同
9
6.3.1 方式0、方式1的说明 定时/计数器T1工作在方式0时,为13位的计数器,由TL1 的低5位和TH1的8位所构成。TL1低5位溢出向TH1进 位,TH1计数溢出置位TCON中的溢出标志位TF1。 GATE位的状态决定定时/计数器运行控制取决于TR1 一个条件还是TR1和INT1引脚这两个条件。 当GATE=0时,A点电位恒为1,则只要TR1被置为1,B 点电位即为1,定时/计数器被控制为允许计数(定时/计 数器的计数控制仅由TR1的状态确定,TR1=1计数, TR1=0停止计数)。 当GATE=1时,B点电位由INT1输入的电平和TR1的状 态确定,当TR1=1,且INT1=1时,B点电平才为1,才 允许定时器/计数器计数(计数控制由TR1和INT1二个条 件控制)。 方式1时,TL1的8位都参与计数,因而属于16位 定时/计数器。其控制方式,等效电路与方式0完全相 10 同。
单片机定时器计数器教学课件

单片 机开 发板
如Keil、IAR等,用于编
电
译和烧录程序到单片机
脑
中。
编
用于搭建定时器计数器
程
电路。
软
件
杜
用于编写和调试程序。
邦
线
用于连接单片机引脚和 实验设备。
电阻 、电 容等 电子 元件
实验步骤与操作
5. 实验操作
根据实验要求,操作单片机开发板,观察 定时器计数器的运行状态和输出结果,记 录实验数据。
功能
定时器计数器在单片机中主要实 现定时、计数、产生中断等功能 ,是单片机应用中不可或缺的模 块。
工作原理
工作方式
定时器计数器通常采用计数或计时的 方式工作,通过内部或外部信号的输 入进行计数或计时。
工作流程
定时器计数器接收到启动信号后开始 工作,当计数值达到预设值时,产生 相应的中断或输出信号。
自动化控制
在生产线中,单片机定时器计数 器可以用于控制机械臂的运动、 物料传送等,实现自动化生产。
精确计时
在工业控制中,单片机定时器计数 器可以用于精确计时,如控制设备 的运行时间、报警触发等。
数据采集
单片机定时器计数器可以用于采集 生产过程中的各种数据,如温度、 压力、流量等,为生产管理提供数 据支持。
单片机定时器计数器教学课件
contents
目录
• 单片机定时器计数器概述 • 单片机定时器计数器的应用 • 单片机定时器计数器的编程 • 单片机定时器计数器的实验 • 单片机定时器计数器的案例分析
01
单片机定时器计数器概述
定义与功能
定义
单片机定时器计数器是一种用于 产生时间间隔或计数的硬件设备 ,常用于控制和测量时间。
单片机第六章定时器

这种方式下,计数寄存器由13位组成,即THx高八位(作计数器)
和TLx的低5位构成。TLx的高3位未用。
计数时,TLx的低5位溢出后向THx进位,THx溢出后 将TFx置位,并向CPU申请中断。
用软件控制,置 l时,启动 T1;清0时,停止 T1。
TF0(TCON.5)——T0的溢出标志。
TR0(TCON.4)——T0的运行控制位。
用软件控制,置1时,启动T0;清 0时,停止 T0。
• IE1(TCON.3)——外部中断1中断请求标志位。
• IE0(TCON.1)——外部中断0中断请求标志位。
器之外,还可用作串行接口的波特率发生器。
6.2
定时器/计数器T0、T1
T0、T1 的内部结构简图示于图6-1中。从图中 可以看出,T0、T1由以下几部分组成:
• 计数器TH0、TL0和TH1、TL1;
•
•
特殊功能寄存器TMOD、TCON;
时钟分频器;
•
输入引脚T0、T1。
6.2.1 与定时器/计数器T0、T1有关的 特殊功能寄存器
⑵定时器/计数器T1
T0方式3时,T1可以工作在方式0、1、2三种方式 T1的结构如图6–6所示。 由于T0占用了原来T1的启动位TR1和溢出标志TF1, 所以此时T1溢出时不能置位溢出标志,不能申请中断, 其溢出信号送给串行口,此时T1作为波特率发生器。
T1的启停由写入方式字控制,当写入方式0/1/2 时,T1立即启动,写入方式3 时,立即停止工作。
分析:设置T0工作在方式2,计数功能,每记满100个外 部脉冲,从P1.0输出一个低电平脉冲信号(简化的打包 操作)。
第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 ;查询是否溢出
▪
认识单片机的定时器计数器

void main(void) { TMOD=0x01;
TH0=-25000/256; TL0=-25000%256; TR0=1; ET0=1; EA=1; while(1); } void timer0(void) interrupt 1 { TH0=-25000/256;
TL0=-25000%256; P10=~P10; }
根据定时时间T,及公式(1)、(2)分别可以求出初 值N为:
方式1: N=216-T×fosc/12
(3)
方式2、方式3 :N=28-T×fosc/12 (4)
如果fosc=12MHZ,以上公式可简化为
方式1: N=216-T
方式2、方式3 :N=28-T
例如:系统的时钟频率是12MHz,在方式1下,如果希望定时 器/计数器T0的定时时间T为10ms,则初值N =216-T=6553610000=55536
任务一、认识单片机的定时器/计数器
一、定时器/计数器及其应用 在单片机应用系统中,定时或计数是必不可少的。例如: 测量一个脉冲信号的频率、周期,或者统计一段时间里 电机转动了多少圈等。常用的定时方法有:
1、软件定时 软件定时是依靠执行一段程序来实现的,这段程序本身 没有具体的意义,通过选择恰当的指令及循环次数实现 所需的定时,由于执行每条指令都需一定的时间,执行 这段程序所需总的时间就是定时时间。 软件定时的特点是无需硬件电路,但定时期间CPU被占 用,增加了CPU的开销,因此定时时间不宜过长,而且 定时期间如果发生中断,定时时间就会出现误差。
led=_crol_(led,1); 满10次变量led左移1位送P0口
P0=led;
}
}
[案例3] 用定时器的计数方式实现外部中断。如图 所示,P0口控制8只发光管轮流点亮,发光管点 亮时间为500ms,单脉冲电路控制发光管的移动 方向,按下单脉冲按钮,发光管左移,再按下发 光管右移 。
第6章 单片机的定时器计数器

T0(P 3.4)
T0 (8CH) (8AH)
TH0(8位) TL0 (8位)
7 0 7 0
T1 (8DH) (8BH)
TH1(8位) TL1 (8位)
7
0
7
0
CPU
溢 启 出 动 溢 出
启 动
工作方式 TMOD(89H)
工 作 方 式
TCON(88H)
定时/计数器逻辑结构
T0
2个16位T/C分别由8位计数器TH0、TL0、 TH1、TL1组成 “+1” 计数器 T1 控制寄存器TCON:控制T/C的启停、中断等
第6章 单片机的定时器/计数器
6.1 定时/计数器的结构与工作原理
6.2 定时器/计数器的控制
6.3 定时/计数器的工作方式
6.4 定时/计数器的编程和应用
实现定时一般有三种方法: 利用软件实现(延时程序); 优点:简单,控制方便;缺点:CPU效率低。 硬件实现,专门设计一个单稳态定时器: 优点:CPU效率高;缺点:修改参数麻烦。 利用计数器实现 1us 输入脉冲 计算机一般利用第三种方法实现 8位 计数器 预置数 256us 溢出
控制T0
GATE C/T M1 M0 0 0 0 1
查 询 方 式
#include <reg51.h> sbit P1_0=P1^0; void main (void) { TMOD=0x01; //定时器0方式1 TR0=1; for( ; ; ) { TH0=(65536-1000)/256; //置计数初值 TL0=(65536-1000)%256; while(!TF0); //查询等待TF0复位 P1_0=!P1_0; //定时时间到P1.0反相 TF0=0; //软件清TF0 } }
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 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.4 定时器/计数器的工作方式
定时器/计数器共有四种工作方式
1. 方式0—13位方式
振荡器 1/12 C/T=0
定时器
TL0 TH0
TF0
T0 TR0
C/T=1 & ≥1
低5位
8位
GATE 1 INT0
13位计数器
演
示
继
续
T12
T5 *
*
* T4
T0
TH0
TL0
返
回
当 C / T =0时,控制开关接通内部振荡器,
产生周期为500μs的方波脉冲,并由P1.0 输出。试
以中断方式实现。
8051
P1.0
500μs
① TMOD确定
T1控制
GATE
定时器1 方 式1
T0控制
M0
GATE
C/T
M1
C/T
M1
M0
0
0
0
1
X
X
X
X
控制字10H
② 计算计数器的计数初值;
要产生500μs 的方波脉冲,只需在P1.0端以250μs为间
图6-2 T0的结构
2、控制寄存器TCON MSB TCON TF1 TR1 TF0 TR0 IE1 (88H)
LSB IT1 IE0 IT0
与外部中断INT1、INT0有关 已在中断系统介绍
T1、T0 启/停控制位 “1” 启动 工作 “0” 停止
T1、T0 溢出标志位
“1” 有溢出
“0” 无溢出
⑵ 预置定时或计数初值 ⑶ 当定时时间到或计数终止时,要不要发中断请求 ⑷ 如何启动定计数器的功能
定时/计数器的核心部件是二进制加1计数器
(TH0、TL0或TH1、TL1) 。
1. 定时功能----计数输入信号是内部时钟脉冲,
每个机器周期使寄存器的值加1。所以,计数
TH0(8位) TL0 (8位)
7
0
7
0
CPU
启 动 溢 出 启 动 溢 出 工作方式 TMOD(89H)
工 作 方 式
TCON(88H)
图6-1 定时/计数器逻辑结构
回目录 上页 下页
T0
结构
2个16位T/C分别由8位计数器TH0、TL0、 TH1、TL1组成 T1 “+1” 计数器
控制寄存器TCON:控制T/C的启停、中断等
方式寄存器TMOD:控制T/C的工作方式 2、工作原理
⑴ 定时器
定时输入信号:机器内部震荡信号的1/12分频 即每一个机器周期做一次“+1”运算
回目录 上页 下页
∵1个机器周期=12振荡脉冲
∴计数速率为振荡频率的1/12分频 若单片机的晶振主频为12MHz
则计数周期为 1µs
⑵ 计数器
由外部引脚(T0为P3.4 ,T1为P3.5)输入计数脉冲
≥1
机器周期 TMOD 1 1 M0 M1 C/T 0 机器周期 GATE M0 1 M1 C/T GATE D7 D0
D0
INT0引脚
TL0作为定时/计数器:TL0占用原T0控制位及相关引脚:其操 作和功能与方式0、1基本相同 TH0仅作定时器:TH0占用T1控制位: TR1、TF1及T1中断源。
③ 采用中断方式:编程时打开全局和局部中断。 ④ 由定时器控制寄存器TCON中的TR1位控制 定时器的启动和停止。 TR1=1,启动;
TR1=0,停止。
程序设计 ORG 0000H
LJMP MAIN
ORG 001BH
;主程序入口 ;T1中断入口
LJMP INTT1
ORG 1000H MAIN:MOV TMOD, #10H ;T1为方式1 MOV TH1, #0FFH MOV TL1,#83H ;初值 SETB EA ;允许中断 SETB ET1 SETB TR1 ;启动定时 SJMP $ ;等待中断 INTT1: MOV TH1,#0FFH ;重新设置初值 MOV TL1,#83H CPL P1.0 ;输出取反 RETI
INTT0: MOV TH0,#3CH
MOV TL0,#B0H
;重新设置初值
INC R0
CJNE R0,#40,NEXT ;不等直接返回 MOV R0,#0 RL A MOV P1,A ;
; 2s到
;依次点亮
NEXT:
RETI
例4 用T0监视一生产流水线,每生产100个工件, 发出一包装命令,包装成一箱,并记录其箱数
外部输入脉冲发生负
下降沿
跳变时,进行“+1”计数
外部输入脉冲宽度应大于2个机器周期
>T CY >T CY
T CY:为机器周期
高电平 低电平
回目录 上页 下页
6.3、单片机对内部TO/T1的控制 1、方式寄存器TMOD TMOD (89H) GATE C/T M1 M0 GATE C/T M1 M0 控制T1 门控位 控制T0
例题2:设晶振频率fOSC=6MHz,分别讨论各种
工作方式下最长定时时间。
解:
1. 由fOSC=6MHz可知,MC=2us;
2. 由于是加1计数,所以最长定时应是计数初值最
小时(即为0时)的定时时间。 所以此时有:
方式0:
(213–0)×2us=214us=16384us=16.384ms
方 式 1:
P1.6
P1.5 P1.4 P1.3 P1.2
P1.1 P1.0
演
示
硬件定时与软件计数结合方式解题思路:
• 让T0作定时器用,如T0可以定时50ms;
• 在T0中断处理程序中一个寄存器内容加1,同时判断 是否加到2000/50=40,如果不到40,则直接返回,如 果计到40,说明2s时间到; • 使P1口循环点亮8个发光二极管后再返回。 • T0工作在方式1,控制字01H,计数初值:
隔,交替输出高低电平即可实现。为此,定时间应为
250μs 。使用6MHz晶振,则一个机器周期为2μs,设待 求计数初值为X,则:
(216–X)×2×10 -6 =250×10 -6 请思考 为什么? 即216–X=125 X=216-125=10000H-7DH =0FF83H 所以,初值为:TH1=0FFH,TL1=83H
信号,控制8个发光二极管循环点亮,设
fOSC=12MHz, 。
分析:P1口输出信号,控制8个发光二极管循环 点亮,但此处由于定时时间长达2s,所以单靠 一个定时器不能解决问题。可以采取硬件定时和 软件计数(或硬件计数)结合方式。
8051
P1.7 R R R R R R R R LED7 LED6 LED5 LED4 LED3 LED2 LED1 LED0
.预置初值 方式0
方式1
方式2
MOV THx,#X8位 MOV TLx,#X8位
MOV THx,#X高8位 MOV THx,#X高8位 MOV TLx,#X低5位 MOV TLx,#X低8位
方式3
MOV TH0,#X8位 MOV TL0,#Y8位
例题1:设晶振频率fOSC=6MHz,使用定时器1以方式1
(216–0)×2us= 217us=131.072ms
方式2、3:
(28–0)×2us= 29us=0.512ms
注意:以上是当fOSC=6MHz,即MC=2us时各
种方式下的定时时间,若fOSC=12MHz,则最长
定时时间将缩短一半。
举例3:定时器/计数器应用
利用T0定时,产生2s定时,使得P1口输出
计算时间常数X(计算初值)
计数器运行之前,需要预先给定初值 由于计数器是加1计数器,并在溢出时产生中断请求, 因此不能将计数值送入计数器作为初值,而应送入计数 值的补码数作为初值 计数功能:X= 2n -计数值 定时功能:X= 2n - t/T n:13/16/8 t:定时时间s 、T:机器周期s
频率是振荡频率的1/12。 2. 计数功能----计数脉冲来自相应的外部输入 引脚,T0为P3.4,T1为P3.5。
6.2、定时计数器的结构与工作原理
1、结构
“+1`” T1(P 3.5) T1 (8DH) (8BH)
TH1(8位) TL1 (8位) 7 0 7 0
“+1`” T0(P 3.4)
T0 (8CH) (8AH)
亦可由指令清“0”
回目录 上页 下页
* 各标志位应注意的问题
TF1位:定时器1溢出标志位。 •
•
• 使用中断方式时,此位做中断申请标志位,进入中 断服务后被硬件自动清零。 当定时/计数器1溢出时,由硬件置1。
TR1位:定时器1运行位。
该位靠软件置位或清零,置位时,定时/计数器接通
工作,清零时,停止工作。
T0对机器周期进行计数,其定时时间为:
t=(213-T0初值)×机器周期
当C / T=1时,控制开关接通外部输入信号, 当外部信号电平从“1”到“0”跳变时,加 1计数器加1,处于计数工作方式。
2. 方式1—16位方式
其定时时间为:
t=(216-T0初值)×机器周期 振荡器 T0 TR0 1/12 C/T=0
C/T=1
1
TL0 TH0 TF0 8 位 8位
16位计数器
GATE
INT0
&
≥1
3. 方式2—8位自动装入时间常数方式
其定时时间为:
t=(28-T0初值)×机器周期
振荡器
1/12
C/T=0 TL0 TF0 C/T=1
T0 TR0 GATE 1 ≥1
&
TH0
INT0
4. 方式3—2个8位方式
仅T0可以工作在方式3—此时T0分成2个