第5章 定时器计数器(1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4. 方式3—2个8位方式
溢出 申请 中断 申请 中断 TCON TF1 TR1 TF0 TR0 溢出 TH0 8位 T0引脚 1 TL0 8位 &
≥1
机器周期 TMOD 1 1 M0 M1 C/T 0 机器周期 GATE M0 1 M1 C/T GATE D7 D0
D0
INT0引脚
仅T0可以工作在方式3—此时T0分成2个独立的计数 器—TL0和TH0 ,前者用原来T0的控制信号(TR0、 TF0),后者用原来T1的控制信号(TR1、TF1)。 TL0:8位定时器/计数器,使用T0原有控制资源TR0 和 TF0,其功能和操作与方式0或方式1完全相同。 TH0:只能作为8位定时器,借用T1的控制位TR1和 TF1,只能对片内机器周期脉冲计数。 在方式3模式下,定时器/计数器0可以构成两个定时 器或者一个定时器和一个计数器。
基本概念 (1)计数:计数是指对外部事件的个数进行计量。其 实质就是对外部输入脉冲的个数进行计量。实现计 数功能的器件称为计数器。
(2 )定时: 8051单片机中的定时器和计数器是一个 部件,只不过计数器记录的是外界发生的事件,而 定时器则是由单片机内部提供一个非常稳定的计数 源进行定时的。这个计数源是由单片机的晶振经过 12分频后获得的一个脉冲源。所以定时器计数脉冲 的时间间隔与晶振有关。
8051单片机内部的定时器/计数器的结构如下图所示。
T1引脚 T0引脚
机器周 期脉冲
TH1
TL1
TH0
TL0
内部总线
GATE TF1 TR1 TF0 TR0 C/T C/T M1 M0 M1 M0
TCON
GATE
TMOD
外部中断相关位
T1方式
T0方式
一、定时/计数器的定时和计数功能 定时/计数器的核心部件是二进制加1计数器(TH0、 TL0或TH1、TL1) 。 1. 定时功能----计数输入信号是内部时钟脉冲, 每个机器周期使寄存器的值加1。所以,计数频率 是振荡频率的1/12。 2. 计数功能----计数脉冲来自相应的外部输入引 脚,T0为P3.4,T1为P3.5。 在TMOD中,各有一个控制位(C/T),分别用于控制 定时/计数器T0和T1是工作在定时器方式还是计数器 方式。
D7 D6 D5 D4 D3 D2 D1 D0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 中断请求标志 外部中断请求的 启动定时/计数器 触发方式选择
0 停止 1 启动
0 低电平 1 下降沿
TF0/TF1:定时器溢出中断申请标志位(由硬件自动置位)。 =0:定时器未溢出; =1:定时器溢出(由全“1”变成全“0”)时由硬件自动 置位,申请中断,中断被CPU响应后由硬件自动清零。 TR0/TR1:定时器运行启停控制位(可由用户通过软件设置 )。 =0:定时器停止运行; =1:定时器启动运行。
T1控制
GATE—门控位 C/T—计数/定时选择 M1 M0—工作方式选择
T0控制
(1)、M1和M0工作方式控制位 M0和M1为工作方式控制位,确定4种工作方式, 如表4-1所示。
(2)、C/T定时器/计数器方式选择位
C/T=0,设置为定时方式,对机器周期进行计数;
C/T=1,设定为计数方式,对外部信号进行计数, 外部信号接至T0(P3.4)或T1(P3.5)引脚。 (3)、GATE门控位 GATE=0时,只要用软件使TR0(或TR1)置1就能 启动定时器T0(或T1); GATE=1 时,只有在 INT0 (或 INT1 )引脚为高电 平的情况下,且由软件使 TR0 (或 TR1 )置 1 时, 才能启动定时器T0(或T1)工作。
确定定时/计数器初值的具体方法。 因为在不同工作方式下计数器位数不同,因而最大 计数值也不同。 假设最大计数值为M,那么各方式下的最大值M值 如下: 方式0:M=213=8 192 方式1:M=216=65 536 方式2:M=28=256 方式3:定时器0分成两个8位计数器,所以两个M均 为256。 因为定时器/计数器是作“加1”计数,并在计数满溢 出时产生中断,因此初值可以这样计算:
பைடு நூலகம்
(3)定时的种类 软件定时:利用执行一个循环程序进行时间延迟。 其特点是定时时间精确,不需外加硬件电路,但占 用CPU时间。因此软件定时的时间不宜过长。 不可编程硬件定时:利用硬件电路实现定时。其特 点是不占用CPU时间,通过改变电路元器件参数来 调节定时,但使用不够灵活方便。对于时间较长的 定时,常用硬件电路来实现。 可编程定时:通过专用的定时器/计数器芯片实现。 其特点是通过对系统时钟脉冲进行计数实现定时, 定时时间可通过程序设定的方法改变,使用灵活方 便。也可实现对外部脉冲的计数功能。
三、定时器/计数器的工作方式 定时器/计数器共有四种工作方式 1. 方式0—13位方式
TCON TF1 申请 中断 TR1 TF0 TR0 D7 溢出 TH0 8位 TL0 5位 &
≥1
TMOD T0引脚 1 1 0 0 0 M0 M1 C/T 机器周期 GATE M0 1 D0 INT0引脚 M1 C/T GATE D7 D0
TC = M C = 213 12=8180
定时时间的计算公式为: T=(MTC)×T0 (或TC=MT/T0 )
其中:T——定时器的定时时间,即设计任务要求的定时时间;
M——计数器的模值; TC——定时器需要预置的初值。 若设初值TC=0,则定时器定时时间为最大。若设单片机系 统主频为12MHz,则各种工作方式定时器的最大定时时间为: 工作方式0: Tmax=213×1s=8.192ms 工作方式1: Tmax=216×1s=65.536ms 工作方式2和3:Tmax=28×1s=0.256ms
四 、定时器/计数器的初始化
由于定时器/计数器的功能是由软件编程确定的,所 以一般在使用定时/计数器前都要对其进行初始化, 使其按设定的功能工作。初始化的步骤一般如下: 1、确定工作方式(即对TMOD赋值); 2、预置定时或计数的初值(可直接将初值写入 TH0、 TL0或TH1、TL1); 3、根据需要开放定时器/计数器的中断(直接对IE位 赋值); 4、启动定时器/计数器(若已规定用软件启动,则可 把TR0或TR1置“1”;若已规定由外中断引脚电平启 动,则需给外部引脚施加启动电平。当实现了启动 要求后,定时器即按规定的工作方式和初值开始计 数或定时)。
2.定时器/计数器的控制寄存器TCON
设定好了定时器/计数器的工作方式后,它还 不能进入工作状态,必须通过设置控制寄存器 TCON中的某些位来启动它。要使定时器/计数器 停止运行,也必须通过设置TCON中的某些位来 实现。当定时器/计数器计满溢出,或有外部中断 请求时,TCON能标明溢出和中断情况。下面介 绍控制寄存器TCON每位的含义:
TCON TF1 申请 中断 TR1 TF0 TR0 TH0 8位 D0 D7 溢出 1 TL0 &
≥1
TMOD T0引脚 0 1 M0 M1 C/T 0 机器周期 GATE M0 1 INT0引脚 M1 C/T GATE D7 D0
工作方式2 (M1M0=10 ,自动重装计数初值的8位定时 器/计数器) 16 位定时器 / 计数器被拆成两个 8 位寄存器 TH0 和 TL0,CPU在对它们初始化时必须装入相同的定时器 / 计数器初值。以 TL0 作计数器,而 TH0 作为预置寄 存器。当计数满溢出时,TF0置“1”,同时TH0将计 数初值以硬件方法自动装入TL0。这种工作方式很适 合于那些重复计数的应用场合(如串行数据通信的波 特率发生器)。
≥1
TMOD T0引脚 1 0 M0 M1 C/T 0 机器周期 GATE M0 1 D0 INT0引脚 M1 C/T GATE D7 D0
工作方式1 ( M1M0=01 ,16位定时器/计数器) 由 TH0 和 TL0 构成 16 位加 1 计数器,其他特性 与工作方式0相同。
3. 方式2—8位自动装入时间常数方式
工作方式0( M1M0=00 ,13位定时器/计数器)
由 TH0的全部 8位和 TL0的低 5位( TL0的高 3位 未用)构成 13 位加 1 计数器,当 TL0 低 5 位计数满时 直接向 TH0 进位,并当全部 13 位计数满溢出时,溢 出标志位TF0置“1”。
2. 方式1—16位方式
TCON TF1 申请 中断 TR1 TF0 TR0 D7 溢出 1 TH0 8位 TL0 8位 &
二、定时器/计数器的控制寄存器 与定时器/计数器有关的控制寄存器有: 1.工作方式控制寄存器TMOD 2.定时器控制寄存器TCON
1.工作方式控制寄存器TMOD TMOD用于控制定时器/计数器的工作模式及工作方式, 其字节地址为89H,格式如下。其中,低4位用于决定 T0的工作方式,高4位用于决定T1的工作方式。 D7 D6 GATE C/T D5 M1 D4 M0 D3 D2 GATE C/T D1 M1 D0 M0
方法:用最大计数量减去需要的计数次数。即:
TC=MC
其中:TC——计数器需要预置的初值; M——计数器的模值(最大计数值); 方式0时,M=213;方式1时,M=216;方式2, 3 时,M=28;
C——计数器计满回0所需的计数值,即设 计任务要求的计数值。
例如:流水线上一个包装是12盒,要求每到12盒 就产生一个动作,用单片机的工作方式0来控制, 则应当预置的初值为:
第 5章
MCS-51定时器/计数器
本章主要介绍51系列单片机定时器和计数器 问题,本章将介绍以下具体内容: 定时/计数器----定时/计数器的定时和计数功能、 定时器/计数器的控制寄存器、定时器/计数器 的工作方式、定时/计数器用作外部中断扩展、 定时中断联合举例。
§5.1 MCS-51单片机的定时/计数器
T0——计数器计数脉冲的周期,即单片机系统主频周期的12倍;
五 、定时器/计数器对输入信号的要求
当定时器/计数器为定时工作方式时,计数器的加1 信号由振荡器的12分频信号产生,即每过一个机 器周期,计数器加1,直至计满溢出为止。显然, 定时器的定时时间与系统的振荡频率有关。因一 个机器周期等于12个振荡周期,所以计数频率 fcount=1/12fosc。如果晶振为12MHz,则计数周 期为:T=1/(12×106)Hz×12=1μs 由于定时的精度取决于输入脉冲的周期,因此 当需要高分辨率的定时时,应尽量选用频率较高 的晶振(MCS-51最高为12MHz)。
综上所述,定时器/计数器是一种可编程部件, 所以在定时器/计数器开始工作之前,CPU必须 将一些命令(称为控制字)写入定时/计数器。 将控制字写入定时/计数器的过程叫定时器/计数 器初始化。 在初始化过程中,要将工作方式控制字写入方 式寄存器,工作状态字(或相关位)写入控制 寄存器,赋定时/计数初值。
当定时器T0工作在方式3时,定时器T1只能工作 在方式0~2,并且工作在不需要中断的场合。
当CPU用软件给定时器设置了某种工作方式之 后,定时器就会按设定的工作方式独立运行, 不再占用CPU的操作时间,除非定时器计满溢 出,才可能中断CPU 当前操作。CPU也可以重 新设置定时器工作方式,以改变定时器的操作。 由此可见,定时器是单片机中效率高而且工作 灵活的部件。
MCS-51单片机内部有两个16位可编程的定时器/计数器,简 称为T0和T1,均可作定时器用也可计数器,它们均是二进制 加法计数器,当计数器计满回零时能自动产生溢出中断请求, 表示定时时间已到或计数已终止。适用于定时控制、延时、 外部计数和检测等。 计数器:对引脚T0(P 3.4 )和T1(P3.5)输入的外部脉冲信 号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动 加1。计数的最高频率一般为振荡频率的1/24。 定时器:对系统晶振振荡脉冲的12分频输出进行计数。 定时器/计数器的结构 组成:16位加法计数器、工作方式寄存器TMOD和控制寄存 器TCON。 T0: TL0(低8位)和TH0(高8位) T1: TL1(低8位)和TH1(高8位)