第4章-定时器与计数器_第1页
第4章-定时器与计数器_第2页
第4章-定时器与计数器_第3页
第4章-定时器与计数器_第4页
第4章-定时器与计数器_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

第4章定时器/计数器

4.1定时器/计数器T0和T1

4.1.1定时器/计数器T0和T1的结构及功能

4.1.2定时器/计数器T0和T1的功能寄存器

4.1.3定时器/计数器T0和T1的工作方式

4.1.4定时器/计数器T0和T1应用举例

4.2定时器/计数器T2

4.2.1定时器/计数器T2的控制寄存器

4.2.1定时器/计数器T2的操作模式

对于定时器/计数器来说,不管是独立的定时器芯片还是单片机内的定时器,大都具有以下特点:◆定时器/计数器有多种工作方式,可以是计数方式,也可以是定时方式。

◆定时器/计数器的计数值是可变的,计数的最大值也是有限的,这取决于计数器的位数。计数的最大值也就限定了定时时间的最大值。

◆在到达设定的定时或计数值时发出中断申请,以便实现定时控制。4.1定时器/计数器T0和T1■定时器/计数器T0、T1的结构及功能

定时器/计数器T0、T1是由加法计数器、TMOD寄存器和TCON寄存器等组成,其结构如下:4.1定时器/计数器T0和T1■定时器/计数器T0、T1的结构及功能

T0和T1的结构定时器/计数器的T0和T1的核心是16位加法计数器,图中用特殊功能寄存器TH0、TL0及TH1、TL1表示,它们分别为T0加法计数器和T1加法计数器的高8位和低8位。作计数器用时,加法计数器对芯片引脚T0(P3.4)或T1(P3.5)上的输入脉冲计数。每输入一个脉冲,加法计数器增加1。加法计数器溢出时可向CPU发出中断请求信号。4.1定时器/计数器T0和T1■定时器/计数器T0、T1的结构及功能

T0和T1的结构

作定时器用时,加法计数器对单片机内部机器周期脉冲Tcy计数。由于机器周期是定值,所以对Tcy的计数就相当于定时,如Tcy=1μs,计数值100,相当于定时100μs。加法计数器的初值可以由程序设定,设置的初值不同,计数值或定时时间就不同。在定时器/计数器的工作过程中,加法计数器的内容可用程序读回CPU。4.1定时器/计数器T0和T1■定时器/计数器T0、T1的功能寄存器

◆定时器/计数器方式控制字TMOD

定时器/计数器T0、T1均有4种工作方式,可通过方式控制字TMOD进行设置,各位定义如下:

TMOD的低四位用于T0,高四位用于T1。位为定时或计数功能选择位,位为“1”,为计数方式;位为“0”,为定时方式。4.1定时器/计数器T0和T1■定时器/计数器T0、T1的功能寄存器

◆定时器/计数器方式控制字TMOD

M1、M0:定时器/计数器工作方式选择位,其值与工作方式对应关系如下表所示。4.1定时器/计数器T0和T1M1M0工作方式方式说明00013位定时器/计数器01116位定时器/计数器102具有自动重装初值功能的8位定时器/计数器113两个8位定时器/计数器(T0)■定时器/计数器T0、T1的功能寄存器

◆定时器/计数器方式控制字TMOD

GATE:门控位,用于控制定时器/计数器的启动是否受外部中断请求信号的影响。如果GATE=1,定时器/计数器0的启动受芯片引脚INT0(P3.2)控制,定时器/计数器1的启动受芯片引脚INT1(P3.3)控制;如果GATE=0,则定时器/计数器的启动与引脚INT0、INT1无关。

一般情况下GATE端为0。4.1定时器/计数器T0和T1■定时器/计数器T0、T1的功能寄存器

◆定时器/计数器控制寄存器TCONTCON控制寄存器各位定义如下:

TR0(TR1):T0(T1)运行控制位。当TR0(TR1)=1时启动T0(T1);TR0(TR1)=0时关闭T0(T1)。该位由软件进行设置。4.1定时器/计数器T0和T1■定时器/计数器T0、T1的功能寄存器

