第六章定时器及应用.ppt

上传人:时光煮雨 文档编号:21558616 上传时间:2023-08-30 格式:PPT 页数:40 大小:612KB
返回 下载 相关 举报
第六章定时器及应用.ppt_第1页
第1页 / 共40页
第六章定时器及应用.ppt_第2页
第2页 / 共40页
第六章定时器及应用.ppt_第3页
第3页 / 共40页
第六章定时器及应用.ppt_第4页
第4页 / 共40页
第六章定时器及应用.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《第六章定时器及应用.ppt》由会员分享,可在线阅读,更多相关《第六章定时器及应用.ppt(40页珍藏版)》请在三一文库上搜索。

1、第六章第六章 定时器及应用定时器及应用张文昭教学内容教学内容基本要求基本要求:掌握计数:掌握计数/定时器的应用及编程方法定时器的应用及编程方法重点:重点:定时器定时器/计数器工作模式及应用计数器工作模式及应用难点:难点:定时器定时器/计数器的应用编程计数器的应用编程 定时器定时器/计数器的结构及功能计数器的结构及功能定时器定时器/计数器的控制计数器的控制定时器定时器/计数器的计数器的4 4种工作模式及其应用种工作模式及其应用定时器定时器/计数器的编程方法计数器的编程方法6.1 6.1 定时器概述定时器概述v89C51单片机内有两个16位定时器/计数器,即定时器0(T0)和定时器1(T1),都是

2、16位加1计数器。v功能:定时和事件计数,可用于定时控制、延时、对外部件计数和检测等场合。vT0由两个8位特殊功能寄存器TH0和TL0构成;T1由TH1和TL1构成。v每个定时器都可由软件设置为定时工作方式或 计数工作方式。由特殊功能寄存器TMOD和TCON所控制。v定时器工作不占用CPU时间,除非定时器/计数器溢出,才能中断CPU的当前操作。v定时器/计数器有四种工作模式。定时器对89C51片内振荡器输出经12分频后的脉冲进行计数,即每个机器周期使定时器(T0或T1)的数值加1直至计满溢出。当89C51采用12MHz晶振时,一个机器周期为1s,计数频率为1MHz。定时工作方式定时工作方式 若

3、89C51采用6MHz晶振,计数频率为多少?v通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。当输入脉冲信号产生由1至0的下降沿时计数器的值加1。vCPU检测一个检测一个1至至0的跳变需要两个机器周期,故最的跳变需要两个机器周期,故最高计数频率为振荡频率的高计数频率为振荡频率的1/24。v为了确保某个电平在变化之前被采样一次,要求电平保持时间至少是一个完整的机器周期Tcy。计数工作方式计数工作方式TcyTcy 定时器共有两个控制字,由软件写定时器共有两个控制字,由软件写TMOD和和TCON两个两个8位寄存器,用来设置位寄存器,用来设置T0和和T1的工作模式和控制功能。单片机系的工

4、作模式和控制功能。单片机系统复位时,两个寄存器所有位都被清统复位时,两个寄存器所有位都被清0。6.2 定时器的控制定时器的控制 TMOD用于用于控制控制T0和和T1的工作模式的工作模式,其各位的定义格式如下图所示。其各位的定义格式如下图所示。一、工作模式寄存器一、工作模式寄存器TMOD(89H)TMOD不能位寻址,只能字节寻址。不能位寻址,只能字节寻址。TMOD (89H)工作模式工作模式 00模式模式001模式模式110模式模式211模式模式3 功能选择功能选择 1计数计数0定时定时 选通控制选通控制 1受受/INT1控制控制0不受不受/INT1控制控制M1、M0形成四种编码控制四种工作模式

