片机定时器的使用和详细讲解特别是定时器.ppt

上传人:桔**** 文档编号:568585071 上传时间:2024-07-25 格式:PPT 页数:50 大小:629KB
返回 下载 相关 举报
片机定时器的使用和详细讲解特别是定时器.ppt_第1页
第1页 / 共50页
片机定时器的使用和详细讲解特别是定时器.ppt_第2页
第2页 / 共50页
片机定时器的使用和详细讲解特别是定时器.ppt_第3页
第3页 / 共50页
片机定时器的使用和详细讲解特别是定时器.ppt_第4页
第4页 / 共50页
片机定时器的使用和详细讲解特别是定时器.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《片机定时器的使用和详细讲解特别是定时器.ppt》由会员分享,可在线阅读,更多相关《片机定时器的使用和详细讲解特别是定时器.ppt(50页珍藏版)》请在金锄头文库上搜索。

1、定时器的讲解和使用 有对定时器2的详细讲解第八章第八章 定时器定时器1章节概述 很棒n8.1 8.1 概述概述n8.2 8.2 定时器定时器T0T0和和T1T1的结构的结构n8.3 8.3 定时器工作模式定时器工作模式n8.4 8.4 定时器定时器T2T228.1 8.1 概述概述n定时器是单片机的重要功能模块之一,在检测、控制领域有广泛应用。n定时器常用作定时时钟,以实现定时检测、定时响应、定时控制,并且可用于产生ms宽的脉冲信号,驱动步进电机n定时和计数功能最终都是通过计数实现的,若计数的事件源是周期固定的脉冲,则可以实现定时功能,否则只能实现计数功能。因此可以将定时和计数功能由一个部件实

2、现。3n实现定时和计数的方法一般有:软件定时、专用硬件电路和可编程定时器/计数器三种方法。q软件定时软件定时:执行一个循环程序进行时间延迟。定时准确,不需要外加硬件电路,但增加CPU开销。q专用硬件电路定时:专用硬件电路定时:可实现精确的定时和计数,但参数调节不便。q可编程定时器计数器:可编程定时器计数器:不占用CPU时间,能与CPU并行工作,实现精确的定时和计数,又可以通过编程设置其工作方式和其它参数,因此使用方便。 4n定时器的基本工作原理是:利用计数器对固定周期的脉冲计数,通过寄存器的溢出来触发中断。q具体应用步骤:n1)根据需要的定时时间,结合单片机的晶振频率,计算出寄存器的初始值n2

