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

下载本文档

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

文档简介

第六章定时器及应用第1页,课件共40页,创作于2023年2月教学内容基本要求:掌握计数/定时器的应用及编程方法重点:定时器/计数器工作模式及应用难点:定时器/计数器的应用编程定时器/计数器的结构及功能定时器/计数器的控制定时器/计数器的4种工作模式及其应用定时器/计数器的编程方法第2页,课件共40页,创作于2023年2月§6.1定时器概述89C51单片机内有两个16位定时器/计数器,即定时器0(T0)和定时器1(T1),都是16位加1计数器。功能:定时和事件计数,可用于定时控制、延时、对外部件计数和检测等场合。T0由两个8位特殊功能寄存器TH0和TL0构成;T1由TH1和TL1构成。第3页,课件共40页,创作于2023年2月每个定时器都可由软件设置为定时工作方式或计数工作方式。由特殊功能寄存器TMOD和TCON所控制。定时器工作不占用CPU时间,除非定时器/计数器溢出,才能中断CPU的当前操作。定时器/计数器有四种工作模式。第4页,课件共40页,创作于2023年2月定时器对89C51片内振荡器输出经12分频后的脉冲进行计数,即每个机器周期使定时器(T0或T1)的数值加1直至计满溢出。当89C51采用12MHz晶振时,一个机器周期为1μs,计数频率为1MHz。定时工作方式若89C51采用6MHz晶振,计数频率为多少?第5页,课件共40页,创作于2023年2月通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。当输入脉冲信号产生由1至0的下降沿时计数器的值加1。CPU检测一个1至0的跳变需要两个机器周期,故最高计数频率为振荡频率的1/24。为了确保某个电平在变化之前被采样一次,要求电平保持时间至少是一个完整的机器周期Tcy。计数工作方式>Tcy>Tcy第6页,课件共40页,创作于2023年2月定时器共有两个控制字,由软件写TMOD和TCON两个8位寄存器,用来设置T0和T1的工作模式和控制功能。单片机系统复位时,两个寄存器所有位都被清0。

§6.2定时器的控制

第7页,课件共40页,创作于2023年2月TMOD用于控制T0和T1的工作模式,其各位的定义格式如下图所示。

一、工作模式寄存器—TMOD(89H)TMOD不能位寻址,只能字节寻址。第8页,课件共40页,创作于2023年2月

TMOD

GATEC/T

M1

M0用于T0工作模式

(89H)

工作模式

00—模式001—模式110—模式211—模式3

功能选择

1—计数0—定时

选通控制

1—受/INT1控制0—不受/INT1控制第9页,课件共40页,创作于2023年2月M1M0工作模式功能描述00模式013位计数器01模式116位计数器10模式2自动装入8位计数器11模式3定时器0:分成两个8位计数器定时器1:停止计数M1、M0形成四种编码控制四种工作模式第10页,课件共40页,创作于2023年2月C/T:定时器/计数器方式选择位C/T=0:定时方式计数片内脉冲(即对机器周期计数,周期确定)C/T=1:计数方式计数片外脉冲(即对通过P3.4/P3.5来自片外的计数信号计数,周期不定)第11页,课件共40页,创作于2023年2月GATE:门控位GATE=0:软件使TR0/TR1置1,即可启动定时器GATE=1:只有INT0/INT1输入信号为高电平,软件使TR0/TR1置1,才可启动定时器定时器的使用:设置工作方式----置初值----启动----溢出中断第12页,课件共40页,创作于2023年2月二、控制寄存器—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.3~TCON.0)——外部中断INT1,INT0请求及请求方式控制位。89C51复位后,TCON的所有位被清0。第13页,课件共40页,创作于2023年2月§6.3定时器的四种模式及应用

