第6章定时器及应用_第1页
第6章定时器及应用_第2页
第6章定时器及应用_第3页
第6章定时器及应用_第4页
第6章定时器及应用_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、18:476.1 6.1 定时器概述定时器概述6.2 6.2 定时器的控制定时器的控制 6.3 6.3 定时器的四种模式及应用定时器的四种模式及应用 6.4 6.4 思考题与习题思考题与习题第六章第六章 定时器及应用定时器及应用6.1 6.1 定时器概述定时器概述6.1.1 89C516.1.1 89C51定时器结构定时器结构 有两个有两个1616位的定时器位的定时器/ /计数器,即计数器,即T0T0和和T1T1。都是。都是1616位加位加1 1计数器。计数器。 T0T0由两个由两个8 8位特殊功能寄存器位特殊功能寄存器TH0TH0和和TL0TL0构成;构成;T1T1由由TH1TH1和和TL1

2、TL1构成。构成。18:476.1.2 89C516.1.2 89C51定时器定时器 T0T0、T1T1都可由软件设置为都可由软件设置为 定时方式定时方式或或计数方式计数方式。由。由TMODTMOD和和TCONTCON所控制。所控制。 采用加计数。加到采用加计数。加到0 0产生溢出,发出中断申请。产生溢出,发出中断申请。 定时工作方式:定时工作方式:定时器计数定时器计数89C5189C51片内振荡器输出经片内振荡器输出经1212分频后的脉冲,即每分频后的脉冲,即每个机器周期使定时器(个机器周期使定时器(T0T0或或T1T1)的数值)的数值加加1 1直至计满溢出。直至计满溢出。 计数工作方式:通

3、过引脚计数工作方式:通过引脚T0(P3.4)和)和T1(P3.5)对外部脉冲信号计数。)对外部脉冲信号计数。当输入脉冲信号产生由当输入脉冲信号产生由1至至0的的下降沿下降沿时计数器的值加时计数器的值加1。 定时器工作不占用定时器工作不占用CPUCPU时间,除非定时器时间,除非定时器/ /计数器溢出,才能中断计数器溢出,才能中断CPUCPU的当前的当前操作。操作。 定时器定时器/ /计数器有四种工作模式。其中模式计数器有四种工作模式。其中模式0-20-2对对T0T0和和T1T1是一样的,模式是一样的,模式3 3对对两者不同。两者不同。 当当89C51采用采用12MHz晶振时,一个机器周期为晶振时

4、,一个机器周期为1s,计数频率为,计数频率为1MHz。 CPU检测一个检测一个1至至0的跳变需要两个机器周期,故最高计数频率为振荡频率的跳变需要两个机器周期,故最高计数频率为振荡频率的的1/24。 定时器不用时,不能进入模式定时器不用时,不能进入模式3,一般取模式,一般取模式0。 为了确保某个电平在变化之前被采样一次,要求电平保持时间至少是一个为了确保某个电平在变化之前被采样一次,要求电平保持时间至少是一个完整的机器周期。见完整的机器周期。见P.132图图6-2。18:476.2 6.2 定时器的控制定时器的控制 ( (TMOD、 TCON) )6.2.1 6.2.1 工作模式寄存器工作模式寄

5、存器 TMODTMOD18:47 M1M1和和M0M0操作模式控制位。操作模式控制位。 M1 M0工作模式工作模式功能描述功能描述0 0模式模式 013 位计数器位计数器0 1模式模式 116 位计数器位计数器1 0模式模式 2自动再装入自动再装入 8 位计数器位计数器1 1模式模式 3定时器定时器 0:分成二个:分成二个 8 位计数器位计数器 定时器定时器 1:停止计数:停止计数定时器定时器T1定时器定时器T0TMOD(89H) D7 D6 D5 D4 D3 D2 D1 D0GATEC/ TM1 M0GATEC/ TM1 M0C/T=0,设置为,设置为定时方式定时方式。定时器计数。定时器计数

