定时器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.2个16位定时器实际上都是16位加1计数器。T0由2个8位持殊功能寄存器TH0和

TL0构成,T1由TH1和TL1构成。

2.每个机器周期使定时器(T0或T1)的数值加1直至计计数满产生溢出。

3.设置为计数工作方式时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。

4.当输入脉冲信号产生由1至0的下降沿时,定时器的值加1

5.检测一个1至0的跳变需要二个机器周期,故最高计数频率为振荡频率的二十四分之一

6.要求电平保持时间至少是一个完整的机器周期

7.不管是定时工作方式还是计数方式,定时器T0或T1在对内部时钟或对外部事件计数

时,不占用CPU的时间,除非定时器/计数器溢出,才可能中断CPU的当前操作。

8.由软件写入TMOD和TCON两个八位寄存器,用来设置T0或T1的工作模式和控制功

9.定时器控制寄存器TCON除可字节寻址外,各位还可位寻址

10.工作模式寄存器TMOD(89H)

红色的是定时器T1,黄色的是定时器T0

★C/T=0,设置为定时方式。

定时器计数805l片内脉冲,亦即对机器周期计数。

★C/T=1,设置为计数方式,

计数器的输入是来自T0(P3.4)或Tl(P3.5)端的外部脉冲。

GA TE=0时,只要用软件使TR0(或TRl)置1就启动了定时器,而不管INT0(或INT1)的电平是高还是低。

GA TE=l时,只有当INT0(或INT1)引脚为高电平且由软件使TR0(或TRl)置1时,才能启动定时器工作。

TMOD不能位寻址,只能用字节设置定时器工作方式;

低半字节设定T0,高半字节设定T1。

11.

12.模式0

★模式0是选择定时器(T0或T1)高8位加低5位的—个13位定时器/计数器。

★在这种模式下,16寄存器(TH0和TL0)只用13位,其中TL0的高3位末用,其余位占整个13位的低5位,TH0占高8位。

★当TL0的低5位溢出时向TH0进位而TH0溢出时向中断标志位TF0进位(硬件置位TF0),并申请中断。

★T0溢出否可查询TF0是否置位,以产生T0中断。

★C/T=0时,控制开关接通振荡器十二分频输出端,就是定时工作方式。其定时时间为:t=(213一T0初值)×振荡周期×12

★当C/T=1时,控制开关使引脚T0(P3.4)与13位计数器相连,外部计数脉冲由引脚T0〔P3.4〕输入,当外部信号电平发生“1”到“0”跳变时.计数器加1,这时,T0成为外部事件计数器。这就是计数工作方式。

★GA TE=0时,使或门输出A点电位为常“1”,或门被封锁,于是,引脚INT0输入信号无效。这时或门输出的常“1”打开与门,B点电位取决于TR0状态,于是由TR0一位就可

控制计数开关K开启或关断T0。

若软件使TR0置1,便接通计数开关K,启动T0在原值上加1计数,直至溢出。溢出时,13位寄存器清0,TF0置位,并申请中断,T0仍从0重新开始计数。

若TR0=0。则关断计数开关K,停止计数。

★当GATE =1时,A点电位取决于(P3.4)引脚的输入电平。仅当(P3.4)输入高电平时TR0=l 时,B点才是高电平,计数开关K闭合T0开始计数,当INT0由1变0时,T0停止计数。这一特性可以用来测量在(P3.4)端出现的正脉冲的宽度。

13.模式1

★该模式是一个16位定时器/计数器。

其结构与操作几乎与模式0完全相同,唯一的差别是:在模式1中,寄存器TH0和TL0是以全16位参与操作,

★用于定时工作方式时,定时时间为:

t=(216一T0初值) ×时钟周期×12

★用于计数工作方式时,计数长度为216=65536(个外部脉冲)

14.模式2

★模式2把T0(或T1)配置成—个可以自动重装载的8位定时器/计数器。

★TL0计数溢出时,不仅使溢出中断标志位TF0置1,而且还自动把TH0中的内容重装载到TL0中。

★这时16位的计数器被拆成两个8位;

TL0用作8位计数器,TH0用以保持初值。

★在程序初始化时,TL0和TH0由软件赋予相同的初值。

★—旦TL0计数溢出,置位TF0,并将TH0中的初值再自动装入TL0,继续计数,循环重复。

★用于定时器工作方式时,其定时时间(TF0溢出周期)为;

t=(28—TH0初值)×振荡周期×12

★用于计数器工作方式时,最大计数长度(TH0初值=0)为:

28=256(个外部脉冲)。

★这种工作方式可省去用户软件中重装常数的程序,并可产生相当精度的定时时间。特别适用作串行口波待率发生器。

15.模式3

★操作模式3对T0和T1是大不相同的。

★若将T0设置为模式3,TL0和TH0被分成为两个互相独立的8位计数器。

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

★TL0除仅用8位寄存器外,其功能和操作与模式0(13位计数器)、模式1(16位计数器)完全相同。

TL0也可工作为定时器方式或计数器方式。

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

★定时器T1无操作模式3状态。

16.定时工作过程

17.定时器的工作方式:

方式0:13位定时计数器

注意:TL0的低5位和TH0共同组成

方式1:16位定时计数器

方式2:自动重装入的8位定时计数器

溢出后(TF0=0)由TH0→TL0

方式3:T0成为两个独立的8位计数器

TL0作为定时计数器;TH0仅作定时器用

TL0的控制用原T0的,TH0用原T1的控制位

T1工作在方式0~2,溢出时送串行口,经常作为串行口波特率发生器

18.计数器初值:

设计数模值为M,计数初值设定为TC,计数器计满为零所需的计数值为C,则:TC=M-C (M=213,216,28)

定时器初值:T=(M-TC)T机器

19.编程方式

采用查询方式:程序一直检测TF0(TF1),若TF0=1(TF1=1),说明定时时间到或计满数采用中断方式:程序初始化时,设置定时器溢出中断允许后,内部硬件自动检测到TF0=1(TF1=1)时,自动响应中断,进入中断服务程序。

20.例1 选用T1方式0产生500US的定时,在P1.1输出周期为1MS的方波; FOSC=6MHZ 注意:T0不用时的处理,一般置0方式,禁止进入方式3.

初值计算:T=500US=(213-TC)*2US,TC=7942

TC=7942D=8F06H

BEGIN:MOV TMOD,#0

MOV TL1,#06H

MOV TH1,#0F8H

SETB TR1

LOOP:JBC TF1,PF0

SJMP LOOP

PF0:MOV TL1,#06H

MOV TH1,#0F8H

CPL P1.1

AJMP LOOP

21.几种工作方式的最大定时时间

若TC=0,定时时间为最大,设FOSC=12MHZ,几种工作方式下的最大定时时间为:

方式0:TMAX=8.192MS;

方式1:TMAX=65.536MS;

方式2、3:TMAX=0.256MS;

22.例2 从P3.4T0输入低频脉冲,要求该脉冲每发生一次跳变时由P1.0输出一个500US的

负脉冲,与此同时由P1.1输出一个宽为1MS的正脉冲.

分析先设T0为计数方式,当外部脉冲来一个负跳变时,计数加1,并产生溢出,TF0=1;检测到TF0=1时,即可设定T1为定时方式;

T0设为方式2;初值设为0FFH即加1即刻产生溢出.

相关文档
最新文档