您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>电子百科>半导体技术>半导体器件>

计时器,什么是计时器,计时器原理是什么

2010年03月08日 17:52 www.elecfans.com 作者:佚名 用户评论(0

计时器,什么是计时器,计时器原理是什么

计时器,是利用特定的原理来测量时间的装置。计时器的种类包括电磁打点计时器、电火花计时器、坚持计时器、停车计时器、反应计时器、放大计时器以及windows计时器等等。电磁打点计时器和电火花打点计时器最为常见。电磁打点计时器是一种使用交流电源的计时仪器,其工作电压是4-6V,电源的频率是50Hz,它每隔0.02s打一次点。电火花计时器是利用火花放电在纸带上打出小孔而显示出点迹的计时仪器,使用220V交流电压,当频率为50Hz时,它每隔0.02s打一次点,电火花计时器工作时,指导运动所受到的阻力比较小,试验误差比电磁打点计时器的要小。

计时器的说明:
  ① 最小计时单位0.01秒,最长计时9999小时59分59秒,2点预置输出,启动、复位、停止三点开入控制
  ② 外形尺寸:160×80(横)、96×48(横),96×96
  ③ 仪表电源:220V AC,(9~30)V DC
  计时器的基本配置:
  4位或8位显示,1点继电器输出
  扩展功能:
  ① 报警输出:最多可加1点
  ② 外部开入:3点(启动、停止、复位)
  ③ 通讯接口RS 485或RS 232

机械计时器

定时器/计数器简称定时器,其作用主要包括产生各种时标间隔、记录外部事件的数量等,是微机中最常用、最基本的部件之一。

定时和计数的本质是相同的,它们都是对一个输入脉冲进行计数,如果输入脉冲的频率一定,则记录一定个数的脉冲,其所需的时间是一定的,例如,输入脉冲的频率为2MHZ,则:计数2* 106 ---- 定时1秒。

因此,使用同一个接口芯片,既能进行计数,又能进行计时,统称为计时器/计数器。(Timer/Counter简称T/C)。计数器逻辑原理如图6-4所示。主要构成: 

(1)控制寄存器;决定工作模式。

(2)状态寄存器;反应工作状态(可无,如8253无此寄存器)。

(3)初值寄存器;计数的初始值。

(4)计数输出寄存器;CPU从中读出当前计数值。

(5)计数器;执行计数操作,CPU不能访问。

image:bk072414_1f.gif

工作原理

对CLK信号进行“减1计数”。首先CPU把“控制字”,写入“控制寄存器”,把“计数初始值”写入“初值寄存器”,然后, 定时/计数器按控制字要求计数。计数从“计数初始值 开始,每当CLK信号出现一次,计数值减1,当计数值减为0时,从OUT端输出规定的信号(具体形式与工作模式有关)。当CLK信号出现时,计数值是否减1(即是否计数),受到“门控信号”GATE的影响,一般,仅当GATE有效时,才减1.门控信号GATE如何影响计数操作,以及输出端OUT在各种情况下输出的信号形式与定时/计数器的工作模式有关。这里,应该指出如此三点。

803l单片机有2个16位的定时器/计数器:定时器0(T0)和定时器1(T1)。

T0由2个定时寄存器TH0和TL0构成,T1则由TH1和TL1构成,它们都分别映射在特殊功能寄存器中,从而可以通过对特殊功能寄存器中这些寄存器的读写来实现对这两个定时器的操作。作定时器时,每一个机器周期定时寄存器自动加l,所以定时器也可看作是计量机器周期的计数器。由于每个机器周期为12个时钟振荡周期,所以定时的分辨率是时钟振荡频率的1/12。作计数器时,只要在单片机外部引脚T0(或T1)有从1到0电平的负跳变,计数器就自动加1。计数的最高频率一般为振荡频率的l/24。

工作方式:

T0或T1无论用作定时器或计数器都有4种工作方式:方式0、方式1、方式2和方式3。除方式3外,T0和T1有完全相同的工作状态。下面以T1为例,分述各种工作方式的特点和用法。

1、工作方式0:

13位方式由TL1的低5位和TH1的8位构成13位计数器(TL1的高3位无效)。工作方式0的结构见下图:

image:bk072414_2f.gif

图中,C/T为定时/计数选择:C/T=0,T1为定时器,定时信号为振荡周期12分频后的脉冲;C/T=l,T1为计数器,计数信号来自引脚T1的外部信号。

定时器T1能否启动工作,还受到了R1、GATE和引脚信号INT1的控制。由图中的逻辑电路可知,当GATE=0时,只要TR1=1就可打开控制门,使定时器工作;当GATE=1时,只有TR1=1且INT1=1,才可打开控制门。GATE,TR1,C/T的状态选择由定时器的控制寄存器TMOD,TCON中相应位状态确定,INT1则是外部引脚上的信号。

在一般的应用中,通常使GATE=0,从而由TRl的状态控制Tl的开闭:TRl=1,打开T1;TRl=0,关闭T1。在特殊的应用场合,例如利用定时器测量接于INT1引脚上的外部脉冲高电平的宽度时,可使GATE=1,TRl=1。当外部脉冲出现上升沿,亦即INT1由0变1电平时,启动T1定时,测量开始;一旦外部脉冲出现下降沿,亦即INT1由l变O时就关闭了T1。

定时器启动后,定时或计数脉冲加到TLl的低5位,从预先设置的初值(时间常数)开始不断增1。TL1计满后,向THl进位。当TL1和THl都计满之后,置位T1的定时器回零标志TFl,以此表明定时时间或计数次数已到,以供查询或在打开中断的条件下,可向CPU请求中断。如需进一步定时/计数,需用指令重置时间常数。

2、工作方式1:

16位方式。与工作方式0基本相同,区别仅在于工作方式1的计数器TL1和TH1组成16位计数器,从而比工作方式0有更宽的定时/计数范围。工作方式1的结构见下图。

image:bk072414_3f.gif

3、工作方式2

8位自动装入时间常数方式。由TLl构成8位计数器,THl仅用来存放时间常数。启动T1前,TLl和THl装入相同的时间常数,当TL1计满后,除定时器回零标志TFl置位,具有向CPU请求中断的条件外,THl中的时间常数还会自动地装入TLl,并重新开始定时或计数。所以,工作方式2是一种自动装入时间常数的8位计数器方式。由于这种方式不需要指令重装时间常数,因而操作方便,在允许的条件下,应尽量使用这种工作方式。当然,这种方式的定时/计数范围要小于方式0和方式1。工作方式2的结构见下图.

image:bk072414_4f.gif

4、工作方式3

2个8位方式。工作方式3只适用于定时器0。如果使定时器1为工作方式3,则定时器1将处于关闭状态。

当T0为工作方式3时,THo和TL0分成2个独立的8位计数器。其中,TL0既可用作定时器,又可用作计数器,并使用原T0的所有控制位及其定时器回零标志和中断源。TH0只能用作定时器,并使用T1的控制位TRl、回零标志TFl和中断源,见下图。

通常情况下,T0不运行于工作方式3,只有在T1处于工作方式2,并不要求中断的条件下才可能使用。这时,T1往往用作串行口波特率发生器(见1.4),TH0用作定时器,TL0作为定时器或计数器。所以,方式3是为了使单片机有1个独立的定时器/计数器、1个定时器以及1个串行口波特率发生器的应用场合而特地提供的。这时,可把定时器l用于工作方式2,把定时器0用于工作方式3。

image:bk072414_5f.gif

下才可能使用。这时,T1往往用作串行口波特率发生器,TH0用作定时器,TL0作为定时器或计数器。所以,方式3是为了使单片机有1个独立的定时器/计数器、1个定时器以及1个串行口波特率发生器的应用场合而特地提供的。这时,可把定时器l用于工作方式2,把定时器0用于工作方式3。

控制寄存器

定时器/计数器T0和T1有2个控制寄存器-TMOD和TCON,它们分别用来设置各个定时器/计数器的工作方式,选择定时或计数功能,控制启动运行,以及作为运行状态的标志等。其中,TCON寄存器中另有4位用于中断系统。

1、定时器方式控制寄存器TMOD

TMOD在特殊功能寄存器中,字节地址为89H,无位地址。TMOD的格式如下图年示。

image:bk072414_6f.gif

由图可见,TMOD的高4位用于T1,低4使用于T0,4种符号的含义如下:

GATE:门控制位。其作用见图1.6。GATE和软件控制位TR、外部引脚信号INT的状态,共同控制定时器/计数器的打开或关闭。

C/T:定时器/计数器选择位。C/T=1,为计数器方式;C/T=0,为定时器方式。

M1M0:工作方式选择位,定时器/计数器的4种工作方式由M1M0设定。

M1M0=00:工作方式0(13位方式)。

M1M0=01:工作方式1(16位方式)。

M1M0=10:工作方式2(8位自动装入时间常数方式)。

MlM0=11:工作方式3(2个8位方式--仅对T0)。

2.定时器控制寄存器--TCON

TCON在特殊功能寄存器中,字节地址为88H,位地址(由低位到高位)为88H一8FH,由于有位地址,十分便于进行位操作。

TCON的格式如下图所示。其中,TFl,TRl,TF0和TR0位用于定时器/计数器;IEl,ITl,IEo和IT0位用于中断系统。


TFl,TRl用于定时器T1;TF0,TR0用于定时器T0。两组符号有相同的含义。

TF:定时器/计数器中断请求标志位。当定时器计满回零时,TF=1,并可申请中断;当CPU响应中断并进入中断服务程序后,TF自动清零。如对TF查询,定时器回零后,要用指令将TF清零。

TR:定时器/计数器开闭控制位。

IEl,ITl用于外部中断1(1NTl);IE0,IT0用于外部中断0(1NT0)。两组符号的含义相同。

IT:下跳沿/低电平引起外部中断请求的选择位。IT=1,由下跳沿引起;IT=0,由低电平引起。

IE:外部中断的中断申请标志。IE=0,表明无外部中断请求;IE=1,表明有外部中断请求。当有外部中断请求时,IE自动为1,单片机CPU响应此中断后,IE自动清零。


定时/计数初值的求取方法

8031单片机的定时器/计数器采用增量式计数。也就是说,当运行于定时器方式时,每隔一个机器周期定时器自动加1;当运行于计数器方式时,每当引脚出现下跳沿,计数器自动加1。无论是作定时用还是计数用,当T0或Tl加满回零后,定时器回零标志置1。而当允许中断时,TF可以申请中断进而在中断服务程序中作相应的操作;TF也可用程序判断定时到或计数满的标志位。

那么,怎样确定定时或计数初值(又称为时间常数),以便达到要求的定时时间或计数值呢?下面作简要介绍,并举两个例子加以说明。

设T0(或T1)运行于计数器方式,要求计数X个外部脉冲后T0(或T1)回零,则计数初值C的求取方法如下:

因为回零的含义是指加满到计数器的模值,即

x十C=模

所以 C=模一x=模十(一x)=(x)求补

由此可见,计数初值的大小等于需要计数的个数x求补运算后的结果。


又若T0(或T1)运行于定时器方式,需定时tvs,则计数脉冲数为。其中,MC为机器周期(单片为us)同理可知,定时初值为。

值的指出的是,对于定时器/计数器的4种不同工作方式,T0或T1的位数不同,模值也因而不同,求补运算要按相应位数的长度来求。

例1:T0运行于计数器状态,工作于方式1(16位方式),要求外部引脚出现3个脉冲后,TH0,TL0全回零(以便申请中断)。求计数初值C。

解:C=(0003H)求补=FFFDH

例2:T0运行于定时器状态,时钟振荡周期为12MHZ,要求定时100us。求不同工作方式时的定时初值。

解:因为机器周期MC=12/12MHZ=1us

所以要计数的贾器周期个数为64H。

应注意定时器在工作方式0时的初值装入方法。由于方式0是13位定时/计数方式,对于T0而言,高8位初值装入TH0,低5位初值装入TL0的低5位(TL0的高3位无效)。所以对于上例,要装入1F9CH初值时,可安排成:

在具体装入初值时,必须把11111100B装入TH0,而把***11100B装入TL0。用指令表示即:

MOV TH0,#0FCH ;#FCHTH0

MOV TL0,#1CH ;#1CHTL0

通过上面求定时/计数初值的分析可见,不同工作方式的最大计数值或定时机器周期数分 别为;

方式0--213

方式l--216

方式2,3--28

例如,当晶振(外部振荡时钟)fosc=6MHz时,方式1的最长定时时间tmax=216×12÷6MHZ=131.072ms。这在操作上,只需把TH和TL都预置成00H初值即可。

非常好我支持^.^

(20) 87%

不好我反对

(3) 13%

( 发表人:admin )

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!