8052定时器2的用法

发布者:美丽的1号最新更新时间:2024-04-15 来源: elecfans关键字:定时器  寄存器 手机看文章 扫描二维码
随时随地手机看文章

学了51单片机之后,开发板上的CPU是STC89S52RC的,就是说52单片机,里面比51的多了一个定时器2看了很多书,就是没怎么理解,于是乎决定看AT89S52的数据手册,翻译一遍,可能会加深自己的理解,以后对C8051F的单片机也好好预热一下。

定时计数器2是一个16位定时/计数器,通过T2CON寄存器的C/T2位可以选择定时还是计数功能。定时器2 有3种操作模式:捕获、自动重新装载(递增或递减计数)和波特率发生器,这3种模式由T2CON 中的位进行选择,具体的选择方式见表1。定时器2有两个8为寄存器:TH2和TL2。在定时模式状态下,TL2寄存器每一个机器周期加1,。由于52单片机的每一个机器周期等于12的振荡周期,所以他的计数频率是振荡频率的1/12。

表1

RCLK+TCLK

CP/RL2

TR2

MODE

0

0

1

16位自重载

0

1

1

16位捕获

1

X

1

波特率发生器

X

X

0

在计数状态下,外部引脚由1-0的负跳变是,寄存器就加1。并且在这种情况下,每当一个机器周期的S5P2的时科,单片机就对外部引脚进行采样,如果在下一个周期里信号变为低电平,则计数器加1。在下一个周期的S3P1时刻,若检测到有跳变,则计数器计数加1。识别1-0的跳变需要两个机器周期(24个振荡周期),所以计数信号的最大的频率只能是振荡频率的1/24。为了确保采样频率能够被采样,被采用的电平必须保持一个机器周期不变。

 

1、捕获模式

在捕获模式,寄存器T2CON的位EXEN2有两方式可供选择:

若EXEN2=0,定时器2为16位定时/计数器,当计数溢出是,T2CON中的TF2置1,并向CPU申请中断;

若EXEN2=1,定时器2出来拥有和上述一样的功能外,还有捕获功能:即在引脚T2EX有1-0跳变的时候,RCAP2H和RCAP2L分别捕获并保存TH2和TL2的当前值(即RCAP2H=TH2,RCAP2L=TL2),另外T2EX脚的跳变也会使T2CON寄存器里的位EXF2值1,和TF2一样向CPU申请中断。

2、自重载模式(递增/递减计数器)

定时器2可以设置为递增/递减自动重载计数器,并通过DCEN(Down Counter Enable)位来控制其模式。见表2,一旦CPU复位,DCEN被清0,意味着定时器2默认是递增计数器,当DCEN置为1时,允许定时器2递增或递减计数,由T2EX的电平来控制器计数方向。

表1

T2MOD Address = 0C9H                                 Reset Value = XXXX XX00B

Not Bit Address

 

Bit

-

-

-

-

-

-

T2OE

DCEN


7

6

5

4

3

2

1

0

Symbol

Function

-

保留

T2OE

定时器2输出使能

DCEN

DCEN=1,允许定时器2递增或递减计数

 

图1   T2捕获原理图

 

       图2所示为定时器2自动递增模式(DCEN=0)原理图。在这种模式下由T2CON中的EXEN位选择。

       当EXEN=0;当计数器向上计数到0FFFFH是就会置位溢出标志位TF2,此时,寄存器RCAP2H和RCAP2L的值会自动装载到寄存器TH2和TL2中。寄存器RCAP2H和RCAP2L的值有软件预设。

       当EXEN=1;16位重载可由两个方式触发:计数溢出或T2EX引脚的负跳变。同时置位EXF2为1。在中断允许的条件下,TF2和EXTF2都可以触发中断。

 

图2   T2自重载模式(DCEN=0)原理图

       当DCEN为1时,允许定时器2递增计数或者递减计数,就如图2所示。在这种模式下,T2EX引脚控制计数的方向。

T2EX若为逻辑“1”,定时器2递增计数,直到0FFFFH是计数器溢出,置位TF2为1,同时溢出之后,寄存器RCAP2H和RCAP2L的值会自动装载到寄存器TH2和TL2中。

T2EX若为逻辑“0”,定时器2递减计数,当寄存器TH2和TL2的值分别和寄存器RCAP2H和RCAP2L的值相等时,计数器向下溢出,同时立即置位TF2,并把定时计数器赋值为0FFFFH。

//The EXF2 bit toggles whenever Timer 2 overflows or underflows and can be used as a 17th bit of resolution. In this operating mode, EXF2 does not flag an interrupt.

// (这段话不好翻译)

 

图3


关键字:定时器  寄存器 引用地址:8052定时器2的用法

上一篇:8052频率计(计数器2和定时器0的结合)
下一篇:软件模拟实现iic协议(51为例)

推荐阅读最新更新时间:2024-11-11 16:17