5、形成四种编码控制四种工作模式C/T:定时器:定时器/计数器方式选择位计数器方式选择位 C/T=0:定时方式:定时方式 计数片内脉冲(即对机器周期计数,计数片内脉冲(即对机器周期计数,周期确定周期确定)C/T=1:计数方式:计数方式 计数片外脉冲(即对通过计数片外脉冲(即对通过P3.4/P3.5来自片外的计来自片外的计数信号计数,数信号计数,周期不定周期不定)GATE:门控位:门控位 GATE=0:软件使:软件使TR0/TR1置置1,即可启动定时器,即可启动定时器 GATE=1:只有:只有INT0/INT1输入信号为高电平,输入信号为高电平,软件使软件使TR0/TR1置置1,才可启动定时器,才可

6、启动定时器定时器的使用:定时器的使用:设置工作方式设置工作方式-置初值置初值-启动启动-溢出中断溢出中断二、控制寄存器二、控制寄存器TCON(88H)TCON各位的作用如下:各位的作用如下:TF1(TCON.7)T1溢出标志位。溢出标志位。有溢出有溢出,TF1=1.TF0(TCON.5)T0溢出标志位。溢出标志位。有溢出有溢出,TF0=1.TR1(TCON.6)T1运行控制位运行控制位。TR1=1,启动启动T1 TR0(TCON.4)T0运行控制位运行控制位。TR0=1,启动启动T0 IE1,IT1,IE0和和IT0(TCON.3TCON.0)外部中断外部中断INT1,INT0请求及请求方式控

7、制位。请求及请求方式控制位。89C51复位后,复位后,TCON的所有位被清的所有位被清0。6.3 定时器的四种模式及应用定时器的四种模式及应用 89C51单片机的定时单片机的定时/计数器计数器T0和和T1的的四种工作模式,四种工作模式,在模式在模式0、模式、模式1和模式和模式2时,时,T0和和T1的工作模式相同;在模式的工作模式相同;在模式3时,两个时,两个定时器的工作模式不同定时器的工作模式不同。一、模式一、模式 1 1 及其应用及其应用(一)模式(一)模式 1 的逻辑电路结构的逻辑电路结构(以以T0为例为例)模式模式1对应的是一个对应的是一个16位的定时器位的定时器/计数器。计数器。定时计

8、数 在这种模式下,寄存器(在这种模式下,寄存器(TH0TH0和和TL0TL0)以全)以全1616位位参与计数。参与计数。TH0TH0占高占高8 8位,位,TL0TL0为低为低8 8位。当位。当TL0TL0计数溢计数溢出时,向出时,向TH0TH0进位;进位;TH0TH0溢出时,向中断标志溢出时,向中断标志TF0TF0进位进位(硬件置位(硬件置位TF0TF0),并申请中断。),并申请中断。(二)模式(二)模式 1 工作特点工作特点(二)模式(二)模式 1 工作特点工作特点计100个机器周期数所需的时间为多少?(所接晶振为12MHz)定时时间为:定时时间为:t=计数值计数值机器周期机器周期 =(21

9、6T0初值初值)振荡周期振荡周期12如何实现定时?如何得到所需的定时时间?最大可计数多少个机器周期?当当C/T=0时,控制开关接通振荡器时,控制开关接通振荡器12分频输出分频输出端,端,T0对机器周期计数。这就是定时工作方式。对机器周期计数。这就是定时工作方式。利用溢出中断利用溢出中断,并给出相应的计数初值并给出相应的计数初值(二)模式(二)模式 1 工作特点工作特点 当当C/T=1时,时,T0对外部输入计数。对外部输入计数。计数长度为:计数长度为:L=(216T0初值初值)(个外部脉冲)(个外部脉冲)例例1:设晶振频率为:设晶振频率为12MHz,试计算定时器,试计算定时器T0工作于工作于模式

10、模式1时的最大定时时间时的最大定时时间T。解:解:当当T0处于处于工作模式工作模式1时,加时,加1计数器为计数器为16位位。定时时间为:定时时间为:t=(216T0初值初值)振荡周期振荡周期12 最大定时时间为最大定时时间为“T0初值初值=0”时。时。所以:所以:T=216振荡周期振荡周期12ms536.6512101212616例例2 2:用定时器:用定时器T1T1产生一个产生一个50Hz50Hz的方波,由的方波,由 P1.1P1.1输出。输出。foscfosc=6MHz=6MHz。解:1)确定定时器T1初值 方波周期T=1/50=0.02s=20ms 用T1定时10ms,时间到P1.1引脚

11、电平取反。121T2t16 振振荡荡周周期期初初值值)(定定时时时时间间:12t21T16 振振荡荡周周期期初初值值121061ms1021T616 初初值值H78EC605361T 初初值值(TH1TH1)=ECH=ECH,(,(TL1TL1)=78H=78H20ms10ms 10ms解:解:2 2)确定工作模式寄存器)确定工作模式寄存器TMODTMOD的值的值 定时器T1工作于模式1的定时器工作方式,高四位:高四位:GATE=0,C/T=0,M1M0=01,低四位:取,低四位:取0。(TMODTMOD)=0001 0000 B=10H=0001 0000 B=10H3)编程(查询方式)编程

