《单片机原理及应用(第2版)》张兰红第7章定时器计数器及应用

上传人:E**** 文档编号:100352030 上传时间:2019-09-23 格式:PPTX 页数:61 大小:1.64MB
返回 下载 相关 举报
《单片机原理及应用(第2版)》张兰红第7章定时器计数器及应用_第1页
第1页 / 共61页
《单片机原理及应用(第2版)》张兰红第7章定时器计数器及应用_第2页
第2页 / 共61页
《单片机原理及应用(第2版)》张兰红第7章定时器计数器及应用_第3页
第3页 / 共61页
《单片机原理及应用(第2版)》张兰红第7章定时器计数器及应用_第4页
第4页 / 共61页
《单片机原理及应用(第2版)》张兰红第7章定时器计数器及应用_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《《单片机原理及应用(第2版)》张兰红第7章定时器计数器及应用》由会员分享,可在线阅读,更多相关《《单片机原理及应用(第2版)》张兰红第7章定时器计数器及应用(61页珍藏版)》请在金锄头文库上搜索。

1、1,3.7,定时/计数技术概述,7.1,80C51单片机的定时器/计数器,7.2,定时器/计数器的应用,7.3,第7章 定时器/计数器及其应用,7.1 定时/计数技术概述,定时和计数都是利用计数器对脉冲进行计数。 定时是对周期固定的内部机器周期脉冲进行计数,定时时间为脉冲周期与脉冲个数的乘积。 计数是对外界产生的脉冲进行计数。计数器的计数方式可以是加1计数,也可以是减1计数。 在单片机控制系统中定时/计数的实现方法有3种: (1) 软件定时/计数器、 (2) 数字电路定时/计数器 (3) 可编程定时/计数器。,软件定时是靠执行一段循环程序以实现时间延迟。如本书前面 常用的void DelayM

2、S(uint xms)延时子函数: void DelayMS(uint xms) uint i,j; for(i=0; ixms;i+) for(j=0;j110;j+); ,7.1.1 软件定时/计数器,需要计数较多或定时时间较长,常使用硬件电路完成。硬件定 时/计数的特点是定时/计数功能全部由硬件电路完成,不占用 CPU的时间,但需要通过改变电路中的元件参数来调节定时时 间和计数长度,使用上不够灵活。,7.1.2 数字电路定时/计数,为了使用方便并增加单片机的功能,很多单片机内部都集成了 可编程的定时/计数器。80C51单片机内部就有可编程的定时/ 计数器,其中51子系列内部有2个,52子

3、系列内部有3个。本章 只介绍51子系列内部的定时器/计数器。,7.1.3 可编程定时/计数,7.2 80C51单片机的定时器/计数器,51子系列单片机内部有两个独立的16位可编程定时/计 数器,分别称为定时器0(简称T0)和定时器1(简称T1)。 它们可以编程选择工作于定时模式或外部事件计数模 式,此外它们的工作方式、定时时间、计数值、启动、 是否允许中断等都可以由程序设定。,定时器/计数器的内部结构框图如图7-1所示。,图7-1 定时器/计数器0、1的内部结构框图,7.2.1 定时器/计数器的结构,定时器/计数器T0、T1的工作原理图如图7-2所示。,图7-2 定时器/计数器的工作原理图,(

4、a) 定时器/计数器0(T0)工作原理图,7.2.2 定时器/计数器的工作原理,定时器/计数器T0、T1的工作原理图如图7-2所示。,图7-2 定时器/计数器的工作原理图,(b) 定时器/计数器1(T1)工作原理图,7.2.2 定时器/计数器的工作原理,1.工作方式寄存器TMOD TMOD用来选择定时器/计数器的工作模式和工作方式,字 节地址为89H,不能进行位寻址,低4位用于定时器/计数器 T0,高4位用于定时器/计数器T1,其格式如下所示:,8位分为2组,高4位控制T1,低4位控制T0。各位的含义说明如下: (1) M1、M0:工作方式选择位 定时器/计数器有四种工作方式,由M1、M0进行

