历史上的今天
返回首页

历史上的今天

今天是:2025年06月22日(星期日)

2018年06月22日 | PIC单片机入门_定时器TMR2详解与实例

2018-06-22 来源:eefocus

1.前言

这里将介绍另一款定时器TMR2模块,TMR2与前面介绍的TMR0和TMR1相比,最大的差别是只能工作于定时模式,因此称它为“定时器TMR2”。 

2.TMR2的特性

TMR2为8位宽,附带二个4位宽的分频器:一个“预分频器”和一个“后分频器”,一个可编程的8位周期寄存器PR2。其主要用途:
1. 可以用作时间定时器,但是不能作为计数器;
2. 可以为同步串行端口MSSP模块提供波特率时钟;
3. 可以与CCP模块配合使用,实现脉宽调制PWM功能。

TMR2的核心是一个可以由软件读/写的8位宽的计数器,它也是按递增计数,从某一初值(缺省为0)开始递增,直到与周期寄存器PR2中内容匹配之后,在下一次递增时则返回到00H,并且会产生匹配信号,该匹配信号将作为“后分频器”的计数脉冲。
只有在后分频器产生溢出时,才会将溢出中断标志位TMR2IF(PIR1的bit1)置1。如果此时相关的中断使能位都置位,则会引起CPU的中断响应。通过对中断使能位TMR2IE的置位或复位,即可允许或禁止CPU响应TMR2产生的中断请求。

需要注意的是:

1. TMR2和RAM空间统一编址,地址为11H; 

2. 可用软件方式直接读/写TMR2的内容;
3. 有一个4位的预分频器和一个4位的后分频器;
4. 有一个8位周期寄存器;
5. 累加计数的触发信号只能选择内部系统时钟;

3. TMR2相关的寄存器

与TMR2有关的寄存器共有6个,如下表所示。这6个寄存器中的前3个寄存器的功能可以查看“中断系统”。在此介绍TMR2控制寄存器T2CON。 



TMR2控制寄存器T2CON是一个只用到低7位的可读/写寄存器,最高位未用,其余各位的含义如下:
1. TOUT-PS3~TOUT-PS0:TMR2后分频器分频比选择位,如下表所列:

2. TMR2-ON:TMR2使能控制位。1=启用TMR2;0=关闭TMR2,可以降低功耗。 
3. T2CK-PS1~T2CK-PS0:预分频器分频比选择位,如下表所列:


4. TMR2的电路结构

TMR2的内部结构,如下图所示,包含5个组成部分。下面分析各个部分的功能和组成关系。

核心部分就是一个8位宽的累加计数器TMR2。其复位值是00H,也可以是在00H~FFH范围内由用户设定的一个起始值。 
4位宽的预分频器,对于进入TMR2的时钟信号进行预先分频,允许选择3种不同的分频比(1:1、1:4或1:16)。
注意:在对TMR2或控制寄存器进行写操作时,都可以使预分频器清0;在用任何方式复位时,都会对预分频器清0。

周期寄存器PR2也是一个8位可读/写寄存器。用来预置一个作为TMR2一次计数过程结束的周期值。芯片复位后PR2寄存器被自动设置为全1(FFH)。
比较器是一个8位宽的按位比较逻辑电路,只有当参加比较的两组数据完全相同之后,下一次递增时,“匹配”输出端才会送出高电平,其他情况下该输出端均保持低电平。
4位宽的后分频器,对于比较器的输出信号进行后续分频,允许连续选择16种分频比,其输出信号频率是输入信号频率的1/N (N=1~16) 。
TMR2的工作是可控的,所以还包含一个控制门G1。只有当TMR2使能位TMR2ON置1,系统时钟才能通过G1,TMR2也才能进入活动状态。 

5.TMR2的工作原理

TMR2只有一种工作方式:定时器方式,其触发钟信号也只能从内部系统时钟4分频后得到。

5.1 禁止TMR2工作

TMR2也比TMR0多了一种选择,即可以被用户程序关闭而节电,此点类似于TMR1。具体方法是将TMR2使能控制位TMR2ON清0。此时与门G1的一只引脚被低电平封锁,其输出端均保持低电平;因此使得累加计数器TMR2不能活动。