12、(查询方式)#include void main()TMOD=0 x10;TH1=0 xec;TL1=0 x78;TR1=1;P1_1=1;while(1)if(TF1=1)TF1=0;TH1=0 xec;TL1=0 x78;P1_1=P1_1;3)编程(定时器溢出中断方式)编程(定时器溢出中断方式)#include void main()TMOD=0 x10;TH1=0 xec;TL1=0 x78;ET1=1;EA=1;TR1=1;P1_1=1;while(1);void timer_1()interrupt 3 TH1=0 xec;TL1=0 x78;P1_1=P1_1;思考:设定时器设定

13、时器T0用于定用于定时时10ms,晶振为,晶振为6MHz。编程实现:编程实现:P1.0输出周期输出周期为为40ms,高电平宽为高电平宽为10ms,低电平宽为低电平宽为30ms的矩形波。的矩形波。如何编程如何编程?例例3 3:设定时器:设定时器T0T0选择工作模式选择工作模式1 1的计数器工作方式,的计数器工作方式,其计数器初值为其计数器初值为FFFFFFFFH H,问此时定时器,问此时定时器T0T0的实际的实际用途是什么?用途是什么?解:因其初值为解:因其初值为FFFFHFFFFH,只要随机外来一脉冲即可溢,只要随机外来一脉冲即可溢出,向出,向CPUCPU申请中断,故这一内部中断源实质上申请中