6、89C51片片内脉冲,即对机器周期计数。内脉冲,即对机器周期计数。 C/T=1,设置为,设置为计数方式计数方式。计数器的输入来自。计数器的输入来自引脚引脚T0(P3.4)或或T1(P3.5)端的外部脉冲端的外部脉冲 。 GATE GATE门控位。门控位。 GATE=0GATE=0,只要用软件使,只要用软件使TR0TR0(或(或TR1TR1)置)置1 1就可以启动定时器。就可以启动定时器。 GATE=1GATE=1,只有,只有INT0INT0(或(或INT1INT1)引脚为引脚为高电平高电平且由软件使且由软件使TR0TR0(或(或TR1TR1)置)置1 1时,才时,才能启动定时器工作。能启动定时

7、器工作。TMODTMOD不能位寻址。不能位寻址。低半字节设置低半字节设置T0T0,高半字节设置,高半字节设置T1T1。 C/T计数器计数器/定时器方式选择位。定时器方式选择位。18:476.2.2 控制器寄存器控制器寄存器 TCON TF1TF1T1T1溢出标志位。溢出标志位。 当当T1T1溢出溢出时,由硬件自动使中断触发器时,由硬件自动使中断触发器TF1TF1置置1 1,并向,并向CPUCPU申请中断。申请中断。 当当CPUCPU响应中断进入中断服务程序后响应中断进入中断服务程序后,TF1TF1被硬件被硬件自动清自动清0 0。TF1TF1也可以用也可以用软软件清件清0 0。 TF0TF0T0

8、T0溢出标志位。溢出标志位。其功能和操作情况同其功能和操作情况同TF1TF1。 TR1TR1T1T1运行控制位。运行控制位。 TR1=1,TR1=1, T1 T1才才可能可能工作;工作; TR1=0,TR1=0,T1T1一定一定不工作。不工作。 TR0(TCON.4)TR0(TCON.4)T0T0运行控制位。运行控制位。其功能和操作情况同其功能和操作情况同TR1TR1。 IE1IE1,IT1IT1,IE0IE0,IT0IT0外部中断外部中断INT1INT1,INT0INT0请求及请求方式控制位。请求及请求方式控制位。 TCONTCON除可字节寻址外,各位还除可字节寻址外,各位还可位寻址可位寻址

9、。TF1TR1TF0TR0IE1 IT1 IE0 IT0TCON(88H) 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H6.3 定时器的四种模式及应用定时器的四种模式及应用 6.3.1 模式模式 1 及其应用及其应用计数源:定时方式为机器周期;计数方式为计数源:定时方式为机器周期;计数方式为T0T0引脚。引脚。计数开关:由计数开关:由TR0TR0、(、(GATE+INT0GATE+INT0引脚)控制。引脚)控制。1616位的定时器位的定时器/ /计数器:计数器:TH0TH0、TL0TL0。记到零时发出中断申请,记到零时发出中断申请,TF0=1TF0=1。定时时间:定时时间:t

10、=(2t=(21616T0T0初值初值) )T T。计数工作方式:计数工作方式:(2(21616T0T0初值初值) )(个外部脉冲(个外部脉冲),), T0T0初值一般为初值一般为0 0。18:47例例1 1:设晶振为:设晶振为12MHz12MHz,试计算定时器,试计算定时器T0T0工作于模式工作于模式1 1时的最大时的最大定时时间定时时间t t。解:解:当当T0T0处于处于工作模式工作模式1 1时,加时,加1 1计数器为计数器为1616位位。 定时时间为:定时时间为: t=(2t=(21616T0T0初值初值) )机器周期机器周期 机器周期机器周期 = = 振荡周期振荡周期 X 12 = 1

11、uSX 12 = 1uS。 最大定时时间为最大定时时间为“T0T0初值初值=0”=0”时。时。所以:所以:模式模式1 1最大定时时间:最大定时时间:t = 2t = 21616 X 1uS X 1uS = 65.636 mS = 65.636 mS18:47三、模式三、模式 1 的应用举例的应用举例18:47解:解:1 1)确定)确定T0T0初值:初值:当当T0处于工作模式处于工作模式1时,加时,加1计数器为计数器为16位。位。 定时时间:定时时间: t = (2t = (21616T0T0初值初值) )机器周期机器周期 10ms = (210ms = (21616T0T0初值初值) )2uS

