PIC16F877A TMR0定时器实验2
扫描二维码
随时随地手机看文章
/*********PIC16F877A TMR0定时器实验2*******
使用前置分频器,为实现精确定时,不应对TMR0进行重复写入操作
PS2 PS1 PS0
0 0 0 2 分频
0 0 1 4 分频
0 1 0 8 分频
0 1 1 16 分频
1 0 0 32 分频
1 0 1 64 分频
1 1 0 128分频
1 1 1 256分频
TMR0用作定时器时,定时器时钟=系统时钟/4
前置分频器分配给TMR0,对输入时钟256分频
如果MCU 4MHZ ,TMR0定时频率=1000000/(256*256)
*******************************************/
#include
#include "../head/config.h"
__CONFIG(HS&WDTDIS&LVPDIS&PWRTEN);
//HS振荡,禁止看门狗,低压编程关闭,启动延时定时器
void main(void)
{
PSA = 1;
PS2 = 0;
PS1 = 1;
PS0 = 1;
T0CS = 0;
TMR0 = 0;
GIE = 1;
T0IE = 1;
PORTD = 0x00;
TRISD = 0xfe;
while(1){}
}
void interrupt ISR(void)
{
static uint16 microSec = 0;
if(T0IE && T0IF)
{
T0IF = 0;
if(++microSec > 500)
{
microSec = 0;
PORTD = ~PORTD;
}
}
}