51单片机定时器的使用和详细讲解-特别是定时器2_第1页
51单片机定时器的使用和详细讲解-特别是定时器2_第2页
51单片机定时器的使用和详细讲解-特别是定时器2_第3页
51单片机定时器的使用和详细讲解-特别是定时器2_第4页
51单片机定时器的使用和详细讲解-特别是定时器2_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

定时器的讲解和使用

有对定时器2的详细讲解

2021/5/91章节概述很棒8.1概述8.2定时器T0和T1的结构8.3定时器工作模式8.4定时器T22021/5/928.1概述定时器是单片机的重要功能模块之一,在检测、控制领域有广泛应用。定时器常用作定时时钟,以实现定时检测、定时响应、定时控制,并且可用于产生ms宽的脉冲信号,驱动步进电机定时和计数功能最终都是通过计数实现的,若计数的事件源是周期固定的脉冲,则可以实现定时功能,否则只能实现计数功能。因此可以将定时和计数功能由一个部件实现。2021/5/93实现定时和计数的方法一般有:软件定时、专用硬件电路和可编程定时器/计数器三种方法。软件定时:执行一个循环程序进行时间延迟。定时准确,不需要外加硬件电路,但增加CPU开销。专用硬件电路定时:可实现精确的定时和计数,但参数调节不便。可编程定时器/计数器:不占用CPU时间,能与CPU并行工作,实现精确的定时和计数,又可以通过编程设置其工作方式和其它参数,因此使用方便。

2021/5/94定时器的基本工作原理是:利用计数器对固定周期的脉冲计数,通过寄存器的溢出来触发中断。具体应用步骤:1)根据需要的定时时间,结合单片机的晶振频率,计算出寄存器的初始值2)根据需要开中断3)启动定时器若已规定用软件启动,则可把TR0、TR1或TR2置“1”;若已规定由外中断引脚电平启动,则需给外引脚步加启动电平。当实现了启动要求后,定时器即按规定的工作方式和初值开始计数或定时。2021/5/95XC866单片机有三个16位的定时器——定时器0、定时器1和定时器2。定时器0、1各具有四种工作模式;定时器2有两种工作模式。定时器0、1和定时器2的任何一种工作模式均可通过程序对相应寄存器进行设置来选择。定时器在定时时间到时,可以由程序决定是否产生中断请求信号,进而判断是否执行中断程序。但是,无论中断请求信号是否产生,当定时器在定时时间到时,定时器的溢出标志位TF0(TF1)由硬件置“1”。2021/5/968.2定时器T0和T1的结构定时器T0和T1的结构如图8-1所示。图8-1定时器T0和T1结构图核心寄存器——16位加法计数器定时器模式寄存器2021/5/971.16位加法计数器16位加法计数器是定时器的核心,图8-1中用寄存器TH0、TL0及TH1、TL1表示。T0加法计数器的高8位和低8位分别用TH0、TL0表示T1加法计数器的高8位和低8位分别用TH1、TL1表示高8位和第8为可分别单独使用当定时器工作时,加法计数器对内部机器周期脉冲Tcy计数。Tcy2021/5/982.模式寄存器(TMOD)

