热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

51单片机(十七)——定时器2寄存器介绍及功能描述

这篇文章,我们对51单片机的定时器2的寄存器和功能进行介绍。1定时器2控制寄存器T2CON定时器2是一个16位定时器计数器,通过设置特殊功能寄存器T2

        这篇文章,我们对51单片机的定时器2的寄存器和功能进行介绍。


1 定时器2控制寄存器T2CON

        定时器2是一个16位定时器/计数器,通过设置特殊功能寄存器T2CON中的C/T2位,可将其作为定时器或计数器。定时器2有3中模式:捕获、自动重新装载(递增或递减计数)和波特率发生器,这3种模式由T2CON进行设置。T2CON寄存器的字节地址为C8H,单片机复位时T2CON全部被清0,T2CON的定义如下表所示。

定时器2控制寄存器T2CON


位序号

D7

D6

D5

D4

D3

D2

D1

D0

位符号

TF2

EXF2

RCLK

TCLK

EXEN2

TR2

C/T2

CP/RL2

TF2—定时器2溢出标志位。

定时器2溢出时置位,必须由软件清0。当RCLK=1或TCLK=1时,TF2将不会置位。

EXF2—定时器2外部标志。

当EXEN2=1且T2EX(单片机的P1.1口)的负跳变产生捕捉或重装时,EXF2置位。定时器2中断使能时,EXF2=1将使CPU进入定时器2的中断服务程序。EXF2必须用软件清0。在递增/递减计数器模式(DCEN=1)中,EXF2不会引起中断。

RCLK—接收时钟标志。

RCLK=1时,定时器2的溢出脉冲作为串行口模式1或模式3的接收时钟;RCLK=0时,定时器1的溢出脉冲作为接收时钟。

TCLK—发送时钟标志。

TCLK=1时,定时器2的溢出脉冲作为串行口模式1或模式3的发送时钟;TCLK=0时,定时器1的溢出脉冲作为发送时钟。

EXEN2—定时器2外部使能标志。

当EXEN2=1且定时器2未用作串行口时钟时,允许T2EX引脚的负跳变产生捕获或重装;当EXEN2=0时,T2EX引脚的负跳变对定时器2无效。

        这里我们要对捕获进行一下解释,通俗地讲,捕获就是捕捉某一瞬间的值,通常它用来测量外部某个脉冲的宽度或周期,使用捕获功能可以准确地测量出脉冲的宽度或周期。捕获的工作原理是:单片机内部有两组寄存器,其中一组的内部数值是按固定机器周期递增或递减的,通常这组寄存器就是单片机内部定时器的计数器寄存器(TLn,THn),当与捕获功能相关的外部某引脚有一个负跳变时,捕获便会立即将此时第一组寄存器中的数值准确地捕获,并且存入另一组寄存器中,这组寄存器通常被称为“陷阱寄存器”(RCAPnL,RCAPnH),同时向CPU申请中断,软件记录两次捕获之间的数据后,便可以准确地计算出该脉冲的周期。

TR2—定时器2启动/停止控制位。

这一位置1时启动定时器2,清0则停止定时器2。

C/T2—T2的定时器/计数器选择位。

   C/T2 =1时,设置为外部事件计数器(下降沿触发);C/T2 =0时,设置为内部定时器。

CP/RL2—捕获/重装标志。

CP/RL2=1且EXEN2=1时,T2EX引脚的负跳变产生捕获。

CP/RL2=0且EXEN2=0时,定时器2的溢出或T2EX引脚的负跳变都可以使定时器自动重装。当RCLK=1或TCLK=1时,该位无效,且定时器强制为溢出时自动重装。

这个寄存器对定时器/计数器2的模式设置如下表所示。

定时器/计数器2的三种工作模式


RCLK+TCLK

CP/RL2

TR2

模式

0

0

1

16位自动重装

0

1

1

16位捕获

1

×

1

波特率发生器

×

×

0

关闭


2 定时器2模式控制寄存器T2MOD

        这个寄存器用来设定定时器2自动重装模式的递增或递减模式,字节地址为C9H,该寄存器不可位寻址。单片机复位时T2MOD全部被清0,这个寄存器的定义如下表所示。

定时器2模式控制寄存器T2MOD


位序号

D7

D6

D5

D4

D3

D2

D1

D0

位符号

--

--

--

--

--

--

T2OE

DCEN

T2OE—定时器2输出使能位。

DCEN—向下计数使能位。


3 定时器2的三种模式