5.2 定时工作方式

TMR2只有定时工作模式,该模式可以被用来实现一般的延时或定时。但是,TMR2的主要目的并不是把它用作普通的定时器,而是为CCP模块或MSSP模块提供周期可调的时基信号。

用作周期可调的时基发生器
当TMR2被用作周期可调的时基发生器时,可以为CCP模块或MSSP模块提供周期可调的时基信号。
 这时,应该将中断使能位TMR2IE清0,即屏蔽TMR2的中断功能,相当于把后分频器的作用也屏蔽了;通过对周期寄存器PR2设置不同的值,以及给预分频器设定不同的分频比,来灵活调整TMR2输出端的信号周期TTMR2 。该周期的计算式为:
                                                 TTMR2=(4/fosc)*N1*(PR2+1)
其中:fosc为系统时钟频率;N1为预分频器的分频比(取1、4或16);PR2为周期寄存器预赋值;PR2+1是因为在TMR2与PR2匹配后的下一次增量时TMR2才回00H。


用作延迟时间可调周期性定时器
把TMR2作为延迟时间可调的周期性定时器,会比TMR0的定时方式更加节省软件开销。
TMR2不必像TMR0那样,每次溢出后,都要给寄存器TMR2赋初值。只要一次性设定溢出周期(通过设定预分频器、后分频器以及PR2来实现),TMR2就将会周期性地按预先设定的溢出周期产生超时中断。该超时溢出周期的计算式为 :

                                           TTMR2IF=(4/fosc)*N1*(PR2+1)*N2
其中,N2为后分频器的分频比(连续可取1~16)。这时的简化电路如下图所示:

 

用作普通定时器
TMR2也可以像TMR0那样用作普通的定时器,这样使用时,可以将后分频器的分频比设定为1:1,PR2的值设定为最大值FFH,就相当于把后分频器、周期寄存器以及比较器的功能禁止掉了,使得它们不发挥作用。

从而使TMR2简化为类似于TMR0一样,带有一个分频比可设定为1:1、1:4或1:16的4位预分频器。这时超时溢出周期的计算式为:
                                                     TTMR2IF=(4/fosc)*N1*(256-M)
其中,M为TMR2的初始值。简化电路如下图所示:


采用这种用法时,需要在TMR2每次超时溢出时,都要给TMR2赋一次初始值。累加计数寄存器TMR2,就会以该初始值为起点开始增量,直到递增到FFH,之后再出现一个计数脉冲,就会将TMR2复位清0,并且发出中断请求(TMR2IF被置1)。如果想把预分频器的功能禁止掉,可以把它的分频比也设置为1:1,这样就相当于把预分频器给短路掉了。 


推荐阅读

史海拾趣

Aborn Electronics Inc公司的发展小趣事

随着产品线的不断丰富和技术实力的不断提升,Aborn Electronics开始积极寻求市场拓展。公司先后在国内外多个地区设立了销售网点和分支机构,并通过参加各类行业展会和论坛,加强与其他企业的交流与合作。同时,Aborn Electronics注重品牌建设,通过提升产品质量和服务水平,逐渐树立起了良好的企业形象和口碑。

Greatbatch-Sierra Inc公司的发展小趣事

随着产品线的不断丰富和技术实力的不断提升,Aborn Electronics开始积极寻求市场拓展。公司先后在国内外多个地区设立了销售网点和分支机构,并通过参加各类行业展会和论坛,加强与其他企业的交流与合作。同时,Aborn Electronics注重品牌建设,通过提升产品质量和服务水平,逐渐树立起了良好的企业形象和口碑。

Eureka Microelectronics Inc公司的发展小趣事

为了支持公司的持续发展和业务扩张,Eureka成功完成了多轮融资。这些融资不仅为公司提供了充足的资金支持,也吸引了众多投资者的关注。借助这些资金,Eureka加大了在研发、生产、销售等方面的投入,进一步提升了公司的竞争力和市场地位。同时,公司也积极开展战略合作,与上下游企业建立了紧密的合作关系,共同推动产业链的发展。

