51单片机定时器_计数器

合集下载

第06章 MCS-51单片机定时计数器

第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的定时器

第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单片机定时器计数器详解

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单片机的定时器计数器

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

51单片机定时-计数器结构和计数器工作原理

51单片机定时-计数器结构和计数器工作原理
使用中断方式时对IE寄存器赋值开发中断
使TR0或TR1置位,启动定时/计数器
晶体振荡器的振荡信号从XTAL2端输入到片内的时钟发生器上,时钟发
生器是一个二分频触发器电路,它将振荡器的信号频率除以2,向CPU提供
了两相时钟信号P1和P2。时钟信号的周期称为机器状态时间S,它是振荡
周期的2倍。在每个时钟周期(即机器状态时间S)的前半周期,相位1(即
P1信号)有效,在每个时钟周期的后半周期,相位2(即P2信号)有效。
提供
用途:定时器和计数器
核心:加1计数器
原理:每来一个脉冲则加1计数器加1,当加到全1时再来一个脉冲使加
1计数器归零,同时加1计数器的溢出使TCON寄存器中的TF0(或TF1)
置1,向CPU发出中断请求
脉冲来
补充:
计数器工作原理:
用作计数器时,对T0或T1引脚的外部脉冲计数,如果前一个机器周期
采样值为1,后一个机器周期采样值为0,则说明有一个脉冲,计数器加
1。
在每个机器周期的S5P2期间采样引脚输入电平。新的计数初值于下一个
机器周期的S3P1期间装入计数器。
此种方式需要两个机器周期来检测一个1->0负跳变信号,因此最高的计
数频率为时钟频率的1/24。
S5P2:
S5P2指的是第5个时钟周期的相位2。
工作原理:13位计数器,使用TL0的低5位和TH0的高8位组成,TL0
的低5位溢出时向TH0进位。TH0溢出时发出中断请求。
方式1
计算公式:
最大计数:65536个机器周期
工作原理:16位计数器,TL0作为低8位,TH0作为高8位
方式2:自动重装初值的8位计数方式
计算公式:p.s.晶振频率必须选择12的整数倍,因为定时器的频率是晶振

MCS-51单片机的定时器-计数器

MCS-51单片机的定时器-计数器
1.3 工方式
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的计数器)。

MCS-51单片机内部定时器计数器

MCS-51单片机内部定时器计数器
•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单片机内部定时器计数器

单片机课件5MCS-51单片机定时器计数器

单片机课件5MCS-51单片机定时器计数器