5、设置,如表7-1所示。 表7-1定时器/计数器0、1的工作方式选择,(2) :定时器/计数器工作模式选择位。 0,为定时器工作模式; 1,为计数器工作模式。 (3) GATE:门控位。 GATE=0,定时器/计数器0、1的启动计数由TCON中的TR0、TR1 控制,当TR0或TR1为1时,就可以启动定时器/计数器0或1工作。 GATE=1,定时器/计数器0、1的启动计数由TCON中的TR0、TR1 和外部中断引脚 、 一起控制。当TR0或TR1为1,同时 或 也为高电 平时,才能启动定时器/计数器0或1工作。,例7-1 若定时器T1工作于方式2计数模式,定时器T0工作于方式1定时模式,GATE

6、=0,要求设置TMOD。 解:根据TMOD各位的定义,得TMOD=01100001B=61H。,2控制寄存器TCON TCON的字节地址为88H,可位寻址,位地址为88H8FH, TCON的格式如下:,低4位与外部中断有关,已在第6章中介绍,高4位的功能如下: (1) TF1:定时器/计数器T1溢出中断请求标志位。 定时器/计数器T1计数溢出后,硬件自动将TF1置1。使用查询方式 时,查询到TF1=1后,应该及时用软件方法将TF1清0。使用中断方 式时,CPU响应中断后,进入中断服务程序后由硬件自动将TF1清0。 (2) TR1:定时器/计数器T1的运行控制位。TR1=1,启动定时器/计 数器

7、工作;TR1=0,停止定时器/计数器工作。 (3) TF0:定时器/计数器T0的溢出中断请求标志位,其功能与TF1类 似。 (4) TR0:定时器/计数器T0的运行控制位,其功能与TR1类似。,3. 定时器/计数器的工作模式选择 定时器/计数器的工作模式选择由 决定,如图7-3所示,位控制的电子开关S1决定了定时器/计数器的工作模式,电子 开关打在上面 0,电子开关打在下面 1。 0时为定时器工作模式,以系统晶振频率12分频后的信号, 即Tcy信号作为计数器基准信号。 1时为计数器工作模式,计数脉冲为P3.4引脚上的外部输入 脉冲,当引脚上发生负跳变时,计数器加1。,4. 定时器/计数器的运行

8、控制 定时器/计数器的运行控制如图7-4所示,电子开关S2闭合时 定时器/计数器启动计数,S2断开时定时器/计数器停止计数 。电子开关S2由门控位GATE、运行控制位及外部中断输 入引脚 共同控制。,当门控位GATE=0时,或门A输出为1,定时器/计数器T0启动运行受 TR0一个条件控制。当门控位GATE=1时,定时器/计数器T0启动运行 受TR0和外部中断0引脚 的状态两个条件控制。此时,定时器T0的运 行情况如表7-2所示。 表7-2 GATE=1时,与门B输出与定时器T0的运行情况,定时器/计数器的工作方式有4种,由TMOD中的M1M0控制。 1. 方式0 当TMOD的M1M0=00时,

9、定时器/计数器工作于方式0,为13位 的定时器/计数器方式。由TL0的低5位和TH0的高8位构成13位 的计数器,如图7-5所示。TL0低5位计数溢出则向TH0进位, TH0计数溢出则置位TCON中的溢出标志位TF0。,7.2.3 定时器/计数器的工作方式,单片机内部的定时器/计数器为加法计数器,假设N是计数值,x 为计数初值,n为定时器/计数器的位数,它们之间的关系如下: N=2n-x 如果定时器/计数器工作于定时器工作模式,晶振频率为fosc, 要求的定时时间为T,则机器周期Tcy为12/fosc,定时时间、计 数初值和机器周期的关系如下: T(2n-x)Tcy,方式0中初值x的设置范围:

10、08191(0213-1),TH0、TL0从初值 开始加法计数,直至溢出,所以设置的初值不同,定时时间或 计数值也不同。因此方式0工作时计数值和定时值分别为: N= 213-x =8192-x T(2n-x)Tcy= (8192-x )Tcy,由于为加1计数器,当x取为8191时,计数值最小,为1;当x取 为0时,计数值最大,为8192。因此方式0的计数范围为: 18192,定时范围:(18192)Tcy。 注意:方式0加法计数器TH0溢出后,必须用程序重新对TH0、 TL0设置初值,否则下一次TH0、TL0将从0开始加法计数。,例7-2 已知晶振频率fosc=12MHz,要求定时器0产生1m

11、s的定时时间,问送入TH0和TL0的计数初值各为多少?试对定时器进行初始化编程。 解:由于晶振频率为12MHz,所以机器周期Tcy=1s,定时器0选用方式0时最大定时时间为8192s,即8.192ms,而题目要求的定时时间为1ms,小于8.192ms,所以可以选用方式0。 (1) 计算TH0、TL0的计数初值 T=(2n-x)Tcy(213-x)1s =1ms=1000s, 所以x=8192-1000=7192=1C18H=00011100 00011000B,取其低 13位,放入TH0和TL0,则TH0=E0H,TL0=18H。,(2) TMOD寄存器初始化 根据题目要求,GATE (TMO

12、D.3)=0, (TMOD.2)=0,M1 (TMOD.1)=0,M0 (TMOD.0)=0,定时器/计数器1没有使用,相应的各个位随意状态,均取为 0,则(TMOD)=00H。 (3) 初始化程序 void init_time0(void) TMOD=0x00; /设置T0为定时器模式,工作在方式0 TH0=0xE0; TL0=0x18; TR0=1; / 启动T0 方式0是13位定时器/计数器,目的是为了兼容早期的MCS-48单片机,计数 初值有高8位和低5位构成,确定初值比较麻烦,所以在实际应用中已应用不多。,2. 方式1 当TMOD的M1M0=01时,定时器/计数器工作于方式1,工作于

13、 16位的定时器/计数器方式。由8位TL0和8位TH0构成16位计数 器,如图7-6所示。TL0计数溢出则向TH0进位,TH0计数溢出 则置位TCON中的溢出标志位TF0。,方式1和方式0的差别仅在于计数器的位数不同,方式1是16位定 时器/计数器,由TH0高8位和TL0低8位构成,方式0是13位定时 器/计数器。 方式1中初值x的设置范围:065535(0216-1),TH0、TL0从初 值开始加法计数,直至溢出。选择方式1工作时计数值和定时值 分别为: N= 216-x=65536-x T(216-x) Tcy =(65536-x )Tcy,当x取为65535时,计数值最小,为1;当x取为

14、0时,计数值最 大,为65536。因此方式1的计数范围为:165536,定时范围: (165536)Tcy。 注意:方式1加法计数器TH0溢出后,必须用程序重新对TH0、 TL0设置初值,否则下一次TH0、TL0将从0开始加法计数。,例7-3 已知晶振频率fosc=12MHz,要求定时器0产生10ms的定时时间,试对定时器进行初始化编程。 解:由于晶振频率为12MHz,机器周期Tcy=1s,选用方式0时最大定时时间8.192ms,选择方式1时,最大定时时间为65.536ms,要求的定时时间为10ms,所以不能选择方式0,只能选用方式1。 (1) 计算TH0、TL0的计数初值 由于晶振频率为12

15、MHz,所以机器周期Tcy=1s,则定时时间为: T=(2n-x)Tcy(216-x)1s =10ms, 所以x=65536-10000=55536=D8F0H 即TH0=D8H,TL0=F0H,或者TH0=55536/256,TL0=55536%256,(2) TMOD寄存器初始化 根据题目要求,GATE (TMOD.3)=0, (TMOD.2)=0,M1 (TMOD.1)=0,M0 (TMOD.0)=1,定时器/计数器1没有使用,相应的各个位状态随意,均取为 0,则(TMOD)=01H。 (3) 初始化程序 void init_time0(void) TMOD=0x01; /设置T0为定时

16、器模式,工作在方式1 TH0=(65536-10000)/256; TL0=(65536-10000)%256; TR0=1; / 启动T0 ,3. 方式2 当TMOD的M1M0=10时,定时器/计数器工作于方式2,工作于 8位自动重装初值的8位定时器/计数器方式。方式2计数器构成 如图7-7所示,TL0作为8位计数器使用,TH0作为初值寄存器 用,TL0计数溢出后,将TF0置1,同时发出自动重装初值的信 号,使三态门打开,将TH0中初值自动送入TL0,使TL0从初值 开始重新计数。,方式2中初值x的设置范围:0255 (028-1),TL0从初值开始加 法计数,溢出后TH0中初值重新置入TL0。方式2工作时计数值 和定时值分

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号