×
单片机 > 单片机程序设计 > 详情

PIC定时器( TIMER2 )

发布时间:2020-08-24 发布时间:
|
1、PIC TIMER2定时器
    Timer2的功能Timer0有些不同,Timer2是一个八位的计数器,有一个八位的计数寄存器TMR2,Timer2具有以下功能:有两个分频器,一个是前分频器,一个是后分频器.分频可以软件进行设置,另外,Timer2的时钟源是指令时间(FOSC/4),Timer2有一个寄存器 PR2,此寄存器的功能是当TMR2增加到PR2的值时,将产生中断,当然,中断必须允许,然后PR2的值会重新变为00H.下面来介绍Timer2的编程:
    Timer2的控制寄存器T2CON作用是设置Timer2的开启关闭和前后分频的分频系数,寄存器
T2CON的 TOUTPS<3:0> 位设置后分频系数,可以被设置成1:1~1:16;位TMR2ON为1时,Timer2
开启,为0时,Timer2关闭;位T2CKPS<1: 0>可以设置前分频系数,可以被设置成1、4、16.
    Timer2的中断可以这样控制,允许Timer2中断位TMR2IE(位于 PIE1寄存器内)被置1时,Timer2中断被允许,被置0时, Timer2中断禁止.寄存器INTCON的PEIE位置1,同时总中断位GIE(位于寄存器INTCON中)置为1.通过上面的设置,Timer2就可以产生中断了.当定时器产生中断的时候,会把中断标志T2IF置为1(位于寄存器PIR1中),然后PC指针指向0004H地址.
中断标志位T2IF必须软件清除.

2、TMR2设置定时时间
   TMR2的周期寄存器(寄存器分为控制、周期寄存器),即当TMR2的值=PR2+1时,
    TMR2将溢出,即TMR2自动被清0.
     如你用的是4MHz晶振,希望延时2ms,可以这样计算:
    2000=(PR2+1)×Tcy×K,这里Tcy=1us,K为预分频系数
    为了先得到K,假设PR2=255,即最大值,可以得到K=7.8125,由于TMR2的预分频系数
   只有1,4,16三种可选,而且必须选比理论计算的值(7.8125)大一点的那个系数,因
   此这里K选16再把K代入公式计算,求PR2:
    2000=(PR2+1))×Tcy×16,得到PR2=124,如果有小数,按四舍五入取整。
    也就是说,如果把TMR2设置成预分频比为1:16,PR2设置为124,在4MHz晶振时,
    每隔2ms溢出一次,溢出时TMR2被清0。

3、图示
     
  
            


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
如何为单片机选择合适的负载电容