12、2uS T0初值初值 = 65536-5000 = 60536 = EC78H 即:(即:(TH0)= ECH(高(高8位)位) (TL0)= 78H(低(低8位)位)18:47GATEC/ TM1M0GATEM1C/ TM0TMOD(89H) D7 D6 D5 D4 D3 D2 D1 D02 2)确定确定TMOD的初值的初值例例2:设定时器:设定时器T0用于定时用于定时10ms,晶振为,晶振为6MHz。试确定。试确定T0初值。并编写定时器初值。并编写定时器T0初初始化程序段。始化程序段。模式模式0:M1M0=01,定时器方式:定时器方式:C/T=0,门控位不受门控位不受INT0的影响:的影响

13、:GATE=0,其余位:其余位:为为 0。 模式字为模式字为 TMOD=0000 0001 B=01HT1未用,填未用,填0。3 3)编写编写T0T0的初始化程序段的初始化程序段主程序:主程序: ORG 0100HORG 0100HMAIN: MOV SP,#60HMAIN: MOV SP,#60H MOV TMOD,#01HMOV TMOD,#01H MOV TH0,#ECHMOV TH0,#ECH MOV TL0,#78HMOV TL0,#78H SETB TR0SETB TR0 18:47例例3 3:利用:利用定时器定时器T1T1在在P1.0P1.0引脚引脚产生一个产生一个50Hz50H

14、z的方的方波,由波,由 P1.1P1.1输出。使用程序查询方式,输出。使用程序查询方式,foscfosc=6MHz=6MHz。 (分别采用查询方式和中断方式分别采用查询方式和中断方式)。)。(2 2)选择工作模式)选择工作模式: :TMOD = 10HTMOD = 10H, 即:即:M1M0=01M1M0=01,C/T=0C/T=0,GATE=0GATE=0,其余位为,其余位为0 0。(3 3)计算)计算10ms10ms定时定时T1T1的初值的初值 T = (2T = (21616T1T1初值初值) ) 2 21010-6-6 = 10 = 101010-3-3 T1初值初值 = 65536-

15、5000 = 60536 = EC78H 即:(即:(TH1)= ECH(高(高8位)位) (TL1)= 78H(低(低8位)位)18:4720ms10ms 10ms解:解:1 1)确定定时器)确定定时器T1T1初值初值 方波周期方波周期 T = 1/50 = 0.02s = 20msT = 1/50 = 0.02s = 20ms 用用T1T1定时定时10ms,10ms,时间到时间到P1.1P1.1引脚电平取反。引脚电平取反。18:47(4 4)采用查询方式的程序)采用查询方式的程序程序清单:程序清单: ORG 0000HLJMPMAINORG0080HMAIN:MOV TMOD,#10H M

16、OV TL0,#78H MOV TH0,#ECHSETBP1.1 SETB TR0LP:JBC TF0,NEXT SJMP LPNEXT:MOV TL0,#78H MOV TH0,#ECH CPL P1.0 SJMP LP18:47(5 5)采用定时器溢出中断方式的程序)采用定时器溢出中断方式的程序 ORG 0000HRESET: AJMP MAIN ORG 000BH AJMP CTC0 ORG 0030H MAIN:MOV TMOD,#10H MOV TL0,#78H MOV TH0,#ECH SETB EA SETB ET0 SETB TR0 HERE:SJMP HERECTC0: MO

17、V TL0,#78H MOV TH0,#ECH CPL P1.1 RETIu 如占空比不同,如何处理?如占空比不同,如何处理?例例4 4:设定时器:设定时器T0T0选择工作模式选择工作模式1 1的计数器工作方式,其计的计数器工作方式,其计数器初值为数器初值为FFFFFFFFH H,问此时定时器,问此时定时器T0T0的实际用途是什么?的实际用途是什么?解:因其初值为解:因其初值为FFFFHFFFFH,只要,只要T0T0引脚随机外来一脉冲即可溢引脚随机外来一脉冲即可溢出,向出,向CPUCPU申请中断,故这一内部中断源实质上已作为申请中断,故这一内部中断源实质上已作为外部中断源使用。因此此时外部中断

