单片机定时器/计数器的方式控制字

时间:2019-06-11

  在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON
  顺便说一下,TMOD和TCON是名称,我们在写程序时就能直接用这个名称来指定它们,当然也能直接用它们的地址89H和88H来指定它们(其实用名称也就是直接用地址,汇编软件帮你翻译一下而已)。


  从图1中我们能看出,TMOD被分成两部份,每部份4位。分别用于控制T1和T0,至于这里面是什么意思,我们下面介绍。
  从图2中我们能看出,TCON也被分成两部份,高4位用于定时/计数器,低4位则用于中断(我们暂不管)。而TF1(0)我们上节课已提到了,当计数溢出后TF1(0)就由0变为1。原来TF1(0)在这儿!那么TR0、TR1又是什么呢?看上节课的图。


  计数脉冲要进入计数器还真不不难,有层层关要通过,起码,就是TR0(1)要为1,开关才能合上,脉冲才能过来。因此,TR0(1)称之为运行控制位,可用指令SETB来置位以启动计数器/定时器运行,用指令CLR来关闭定时/计数器的工作,一切尽在自已的掌握中。
 

  

      定时/计数器的四种工作方式
  工作方式0
  当TMOD中的M1,M2设置成0,0时,定时器/计数器就工作在方式0,工作方式0是一种13位定时器/计数器方式。
  工作方式1
  工作方式1为16位定时器/计数其结构和操作与工作方式0基本相同,的区别是工作方式1的计数器由TL0的8位和TH0的8位共同组成16位的计数器,其定时时间为:
  t=(216-T0初值)×时钟周期×12
  工作方式2
  方式2为8位自动装入时间常数方式,方式0和方式1若用于循环重复定时/计数时(如产生连续脉冲信号),每次计数满后溢出时,寄存器TL0和TH0全部为0,所以第二次计数还得重新装入时间初值。这样不仅麻烦而且影响。方式2避免了上述缺陷它的定时时间为:
  t=(28-T0初值)×时钟周期×12
  工作方式3
  方式3:特殊工作方式只适用于T0,除了是用8位寄存器TL0外,其功能和操作与方式0和方式1完全相同,但是,另一个计数器TH0只可以工作在内部定时器模式下。工作方式3为T0增加了一个8位的定时器。
  定时器/计数器的定时/计数范围
  工作方式0:13位定时/计数方式,因此,多能计到2的13次方,也就是8192次。
  工作方式1:16位定时/计数方式,因此,多能计到2的16次方,也就是65536次。
  工作方式2和工作方式3,都是8位的定时/计数方式,因此,多能计到2的8次方,也说是256次。
  预置值计算:用计数量减去需要的计数次数即可。
  例:流水线上一个包装是12盒,要求每到12盒就产生一个动作,用单片机的工作方式0来控制,应当预置多大的值呢?对了,就是8192-12=8180。
  以上是计数,明白了这个道理,定时也是一样。

上一篇:单片机并行口结构分析
下一篇:PCB叠层设计需要注意这8件事

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料