14、断,故这一内部中断源实质上已作为外部中断源使用。因此此定时器已作为外部中断源使用。因此此定时器T0T0并不用并不用于定时或计数。于定时或计数。该模式对应的是一个该模式对应的是一个13位位的定时器的定时器/计数器。计数器。在在这种模式下,(以这种模式下,(以T0T0为例)为例)1616位寄存器(位寄存器(TH0TH0和和TL0TL0)只用了只用了。其中。其中TL0TL0的高的高3 3位未用位未用,其余,其余5 5位为整个位为整个1313位的低位的低5 5位,位,TH0TH0占高占高8 8位。当位。当TL0TL0的低的低5 5位溢出时,位溢出时,向向TH0TH0进位;进位;TH0TH0溢出时,向中

15、断标志溢出时,向中断标志TF0TF0进位(硬件进位(硬件置位置位TF0TF0),并申请中断。),并申请中断。TH0TL08位5位二、二、模式模式 0 及其应用及其应用二、二、模式模式 0 及其应用及其应用用于定时工作方式时,定时时间为:用于定时工作方式时,定时时间为:用于计数工作方式时,计数长度为:用于计数工作方式时,计数长度为:(213T0初值初值)(个外部脉冲)(个外部脉冲)。例例4:设晶振频率为:设晶振频率为12MHz,试计算定时器,试计算定时器T0工作于模工作于模式式0时的最大定时时间时的最大定时时间T。解:解:当当T0处于处于工作模式工作模式0时,加时,加1计数器为计数器为13位位。

16、定时时间为:定时时间为:t=(213T0初值初值)振荡周期振荡周期12 最大定时时间为最大定时时间为“T0初值初值=0”时。时。所以:所以:122T13 振振荡荡周周期期12101212613 ms192.81081926 模式模式2把把TL0(或或TL1)配置成一个可以配置成一个可以自动重装自动重装载的载的8 8位位定时器定时器/计数器,逻辑电路结构如下图。计数器,逻辑电路结构如下图。三、三、模式模式 2 及其应用及其应用TL0计数溢出时,不仅使溢出中断标志位计数溢出时,不仅使溢出中断标志位TF0置置1,而,而且还自动把且还自动把TH0中的内容重新装载到中的内容重新装载到TL0中。中。v在程

17、序初始化时,在程序初始化时,TL0TL0和和TH0TH0由软件赋予相同的初值由软件赋予相同的初值。v用于定时工作方式时,定时时间为:t=(28TL0初值)机器周期v用于计数工作方式时,计数长度为:用于计数工作方式时,计数长度为:(2(28 8TL0TL0初值初值)(外部脉冲的个数)(外部脉冲的个数)v该模式可省去软件中重装常数的语句,并可产生相该模式可省去软件中重装常数的语句,并可产生相当精确的定时时间,当精确的定时时间,适合于作串行口波特率发生器适合于作串行口波特率发生器。例例5 5:利用定时器:利用定时器T1T1的模式的模式2 2对外部信号计数。要求每计对外部信号计数。要求每计满满1001

18、00次,将次,将 P1.0P1.0端取反。端取反。解:(1)选择模式 外部信号由T1(P3.5)引脚输入,每发生一次负跳变计数器加1,每输入100个脉冲,计数器发生溢出中断,中断服务程序将P1.0取反一次。T1计数工作方式模式2的模式字为 (TMOD)=60H。T0不用时,TMOD的低4位可任取,但不能进入模式3,一般取0。(2)计算T1的计数初值 X=28 100=156=9CH 因此:TL1的初值为9CH,重装初值寄存器TH1=9CH。(3)程序清单v#includevmain()vv TMOD=0 x60;v TH1=0 x9c;v TL1=0 x9c;v ET1=1;v EA=1;v

19、TR1=1;v while(1);vvvoid timer_1()interrupt 3vv P1_1=P1_1;v四、四、模式模式 3 3 及其应用及其应用 工作模式工作模式3对对T0和和T1大不相同。大不相同。若将若将T0设置为设置为模式模式3,TL0和和TH0被分成为两个相互独立的被分成为两个相互独立的8位计位计数器数器,逻辑图如下图:,逻辑图如下图:TL0:用原T0的各控制位、引脚和中断源,即C/T,GATE,TR0,TF0,T0(P3.4)引脚,INT0(P3.2)引脚。TL0可工作在定时器方式和计数器方式。其功能和操作与模式0、模式1相同(只是8位)。TH0:只可用作简单的内部定时

20、功能。TH0占用了定时器T1的控制位TR1和T1的中断标志TF1,其启动和关闭仅受TR1的控制。定时器T1无工作模式3状态。在T0用作模式3时,T1仍可设置为模式02。五、五、综合应用举例综合应用举例解:解:(1)定时器)定时器T0工作模式的确定工作模式的确定模式模式0最长可定时最长可定时16.384ms;模式模式1最长可定时最长可定时131.072ms;模式模式2最长可定时最长可定时512s;LED每每1秒闪烁秒闪烁一次。一次。定时定时0.5s,可选用模式,可选用模式1,每隔,每隔100ms中断一中断一 次,中断次,中断5次从而达到次从而达到0.5s的定时。的定时。(2)求计数器初值)求计数