PIC定时器(TIMER0)
如:设为内部指令周期时钟作为时钟源,4M晶振时设1:4分频,则定时器加一为1us(但pic18f单片机为 三级流水线,一指令周期 = 1/4 时钟/晶振周期。例如:8M晶振,1:2分频,则定时器加一耗时1us)。 程序例子 设计一个24进制定时器计时时钟
[单片机]
PIC<font color='red'>定时器</font>(TIMER0)
msp430学习笔记之定时器A
1 相关知识 1 定时器a图解 图 1 定时器A图解 2 定时器A的四种计数模式 1. 停止模式。 2. 增计数模式。(产生两个中断标志) 当计数到跟TACCR0一样的时候,就返回0,重新计数。当计数到TACCR0的同时产生一个中断标志CCIFG,而当计数器溢出返回零的同时又同时产生一个中断标志TAIFG。如图: 图 2 增计数模式的时序图 3.连续计数模式(产生一个中断标志) 计数器将直接计数到计数器所能计数的最大值0FFFFH之后重新返回零,再次计数。返回零的同时产生一个TAIFG中断标志。如图 图3 连续技术模式的时序图 如果相应中断位允许,每当一个定时间隔到都会产生中断请
[单片机]
msp430学习笔记之<font color='red'>定时器</font>A
SysTick定时器介绍,SysTick定时器寄存器
SysTick定时器介绍 SysTick定时器也叫SysTick滴答定时器, 它是Cortex-M3内核的一个外设,被嵌入在 NVIC 中。它是一个 24 位向下递减的定时器,每计数一次所需时间为1/SYSTICK,SYSTICK 是系统定时器时钟,它可以直接取自系统时钟,还可以通过系统时钟 8 分频后获取,本套程序中我们采用后者,即每计数一次所需时间为1/(72/8)us,换句话说在 1us 的时间内会计数 9 次。当定时器计数到 0 时,将从LOAD 寄存器中自动重装定时器初值,重新向下递减计数,如此循环往复。如果开启 SysTick 中断的话,当定时器计数到 0,将产生一个中断信号。因此只要知道计数的次数就可以准确得到它的延
[单片机]
SysTick<font color='red'>定时器</font>介绍,SysTick<font color='red'>定时器</font><font color='red'>寄存器</font>
单片机MSP430入门-理论⑦--定时器模块-定时器A②
上期大概给大家汇总介绍了,定时器模块中比较重要并且常用的定时器A,大概说了下定时器A的两种常用模式,比较模式和捕获模式 本期将继续介绍定时器A,这次将整理一些关于定时器A的,各寄存器的用法以及功能 1.0 首先说一下TACTL控制寄存器 先大概解释下这几个位的作用: Unused bits 15-10 未定义 TASSELx bits 9-8 选择Timer_A的时钟源, 00为TACLK(用于特定的外部引脚信号),01为ACLK(辅助时钟),10为SMCLK(子系统时钟),11为INCLK(见器件说明) IDx bits 7-6 给时钟源确定分频因子, 00为不分频,01为时钟源的二分之一,10为时钟源的四分
[单片机]
单片机MSP430入门-理论⑦--<font color='red'>定时器</font>模块-<font color='red'>定时器</font>A②
msp430 f5529寄存器 串口发送接收
使用的开发板是官方的ti msp430f5529lp 基于官方的例程进行的改动 新增了发送字符串函数 同时可以中断接收 接下来看代码展示 #include msp430.h volatile unsigned int i; void senfchar(char s) { UCA0TXBUF=s; while(!(UCA0IFG&UCTXIFG)); } void sendstring(unsigned char *p) { while(*p!='') { while(!(UCA0IFG&UCTXIFG)); UCA0TXBUF=*p++; } } void
[单片机]
msp430 f5529<font color='red'>寄存器</font> 串口发送接收
N76E003 输入捕获
1、寄存器说明 定时器2是一个16位的向上计数器,由高8位寄存器(TH2)和低8位寄存器(TL2)组成。通过配置寄存器RCMP2H和RCMP2L,设置 (T2CON.0)后,定时器2能工作在比较模式和自动重载模式下。 定时器2具有3通道输入捕获模块,可用于测量输入脉冲宽度或周期。 3通道捕获结果分别存放在寄存器C0H及 C0L, C1H 及 C1L, C2H 及 C2L中。定时器2的时钟来自系统时钟的分频,总共具有8级分频,可适用于更多应用需求。当TR2 (T2CON.2) 置 1,定时器使能; TR2置0时,定时器关闭。 2、示例代码 #include N76E003.h #include Common.h #i
[单片机]
N76E003 输入捕获
11.S3C2440 中断实验(五)定时器中断实验
定时器中断实验 S3C2440提供了3种时钟:FCLK用于CPU核;HCLK用于AHB总线上的设备,比如存储器控制器、中断控制器、LCD控制器、DMA和USB主机模块,同时也可以在特殊情况下用于CPU核;而PCLK则用于APB总线上的设备,比如看门狗、IIS、IIC、PWM定时器、ADC、UART、GPIO、RTC和SPI等。 总的来说,AHB总线主要用于高性能模块,APB总线主要用于低带宽的周边外设之间的连接。 S3C2440定时器的总时钟源为PCLK,首先通过两个8位的预分频器降低频率,定时器0、1共用第一个预分频器,定时器2、3、4共用第二个预分频器;之后预分频器的输出将被第二级的五路选择分频
[单片机]
11.S3C2440 中断实验(五)<font color='red'>定时器</font>中断实验
系统时钟和定时器简单记录
S3C2440A 中的时钟控制逻辑可以产生必须的时钟信号,包括CPU的FCLK,AHB总线外设的HCLK以及APB总线外设的PCLK。S3C2440A 包含两个锁相环(PLL):一个提供给 FCLK、HCLK 和PCLK,另一个专用于USB模块(48MHz)。时钟控制逻辑可以不使用PLL来减慢时钟,并且可以由软件连接或断开各外设模块的时钟,以降低功耗。 锁相环(PLL):时钟发生器之中作为一个电路的MPLL,参考输入信号的频率和相位同步出一个输出信号。用于生成与输入直流电压成比例的输出频率的压控振荡器(VCO)、用于将输入频率(Fin)按p分频的分频器 P 、用于将VCO输出频率按m分频并输入到相位频率检测器(PFD)中的分
[单片机]
系统时钟和<font color='red'>定时器</font>简单记录
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved