第6章 AT8S51单片机定时器计数器
单片机原理及应用 第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 同。
第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章 51单片机的定时计数器
前一页
6.4.4定时计数器值的读取
定时计数器在运行过程中,程序可能要求取得当前的定时值,但是由于TH0/TH1寄存器和 TL0/TL1寄存器是分开的,不可能同时读取,这就有可能由于在读取其中一个寄存器时另外一 个寄存器正在改变而造成得到一个错误的数据。对于这种情况,在程序设计时可以考虑用小误 差来代替大误差的情况,即用定时计数器的数据寄存器低位上的误差来代替高位上的误差。程 序应该先读取定时器高8位数据寄存器TH0/TH1,再读取低8位数据寄存器TL0/TL1。还有另外 一种情况,即读取TH0/TH1后TL0/TL1对高位产生了进位,如果出现这种情况,读出的数据同 样会存在较大的误差。对于这种情况,可以考虑在读取低位寄存器后再次读取高位寄存器并且 和第一次取得的数值进行比较,如果不相同则再次重复操作的方式来避免,例6.8给出了这种 算法。 【例6.8】定时计数器的数据寄存器的值读取 (实例代码详见教材)
前一页
6.2.2 控制寄存器TCON
TCON是定时计数器控制寄存器,其内部结构如下表所示,在51单片机复位后初始化值为所有 位都被清零。
前一页
6.2.3数据寄存器TH0、TL0、和TH1、TL1
TH0、TL0/TH1、TL1分别是T0/T1的数据高位/低位寄存器,均为8位。当定时计数器收到一个 驱动事件(定时、计数)后,对应的数据寄存器的内容加1,当数据寄存器的值到达最大时, 将产生一个溢出中断,在单片机复位后所有寄存器的值都被初始化为0x00,这些寄存器都不能 位寻址。
前一页
首页
6.2 51单片机定时计数器的寄存器
6.2.1工作方式控制寄存器TMOD 6.2.2控制寄存器TCON 6.2.3数据寄存器TH0、TL0、和TH1、TL1
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 。
51单片机 定时器和计数器 结构
51单片机定时器和计数器结构下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!51单片机定时器和计数器结构详解一、引言在51单片机中,定时器和计数器是两个非常重要的功能模块,它们广泛应用于各种嵌入式系统中。
单片机原理及其接口技术--第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单片机的定时器计数器
【例 6-3】 设 T1 作定时器,以模式 1 工作,定时时 间为 10 ms;T0 作计数器,工作在模式 2,T0(P3.4)引脚上 发生一次事件(脉冲)即溢出。 解 T1 的时间初值为 (216 - Tc) ×2 µ = 10 ms s Tc = EC78H T0 的计数初值常数为 FFH。
初始化程序:
TMOD,#16H ;T1定时模式1,T0计数模式2 TL0,#0FFH ;T0时间常数送TL0 TH0,#0FFH ;T0时间常数送TH0 TL1,#78H ;T1时间常数(低8位)送TL1 TH1,#0ECH ;T1时间常数(高8位)送TH1 TR0 ;置TR0为1,允许T0启动计数 TR1 ;置TR1为1,允许T1启动计
单片机复位后,TCON寄存器的所有位均为0.
2. 工作方式控制寄存器TMOD
高4位用于定时器1,低4位用于定时器0
① M1,M0:工作模式选择位。 定时器/计数器四种工作模式选择如表6-1所示。
表 6-1 工作方式选择表
M1 M0 0 0 1 1 0 1 0 1 方 式 0 1 2 3 13 位定时器/计数器 16 位定时器/计数器 自动装入时间常数的 8 位定时器/计数器 对 T0 分为两个 8 位独立计数器;对 T1 置方式 3 时停止工作 说 明
方式2适合于用作较精确的脉冲信号发生器。
4. 方式3—2个8位方式
仅T0可以工作在方式3,T1处于方式3时停止计数。 此时,T0分成2个独立的计数器—TL0和TH0,前者 用原来T0的控制信号(TR0、TF0),后者用原来 T1的控制信号(TR1、TF1)。
(1)TH0由TR1启动/停止,溢出TF1 (2)TL0由TR0启动/停止,溢出TF0 (3)TH0只能定时,TL0可以定时/计数,且都是8位。
第六章 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。为了确保给定电平在变化前至少被 采样一次,外部计数脉冲的高低电平均需保持 一个机器周期以上。(占空比没有限制)
51单片机 第六章定时器计数器
6.3.2 脉冲宽度的测量
例6.2 测量输入到单片机P3.3引脚上的周期 性脉冲信号的脉冲宽度。 分析:由前面的介绍可知,当GATE=1时,是一种采
用软件和硬件联合控制的方法来实现计数器运行与 否的控制。下面以T1为例,若GATE=1,则只有当 TR1=1且=1时,T1计数。利用GATE的这一功能, 可测量引脚,也就是P3.3引脚上的周期性脉冲信号 的脉冲宽度,其方法如图6.12所示。
P3.3 ( INT1 )
对T1初始化 90H TMOD GATE = 1
பைடு நூலகம்
T1从0开始计数 测量脉冲宽度 0
读出T1的值 TR1,停止T1计数
30
ORG
0000H AJMP MAIN ORG 0030H MAIN: MOV SP, #60H MOV TMOD, #90H MOV TH1, #00H MOV TL1, #00H CLR TR1 JB P3.3, $ JNB P3.3, $ SETB TR1 JB P3.3, $ CLR TR1 LCALL Display ……
TL1 (8-bit)
TH1 (8-bit)
串行口
23
T
图6.10 T0工作方式3时T1为工作方式2的工作示意 图
振荡器 ÷12 0 7
~
C/T=0 C/T=1 T1(P3.5)引脚
TL1 (8-bit)
串行口
TH1 (8-bit)
24
6.2.4 工作方式 0
当M1、M0为00时,定时器/计数器工作于工作方 式1,等效逻辑结构图如图6.11所示(以定时器/计 数器T1为例,所以 TMOD.5、TMOD.4=00)。
32
2. 3.
4.
单片机定时计数功能
下次讲解课题
课题八 AT89S51的串行口通信功能 ~完~
13/13
8/13
3.方式2
将TMOD中的M1 M0设置成10即可。 定时/计数将以8位长度进行工作,溢出后自动重装定时/计数初值。 低8位进行定时/计数,高8位存放自动重装的定时/计数初值。
4.方式3
将TMOD中的M1 M0设置成11即可。 T0定时器低8位TL0可工作在8位定时或计数模式,溢出后需要人工重
6/13
5.定时计数器初值的推算
根据定时器工作原理和算术运算来推算出计数初值; 当定时器工作在方式0时,定时时间 =(213-计数初值)× 晶振周期×12 当计数器工作在方式0时,计数次数 = 213-计数初值 当定时器工作在方式1时,定时时间 =(216-计数初值)× 晶振周期×12 当计数器工作在方式1时,计数次数 = 216-计数初值 当定时器工作在方式2、3时,定时时间 =(28-计数初值)× 晶振周期×12 当计数器工作在方式2、3时,计数次数 = 28-计数初值
2/13
一. AT89S51的定时/计数功能
1.AT89S51的定时/计数器
AT89S51单片机内部带有两个16位的定时/计数器T0/C0和T1/C1。 T0/C0由TH0(T0高8位)和TL0(T0低8位)拼装而成; T1/C1由TH1(T1高8位)和TL1(T1低8位)拼装而成; 注意,TH0、TL0、TH1、TL1都是8位的特殊功能寄存器。
GATE: 门控标志位,为0时与门引脚无关,为1时与门引脚有关; C/T^: 定时/计数模式选择标志,为0时是定时模式,为1时是计数模式; M1M0: 工作方式设置标志;00方式0,01方式1,10方式2,11方式3;
TMOD寄存器高4位用于设置T1,低4位用于设置T0,不可位寻址。
第六章 MCS-51的定时器计数器 ppt课件
ppt课件
图1
8
(4)溢出的概念
让我们再来看水滴的例子,当水不断落下,盆中的水不断变 满,最终有一滴水使得盆中的水满了。这时如果再有一滴水 落下,就会发生什么现象?水会漫出来,用个术语来讲就是 “溢出”。
水溢出是流到地上,而计数器溢出后将使得TF0变为“1”。 至于TF0是什么我们稍后再谈。一旦TF0由0变成1,就是产 生了变化,产生了变化就会引发事件,就象定时的时间一到 ,闹钟就会响一样。现在我们来研究另一个问题:要有多少 个计数脉冲才会使TF0由0变为1。
ppt课件
7
(3)定时的概念-2
只要计数脉冲的间隔相等,则计数值就代表了时间的流逝。 由此,单片机中的定时器和计数器是同一个事物,只不过计数器是记录 的外界发生的事情,而定时器则是由单片机提供一个非常稳定的计数源 。 那么提供给定时器的计数源是什么呢?看图1,原来就是由单片机的晶 振经过12分频后获得的一个脉冲源。晶振的频率当然很准,所以这个计 数脉冲的时间间隔也很准。 问题:一个12M的晶振,它提供给计数器的脉冲时间间隔是多少呢?当 然这很容易,就是12M/12等于1M,也就是1个微秒。 结论:计数脉冲的间隔与晶振有关,12M的晶振,计数脉冲的间隔是1微 秒。
ppt课件
11
1. TMOD 不能位寻址
M1、M0 工作方式选择位
C/T-功能选择位
GATE-门控位
ppt课件
12
2. TCON 可以位寻址
TR0(TCON.4) T0的运行控制位。
第六章 MCS-51的定时器/计数器
在工业检测、控制中,许多场合都要用到计数或 定时功能。例如,对外部脉冲进行计数、产生 精确的定时时间、作串行口的波特率发生器。 MCS-51单片机内有两个可编程的定时器/计数器 ,以满足这方面的需要。它们具有两种工作模 式 (计数器模式和定时器模式)及4种工作方式( 方式0、方式l、方式2和方式3),其控制字均在 相应的特殊功能寄存器中,通过对它的特殊功 能寄存器的编程,用户可方便地选择适当的工 作模式和工作方式。
第6章AT89S51单片机的定时器计数器-
TCON用于控制T0、T1的启动和停止计数,同时包含 了T0、T1的状态。
T0、T1不论是工作在定时器模式还是计数器模式,都 是对脉冲信号进行计数,只是计数信号的来源不同。
计数器模式是对加在T0(P3.4)和T1(P3.5)两个引 脚上的外部脉冲进行计数(见图6-1)。
27
(4)T1设置在方式3 当T0设置在方式3,再把T1也设成方式3,此时T1停止计数。 6.3 对外部输入的计数信号的要求 当定时器/计数器工作在计数器模式时,计数脉冲来自外部输
入引脚T0或T1。 当输入信号产生负跳变时,计数器的值增1。 每个机器周期的S5P2期间,都对外部输入引脚T0或T1进行采
18
定时器/计数器的方式2为自动恢复初值(初值自动装入)的 8位定时器/计数器。
TLx(x = 0,1)作为常数缓冲器,当TLx计数溢出时,在溢出 标志TFx置“1”的同时,还自动将THx中的初值送至TLx, 使TLx从初值开始重新计数。定时器/计数器的方式2工作 过程如图6-7所示。
19
图6-6 定时器/计数器方式2逻辑结构框图
第6章 AT89S51单片机的
定时器/计数器
成都理工大学工程技术学院 自动化工程系
1
第6章 目录 6.1 定时器/计数器的结构
6.1.1 工作方式控制寄存器TMOD 6.1.2 定时器/计数器控制寄存器TCON 6.2 定时器/计数器的4种工作方式 6.2.1 方式0 6.2.2 方式1 6.2.3 方式2 6.2.4 方式3 6.3 对外部输入的计数信号的要求
14
(1) GATE = 0,A点(见图6-4)电位恒为1,B点电位仅取决 于TRx状态。TRx = 1,B点为高电平,控制端控制电子开关 闭合,允许T1(或T0)对脉冲计数。TRx = 0,B点为低电平, 电子开关断开,禁止T1(或T0)计数。
第6章单片机的定时器计数器
定时/计数器的功能
定时/计数器的核心部件是二进制加1计数器 (TH0、TL0或TH1、TL1) 。
1. 定时功能----计数输入信号是内部时钟脉冲, 每个机器周期使寄存器的值加1。所以,计数 频率是振荡频率的1/12。
2. 计数功能----计数脉冲来自相应的外部输入 引脚,T0为P3.4,T1为P3.5。
6.1 MCS-51定时/计数器 概述
51系列内部有2个16位的定时/计数器T0、T1
功能:
定时 计数 串行口的波特率发生器
定时/计数器的可编程特性: ⑴ 确定其工作方式是定时还是计数 ⑵ 预置定时或计数初值 ⑶ 当定时时间到或计数终止时,要不要发中断请求 ⑷ 如何启动定时或计数器工作
回目录 上页 下页
MSB
LSB
TCON (88H)
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
与外部中断INT1、INT0有关 已在中断系统介绍
T1、T0 启/停控制位
“1” 启动工作 “0” 停止
T1、T0 溢出标志位 “1” 有溢出 “0” 无溢出
亦可由指令清“0”
回目录 上页 下页
* 各标志位应注意的问题
回目录 上页 下页
S2TR 0(I N0T GA)TE
TCON
申请 中断
TF1 D7
TR1
溢出
TF0
TH0 TL0
TR0
8位 8位
D0
TMOD
S2 1 S1
T0引脚
1 M0 D0 0 M1
C/T
0
&
机器周期
GATE
M0
≥1
1
M1
单片机定时器,计数器
第六章定时器/计数器第一节概述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时停止计数。
第6章 AT8S51单片机定时器计数器
ET0=1;
TR0=1; while(1) ; */ }
/*定时器T0中断允许*/
/*启动定时器T0*/ /*无穷循环,等待定时中断
23
/*以下为定时器T0的中断服务程序*/ void T0_int(void) interrupt 1 {TH0=0xee; T0溢出*/ TL0=0x00; /*给T0装入16位初值,计4608个数后,
4
6.1 概述
②T0两种工作状态( C T ) 位 (TMOD.2) =0 为内部定时 C T =1 为外部计数 ③T0可读可写 写T0就是对之赋初值 读T0就是检查T0当前的计数结果存 入单片机寄存器中 MOV DPTR,#DADA (此一条按字操作) ④中断功能 T0溢出时 计数结果为0000H 进位丢 失—CY(CY短时间还有)置位中断申请标志位 TF0 TCON.5 ⑤T0的启停可以被脚 P3.2 ,TR0位 GATE位所控制 T1同T0
本例由于采用定时器T1中断,因此需将IE寄存器中的EA、
ET1位置1。 (4)启动和停止定时器T1 将定时器控制寄存器TCON中的TR1=1,则启动定时器T1 计数;TR1=0,则停止定时器T1计数。 参考程序如下:
27
#include <reg51.h>
void Delay(unsigned int i)/* 定义延时函数Delay( ),i是形式参数,不 能赋初值*/ {unsiБайду номын сангаасned int j; for(;i>0;i--) /* 变量i由实际参数传入一个值,因此i不能赋初值*/ for(j=0;j<125;j++) {; } } /*空函数*/
22
#include<reg51.h>
51单片机内部定时器计数器
第6章 MCS - 51单片机内部定时器/计数器及串行接口
MOV TL1, #00H MOV R0, #00H ; 清中断次数计数单元 MOV P3, #28H; 设置P3.5第二功能 SETB TR1 ; 启动T1 SETB ET1; 开T1中断 SETB EA ; 开总中断 MAIN: ACALL DISP ; 主程序, 调显示子程序
第6章 MCS - 51单片机内部定时器/计数器及串行接口
二、 方式1
图 6.4 方式 1(16位计数器)
第6章 MCS - 51单片机内部定时器/计数器及串行接口
方式1和方式0的工作原理基本相同,唯一
不同是T0和T1工作在方式1时是16位的计数/定 时器。 方式1时的计数长度M是2的16次方。16位 的初值直接拆成高低字节,分别送入TH和TL 即可。
1
1
3
第6章 MCS - 51单片机内部定时器/计数器及串行接口
定时器初值的确定: 加法计数器是计满溢出时才申请中断, 所以在给定时器/ 计数器赋初值时, 不能直接输入所需的计数值, 而应输入的 是计数器计数的最大值与这一计数值的差值, 设最大值为 M, 计数值为 N, 初值为 X, 则 X的计算方法如下: 计数状态: X=M-N
程序清单如下: ORG 0000H ORG 000BH AJMP TOINT ; T0中断入口 ORG 0030H START: MOV SP, #60H; 初始化程序 MOV TH0, #0F0H ; T0赋初值 MOV TL0, #0CH MOV TMOD, #00H
AJMP START; 复位入口
TR1、TR0 分别是定时器 /计数器T1、 T0 的运行控制位,
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
此工作方式可省去用户软件中重装初值的指令的执行时 间,简化定时初值的计算方法,可相当精确地确定定时
时间。
13
6.3 定时器/计数器的工作方式及工作原理
6.3.4 方式3
14
6.3 定时器/计数器的工作方式及工作原理
6.3.4 方式3
15
6.3 定时器/计数器的工作方式及工作原理
6.3.4 方式3 把T0分为两个8位定时/计数器 P138 图6-10 使单片机具有三个定时/计数器 定时器T1没有方式3, 如设为方式3, T1停止计数 ∆ TL0可做定时/计数器 占用T0的TCON和TMOD中的 控制位和标志位 ∆ TH0只能作为定时器使用, 占用T1的资源TR1和TF1 ∆此时T1仍可用方式0、1、2, 但不能使用中断方式 ∆只有T1用作串行口波特率发生器时,T0才工作在方式 3,此时T1多用于方式2
19
6.4 定时器/计数器的编程和应用 在4种工作方式中,方式0与方式1基本相同,只是计数器的
计数位数不同。方式0为13位计数器,方式1为16位计数器。由
于方式0是为兼容MCS-48而设,且其计数初值计算复杂,所以 在实际应用中,一般不用方式0,而采用方式1。 6.4.3 P1口外接的8只LED每0.5s闪亮一次。 【例6-1】在AT89S51单片机的P1口上接有8只LED(电路见
7
6.2 定时器/计数器的工作方式选择及控制
(二) 定时/计数器控制寄存器(TCON) 控制定时/计数器的启停,反映定时/计数器是否计满。
用于外中断 TCON 地址88H 可位寻址
D7 TF1 D6 TR1 D5 TF0 D4 TR0 D3 IE1 D2 IT1 D1 IE0 D0 IT0
∆ TF0、(TF1)——T0、(T1)计数溢出标志位 =1 溢出时,硬件置1,否则清0 =0未溢出 ∆ TR0 (TR1)——T0(T1)的启/停控制位 软件置1时 启动T0 TR0=1时要判断 GATE位是否允许 P3.2启动 T0 ∆ 复位时 (TCON)=00H——禁止T0、T1计数
8
6.3 定时器/计数器的工作方式及工作原理
6.3.1 T0的方式0—13位定时/计数器
最大计数范围:0~213=8k=8192 ∆T0分为低5位和高8位 T0方式0的结构 M1 M0 =00
TMOD TMOD0 TMOD1 TMOD2 M0 M1 C/T 0 振荡器 0 T0引脚 1 INTO引脚 ≥1 ÷12 C/T=0 K C/T=1 A & B 控制 TH0 TL0 (5位) (8位) TF0 TR0 中断 TCON
2
6.1 概述
∆ 它们最低位的脉冲,将使它们自动加1,带进位
TH0 TL0
本质上讲是两个16位计数器;每输入一个脉冲增1 两种工作状态 四种工作方式 0 1 2 3 3.3 七个SFR T0 T1 TCON TMOD SP IE IP 中断申请
i--;
if(i<=0) {P1=~P1; i=100; } }
/*循环次数减1*/
/*P1口按位取反*/ /*重新设置循环次数*/
24
6.4.4 计数器的应用
【例6-2】 采用定时器T1的方式1的中断计数方式,如图613所示,计数输入引脚T1(P3.5)上外接开关K1,作为计 数信号输入。按4次K1后,P1口的8只LED闪烁不停。 (1)设置TMOD寄存器
T1工作在方式1,应使TMOD的M1、M0=01;设置计数器
工作模式C/T*=1;对T0的运行控制仅由TR0来控制,应使 GATE0=0。定时器T0不使用,各相关位均设为0。所以, TMOD寄存器应初始化为0x50。
25
图6-13
由外部计数输入信号控制LED的闪烁
26
(2)计算T1计数初值
由于每按4次K1,计数一次,因此计数器的初值为655364=65532,将其转换成16进制后为:0xfffc,因此,TH0=0xff, TL0=0xfc。 (3)设置IE寄存器
4
6.1 概述
②T0两种工作状态( C T ) 位 (TMOD.2) =0 为内部定时 C T =1 为外部计数 ③T0可读可写 写T0就是对之赋初值 读T0就是检查T0当前的计数结果存 入单片机寄存器中 MOV DPTR,#DADA (此一条按字操作) ④中断功能 T0溢出时 计数结果为0000H 进位丢 失—CY(CY短时间还有)置位中断申请标志位 TF0 TCON.5 ⑤T0的启停可以被脚 P3.2 ,TR0位 GATE位所控制 T1同T0
ET0=1;
TR0=1; while(1) ; */ }
/*定时器T0中断允许*/
/*启动定时器T0*/ /*无穷循环,等待定时中断
23
/*以下为定时器T0的中断服务程序*/ void T0_int(void) interrupt 1 {TH0=0xee; T0溢出*/ TL0=0x00; /*给T0装入16位初值,计4608个数后,
3
6.1 概述
一.T0概述 1.T0—16位计数器 占两字节 TH0—地址8CH TL0—地址8AH 复位后(T0)=0000H 计数范围0000H~0FFFFH 216 最大=65536 不能位寻址 不能按字操作 (分别从低8位,高8位 送数) P3.4 P3.5 P3.2 P3.3 2.T0的基本功能 ①对送入TL0的脉冲,使之增1 外部计数状态—对 P3.4 T0 脚的脉冲计数 两个计数源 内部定时—对机器周期计数
10
6.3 定时器/计数器的工作方式及工作原理
6.3.2 T0、T1的方式1
设定 M1M0=1 为16位定时计数器 原理同方式 1 最大计数范围 0~216=65536=64k
11
6.3 定时器/计数器的工作方式及工作原理
6.3.3 方式2
12
6.3 定时器/计数器的工作方式及工作原理
6.3.3 方式2 可自动重转初值的8位定时器/计数器 最大计数值 28 只有TL0做计数。TH0中的初始化程序装入TH0初值 每当TL0溢出时,TH0的内容自动装入TL0位,使之可 以循环计数。
第6章 AT89S51 单片机定时器/计数器
主要内容 定时/计数器的工作原理模式 定时/计数器的工作方式 定时/计数器的应用
1
6.1 概述
(1) 定时器/计数器的概念
内部计数器 定时/计数器 外部计数器 计数器 定时器
(2) AT89S51的定时器/计数器简介 2个16位的定时/计数器,有多种工作方式。 定时/计数器工作在定时模式时,计数脉冲信号来 自单片机的内部,计数速率是晶振频率的1/12,当计 数器启动后,每个机器周期计数器自动加1。 定时/计数器工作在计数模式时,计数器对外部脉 冲进行计数,计数器计P3.4(T0脚)P3.5(T1脚)负跳变 次数。每产生一次负跳变,计数器自动加1。
TMOD3 GATE
T0方式0的逻辑结构
9
6.3 定时器/计数器的工作方式及工作原理
TCON.4(主控位) 1 启动T0 控制逻辑 (GATE +P3.2)x(TR0)=门控电平= 0 停止 T0 1.13位; 2.内部定时,外部计数; 3.中断; 4.启/停控制逻 TR0无论在什么情况下,都可软件控制T0启/停 GATE=0 条件下,P3.2脚不能控制T0启/停 GATE=1 可控制T0的启/停。
21
则5000=(216 −X)12/11.0592
得:X = 60928,转换成16进制后为:0xee00,其中0xee装入 TH0,0x00装入TL0。 (3)设置IE寄存器 本例由于采用定时器T0中断,因此需将IE寄存器中的EA、
ET0位置1。
(4)启动和停止定时器T0 将定时器控制寄存器TCON中的TR0=1,则启动定时器T0; TR0=0,则停止定时器T0定时。 参考程序如下:
void main( )
{TMOD=0x50; */ TH0=0xff;
/*主函数*/
/*设置定时器T1为方式1计数
/*向TH0写入初值的高8位*/
28
TL0=0xfc;
EA=1; ET1=1; TR1=1; while(1) ; } /*以下为定时器T1的中断服务程序*/ void T1_int(void) interrupt 3 {for(;;) {P1=0xff; Delay(500) ; P1=0; Delay(500); }
本例由于采用定时器T1中断,因此需将IE寄存器中的EA、
ET1位置1。 (4)启动和停止定时器T1 将定时器控制寄存器TCON中的TR1=1,则启动定时器T1 计数;TR1=0,则停止定时器T1计数。 参考程序如下:
27
#include <reg51.h>
void Delay(unsigned int i)/* 定义延时函数Delay( ),i是形式参数,不 能赋初值*/ {unsigned int j; for(;i>0;i--) /* 变量i由实际参数传入一个值,因此i不能赋初值*/ for(j=0;j<125;j++) {; } } /*空函数*/
16
6.4 定时器/计数器的应用程序设计
6.4.1 T/C的计数初值C的计算和装入 1、计数初值C的求法 计数方式:C=最大计数值-计数个数X 0 213=8192 1 216=65536 2、3 28=256 定时方式:最大计数值-定时时间/机器周期T 2、T/C在不同工作方式下的初值装入方式 1)方式0:13位 要装入1F90H初值时
2)方式1,16位方式 初值低8位装入TL0 高8位装入TH0 TH0=0xFF; TL0 =0x9C; 3)方式2、初值既要装入TH0,也要装入TL0用指令表示为 TH0=0x9C; TL0=0x9C;
18
6.4 定时器/计数器的应用程序设计