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

PIC16F877的Timer0

时间:11-24 来源:互联网 点击:
Timer0是一个8位的定时计数器,具有一个可编程的8位预分频器(prescaler)。硬件结构如下图所示:

三个与之相关的寄存器:

如果需要用到计数模式,T0CKI应设为输入方式,即TRISA中的相应位置1

TMR0即Timer0的初值,比如TMR0为250,那么经过251,252......255(FF),下一个值为0,此时称为Timer0溢出,T0IF(Timer0溢出标志位)会被置为1,并且可以产生中断,当然需要GIE(总中断允许),T0IE(Timer0中断允许),T0IF需要用软件置0才能进行下次中断。PIC16F877只有一个中断入口,当进入某个中断时,GIE会自动置0,等此中断跳出GIE才自动回到1,这样的作用是防止多个中断冲突。T0CS为1则是计数方式,时钟来源于T0CKI引脚,0则为定时方式,时钟源来源于内部时钟(机器周期),4Mhz晶振为1us,T0SE则是计数方式的触发方式,1为下降沿触发,0为上升沿触发。PSA是预分频器作用的对象,1为看门狗(WDT),0为Timer0,PS2,PS1,PS0设置分频比

分频的好处即可以延长定时时间,如1:128,即最大可计256X128;最后要强调的是PIC16F877的Timer0没有启停控制位,上电就开始工作。

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

网站地图

Top