3、)根据需要开中断n3)启动定时器q若已规定用软件启动,则可把TR0、TR1或TR2置“1”;若已规定由外中断引脚电平启动,则需给外引脚步加启动电平。当实现了启动要求后,定时器即按规定的工作方式和初值开始计数或定时。 5nXC866单片机有三个16位的定时器定时器0、定时器1和定时器2。n定时器0、1各具有四种工作模式;定时器2有两种工作模式。n定时器0、1和定时器2的任何一种工作模式均可通过程序对相应寄存器进行设置来选择。n定时器在定时时间到时,可以由程序决定是否产生中断请求信号,进而判断是否执行中断程序。n但是,无论中断请求信号是否产生,当定时器在定时时间到时,定时器的溢出标志位TF0(TF

4、1)由硬件置“1”。68.2 8.2 定时器定时器T0T0和和T1T1的结构的结构n定时器T0和T1的结构如图8-1所示。图8-1 定时器T0和T1结构图核心寄存器核心寄存器16位加位加法计数器法计数器定时器模定时器模式寄存器式寄存器71.161.16位加法计数器位加法计数器n16位加法计数器是定时器的核心,图8-1中用寄存器TH0、TL0及TH1、TL1表示。nT0加法计数器的高8位和低8位分别用TH0、TL0表示nT1加法计数器的高8位和低8位分别用TH1、TL1 表示n高8位和第8为可分别单独使用n当定时器工作时,加法计数器对内部机器周期脉冲Tcy计数。Tcy8n2.2.模式寄存器(模式

5、寄存器(TMODTMOD) TMOD用来选择定时器0、1的工作模式,低4位用于定时器0,高4位用于定时器1,其组成如图8-2所示。图8-2 模式寄存器组成方式方式选择选择0000:模式:模式0 00101:模式模式1 11010:模式模式2 21111:模式模式3 3方式方式选择选择T1T1T0T09n3.3.控制寄存器(控制寄存器(TCONTCON)qTCON高4位用于控制定时器0、1的运行;低4位用于控制外部中断,与定时器无关。 定时器定时器0 0、1 1运行控运行控制位制位TR0TR0(TR1TR1):):TR0(TR1)=1 TR0(TR1)=1 启动启动TR0(TR1)=0 TR0(

6、TR1)=0 停止停止定时器定时器0 0、1 1溢出标志溢出标志TF0TF0(TF1TF1):):溢出时该位由硬件自溢出时该位由硬件自动置动置1 1,响应中断后,响应中断后,由硬件自动清由硬件自动清0 0图8-3 控制寄存器组成10n4.4.中断使能寄存器(中断使能寄存器(IEN0IEN0)qIEN0中的ET0(ET1)位控制定时器0、1是否产生中断请求信号。为0时不产生中断请求信号,为1时允许产生中断请求信号。其结构如图8-4所示。 图8-3 中断使能寄存器组成定时器定时器0 0中中断使能位断使能位定时器定时器0 0中中断使能位断使能位118.3 8.3 定时器工作模式定时器工作模式n定时器

7、0 和定时器1 完全兼容,均可设定为四种不同的工作模式,如表8-1 所示。寄存器TMOD 的位域TxM选择定时器的工作模式。 n两个定时器在模式0、1 和2 时独立工作;在模式3 时具有特定功能。 12表8-1 定时器0 和定时器1 工作模式 13n1.1.工作模式工作模式0 0n当T0M(T1M)=00时定时器设定为工作模式0,此时定时器工作于13位定时状态。n其中TH0是高8位加法计数器,TL0是低5位加法计数器(TL0只用了低5位,高3位未用)。TL0加法计数溢出时向TH0进位,TH0加法计数溢出时硬件置TF0=1。n加法计数器对机器周期脉冲Tcy计数,每个机器周期TL0加1。14n定时

8、器的定时时间n计数初始值Xn最大定时能力:15模式0的结构图如图8-4所示。图8-4 方式0结构图门控位GATE=0 定时器不受定时器不受控于外部信号;仅打控于外部信号;仅打开与门,是定时器仅开与门,是定时器仅有有TR位控制;位控制;GATE=1 定时器受控定时器受控于外部信号,此时要于外部信号,此时要求求TR=1;13位加法位加法计数器计数器16p例题例题:生成周期为1.2 ms的等宽正方波。机器晶振26.67MHz。使用T0以方式0工作,由P0.0输出1.2 msn机器周期:37.5ns。计数周期Tcy是机器脉冲的2分频,因此Tcy=75ns;n定时时间0.6ms 。n以0.6 ms为周期

9、在P1.0端交替输出高低电平。17n定时器初始化程序 MOV TL0, #0X00 MOV TH0,#0X06 MOV TMOD,#0X00 SETB ET0 SETB TR0n定时器中断服务程序 PUSH . CPL P0_0 POP T0从从192开始计数,直到开始计数,直到超过超过8192即溢出,置即溢出,置TF0=1,产生中断信号产生中断信号18n2.2.工作模式工作模式1 1nT0M(T1M)=01时定时器设定为工作模式1,此时定时器0(定时器1)被设置为16位定时器。此时TH0、TL0都是8位加法计数器。其他与工作方式0相同。n定时器的定时时间n计数初始值19模式1的结构图如图8-

10、5所示。图8-5 方式1结构图16位加法位加法计数器计数器20n3.3.工作模式工作模式2 2n当T0M(T1M)=10时定时器设定为工作模式2,此时定时器0(定时器1)被设置为可自动重载的8 位定时器。qTL0为8位加法计数器,qTH0为存放该8位加法计数器初值的寄存器。 qTH0、TL0的初值都由程序预置。n在工作模式2中,定时器的定时时间由下式确定:只有只有T0可工可工作于此模式作于此模式21模式2的结构图如图8-6所示。图8-6 方式2结构图8位加法位加法计数器计数器初值寄初值寄存器存器22n4.4.工作模式工作模式3 3n当T0M(T1M)=11时定时器设定为工作模式3,只有定时器0

11、可以工作在工作模式3下。如把定时器1设置为工作模式3,则定时器1停止工作。nTL0、TH0成为两个独立的8位加法计数器。它的工作情况与模式0、模式1类似,差别在于定时范围为:n模式3的结构图如图8-7所示。 nTL0 占用定时器0 的控制位:GATE0,TR0 和TF0nTH0占用定时器1 的控制位TR1 和TF1,TH0 溢出时将置位TF1, 并且在ET1 置位时产生中断。23图8-7 方式3结构图24T0和T1的应用举例n例 若fOSC=26.67MHz,T1工作于方式1,产生45ms的定时中断,TF1为其中断源标志。试编写主程序和中断服务程序,使P1.0产生周期为90ms的方波。(忽略中

12、断响应时间和指令执行时间)n解:q让P1.0每45ms取反一次即可实现。定时器的单次定时时间不可能达到45ms,如果设定16位的工作模式1,最大定时时间也才为4.9152ms。q可让定时器多次定时产生4.5ms的定时时间,如让T1工作在方式1,单次定时时间为4.5ms,那么T1中断10次就是45ms的时间。 25n(1)确定定时常数q假设使用fOSC的2分频作为计数源,则Tcy2/ fOSC 2/(26.67106)75nsq由公式q可知计数初值qTH1=0x15,TL0=0xA0。 26n(2)初始化程序 包括T1初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确

13、的设置,并将时间常数送入T1。一般将初始化操作放在主程序中完成,当程序规模较大时,应编写单独的初始化程序,以利于程序的模块化设计。n(3)中断服务程序 中断服务程序除了完成要求的方波产生这一工作之外,还要注意将时间常数重新送入T1中,为下一次产生中断作准备。27程序清单如下(主程序): #include sbit P1_0 = P10;int count=10;/10次T1中断为45msvoid main( void ) TMOD=0x10; /T1方式1 P1_0=0; TH1=0x15; /初值 TL1=0xA0; IEN0=0x08; /允许T1中断 IP|=0x08; IPH|=0x0

14、8; /TF1中断为高级中断 TR1=1 EA=1; / 总开中断 while(1); /死循环, 查询等待TF1置位,产生方波注:寄存器所在页的选择没有列出28程序清单如下(中断服务程序片段): TF1=0; TH1=0x15; TL1=0xA0; /重填初值 If (count!=0) count-; else count=10;P1_0=!P1_0; 298.4 8.4 定时器定时器T2T2n8.4.1 8.4.1 概述概述n定时器2 是一个16 位通用计数器,其具有两种操作模式:16 位自动重载模式和16 位捕获模式。n如果预分频功能被禁止,定时器2工作时,16 位通用加法计数器以12

15、分频的周期脉冲计数,每个周期16位通用加法计数器加1或减1。30n定时器2由T2MOD寄存器、T2CON存器、功能存器TH2、TL2、RC2H、RC2L等电路构成。qTH2、TL2构成16位通用计数器。qRC2H、RC2L作为16位寄存器,在自动重载模式中RC2H、RC2L作为16位通用计数器的16位初值寄存器q在捕捉模式中,当引脚T2EX上出现下降沿跳变时,把TH2、TL2的当前值捕捉到RC2H、RC2L中去。31n8.4.2 8.4.2 定时器定时器T2T2控制寄存器控制寄存器n1.1.模式寄存器模式寄存器T2MODT2MODn寄存器T2MOD 用来选择定时器2 的工作模式。其组成如图8-

16、8所示。32启动边沿启动边沿选择位选择位 外部启动外部启动使能位使能位 捕获模式捕获模式/ /重载模式重载模式的边沿选择位的边沿选择位 预分频使能位预分频使能位 计数器计数器递增递增/ /递递减使能位减使能位 图8-8 T2MOD各位功能33n2.2.控制寄存器控制寄存器T2CONT2CONn寄存器T2CON 控制定时器2 的工作模式,其各位功能如图8-9所示。 上溢上溢/ /下溢标志位下溢标志位 外部事件标志位外部事件标志位展示展示T2EX引脚状态引脚状态 捕获捕获/ /重载模式选择位重载模式选择位0 0:重载;:重载;1 1:捕获:捕获 外部使能控制位外部使能控制位1:使能:使能T2EX引

17、脚控制;引脚控制;0:禁止:禁止 T2EX引脚控制;引脚控制;启动启动/ /停止控制位停止控制位 图8-9 T2CON各位功能348.4.3 8.4.3 定时器定时器T2T2工作模式工作模式n1.1.自动重载模式自动重载模式n控制寄存器T2CON 中的 置“0” 时,定时器2被选择为自动重载模式。n该模式下,定时器2计数至溢出时,将寄存器RC2H、RC2L中的16 位初始值重新装入定时器的TH2、TL2寄存器中,开始新一轮计数循环。n并置位寄存器T2CON 的TF2 位表示计数溢出,从而向CPU 发送中断请求信号。n溢出标志TF2 必须由程序清零。根据控制寄存器T2MOD 中DCEN 控制位的

18、设置,自动重载模式可进一步分为两种类型。35n1)禁止递增/递减计数模式n若DCEN = 0,则递增/递减计数选择被禁止,此时定时器只能递增计数。工作原理如图 8-10 所示。图8-10 T2禁止递增/递减计数模式27号引脚使能/禁止引入外部信号控制T2中断标志位通用16定时器寄存器重载值寄存器预分频使能位36n若EXEN2 = 0,置位TR2 定时器开始递增计数,计数至最大值FFFFH 后溢出并置位TF2,同时将寄存器RC2 中的16 位重载值重新装入定时器寄存器。n重载值由软件预先设置。新一轮计数循环开始,定时器同上一轮计数循环一样,从重载值开始递增计数。37n若EXEN2 = 1, 置位