TMOD用来选择定时器0、1的工作模式,低4位用于定时器0,高4位用于定时器1,其组成如图8-2所示。图8-2模式寄存器组成方式选择00:模式001:模式110:模式211:模式3方式选择T1T02021/5/993.控制寄存器(TCON)TCON高4位用于控制定时器0、1的运行;低4位用于控制外部中断,与定时器无关。定时器0、1运行控制位TR0(TR1):TR0(TR1)=1启动TR0(TR1)=0停止定时器0、1溢出标志TF0(TF1):溢出时该位由硬件自动置1,响应中断后,由硬件自动清0图8-3控制寄存器组成2021/5/9104.中断使能寄存器(IEN0)IEN0中的ET0(ET1)位控制定时器0、1是否产生中断请求信号。为0时不产生中断请求信号,为1时允许产生中断请求信号。其结构如图8-4所示。图8-3中断使能寄存器组成定时器0中断使能位定时器0中断使能位2021/5/9118.3定时器工作模式定时器0和定时器1完全兼容,均可设定为四种不同的工作模式,如表8-1所示。寄存器TMOD的位域TxM选择定时器的工作模式。两个定时器在模式0、1和2时独立工作;在模式3时具有特定功能。2021/5/912表8-1定时器0和定时器1工作模式2021/5/9131.工作模式0当T0M(T1M)=00时定时器设定为工作模式0,此时定时器工作于13位定时状态。其中TH0是高8位加法计数器,TL0是低5位加法计数器(TL0只用了低5位,高3位未用)。TL0加法计数溢出时向TH0进位,TH0加法计数溢出时硬件置TF0=1。加法计数器对机器周期脉冲Tcy计数,每个机器周期TL0加1。2021/5/914定时器的定时时间计数初始值X最大定时能力:2021/5/915模式0的结构图如图8-4所示。图8-4方式0结构图门控位GATE=0定时器不受控于外部信号;仅打开与门,是定时器仅有TR位控制;GATE=1定时器受控于外部信号,此时要求TR=1;13位加法计数器2021/5/916例题:生成周期为1.2ms的等宽正方波。机器晶振26.67MHz。使用T0以方式0工作,由P0.0输出1.2ms机器周期:37.5ns。计数周期Tcy是机器脉冲的2分频,因此Tcy=75ns;定时时间0.6ms。以0.6ms为周期在P1.0端交替输出高低电平。2021/5/917定时器初始化程序MOVTL0,#0X00MOVTH0,#0X06MOVTMOD,#0X00SETBET0SETBTR0定时器中断服务程序PUSH….……CPLP0_0……POP…T0从192开始计数,直到超过8192即溢出,置TF0=1,产生中断信号2021/5/9182.工作模式1T0M(T1M)=01时定时器设定为工作模式1,此时定时器0(定时器1)被设置为16位定时器。此时TH0、TL0都是8位加法计数器。其他与工作方式0相同。定时器的定时时间计数初始值2021/5/919模式1的结构图如图8-5所示。图8-5方式1结构图16位加法计数器2021/5/9203.工作模式2当T0M(T1M)=10时定时器设定为工作模式2,此时定时器0(定时器1)被设置为可自动重载的8位定时器。TL0为8位加法计数器,TH0为存放该8位加法计数器初值的寄存器。TH0、TL0的初值都由程序预置。在工作模式2中,定时器的定时时间由下式确定:只有T0可工作于此模式2021/5/921模式2的结构图如图8-6所示。图8-6方式2结构图8位加法计数器初值寄存器2021/5/9224.工作模式3当T0M(T1M)=11时定时器设定为工作模式3,只有定时器0可以工作在工作模式3下。如把定时器1设置为工作模式3,则定时器1停止工作。TL0、TH0成为两个独立的8位加法计数器。它的工作情况与模式0、模式1类似,差别在于定时范围为:模式3的结构图如图8-7所示。TL0占用定时器0的控制位:GATE0,TR0和TF0TH0占用定时器1的控制位TR1和TF1,TH0溢出时将置位TF1,并且在ET1置位时产生中断。2021/5/923图8-7方式3结构图2021/5/924T0和T1的应用举例例若fOSC=26.67MHz,T1工作于方式1,产生45ms的定时中断,TF1为其中断源标志。试编写主程序和中断服务程序,使P1.0产生周期为90ms的方波。(忽略中断响应时间和指令执行时间)解:让P1.0每45ms取反一次即可实现。定时器的单次定时时间不可能达到45ms,如果设定16位的工作模式1,最大定时时间也才为4.9152ms。可让定时器多次定时产生4.5ms的定时时间,如让T1工作在方式1,单次定时时间为4.5ms,那么T1中断10次就是45ms的时间。2021/5/925(1)确定定时常数假设使用fOSC的2分频作为计数源,则Tcy=2/fOSC

=2/(26.67×106)=75ns由公式可知计数初值∴TH1=0x15,TL0=0xA0。

2021/5/926(2)初始化程序包括T1初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送入T1。一般将初始化操作放在主程序中完成,当程序规模较大时,应编写单独的初始化程序,以利于程序的模块化设计。(3)中断服务程序中断服务程序除了完成要求的方波产生这一工作之外,还要注意将时间常数重新送入T1中,为下一次产生中断作准备。2021/5/927程序清单如下(主程序):

#include<c8051f020.h>sbitP1_0=P1^0;intcount=10; //10次T1中断为45msvoidmain(void){ TMOD=0x10; //T1方式1 P1_0=0;TH1=0x15; //初值

TL1=0xA0;IEN0=0x08; //允许T1中断

IP|=0x08;

IPH|=0x08;//TF1中断为高级中断

TR1=1EA=1;//总开中断while(1); //死循环,查询等待TF1置位,产生方波}注:寄存器所在页的选择没有列出2021/5/928程序清单如下(中断服务程序片段):