定时器的示例代码
基于MCS-51单片机和定时器 计数器,实现控制蜂鸣器的 状态或LED的闪烁频率。
实践演示
控制蜂鸣器的状态
借助定时器计数器,设置蜂鸣器的开关状态以及背 景灯。
控制LED的闪烁频率
基于定时器计数器,利用MCS-51单片机来控制LED 灯的闪烁速率。
总结
1
重要性和应用
定时器计数器是单片机非常重要的组件之一,其应用非常广泛。
5MCS-51单片机定时器计 数器
本课件将介绍单片机中定时器计数器的作用、类型、寄存器、应用以及示例 代码,展现出单片机学习与应用的魅力。
什么是定时器计数器
1 时间的记录器
定时器计数器是一种可编 程的时间计算器,可用于 各种计时和计数任务。
2 核心组件
作为单片机的核心之一, 定时器计数器可以用来控 制其它模块的工作。
3 可编程
可以通过设置定时器的各 个寄存器来控制计时或计 数的周期、频率和模式。
MCS-51单片机的定时器计数器
定时器模块的功能
以MCS-51单片机为例,定时器计数器可以控制脉 冲的发生和周期、计数等。
定时器的类型
MCS-51单片机的定时器分为两种类型:定时器0和 定时器1,每种定时器都具有其特定的应用场景。
2
对单片机的学习和应用的帮助
通过学习单片机和定时器计数器,可以帮助我们更好地理解单片机的工作原理和应用场景。
3
接下来的拓展用,如机器人、智能家居等领域。
定时器的寄存器
MCS-51单片机的定时器计数器有多个寄存器,包 括计数器寄存器、模式寄存器和数据寄存器。
定时器的应用
定时器的使用方法
通过编程初始化各个寄存器, 设置定时器的模式、计数周 期和计数方式等,以达到所 需的计时或计数效果。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)计算初值X 设初值为X,则有:
(216-X)×2×10-6=1×10-3 216-X=500 X=65036
M1
M0
工作方式
方式说明
0
0
0
13位定时/计数器
0
1
1
16位定时/计数器
1
0
2
8位自动重置定时/计数器
1
1
3
两个8位定时/计数器(只有T0有)
C/T:定时或计数方式选择位,当C/T=1时工作于计数方式;当C/T=0 时工作于定时方式。 GATE:门控位,用于控制定时/计数器的启动是否受外部中断请求信号 的影响。
0
1
方式1,1
11
方式3,仅适用于T0,T0分成
两个8 位计数器,T1停止计数。
(3) C/T*——计数器模式和定时器模式选择 位
0:定时器模式。 1:计数器模式。
定时/计数器的工作方式
一.方式0
方式0是13位的定时/计数方式,因而最大计数值为 2的13次幂,等 于8192。如计数值为N,则置入的初值X为:
要装入的计数器初值 CI= 2n -T·fosc/12。 例如:已知晶振的频率为 6 MHz,要求定时为2 ms,则 当为方式0时,应装入的计数初值为; 8192-2×3 10 ×6×6 10 /12 = 8192-1000 = 7192
定时时间常数初值X:
方式0
X=8192-T(fosc/12)
定时器/计数器的编程和应用
4种工作方式中,方式0与方式1基本相同,由于方式0是为 兼容MCS-48而设,初值计算复杂,在实际应用中,一般不用 方式0,而采用方式1。
方式1应用
例1 假设系统时钟频率采用6MHz,要在P1.0上输出一个周 期为2ms的方波,如图所示。
方波的周期用T0来确定,让T0每隔1ms计数溢出1次(每 1ms产生一次中断),CPU响应中断后,在中断服务程序中对 P1.0取反。
对于方式 0,n= 13;即初值=8192-X 对于方式 1,n= 16;即初值=65536-X 对于方式 2和方式 3,n=8;即初值= 256-X
2)定时初值计算
定时就是定时间,假设晶振频率为f,定时时间为T,对 应的计数值为X,此时计数器是将系统时钟12分频后作为 计数脉冲,则以下等式成立。
定时/计数器的结构
1.定时和计数的原理
(1)计数
单片机是对脉冲个数计数,计数器
定时/计数器的实质是在处置每基接收础到上一个的脉加冲,1计数计值数加1,
器(16位),
当接收满65535个脉冲后,再 来一个脉冲,计数值清0表明 这一轮计数结束,同时将标
志位TF0或TF1置1。
16位定时/计数器的计数容量是65536
方式。 TCON:控制T0、T1的启动和停止计数,同时包含了
T0、T1的状态。
单片机复位时,两个寄存器的所有位都被清0。
定时器/计数器控制寄存器TCON
低4位与外部中断有关,已介绍。高4位的功能如下: (1) TF1、TF0——计数溢出标志位 (2) TR1、TR0——计数运行控制位 1:启动定时器/计数器工作 0:停止定时器/计数器工作
(2)定时 单片机内部的计数器用作定时器时,是对标准的 时钟进行了计数,每来一个时钟脉冲,计数器加1, 只要保证计数脉计冲数的器如间何隔能作相为等定,时 则计数值就代表了 时间的流逝。 器使用呢?
单片机中的定时器和计数器其实是一个器件: 计数器:是对外部发生的事件进行计数, 定时器:是对单片机内部的标准时钟脉冲进行 计数。
方式1
X=65536-T(fosc/12)
方式2、方式3 X=256-T(fosc/12)
其中T是需要定时的时间,单位是微秒;fosc是晶振
计数时间常数X:
方式0
X=8192-S
方式1
X=65536-S
方式2、方式3 X=256-S
说明:式中S是需要计数的次数
定财器/计数器初始化步骤
1)确定工作方式:把工作方式控制字写入到TMOD中; 2)设置定时或计数的初值:根据问题要求,求出定时或计 数的初值,写入到寄存器THO、TLO或THI、TLI中。 3)如果需要中断,使定时器中断允许位ET0或ETI置位, 如果要求中断嵌套,还应设置相应的中断优先级,然后置 位EA,使CPU开放中断;如果不需要中断,仅以软件方式 对计数器溢出标志TFO或TFI进行查询,则可略去此步骤; 4)启动定时器/计数器:将 TRO或 TRI置 1即可启动定时 器/计数器。
定时器/计数器初值计算
定时器/计数器用于定时或计数时,必须按照需要给计数 器设置初值。定时器/计数器在计数初值的基础上以加1 的方式进行计数,在计数器从全1变为全0时,将自动产生 溢出中断请求。
(1)计数初值计算 假设要计数的值为X,由于计数器是加工计数器,所以
定时器/计数器的初值为 2n -X: 其中n的值依赖于工作方式,
四、方式3
方式3只有定时/计数器T0才有,当M1M0两位为11时,定时/计数器 T0工作于方式3,定时/计数器T0被分为两个部分TL0和TH0,其中, TL0可作为定时/计数器使用,占用T0的全部控制位:GATE、C/T、 TR0和TF0;而TH0固定只能作定时器使用,对机器周期进行计数, 这时它占用定时/计数器T1的TR1位、TF1位和T1的中断资源。
定时/计数器的控制寄存器TCON
TCON D7 D6 D5 D4 D3 D2 D1 D0 (88H) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
其中: TF1:定时/计数器T1的溢出标志位,当定时/计数器T1计满时,由 硬件使它置位,如中断允许则触发T1中断。进入中断处理后由内部硬 件电路自动清除。 TR1:定时/计数器T1的启动位,可由软件置位或清零,当TR1=1时 启动;TR1=0时停止。
2.T0工作在方式3下T1的各种工作方式
当T1用作串行口的波特率发生器时, T0才工作 在方式3。
T0处于方式3时, T1可定为方式0、方式1和方 式2,用来作为串行口的波特率发生器,或不需要 中断的场合。
定时器/计数器对输入信号的要求 外部计数脉冲的最高频率为系统振荡器频率的1/24,
例如选用12MHz频率的晶体,则可输入500KHz的外部脉冲。 输入信号的高、低电平至少要保持一个机器周期。
工作方式控制寄存器TMOD
8位分为两组,高4位控制T1,低4位控制T0。
(1)GATE——门控位
0:以TRX(X=0,1)来启动定时器/计数器运行。
1:用外中断引脚(INT0*或INT1*)上的高电平和TRX来启动 定时器/计数器运行。
(2)M1、M0——工作方式选择位
M1 M0
工作方式
00
方式0,13位定时器/计数器。
计数器的道理是一样的,只要用预置数的方法先在计数 容器内存入一个初值 ,如我们要计100,那就存入65436, 只要再来100个脉冲,就刚好会溢出,引发中断。
定时器初值的设置
在时钟频率为12MHz的情况下,每个时钟脉冲是1微 秒,则计满65536个脉冲需65.536毫秒,如要定时10毫秒 则存入初值55536,(10毫秒是10000微秒,需计数 10000个脉冲)。可见,
X=8192-N 例如定时/计数器T0的计数值为1000,则初值为7192,转换成二进 制数为1110000011000B,则TH0=11100000B,TL0=00011000B。
工作方式0为13位的计数器 ,C/T* 位决定工作模式:
0:开关打在上面,为定时器工作模式;
1:开关打在下面,为计数器工作模式,计数脉冲为P3.4 、P3.5引脚上的外部输入脉冲,当引脚上发生负跳变时, 计数器加1。
获得标准时间
由单片机的晶振经过12分频后得到。由于晶振的频率很准, 所以这个时钟脉冲的时间间隔也很准。当单片机采用12MH z的晶振时,它提供给计数器的脉冲频率是12MHz/1 2=1MHz,脉冲单脉周片 冲期机 是就内 如是部 何的 获1标 得微准 的秒时 呢。钟 ?
定时/计数器T0的结构示意图
工作方式3相当于增加一个附加的8位定时器/计数器,从 而具有3个定时器/计数器。
只适用于定时器/计数器T0。T1不能工作在方式3,
T1方式3时相当于TR1=0,停止计数(此时T1可用来作串 行口波特率产生器)。
1.工作方式3下的T0
T0分为两个独立的8位计数器:TL0和TH0 。TL0使用T0的状态 控制位C/T*、GATE、TR0、,而TH0被固定为一个8位定时器 (不能作外部计数模式),并使用定时器T1的状态控制位 TR1和TF1,同时占用定时器T1的中断请求源TF1。
定时/计数值的设置
16位定时/计数器计满65536个脉冲时,也会发生溢出。
定时/计数器溢出后标志位TF0(或TF1)由0变1,由此能 够引发定时中断(在中断定时方式下),这就像定时的时间一 到,闹钟就会响一样。
如果采用12MHz的晶振,对应的脉冲周期是1微秒,计 满65536个脉冲所对应的时间就是65.536ms。
如图所示,图中Tcy为机器周期。
定时器/计数器的初始化
定时/计数器的方式寄存器TMOD
TMOD
D7
D6 D5 D4 D3
D2 D1 D0
(89H)
GATE C/T M1 M0 GATE C/T M1 M0

定时器1
→←
定时器0

其中: M1、M0为工作方式选择位 ,用于对T0的四种工作方式,T1的三 种工作方式进行选择,选择情况如下
GATE位:决定定时器/计数器的运行取决于TRx一个条件还是 TRx和INTx*引脚两个条件。
(1)0:A点是否计数,仅取决于TRx的状态。
(2)1:B点电位由INTX*的输入电平和TRX的状态这两个条件 来确定。是否计数是由TRx和INTx*二个条件来控制的。
相关文档
最新文档