19、TR2 定时器开始递增计数至最大值FFFFH。计数溢出或输入引脚T2EX 的负/正跳变(由寄存器T2MOD 的位EDGESEL 选择)均会引起16 位重载,将寄存器RC2 的内容重新装入定时器寄存器。n中断标志位:q若由溢出引起重载,溢出标志TF2置位。q若由引脚T2EX 的负/正跳变引起重载,寄存器T2CON 中的EXF2 置位。q这两种情况均产生中断,定时器进入下一轮计数循环。EXF2 标志和TF2 一样必须由软件清零。38n允许硬件启动时(T2RHEN=1)qT2EX第一个上升沿/下降沿触发TR2=1启动T2;q上升沿/下降沿的选择由T2REGS选择;q如果使能外部控制(EXEN2=1)

20、,引脚T2EX的边沿跳变完成两个任务:(由T2REGS选择上升沿/下降沿)n启动T2nEXF2置位39n2)使能递增/递减计数模式n若DCEN = 1,则递增/递减计数选择被使能,此时定时器可以递增或递减计数。工作原理如图 8-11 所示。图8-11 T2使能递增/递减计数模式40n引脚T2EX 的逻辑电平为1 时q定时器2 递增计数,因此定时器递增计数,计数至最大值FFFFH 后溢出并置位TF2,RC2 寄存器的16 位重载值重新装入定时器寄存器。n引脚T2EX 的逻辑电平为0 时q定时器2 递减计数。定时器递减计数并当THL2 的值和寄存器RC2 中的值相等时发生下溢。下溢后置位TF2,并

