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