广州基安彼(GMB)公司的发展小趣事

Eureka一直重视研发实力的提升和技术创新。公司拥有一支专业的研发团队,致力于新技术的研发和应用。近年来,Eureka在人工智能、物联网等领域取得了多项技术突破,推出了一系列具有竞争力的新产品。这些技术的突破和应用,不仅提升了Eureka的产品性能和质量,也推动了公司在行业内的领先地位。

CONEXANT公司的发展小趣事

在语音通信领域,Conexant以其卓越的声卡技术赢得了市场的广泛认可。特别是在网络语音电话方面,Conexant声卡凭借其出色的性能和稳定性,成为了众多商务本和工作站的首选。惠普、联想等知名品牌的产品线中,都能看到Conexant声卡的身影。这一成功不仅源于Conexant对技术的持续投入和创新,也得益于其对市场需求的敏锐洞察和精准把握。

EIC [EIC discrete Semiconductors]公司的发展小趣事

在竞争激烈的电子行业中,EIC公司深知供应链管理和成本控制的重要性。公司建立了完善的供应链管理体系,与供应商建立了长期稳定的合作关系,确保了原材料的稳定供应和质量的可靠性。同时,EIC还通过优化生产流程、提高生产效率等措施,不断降低生产成本,提升产品的竞争力。

问答坊 | AI 解惑

急!wince6.0下是否支持GDI+?

急问各位前辈们,WINCE6.0是否支持GDI+画图,谢谢 …

查看全部问答>

向各位硬件高手咨询个问题-我的电脑开机后是四个屏幕,从系统启动到进入到登陆阶段都是黑屏,请问什么原因?

   是华硕的笔记本,A6系列的,昨天开始就这样,我的电脑开机后是四个屏幕,从系统启动到进入到登陆阶段都是黑屏,可能能进bios,但一直是黑屏,什么也看不见,连重装系统都不能了?郁闷,希望来解答,谢谢…

查看全部问答>

6410中断问题!

我用6410裸奔  把代码拷贝到了DDR空间运行  但是现在发现中断都进步了中断函数 ,所有中断都不响应了  难道代码的运行空间放到DDR里面了  还要做别的改动才可以使中断完好能使吗?   希望各位路 ...…

查看全部问答>

有朋友用makefile来批处理arm程序的吗

最近在工作中常常需要用到Makefile来编译和链接arm程序,但是现在我还是无法脱离集成开发环境,希望高手指点指点, 以下是我找到的一个比较经典的make,但是还没有完全将它的意思弄清楚,希望高手指点     #Makefile文件涉及的语法众 ...…

查看全部问答>

请教两个关于电压的问题,usb,与sd

                                 使用usb通讯和sd卡时,对最低电压有什么要求?2.7v可以保证工作吗?…

查看全部问答>

STM32内置FLASH可以做U盘吗?

在网上找到一篇“5分钟用STM32的内置Flash做一个超小U盘” 用他提供的方法不行。请问各位高手 STM32 内置 FLASH 可以做 U 盘吗?…

查看全部问答>

STM32F207和103做了一下对比

今天对STM32F207和103做了一下对比,想做一个STM32F207与 103兼容设计,都是144Pin的,画PCB真的很烦呀!搞一次,最好两个都能兼容上!对比如下 管脚   STM32F207    STM32F103 30      Vdd_12&nbs ...…

查看全部问答>

想拥有一块TI的板子

来论坛不久 ,偶然发现论坛做的很好(专家多、讨论多、DIY活动多、还有给力的团购) ,这里的氛围不错,一直待在群里,不过群里依然有着eeworld爱分享,乐于助人的氛围 。想学习一下 Cortex-M3处理器,做一个身边有需求的应用,最想改造我的空 ...…

查看全部问答>

电机驱动器DRV8812设计图

如附件所示为DRV8812驱动步进电机的原理图,…

查看全部问答>

对讲门铃里面的IC324D和324N有什么区别?

直按式非可视门铃主机里面所用到的324D与电源板上的324N可否对换?它们有什么样的区别?各位大虾给点意见,按分机的时候没反应是那个出问题了?…

查看全部问答>