微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > PIC16F877的Timer1

PIC16F877的Timer1

时间:11-24 来源:互联网 点击:
Timer1模块是由两个可读写的8 位寄存器(TMR1H 和 TMR1L)组成的 16 位定时器/ 计数器。TMR1寄存器对(TMR1H:TMR1L)从 0000h 递增到 FFFFh 后,计满回零到 0000h。如果允许Timer1中断,则溢出时会产生Timer1 中断。该中断可通过置位/清零TMR1IE位来允许/禁止。

Timer1 可以有三种工作模式:
• 同步定时器模式
• 同步计数器模式
• 异步计数器模式

Timer1 工作在定时器模式
将 TMR1CS (T1CON<1>) 清 0,选择 TMR1 工作在定时器模式。在这种模式下,定时器的输入时钟是内部时钟频率的4 分频(FOSC/4)。因为内部时钟总是同步的,所以同步控制位 T1SYNC(T1CON<2>)此时不起作用。

Timer1 工作在同步计数器模式
将 TMR1CS(T1CON<1>) 置 1,选择 TMR1 工作在计数器模式。在这种模式下,计数器在引脚T1OSI (T1OSCEN置1时)或T1OSO/T1CK (T1OSCEN清0时)输入时钟的每个上升沿递增。如果 T1SYNC 位清 0,那么外部时钟输入与内部相位时钟同步,同步是在预分频器后完成的。预分频器是一个异步脉动计数器。在同步计数器模式下,当工作于休眠方式时,即使使用的是外部时钟,Timer1 也不会递增,因为同步电路已被关闭,但是预分频器继续递增。当 Timer1 工作在同步计数器模式时,外部输入的时钟信号必须满足一定的要求,这主要是因为要与内部相位时钟(TOSC) 同步。同步后,Timer1 的实际递增计数与外部时钟沿之间会产生一定的延时。当预分频器的分频比为1:1 时,外部输入时钟和预分频器的输出相同。T1CKI与内部相位时钟的同步是通过在相邻的两个Tosc内部相位时钟下对预分频器的输出进行采样来实现的。因此,要求T1CKI引脚上的信号高、低电平分别至少保2Tosc ( 加上一小段 RC 延时 )。 当预分频器的分频比是除 1:1 外的其它情况时,外部输入时钟信号要先经过异步脉动计数器预分频器的分频,而使预分频器的输出对称。为了使外部时钟满足采样要求,必须将脉动计数器考虑
在内。因此,要求 T1CKI 引脚上的信号至少保持4Tosc(加上一小段 RC延时)供预分频器分频。此外,T1CKI引脚上的时钟信号还必须满足高低电平的最小脉宽要求。

Timer1 工作在异步计数器模式
当T1SYNC (T1CON<2>)位置1时,外部时钟输入就不同步。Timer1 继续进行异步于内部相位时钟的递增计数。在休眠状态下,Timer1将继续运行,并在计满溢出时产生中断,唤醒处理器。但在软件中应特别注意对Timer1的读写。异步计数器能在器件休眠时工作,因此Timer1 可用于实现一个实时时钟。在异步计数器模式时,Timer1不能用作捕捉器或比较器的工作时基。

Timer1 振荡器
在 T1OSI ( 放大器输入 ) 和 T1OSO ( 放大器输出 ) 引脚之间内接有晶体振荡器电路,通过将T1OSCEN控制位 (T1CON<3>)置位使能该电路。该振荡器是一个低功耗的振荡器,频率可达200kHz。它在休眠状态下可以继续工作。一般建议的使用频率为32kHz,这是一个产生实时时钟的理想频率。表12-1所示为不同频率的晶体振荡器所需的外接电容。Timer1的振荡器是一种低速低功耗(LP)振荡器,用户应在 Timer1 的振荡器刚开始工作时,使
用一定的软件延时,以确保振荡器先可靠起振。
表 12-1: Timer1振荡器的电容器选择表
注: 这使得计数器在休眠模式下仍然继续工作(递增) ,因此Timer1 可用于产生一个实时时钟。
振荡类型 频率 C1 C2
LP 32 kHz33 pF 33 pF
100 kHz 15 pF 15 pF
200 kHz15 pF 15 pF
经测试的晶体:
32.768 kHz Epson C-001R32.768K-A ± 20 PPM
100 kHz Epson C-2 100.00 KC-P ± 20 PPM
200 kHz STD XTL 200.000 kHz ± 20 PPM
注 1:增加电容容量可提高振荡器的稳定性,但是同时也延长了振荡器的起振时间。
2:由于每个谐振器/ 晶体均有其自身的特性,用户应向谐振器/晶体厂商咨询适当的外部元件值

跟Timer1有关的寄存器



Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top