51单片机中的定时器和计数器

原创 2013年12月02日 17:37:06



从上面定时器/计数器结构图中我们可以看出,16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1 构成。其访问地址依次为8AH-8DH。每个寄存器均可单独访问。这些寄存器是用于存放定时或计数初值的。此外,其内部还有一个8位的定时器方式寄存器 TMOD和一个8位的定时控制寄存器TCON。这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。TMOD主要是用于选定定时器的工作方式; TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。当定时器工作在计数方式时,外部事件通过引脚T0 (P3.4)和T1(P3.5)输入。

定时计数器的原理:

一、定时器/计数器为定时工作方式时,

计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出为止。显然,定时器的定时时间与系统的振荡频率有关。因一个机器周期等于12个振荡周期,所以计数频率fcount=1/12osc。如果晶振为12MHz,则计数周期为:

T=1/(12×106)Hz×1/12=1μs

这是最短的定时周期。若要延长定时时间,则需要改变定时器的初值,并要适当选择定时器的长度(如8位、13位、16位等)。

二、定时器/计数器为计数工作方式时,

通过引脚T0和T1对外部信号计数,外部脉冲的下降沿将触发计数。计数器在每个机器周期的S5P2期间采样引脚输入电 平。若一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。此后的机器周期S3P1期间,新的计数值装入计数器。所以检测一个由1至0的跳 变需要两个机器周期,故外部事件的最高计数频率为振荡频率的1/24。例如,如果选用12MHz晶振,则最高计数频率为0.5MHz。虽然对外部输入信号 的占空比无特殊要求,但为了确保某给定电平在变化前至少被采样一次,外部计数脉冲的高电平低电平保持时间均需在一个机器周期以上。


当CPU用软件给定时器设置了某种工作方式之后,定时器就会按设定的工作方式独立运行,不再占用CPU的操作时间,除非定时器计满溢出,才可能中断CPU 当前操作。CPU也可以重新设置定时器工作方式,以改变定时器的操作。由此可见,定时器是单片机中效率高而且工作灵活的部件。

综上所述,我们已知定时器/计数器是一种可编程部件,所以在定时器/计数器开始工作之前,CPU必须将一些命令(称为控制字)写入定时/计数器。将控制字写入定时/计数器的过程叫定时器/计数器初始化。在初始化过程中,要将工作方式控制字写入方式寄存器,工作状态字(或相关位)写入控制寄存器,赋定时/计 数初值。下面我们就提出的控制字的格式及各位的主要功能与大家详细的讲解。

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


51单片机计数/定时器设置

51单片机内部一般有两个计数/定时器,T0 T1,其框图如下: 其中TH1 TL1用来设定T1的计数初值,TH0 TL0则用来设定T0的。 一、工作模式设置寄存器TMOD,地址为89H,格式如...
  • qq785231745
  • qq785231745
  • 2015年09月16日 23:33
  • 3521

51单片机的中断与定时计数器尝试

这是我的第一篇有关51单片机的博客,主要记录我的学习历程与中间遇到的问题,如有错漏请指出。...
  • Heliumxx
  • Heliumxx
  • 2016年08月18日 00:04
  • 1953

MCS-51单片机计数器定时器详解

转载自:http://www.360doc.com/content/14/0219/10/12891049_353743057.shtml 80C51单片机内部设有两个16位的可编程定时器/计数器。...
  • robinson_911
  • robinson_911
  • 2014年02月19日 10:32
  • 2007

转 MCS-51单片机的定时器/计数器概念 非常好的寄存器关系图

一、MCS-51单片机的定时器/计数器概念 单片机中的定时器和计数器其实是同一个物理的电子元件,只不过计数器记录的是单片机外部发生的事情(接受的是外部脉冲),而定时器则是由单片机自身提供的一个非...
  • phker
  • phker
  • 2015年03月17日 21:00
  • 4392

51单片机STC89C52 定时器(查询方式)

BEEP BIT P2.3 HVAL EQU 03CH LVAL EQU 0B0H ORG 0030H MOV 89H,#01H ;TMOD,定时器0工作方式1 LOAD...
  • zhoukouguren
  • zhoukouguren
  • 2013年11月11日 22:49
  • 1240

STC89c51单片机的定时器2

定时器T2的功能比T1、T0都强大,但描述它的资料不多,可能是使用得比较少的缘故吧。它是一个16位的具有自动重装和捕获能力的定时/计数器,它的计数时钟源可以是内部的机器周期,也可以是P1.0输入的外部...
  • u011046042
  • u011046042
  • 2016年07月01日 09:02
  • 3737

51单片机的延时及定时器

经常看些东西,有时在书上,有时在网上,还有的是突然醒悟,也该做一些总结,最近想总结一下单片机的定时以及延时问题。 单片机主要是两种延时方式: 1.硬件延时:要用到定时器/计数器,这种方法可以提高CPU...
  • m0_37286282
  • m0_37286282
  • 2017年02月25日 14:35
  • 1300

定时器与计数器

定时器和计数器在计算机系统中,尤其是工业控制系统中有着重要的作用。定时器和计数器的差别仅限于用途不同。定时器从本质上来讲其实就是一个计数器,每收到一个脉冲,计数器就会加/减1,如果脉冲的周期固定,那么...
  • spu20134823091
  • spu20134823091
  • 2016年08月21日 21:30
  • 668

单片机实验——0到60秒的计时器(使用硬件中断方式实现)

编译环境:KEIL C51 V3仿真软件:proteus 7.4单片机类型:AT89C52数码管类型:7seg-mpx1-cc (cc——共阴数码管)烧写到单片机上的程序:#include c...
  • yangywyangyw
  • yangywyangyw
  • 2010年11月29日 18:46
  • 5315

(单片机原理与应用)定时器/计数器设计实验

一、实验内容 采用12MHZ时钟频率的单片机,通过一个开关输入,触发定时计数。按下开关10次,计算按键的平均时间,并通过数码管显示出来。 二、实验目的 了解定时器的各种工作方式 掌握定时器/计...
  • lonely_Quan
  • lonely_Quan
  • 2015年03月07日 13:25
  • 1555
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:51单片机中的定时器和计数器
举报原因:
原因补充:

(最多只允许输入30个字)