1)捕获模式

        在捕获模式中,通过T2CON中的EXEN2设置2个选项。如果EXEN2=0时,定时器2作为一个16位定时器或计数器(由T2CON中的C/T2位选择),溢出时置位TF2(定时器2 溢出标志位)。该位可用于产生中断(通过使能IE寄存器中的定时器2中断使能位)。如果EXEN2=l,与以上描述相同,但增加了一个特性,即外部输入T2EX引脚由l变0时,将定时器2中TL2和TH2的当前值各自捕获到RCAP2L和RCAP2H中。另外,T2EX引脚的负跳变使得T2CON中的EXF2置位,EXF2也像TF2一样能够产生中断(其向量与定时器2溢出中断地址相同,定时器2中断服务程序通过TF2和EXF2来确定引起中断的事件)。捕获模式如下图所示。在该模式中,TL2和TH2无重新装载值,甚至当T2EX产生捕获事件时,计数器仍为以T2脚的负跳变或震荡频率的1/12(12时钟模式)或1/6(6时钟模式)计数。

2)自动重装模式(递增/递减计数器)

        16位自动重装模式中,定时器2可以通过C/T2位配置为定时器/计数器,编程控制递增/递减计数。计数方向有T2MOD寄存器中的DCEN位确定。当DCEN=0时,定时器2默认为向上计数。当DCEN=1时,定时器2可通过T2EX引脚确定递增或递减计数。下图为DCEN=0时,定时器2自动递增计数的原理图。在该模式下,通过设置EXEN2位进行选择。如果EXEN2=0,定时器2递增到0FFFFH,并在溢出后将TF2置位,然后将RCAP2L和RCAP2H中的16位值作为重新装载的值装入定时器2。RCAP2L和RCAP2H的值是通过软件预设的。如果EXEN2=1,16位重新装载可以通过溢出或T2EX引脚的负跳变实现。此负跳变同时将EXF2置位。如果定时器2的中断被使能,则当TF2或EXF2置1时产生中断。

        当DCEN=1时,定时器2可以递增或递减计数。这种模式的工作原理如下图所示。此模式下,允许T2EX引脚控制计数的方向。当T2EX引脚引脚置1时,定时器2递增计数,计数到0FFFFH后溢出并置位TF2,还将产生中断(如果中断被使能)。定时器2的溢出将使RCAP2L和RCAP2H中的16位值作为重新装载值放入TL2和TH2。当T2EX置0时,定时器2递减计数。当TL2和TH2计数到等于RCAP2L和RCAP2H时,定时器2将TF2置位并产生中断,同时将0FFFFH载入到TL2和TH2。

2)波特率发生器模式

          寄存器T2CON的TCLK和(或)RCLK位允许从定时器1或定时器2获得串行口发送和接收的波特率。当TCLK=0时,定时器1作为串行口发送波特率发生器;当TCLK=1时,定时器2作为串行口发送波特率发生器。RCLK对串行口接收波特率的设置有同样的作用。通过这两位,串行口能得到不同的接收和发送的波特率,一个通过定时器1产生,另一个通过定时器2产生。有关波特率生成的工作原理,我们将在以后的串行口实验中进行介绍,这里不做过多介绍。

 


推荐阅读
  • 本文介绍了基于c语言的mcs51单片机定时器计数器的应用教程,包括定时器的设置和计数方法,以及中断函数的使用。同时介绍了定时器应用的举例,包括定时器中断函数的编写和频率值的计算方法。主函数中设置了T0模式和T1计数的初值,并开启了T0和T1的中断,最后启动了CPU中断。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了在Docker容器技术中限制容器对CPU的使用的方法,包括使用-c参数设置容器的内存限额,以及通过设置工作线程数量来充分利用CPU资源。同时,还介绍了容器权重分配的情况,以及如何通过top命令查看容器在CPU资源紧张情况下的使用情况。 ... [详细]
  • 本文介绍了2020年计算机二级MSOffice的选择习题及答案,详细解析了操作系统的五大功能模块,包括处理器管理、作业管理、存储器管理、设备管理和文件管理。同时,还解答了算法的有穷性的含义。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 关于CMS收集器的知识介绍和优缺点分析
    本文介绍了CMS收集器的概念、运行过程和优缺点,并解释了垃圾回收器的作用和实践。CMS收集器是一种基于标记-清除算法的垃圾回收器,适用于互联网站和B/S系统等对响应速度和停顿时间有较高要求的应用。同时,还提供了其他垃圾回收器的参考资料。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 作为一名正在读EE专业的研一学生,面临选择一门适合未来职业生涯的编程语言的问题。目前只会使用C++和Matlab,但发现C++的使用率逐渐减少。对于选择哪门语言进行深入学习还没有明确方向,希望选择一门使用广泛且不会被短期淘汰的语言。提到了Phyton的简洁性,但担心从零基础学习起会有困难。同时也担心选择了C++后语言会被淘汰,以及编程效率低的问题。 ... [详细]
  • 数据结构系列1 数组和链表
    数组,链表,l ... [详细]
author-avatar
成都迅捷代驾
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有