新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 51单片机定时器/计数器的结构和原理

51单片机定时器/计数器的结构和原理

作者:时间:2014-01-13来源:网络收藏
51单片机定时器/计数器的结构和原理

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

  控制寄存器

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

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

  TMOD在特殊功能寄存器中,字节地址为89H,无位地址。TMOD的格式如下图年示。
51单片机定时器/计数器的结构和原理

  由图可见,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位用于中断系统。51单片机定时器/计数器的结构和原理

  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

51单片机相关文章:51单片机教程


单片机相关文章:单片机教程


单片机相关文章:单片机视频教程


单片机相关文章:单片机工作原理


尘埃粒子计数器相关文章:尘埃粒子计数器原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