{TF1=0;TH1=0x15;

TL1=0xA0;

//重填初值If(count!=0)count--;else{count=10;P1_0=!P1_0;}}2021/5/9298.4定时器T28.4.1概述定时器2是一个16位通用计数器,其具有两种操作模式:16位自动重载模式和16位捕获模式。如果预分频功能被禁止,定时器2工作时,16位通用加法计数器以12分频的周期脉冲计数,每个周期16位通用加法计数器加1或减1。2021/5/930定时器2由T2MOD寄存器、T2CON存器、功能存器TH2、TL2、RC2H、RC2L等电路构成。TH2、TL2构成16位通用计数器。RC2H、RC2L作为16位寄存器,在自动重载模式中RC2H、RC2L作为16位通用计数器的16位初值寄存器在捕捉模式中,当引脚T2EX上出现下降沿跳变时,把TH2、TL2的当前值捕捉到RC2H、RC2L中去。2021/5/9318.4.2定时器T2控制寄存器1.模式寄存器T2MOD寄存器T2MOD用来选择定时器2的工作模式。其组成如图8-8所示。2021/5/932启动边沿选择位

外部启动使能位

捕获模式/重载模式的边沿选择位

预分频使能位

计数器递增/递减使能位

图8-8T2MOD各位功能2021/5/9332.控制寄存器T2CON寄存器T2CON控制定时器2的工作模式,其各位功能如图8-9所示。上溢/下溢标志位

外部事件标志位展示T2EX引脚状态

捕获/重载模式选择位0:重载;1:捕获

外部使能控制位1:使能T2EX引脚控制;0:禁止

T2EX引脚控制;启动/停止控制位

图8-9T2CON各位功能2021/5/9348.4.3定时器T2工作模式1.自动重载模式控制寄存器T2CON中的

置“0”时,定时器2被选择为自动重载模式。该模式下,定时器2计数至溢出时,将寄存器RC2H、RC2L中的16位初始值重新装入定时器的TH2、TL2寄存器中,开始新一轮计数循环。并置位寄存器T2CON的TF2位表示计数溢出,从而向CPU发送中断请求信号。溢出标志TF2必须由程序清零。根据控制寄存器T2MOD中DCEN控制位的设置,自动重载模式可进一步分为两种类型。2021/5/9351)禁止递增/递减计数模式若DCEN=0,则递增/递减计数选择被禁止,此时定时器只能递增计数。工作原理如图

8-10所示。图8-10T2禁止递增/递减计数模式27号引脚使能/禁止引入外部信号控制T2中断标志位通用16定时器寄存器重载值寄存器预分频使能位2021/5/936若EXEN2=0,置位TR2定时器开始递增计数,计数至最大值FFFFH后溢出并置位TF2,同时将寄存器RC2中的16位重载值重新装入定时器寄存器。重载值由软件预先设置。新一轮计数循环开始,定时器同上一轮计数循环一样,从重载值开始递增计数。2021/5/937若EXEN2=1,置位TR2定时器开始递增计数至最大值FFFFH。计数溢出或输入引脚T2EX的负/正跳变(由寄存器T2MOD的位EDGESEL选择)均会引起16位重载,将寄存器RC2的内容重新装入定时器寄存器。中断标志位:若由溢出引起重载,溢出标志TF2置位。若由引脚T2EX的负/正跳变引起重载,寄存器T2CON中的EXF2置位。这两种情况均产生中断,定时器进入下一轮计数循环。EXF2标志和TF2一样必须由软件清零。2021/5/938允许硬件启动时(T2RHEN=1)T2EX第一个上升沿/下降沿触发TR2=1启动T2;上升沿/下降沿的选择由T2REGS选择;如果使能外部控制(EXEN2=1),引脚T2EX的边沿跳变完成两个任务:(由T2REGS选择上升沿/下降沿)启动T2EXF2置位2021/5/9392)使能递增/递减计数模式若DCEN=1,则递增/递减计数选择被使能,此时定时器可以递增或递减计数。工作原理如图

8-11所示。图8-11T2使能递增/递减计数模式2021/5/940引脚T2EX的逻辑电平为1时定时器2递增计数,因此定时器递增计数,计数至最大值FFFFH后溢出并置位TF2,RC2寄存器的16位重载值重新装入定时器寄存器。引脚T2EX的逻辑电平为0时定时器2递减计数。定时器递减计数并当THL2的值和寄存器RC2中的值相等时发生下溢。下溢后置位TF2,并将值FFFFH重新载入定时器寄存器THL2中2021/5/941若允许硬件启动T2(当T2RHEN=1)时,根据T2EX输入的是上升沿/下降沿可将T2设置为递增、递减计数T2由上升沿启动,T2只能工作于递增模式T2由下降沿启动,T2只能工作于递减模式2021/5/9422.捕获模式控制寄存器T2CON中的

及EXEN2置位时,定时器进入16位捕获模式。此模式下,递减计数功能必须禁止。16位计数器始终递增计数,计数至最大值FFFFH后溢出,TF2置位并将0000H重新载入定时器寄存器TH2、TL2中。溢出后TF2置位,则定时器向CPU发送中断请求。捕获模式的结构图如图8-12所示。2021/5/943图8-12T2捕获模式结构图2021/5/944在引脚T2EX的下降沿/上升沿(由T2MOD.EDGESEL选择),将定时器寄存器(THL2)的值捕获到寄存器RC2中。如果在计数器加1时检测到捕获信号,计数器先加1然后执行捕获操作,从而确保总能捕获到定时计数器的最新值。执行完捕获操作,EXF2置位、可用来产生中断请求2021/5/945若允许硬件启动T2(当T2RHEN=1)时,引脚T2EX输入的第一个下降沿/上升沿(由T2MOD.EDGESEL选择)启动T2在启动T2的同时,置位EXF2。在下一个下降沿/上升沿到来时,将进行捕获操作。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论