18、源使用。因此此时T0T0并不用于定时或计数。并不用于定时或计数。18:476.3.2 模式模式 0 及其应用及其应用模式模式0 0逻辑电路结构与模式逻辑电路结构与模式1 1相似。相似。模式模式0 0为为计时器。计时器。 TH0TH0占高占高8 8位,其中位,其中TL0TL0的的5 5位为整个位为整个1313位的低位的低5 5位。当位。当TL0TL0的的5 5位溢出时,向位溢出时,向TH0TH0进位;进位;TH0TH0溢出时,溢出时,向中断标志向中断标志TF0TF0进位(硬件置位进位(硬件置位TF0TF0),并申请中断。),并申请中断。定时时间为:定时时间为: t=(2t=(21313T0T0初

19、值初值) )振荡周期振荡周期1212用于计数工作方式时,计数长度为:用于计数工作方式时,计数长度为: L=(2L=(21313T0T0初值初值) )(个外(个外部脉冲)。部脉冲)。18:476.3.3 模式模式 2 及其应用及其应用18:47一、一、模式模式 2 2 的逻辑电路结构的逻辑电路结构 该模式把该模式把TLTLX X配置成可自动重装配置成可自动重装8 8位定时计数器,逻辑电路结构如图所位定时计数器,逻辑电路结构如图所示。示。 TLTLX X计数溢出时,计数溢出时,TFTFX X置置1 1,而且还自动把,而且还自动把THTHX X中的内容重新装载到中的内容重新装载到TLTLX X中。中

20、。 TLTLX X用作用作8 8位计数器,位计数器,THTHX X用以保存初值。在程序初始化时,用以保存初值。在程序初始化时,TLTLX X和和THTHX X由由软件赋予相同的初值。软件赋予相同的初值。 用于定时方式时,定时时间为:用于定时方式时,定时时间为: t=(2t=(28 8TL0TL0初值初值) )T T 用于计数方式时,计数长度为:用于计数方式时,计数长度为:(2(28 8TL0TL0初值初值) )个外部脉冲个外部脉冲 该模式可省去软件中重装常数的语句,并可产生相当精确的定时时间,该模式可省去软件中重装常数的语句,并可产生相当精确的定时时间,适合于作串行口波特率发生器。适合于作串行

21、口波特率发生器。三、模式三、模式 2 的应用举例的应用举例例例5 5:当:当P3.4P3.4引脚(定时器引脚(定时器T0T0的外部计数输入端)上的电平发生的外部计数输入端)上的电平发生负跳变时,负跳变时, 从从P1.0P1.0输出输出一个一个500s500s的同步脉冲。用的同步脉冲。用查询方式查询方式编程实现该功能,编程实现该功能,foscfosc=6MHz=6MHz。(见。(见P.136P.136)18:47解:解: 1. T01. T0为计数方式为计数方式:TMOD=0000 0110B=06H,TMOD=0000 0110B=06H,高四位取高四位取0 0, GATE=0, , GATE

22、=0, M1M0=10, M1M0=10, C/T=1C/T=1 当当P3.4P3.4引脚上的电平发生负跳变时,引脚上的电平发生负跳变时,T0T0计数器加计数器加1 1,溢出标志,溢出标志TF0TF0置置1 1; 2. 2. 改变改变T0T0为为500s500s定时工作方式(定时工作方式(C/T=0C/T=0):():(TMODTMOD)=02H=02H 当当T0引脚发生负跳变时,引脚发生负跳变时,使使P1.0P1.0输出为输出为0 0。启动启动T0T0定时,定时,500500ss定时时间定时时间到,到,使使P1.0P1.0输出恢复高电平,输出恢复高电平,T0T0又恢复外部事件计数方式又恢复外

23、部事件计数方式。定时器定时器T1定时器定时器T0GATE C/ T M1 M0 GATEM1C/ TM0TMOD(89H) D7 D6 D5 D4 D3 D2 D1 D0 3. 3. 程序清单程序清单: :ORG0000HLJMPSTARTORG0080HSTART:MOVTMOD,#06H;设置;设置T0为模式为模式2,外部计数方式外部计数方式 MOV TL0,#0FFH ;T0计数器初值计数器初值 MOV TH0,#0FFH SETB TR0 ;启动;启动T0计数计数 LOOP1:JBC TF0,PTFO1 ;TF0=1时转,且清时转,且清TF0=0 SJMP LOOP1 ;等待;等待T0

24、溢出溢出PTFO1:CLR TR0 ;停止计数;停止计数 MOV TMOD,#02H ;设置;设置T0为模式为模式2,定时方式,定时方式 MOV TL0,#06H ;送初值,定时;送初值,定时500s MOV TH0,#06H CLR P1.0 ; P1.0清清0 SETB TR0 ;启动定时;启动定时500s LOOP2 :JBC TF0,PTFO2 ;TF0=1时转并清时转并清TF0=0 SJMP LOOP2 ;等待;等待T0溢出中断(定时时间到)溢出中断(定时时间到) PTFO2 :SETB P1.0 ; P1.0置置1 CLR TR0 ;停止定时;停止定时SJMP START ;转向开

25、始,重新等待;转向开始,重新等待T0引脚的脉冲引脚的脉冲18:47例6-8完例例6 6:利用:利用T1T1的模式的模式2 2对外部信号计数。每计满对外部信号计数。每计满100100次,将次,将 P1.0P1.0端取反。端取反。解:解:(1)选择模式:)选择模式:T1计数方式模式计数方式模式2的的TMOD=60H。 (2)计算)计算T1的计数初值:的计数初值:X= 2X= 28 8 100=156=9CH100=156=9CHORG0000HLJMPMAINORG 001BH ;中断服务程序入口;中断服务程序入口 LJMP T1_INTMAIN: MOV TMOD,#60H ;设置;设置T1为模

