PIC16F877A TMR0定時器實驗2
/*********PIC16F877A TMR0定時器實驗2*******
使用前置分頻器,為實現(xiàn)精確定時,不應(yīng)對TMR0進行重復(fù)寫入操作
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用作定時器時,定時器時鐘=系統(tǒng)時鐘/4
前置分頻器分配給TMR0,對輸入時鐘256分頻
如果MCU 4MHZ ,TMR0定時頻率=1000000/(256*256)
*******************************************/
#include
#include "../head/config.h"
__CONFIG(HS&WDTDIS&LVPDIS&PWRTEN);
//HS振蕩,禁止看門狗,低壓編程關(guān)閉,啟動延時定時器
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;
}
}
}