电工技术基础_电工基础知识_电工之家-电工学习网

欢迎来到电工学习网!

51单片机守时器/计数器的构造和原理

2017-03-24 00:43分类:PLC基础知识 阅读:

 

  守时器/计数器简称守时器,其效果首要包含发作各种时标距离、记载外部作业的数量等,是微机中最常用、最底子的部件之一。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的构造见下图:

  图中,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的构造见下图。


  3、作业办法2

  8位主动装入时刻常数办法。由TLl构成8位计数器,THl仅用来寄存时刻常数。主张T1前,TLl和THl装入一样的时刻常数,当TL1计满后,除守时器回零象征TFl置位,具有向CPU恳求接连的条件外,THl中的时刻常数还会主动地装入TLl,偏从头开端守时或计数。所以,作业办法2是一种主动装入时刻常数的8位计数器办法。因为这种办法不需求指令重装时刻常数,因而操作便当,在容许的条件下,应尽量运用这种作业办法。当然,这种办法的守时/计数计划要小于办法0和办法1。作业办法2的构造见下图.

  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。


  下才或许运用。这时,T1一般用作串行口波特率发作器,TH0用作守时器,TL0作为守时器或计数器。所以,办法3是为了使单片机有1个独立的守时器/计数器、1个守时器以及1个串行口波特率发作器的运用场合而特别供应的。这时,可把守时器l用于作业办法2,把守时器0用于作业办法3。

  操控寄存器

  守时器/计数器T0和T1有2个操控寄存器-TMOD和TCON,它们别离用来设置各个守时器/计数器的作业办法,挑选守时或计数功用,操控主张作业,以及作为作业状况的象征等。其间,TCON寄存器中还有4位用于接连体系。

  1、守时器办法操控寄存器TMOD

  TMOD在分外功用寄存器中,字节地址为89H,无位地址。TMOD的格局如下图年示。

  由图可见,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初值即可。

上一篇:80C51单片机引脚功用图解

下一篇:怎样才华学好单片机?

相关推荐

电工推荐

    电工技术基础_电工基础知识_电工之家-电工学习网
返回顶部