21、将值FFFFH 重新载入定时器寄存器THL2 中41n若允许硬件启动T2(当T2RHEN=1)时,根据T2EX输入的是上升沿/下降沿可将T2设置为递增、递减计数nT2由上升沿启动,T2只能工作于递增模式nT2由下降沿启动,T2只能工作于递减模式42n2.2.捕获模式捕获模式n控制寄存器T2CON 中的 及EXEN2置位时,定时器进入16位捕获模式。n此模式下,递减计数功能必须禁止。16位计数器始终递增计数始终递增计数,计数至最大值FFFFH后溢出,TF2置位并将0000H 0000H 重新载入定时器寄存器TH2、TL2中。n溢出后TF2置位,则定时器向CPU发送中断请求。n捕获模式的结构图如图

22、8-12所示。43图8-12 T2捕获模式结构图44n在引脚T2EX 的下降沿/上升沿(由T2MOD.EDGESEL 选择),将定时器寄存器(THL2)的值捕获到寄存器RC2 中。如果在计数器加1 时检测到捕获信号,计数器先加1 然后执行捕获操作,从而确保总能捕获到定时计数器的最新值。执行完捕获操作,EXF2 置位、可用来产生中断请求45n若允许硬件启动T2(当T2RHEN=1)时,引脚T2EX输入的第一个下降沿/上升沿(由T2MOD.EDGESEL 选择)启动T2n在启动T2的同时,置位EXF2。n在下一个下降沿/上升沿到来时,将进行捕获操作。46例程分析n求矩形波A、B两点之间的时间,设晶

23、振频率为26.67MHZn分析:qA和B两点处各有一个跳变q在A、B跳变的这一刻进行定时器的启动和当前计数值的捕获,即可获得计数脉冲的个数q结合每个输入脉冲的周期即可计算A、B之间的时间q因此,该脉冲应加在定时器T2的外部输入引脚上ABx47n主程序:nMOV T2L,#0X00nMOV T2H,#0X00nMOV T2MOD,#0xC0;T2外部启动使能,并上升沿启动nMOV T2CON,#0x09;使能外部电平变化影响T2,并设置n T2为捕获模式。nMOV IEN0,#0xA0nMOV IP,#0x02nMOV IPH,#0x02nSETB EA ;分频模式设为分频模式设为00,即计,即

24、计数脉冲频率为:数脉冲频率为:fclk/12,即计数周期为:,即计数周期为:450ns48n中断服务程序nINT_T2: qPUSH R0qPUSH R1qMOV PSW,#0x00qJB TF2,d0_TF2 ;如果是T2溢出,跳转到do_TF2qJB EXF2,do_EXF2 ;如果是T2的外部输入引起EXF2置位qJB NDOV, do_NDOV ;如果是分数分频器引起的中断qJB SYNEN,do_SYNEN ;如果是LIN通信引起的中断qndo_TF2:qMOV R0,RC2LqMOV R1,RC2HqLCALL COMP; 调用子程序,将R1、R0构成的16位16进制数*450ns(转为16进制),通过16进制数相乘指令即可得出时间,再转为10进制。49C lic k t o e d it c o m p a n y s lo g a n .50

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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