51单片机中的定时器和计数器
从上面定时器/计数器的结构图中我们可以看出,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位用于中断系统。
单片机定时器计数器的结构以及工作原理
定时器/计数器的结构定时器/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD是定时器/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。
计数器输入的计数脉冲源
系统的时钟振荡器输出脉冲经12分频后产生;
T0或T1引脚输入的外部脉冲源。
计数过程
每来一个脉冲计数器加1,当加到计数器为全1(即FFFFH)时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时器/计数器中断允许时)。如果定时器/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。
定时应用
用作定时器:此时设置为定时器模式,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t 。
计数运用
用作计数器:此时设置为计数器模式,外部事件计数脉冲由T0或T1引脚输入到计数器。每来一个外部脉冲,计数器加1。但单片机对外部脉冲有基本要求:脉冲的高低电平持续时间都必须大于1个机器周期。
工作方式寄存器(TMOD)
GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时器/计数器工作;(即需要一个启动条件)
GATE=1时,要用软件使TR0或TR1为1,同时外部中断引脚也为高电平时,才能启动定时器/计数器工作,即需要两个启动条件。
C/T :定时/计数模式选择位。
C/T =0为定时模式; C/T =1为计数模式。
M1M0:工作方式设置位。
计数器工作方式选择
M1 M0 工 作 方 式 功 能 说 明
0 0 方式0 13位计数器
0 1 方式1 16位计数器
1 0 方式2 自动重装8位计数器
1 1 方式3 定时器0:分成两个8位
定时器1:停止计数
定时器/计数器的控制
控制寄存器TCON
TCON的低4位用于控制外部中断,已在前面介绍。TCON的高4位用于控制定时器/计数器的启动和中断申请。其格式如下:
TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。TR1(TCON.6):T1起/停控制位。1:启动 0:停止
TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。
TR0(TCON.4):T0起/停控制位。1:启动 0:停止
定时器/计数器的工作方式
方式1
方式1为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。
方式2
方式2的计数位数是16位,由TL0(TL1)作为低8位、TH0(TH1)作为高8位,组成了16位加1计数器 。
方式3
方式3为自动重装初值的8位计数方式。
在方式3下,当计数器计满255(FFH)溢出时,CPU自动把TH 的值装入TL中,不需用户干预。因此特别适合于用作较精确的脉冲信号发生器。
方式4
方式4只适用于定时器/计数器T0,定时器T1方式3时相当于TR1=0,停止计数。工作方式4将T0分成为两个独立的8位计数器TL0和TH0 。
本文转载自网络,如涉版权请联系我们删除
看完本文有收获?请分享给更多人
回复关键词有干货: 电路设计丨电容丨三极管丨PCB丨接地‧‧‧‧‧‧
长按二维码识别关注
阅读原文可一键关注+历史信息
相关问答
51单片机 内部 定时器 的 工作原理 ?51单片机内部定时的工作原理:定时器计数8051单片机片内振荡器输出经过12分频后的脉冲个数,即:每个机器周期使定时器T0/T1的寄存器值自动累加1,直到溢出,溢出...
51单片机定时器 的目的?答51单片机定时器的目的是计数。因为1单片机内部共有两个16位可编程定时器,定时器T0和T1。52单片机内部多一个T2定时器。它们既有定时器功能又有计数功能,通过...
单片机 的 定时器 资源是什么计数器?单片机的定时器资源是脉冲计数器51单片机外部脉冲计数原理:51单片机外部脉冲计数与时间之间的关系十分密切,每输入一个脉冲,计数器的值就会自动累加1。51单...
80c 51单片机 定时的时间与哪两个寄存器的初值有关?th0和tl0,就是初值th0和tl0,就是初值
25秒计时器设计 原理 ?利用单片机的定时器/计数器定时和记的原理,结合显示电路、LED数码管以及按键来设计计时器,具有00-99分钟计时及显示功能;具有开始、停止和复位功能,并由按键...
51单片机 串口通信 定时器 初值肿么计算啊?公式和计算 原理 麻烦...公式和计算原理麻烦说一下!举报固态硬盘创见2人讨论1646次围观关注问题写回答讨论回答(2)mcc1214串口通信方式1和方式3,要用T1来控制波特率。T1,使用...
89c 51单片机定时器 有哪几种 工作 方式,它们之间有什么区别?有四种工作模式:模式0,模式1,模式2,模式3(1)模式0:选择定时器的高8位和低5位组成一个13位定时器/计数器。TL低5位溢出时向TH进位,TH溢出时向中断标志位...有...
【定时计数器实质是加1计数器是什么意思】作业帮[回答]51系列单片机内部有两个计数器/定时器,是加1计数器,就是每个机器周期计数值就加1,如原来值是10,加1后就为11.如果是减1计数器就减1,减1后就为9.搞清...
51单片机 T0 定时器 4种方式的定时时长分别是多少 - 150****156...51单片机最大硬件定时时间,就是定时器能定时的时间,最长时间=65536*TcTc=fosc/12,fosc是单片机的晶振频率。以频率=12M为例吧,Tc=1us最大定时时间=6...
51单片机 的 定时器 怎么用?51单片机的定时器是一种用于产生定时或延时的功能模块。首先,需要选择合适的定时器模式和预分频系数,设置定时器的工作方式。然后,通过配置定时器的计数初值...