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

PIC16F877A TMR0定时器实验2

发布时间:2020-05-16 发布时间:
|

/*********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; 
        } 
    }    
}




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

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址