21、器初值X (216X)12/(6 106)=10010-3 s X=15536=3CB0H 因此:因此:(TL0)=0B0H (TH0)=3CH例例6 6:设时钟频率为:设时钟频率为6MHz6MHz,试编写用,试编写用T0T0产生定时使产生定时使P1.0P1.0所接的发光二极管每所接的发光二极管每1 1秒钟闪烁一次。秒钟闪烁一次。源程序清单(使发光二极管闪烁,每源程序清单(使发光二极管闪烁,每1S1S闪烁闪烁1 1次)次)#includeunsigned char temp=5;main()TMOD=0 x01;TH0=0X3C;TL0=0XB0;ET0=1;EA=1;TR0=1;P1_0=1

22、;while(1);void timer_0()interrupt 1 TH0=0X3C;TL0=0XB0;temp-;if(temp=0)temp=5;P1_0=P1_0;例例7 7:设计实时时钟程序。时钟就是以秒、分、时为单位:设计实时时钟程序。时钟就是以秒、分、时为单位进行计时。用定时器与中断的联合应用进行计时。用定时器与中断的联合应用。解:解:(1)实现时钟计时的基本方法)实现时钟计时的基本方法 计算计数初值。计算计数初值。时钟计时的最小单位是秒,可把定时器的定时时间定时钟计时的最小单位是秒,可把定时器的定时时间定为为100ms,计数溢出,计数溢出10次即得到次即得到1秒;秒;10次计

23、数可用软次计数可用软件方法实现。件方法实现。假定使用定时器假定使用定时器T1,以工作模式,以工作模式1进行进行100ms的定时。的定时。如如fosc=6MHz,则计数初值,则计数初值X为:为:X=15536=3CB0H (TL0)=0B0H (TH0)=3CH例例6 6:设计实时时钟程序。时钟就是以秒、分、时为单位:设计实时时钟程序。时钟就是以秒、分、时为单位进行计时。用定时器与中断的联合应用进行计时。用定时器与中断的联合应用。采用定时方式进行溢出次数的累计,计满采用定时方式进行溢出次数的累计,计满10次即得到次即得到秒计时。秒计时。设置软件计数器初值为设置软件计数器初值为10,每,每100m

24、s定时时间到溢出定时时间到溢出中断,使软件计数器减中断,使软件计数器减1,直到减到,直到减到0,则,则1s到。到。从秒到分和从分到时的计时是通过累计和数值比较实从秒到分和从分到时的计时是通过累计和数值比较实现的。现的。设置几个累加单元分别进行对设置几个累加单元分别进行对1s,1min,1h进行计数。进行计数。满满1s,秒位累加;满,秒位累加;满60s,分位累加,分位累加;满;满60min,时位,时位累加;满累加;满24h全部累加单元清全部累加单元清0(2 2)程序流程及程序清单)程序流程及程序清单 主程序流程如右主程序流程如右图图所示。所示。设设T1为模式为模式1设中断次数设中断次数清计时单元

25、清计时单元开中断开中断启动启动T1调用显示子程序调用显示子程序时钟主程序流程时钟主程序流程开始保护现场赋计数初值到1s?秒单元加1秒单元=60?秒单元清0分单元加1分单元=60?分单元清0时单元加1时单元=24?时单元清0恢复现场返回入入口口aaNNNNYYYY中断服务程序流程图中断服务程序流程图 中断服务流程如右图所示:源程序如下:源程序如下:v#include vunsigned char count=0;vunsigned char second=0;vunsigned char min=0;vunsigned char hour=0;vmain()vv TMOD=0 x10;v TL1=0 xb0;v TH1=0 x3c;v ET1=1;v EA=1;v TR1=1;v while(1);v中断服务程序:中断服务程序:vvoid timer_1()interrupt 3v v TL1=0 xb0;TH1=0 x3c;count+;v if(count=10)v count=0;second+;v if(second=60)v second=0;min+;v if(min=60)v min=0;hour+;v if(hour=24)hour=0;v v v v

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1