26、式为模式2,外部计数方式外部计数方式 MOV TL1,#9CH ;T1计数器初值计数器初值 MOV TH1,#9CH MOV IE,#88H ; 定时器开中断定时器开中断 SETB TR1 ;启动;启动T1计数计数 HERE:SJMP HERE ;等待中断;等待中断 T1_INT:CPL P1.0 RETI18:476.3.4 模式模式 3 及其应用及其应用18:47 TL0TL0可工作在定时可工作在定时/ /计数方式。其功能和操作与模式计数方式。其功能和操作与模式0 0、模式、模式1 1相同(相同(8 8位)。位)。 TH0TH0占用占用T1T1的控制位的控制位TR1TR1和中断标志和中断标

27、志TF1TF1,其启动和关闭仅受,其启动和关闭仅受TR1TR1的控制。的控制。 定时器定时器T1T1无工作模式无工作模式3 3状态。状态。在在T0T0用作模式用作模式3 3时,时,T1T1仍可设置为模式仍可设置为模式0 02 2。 由于由于TR1和和TF1被定时器被定时器TH0占用,占用,T1定时的启停靠定时的启停靠T1的的C/T 控制。只能将控制。只能将输出送入串行口或用于不需要中断的场合。一般作波特率发生器输出送入串行口或用于不需要中断的场合。一般作波特率发生器。(见。(见P.139P.139图图6-116-11)一、模式一、模式 3 的逻辑电路结构的逻辑电路结构 TL0和和TH0被分成两

28、个相互独被分成两个相互独立的立的8位计数器。位计数器。 TL0:用原:用原T0的资源,如的资源,如C/T,GATE,TR0,TF0,T0(P3.4)引脚,引脚,INT0(P3.2)引脚。)引脚。 TH0:只可用作简单的:只可用作简单的内部内部定时定时功能。功能。6.3.5 综合应用举例综合应用举例例例7 7:设时钟频率为:设时钟频率为6MHz6MHz。编写利用。编写利用T0T0产生产生1s1s定时的程序。定时的程序。解:解:(1)模式)模式1定时时间最长,定时时间最长, = 65536 X 2ms = 131.072ms。定时定时1s,选用模式,选用模式1,每隔,每隔100ms中断一中断一 次

29、,中断次,中断10次从而达到次从而达到1s的定时。的定时。(2) 100ms定时器初值定时器初值 = (216X)12/(6 106) =10010-3 s X = 15536 = 3CB0H TL0 = 0B0H,TH0 = 3CH18:47 ORG0000H AJMP MAIN ORG 000BH AJMP SERVE ORG 0080HMAIN : MOV SP,#60H MOV B,#0AH MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#3CH SETB TR0 SETB ET0 SETB EA SJMP $SERVE: MOV TL0,#0B0H MOV TH0,#3CH DJNZ B,LOOP CLR TR0LOOP: RETIEND6.4 6.4 思考题与习题思考题与习题1、定时器模式2有什么特点?适用于什么应用场合?2、单片机用内部定时方法产生频率为100KHz等宽距形波,假定单片机的晶振频率为12MHz。请编程实现。3、89C51定时器有哪几种工作模式?有何区别?4

温馨提示

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

评论

0/150

提交评论