89C51单片机的定时/计数器T0和T1的四种工作模式,在模式0、模式1和模式2时,T0和T1的工作模式相同;在模式3时,两个定时器的工作模式不同。第14页,课件共40页,创作于2023年2月一、模式1及其应用(一)模式1的逻辑电路结构(以T0为例)模式1对应的是一个16位的定时器/计数器。定时计数第15页,课件共40页,创作于2023年2月在这种模式下,寄存器(TH0和TL0)以全16位参与计数。TH0占高8位,TL0为低8位。当TL0计数溢出时,向TH0进位;TH0溢出时,向中断标志TF0进位(硬件置位TF0),并申请中断。(二)模式1工作特点第16页,课件共40页,创作于2023年2月(二)模式1工作特点计100个机器周期数所需的时间为多少?(所接晶振为12MHz)定时时间为:t=计数值×机器周期=(216-T0初值)×振荡周期×12如何实现定时?如何得到所需的定时时间?最大可计数多少个机器周期?当C/T=0时,控制开关接通振荡器12分频输出端,T0对机器周期计数。这就是定时工作方式。利用溢出中断,并给出相应的计数初值第17页,课件共40页,创作于2023年2月(二)模式1工作特点当C/T=1时,T0对外部输入计数。计数长度为:L=(216-T0初值)(个外部脉冲)第18页,课件共40页,创作于2023年2月例1:设晶振频率为12MHz,试计算定时器T0工作于模式1时的最大定时时间T。解:当T0处于工作模式1时,加1计数器为16位。定时时间为:t=(216-T0初值)×振荡周期×12

最大定时时间为“T0初值=0”时。所以:T=216×振荡周期×12第19页,课件共40页,创作于2023年2月例2:用定时器T1产生一个50Hz的方波,由P1.1输出。fosc=6MHz。解:1)确定定时器T1初值∵方波周期T=1/50=0.02s=20ms

∴用T1定时10ms,时间到P1.1引脚电平取反。∴(TH1)=ECH,(TL1)=78H20ms10ms10ms第20页,课件共40页,创作于2023年2月解:2)确定工作模式寄存器TMOD的值∵定时器T1工作于模式1的定时器工作方式,

∴高四位:GATE=0,C/T=0,M1M0=01,低四位:取0。

∴(TMOD)=00010000B=10H3)编程(查询方式)

#include<at89x51.h>voidmain(){TMOD=0x10;TH1=0xec;TL1=0x78;TR1=1;P1_1=1;while(1){if(TF1==1){TF1=0;TH1=0xec;TL1=0x78;P1_1=~P1_1;}}}第21页,课件共40页,创作于2023年2月3)编程(定时器溢出中断方式)#include<at89x51.h>voidmain(){TMOD=0x10;TH1=0xec;TL1=0x78;ET1=1;EA=1;TR1=1;P1_1=1;while(1);}voidtimer_1()interrupt3{TH1=0xec;TL1=0x78;P1_1=~P1_1;}思考:设定时器T0用于定时10ms,晶振为6MHz。编程实现:P1.0输出周期为40ms,高电平宽为10ms,低电平宽为30ms的矩形波。如何编程?

第22页,课件共40页,创作于2023年2月例3:设定时器T0选择工作模式1的计数器工作方式,其计数器初值为FFFFH,问此时定时器T0的实际用途是什么?解:因其初值为FFFFH,只要随机外来一脉冲即可溢出,向CPU申请中断,故这一内部中断源实质上已作为外部中断源使用。因此此定时器T0并不用于定时或计数。第23页,课件共40页,创作于2023年2月该模式对应的是一个13位的定时器/计数器。在这种模式下,(以T0为例)16位寄存器(TH0和TL0)只用了13位。其中TL0的高3位未用,其余5位为整个13位的低5位,TH0占高8位。当TL0的低5位溢出时,向TH0进位;TH0溢出时,向中断标志TF0进位(硬件置位TF0),并申请中断。×××TH0TL08位5位二、模式0及其应用第24页,课件共40页,创作于2023年2月二、模式0及其应用用于定时工作方式时,定时时间为:

t=(213–T0初值)×振荡周期×12

用于计数工作方式时,计数长度为:(213-T0初值)(个外部脉冲)。

第25页,课件共40页,创作于2023年2月例4:设晶振频率为12MHz,试计算定时器T0工作于模式0时的最大定时时间T。解:当T0处于工作模式0时,加1计数器为13位。定时时间为:t=(213-T0初值)×振荡周期×12

最大定时时间为“T0初值=0”时。所以:第26页,课件共40页,创作于2023年2月模式2把TL0(或TL1)配置成一个可以自动重装载的8位定时器/计数器,逻辑电路结构如下图。三、模式2及其应用TL0计数溢出时,不仅使溢出中断标志位TF0置1,而且还自动把TH0中的内容重新装载到TL0中。第27页,课件共40页,创作于2023年2月在程序初始化时,TL0和TH0由软件赋予相同的初值。用于定时工作方式时,定时时间为:t=(28-TL0初值)×机器周期用于计数工作方式时,计数长度为:

(28-TL0初值)(外部脉冲的个数)该模式可省去软件中重装常数的语句,并可产生相当精确的定时时间,适合于作串行口波特率发生器。第28页,课件共40页,创作于2023年2月例5:利用定时器T1的模式2对外部信号计数。要求每计满100次,将P1.0端取反。解:(1)选择模式外部信号由T1(P3.5)引脚输入,每发生一次负跳变计数器加1,每输入100个脉冲,计数器发生溢出中断,中断服务程序将P1.0取反一次。

T1计数工作方式模式2的模式字为(TMOD)=60H。T0不用时,TMOD的低4位可任取,但不能进入模式3,一般取0。第29页,课件共40页,创作于2023年2月(2)计算T1的计数初值

X=28-100=156=9CH

因此:TL1的初值为9CH,重装初值寄存器TH1=9CH。(3)程序清单#include<at89x51.h>main(){TMOD=0x60;TH1=0x9c;TL1=0x9c;ET1=1;EA=1;TR1=1;while(1);}voidtimer_1()interrupt3{P1_1=~P1_1;}第30页,课件共40页,创作于2023年2月四、模式3及其应用工作模式3对T0和T1大不相同。若将T0设置为模式3,TL0和TH0被分成为两个相互独立的8位计数器,逻辑图如下图:第31页,课件共40页,创作于2023年2月TL0:

用原T0的各控制位、引脚和中断源,即C/T,GATE,TR0,TF0,T0(P3.4)引脚,INT0(P3.2)引脚。

TL0可工作在定时器方式和计数器方式。其功能和操作与模式0、模式1相同(只是8位)。TH0:

只可用作简单的内部定时功能。TH0占用了定时器T1的控制位TR1和T1的中断标志TF1,其启动和关闭仅受TR1的控制。

定时器T1无工作模式3状态。在T0用作模式3时,T1仍可设置为模式0~2。第32页,课件共40页,创作于2023年2月五、综合应用举例解:(1)定时器T0工作模式的确定∵模式0最长可定时16.384ms;模式1最长可定时131.072ms;模式2最长可定时512μs;LED每1秒闪烁一次。∴定时0.5s,可选用模式1,每隔100ms中断一次,中断5次从而达到0.5s的定时。(2)求计数器初值X∵(216-X)×12/(6×106)=100×10-3s∴X=15536=3CB0H因此:(TL0)=0B0H(TH0)=3CH例6:设时钟频率为6MHz,试编写用T0产生定时使P1.0所接的发光二极管每1秒钟闪烁一次。第33页,课件共40页,创作于2023年2月源程序清单(使发光二极管闪烁,每1S闪烁1次)#include<at89x51.h>unsignedchartemp=5;main(){TMOD=0x01;TH0=0X3C;TL0=0XB0;ET0=1;EA=1;TR0=1;P1_0=1;while(1);}voidtimer_0()interrupt1{TH0=0X3C;TL0=0XB0;temp--;if(temp==0){temp=5;P1_0=~P1_0;}}第34页,课件共40页,创作于2023年2月例7:设计实时时钟程序。时钟就是以秒、分、时为单位进行计时。用定时器与中断的联合应用。解:(1)实现时钟计时的基本方法①计算计数初值。

时钟计时的最小单位是秒,可把定时器的定时时间定为100ms,计数溢出10次即得到1秒;10次计数可用软件方法实现。

假定使用定时器T1,以工作模式1进行100ms的定时。如fosc=6MHz,则计数初值X为:∴X=15536=3CB0H∴

(TL0)=0B0H(TH0)=3CH第35页,课件共40页,创作于2023年2月例6:设计实时时钟程序。时钟就是以秒、分、时为单位进行计时。用定时器与中断的联合应用。②采用定时方式进行溢出次数的累计,计满10次即得到秒计时。

设置软件计数器初值为10,每100ms定时时间到溢出中断,使软件计数器减1,直到减到0,则1s到。③从秒到分和从分到时的计时是通过累计和数值比较实现的。

设置几个累加单元分别进行对1s,1min,1h进行计数。满1s,秒位累加;满60s,分位累加;满60min,时位累加;满24h全部累加单元清0第36页,课件共40页,创作于2023年2月(2)程序流程及程序清单 ①主程序流程如右图所示。设T1为模式1设中断次数清计时单元开中断启动T1调用显示子程序时钟主程序流程开始第37页,课件共40页,创作于2023年2月保护现场赋计数初值到1s?秒单元加1

温馨提示

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

评论

0/150

提交评论