◆定时器/计数器控制寄存器TCONTCON控制寄存器各位定义如下:TF0(TF1):T0(T1)定时器/计数器溢出中断标志位。当T0(T1)计数溢出时,由硬件置位,并在允许中断的情况下,向CPU发出中断请求信号,CPU响应中断转向中断服务程序时,由硬件自动将该位清零(也可用软件清除)。

TCON的低四位与外部中断有关。4.1定时器/计数器T0和T1■定时器/计数器T0、T1的四种工作方式

◆工作方式0

当M1M0=00时,定时器/计数器工作于方式0下,构成13位定时器/计数器(8位计数器带32分频的预分频器)。其逻辑结构如下图所示。4.1定时器/计数器T0和T1■定时器/计数器T0、T1的四种工作方式

◆工作方式0THx是高8位加法计数器,TLx是低5位加法计数器,TLx的高3位未用。TLx加法计数溢出时向THx进位,THx加法计数溢出时置位TFx,最大计数值为213。可用程序将0~8191(213-1)的某一数送入THx、TLx作为初值。THx、TLx从初值开始加法计数,直至溢出。所以初值不同,定时时间或计数值不同。

必须注意的是:加法计数器THx溢出后,必须用程序重新对THx、TLx设置初值,否则下一次THx、TLx将从0开始重新计数。(重写初值)4.1定时器/计数器T0和T1■定时器/计数器T0、T1的四种工作方式

◆工作方式0

如果C/T=1,图中开关S1自动地接到下面,定时器/计数器工作在计数状态,加法计数器对Tx(x=1,2)引脚上的外部脉冲进行计数。计数值由下式确定:式中:N为计数值,x是THx、TLx的初值。x值为8191时计数值最小,其值为1;当x值为0时计数值最大,其值为8192,即计数范围为1~8192。4.1定时器/计数器T0和T1■定时器/计数器T0、T1的四种工作方式

◆工作方式0

定时器/计数器是在每个机器周期的S5P2期间采样Tx脚的输入信号,若前一个机器周期的采样值为“1”,下一个机器周期的采样值为“0”,则计数器当前值加1。由于识别一个高电平到低电平的跳变需两个机器周期,所以对外部计数脉冲的频率应小于fosc/24,且高电平与低电平的延续时间均不得小于1个机器周期。4.1定时器/计数器T0和T1■定时器/计数器T0、T1的四种工作方式

◆工作方式0

当C/T=0时为定时方式,开关S1自动地接到上面,加法计数器对机器周期脉冲Tcy计数,每个机器周期TLx加1。定时时间由下式确定:式中:Tcy为单片机的机器周期。如果振荡频率fosc=12MHz,则Tcy=1μs,定时范围为1~8192μs。4.1定时器/计数器T0和T1■定时器/计数器T0、T1的四种工作方式

◆工作方式0

定时器/计数器的启动或停止由TRx控制。

当GATE为“0”时,只要用软件置TRx=1,开关S2闭合,定时器/计数器就开始工作;当TRx=0时,S2打开,定时器/计数器停止工作。4.1定时器/计数器T0和T1■定时器/计数器T0、T1的四种工作方式

◆工作方式0

当GATE=1时为门控方式。此时,仅当TRx=1且INTx引脚上出现高电平(即无外部中断请求信号),S2才闭合,定时器/计数器开始工作。如果INTx引脚上出现低电平(即有外部中断请求信号),则停止工作。所以,门控方式下,定时器/计数器的启动受外部中断请求的影响,可用来测量INTx引脚上出现正脉冲的宽度。4.1定时器/计数器T0和T1■定时器/计数器T0、T1的四种工作方式

◆工作方式1

当M1M0=01

时,定时器/计数器工作于方式1下,构成16位定时器/计数器。其逻辑结构图如下所示。4.1定时器/计数器T0和T1■定时器/计数器T0、T1的四种工作方式

◆工作方式1THx、TLx都是8位加法计数器。在方式1时,计数器的计数值由下式确定:

所以计数范围为1~65536。定时器的定时时间由下式确定:如果fosc=12MHz,则Tcy=1μs,定时范围为1~65536μs。4.1定时器/计数器T0和T1■定时器/计数器T0、T1的四种工作方式

◆工作方式2

当M1M0=10时,定时器/计数器工作于方式2下,为自动重装初值的8位定时器/计数器。4.1定时器/计数器T0和T1■定时器/计数器T0、T1的四种工作方式

◆工作方式2

在方式2下,TLx作为8位加法计数器使用,THx作为初值寄存器使用,THx、TLx的初值由程序设定。当TLx

计数溢出时,不仅置为TFx,而且自动发出重装信号,使三态门打开,将THx中的初值自动送至TLx,并从初值开始重新计数。重装初值后,THx中的值保持不变,除非用程序重新给THx赋值。4.1定时器/计数器T0和T1■定时器/计数器T0、T1的四种工作方式

◆工作方式2

在方式2时,计数器的计数值由下式确定:

所以计数范围为1~256。定时器的定时时间由下式确定:如果fosc=12MHz,则Tcy=1μs,定时范围为1~256μs。4.1定时器/计数器T0和T1■定时器/计数器T0、T1的四种工作方式

◆工作方式3

当M1M0=11时,定时器/计数器工作于方式3下,构成两个8位定时器/计数器。其逻辑结构图如下所示。4.1定时器/计数器T0和T1■定时器/计数器T0、T1的四种工作方式

◆工作方式3

工作方式3只适用于T0。当T0工作于方式3时,TH0和TL0被分为2个独立的定时器/计数器。其中TL0既可以是定时器,也可以是计数器;TH0只能用于定时器使用,并且占用了T1的两个控制信号TR1和TF1。在这种情况下,T1虽然仍可工作于方式0、1、2,但是不能采用中断方式。此时通常将T1用作串行口的波特率发生器。由于T1无方式3,若强行将其设置为工作方式3,相当于令其停止工作。4.1定时器/计数器T0和T1■定时器/计数器T0、T1的四种工作方式

◆工作方式3

在方式3下,定时器/计数器的定时、计数范围和定时/计数值的确定与方式2相同。计数值确定如下:

所以计数范围为1~256。定时器的定时时间可由下式确定:4.1定时器/计数器T0和T1■定时器/计数器的启动和使用

◆初始化。包括工作方式字TMOD设定、初值设定。◆启动定时器(置位TRx)。◆溢出处理(TFx=1)。中断方式或查询方式。在中断方式下,CPU响应中断时会由硬件自动复位TFx,查询方式下需要用软件复位。

注意:为实现“定时处理”某任务或事件,CPU响应中断后应该重写定时器初值,否则定时器将由0值开始计数。4.1定时器/计数器T0和T1■例4-1:设单片机系统时钟为12MHz,试编程从I/O端口P1.2输出周期为5ms的方波(脉冲序列)。分析:当系统时钟为12MHz时,若选用T0工作于方式0下,则最大定时时间为213=8192μs,满足周期5ms的要求;同样,若T0也可

工作于方式1下,则最大定时时间为216=65536μs,亦可满足周期5ms的要求。方波脉宽为2.5ms=2500μs,工作于方式1时有:可知:定时器T0初值为5692,方式0下用到了TH0的8位和TL0的低5位,即:TH0=0B1H,TL0=1CH。4.1定时器/计数器T0和T1■例4-1:C51程序如下。

#include<reg52.h>

sbitp1_2=P1^2;voidmain(){TMOD=0x00;TH0=0xb1;TL0=0x1c;TR0=1;while(1);{while(TF0==0);//等待定时器0溢出(程序查询方式)TF0=0;p1_2=!p1_2;TH0=0xb1;//重写定时器初值TL0=0c1c;}}4.1定时器/计数器T0和T1■例4-2:利用定时器T0测量脉冲宽度。设脉冲从P3.2引脚输入,单片机系统时钟为12MHz。要求将该脉冲宽度值存入变量pul_width中。分析:当定时器工作于方式0时,利用门控位GATE可以测量外部脉冲宽度。方法:令GATE=1,然后软件置位TR0(或TR1),这时当INT0(或INT1)为“1”时(外部脉冲上升沿),就会自动启动定时器;当INT0(或INT1)为“0”时(外部脉冲下降沿),会关闭定时器。因此,此时定时器的计数值就等同于外部输入脉冲的宽度。4.1定时器/计数器T0和T1■例4-2:C51

温馨提示

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

评论

0/150

提交评论